27 个版本

使用旧 Rust 2015

0.10.2 2016 年 7 月 17 日
0.10.0 2016 年 6 月 17 日
0.9.2 2016 年 2 月 5 日
0.9.1 2015 年 10 月 19 日
0.0.16 2015 年 3 月 6 日

#681科学

Download history 1/week @ 2024-02-13 7/week @ 2024-02-20 13/week @ 2024-02-27 2/week @ 2024-03-05 8/week @ 2024-03-12 7/week @ 2024-03-19 2/week @ 2024-03-26 42/week @ 2024-04-02

52 每月下载

Apache-2.0/MIT

24KB
412

温度 版本 状态

该包提供温度模拟器。

文档

贡献

您的贡献非常受欢迎。请随时提出问题或提交拉取请求。请注意,提交给项目包含的贡献将根据LICENSE.md中给出的条款进行许可。


lib.rs:

温度模拟器。

模型

温度模拟基于电和热电路之间已知的类比。给定一个具有 units 处理元素的系统,构建一个具有 nodes 热节点的等效热 RC 电路。然后使用该电路模拟系统的热行为。具体来说,热行为使用以下微分-代数方程组描述

    dT
Cth -- + Gth (T - Tamb) = Mp P
    dt

Q = Mq T

其中

  • Cth 是一个 nodes × nodes 的热电容对角矩阵;

  • Gth 是一个 nodes × nodes 的对称、正定热导率矩阵;

  • T 是热节点的温度的 nodes 元素向量;

  • Tamb 是环境温度的 nodes 元素向量;

  • P 是处理元素功耗的 units 元素向量;

  • Mp 是将处理元素的功耗分配到热节点的 nodes × units 矩阵;

  • Q 是感兴趣的点的温度的 spots 元素向量;

  • Mq 是将热节点的温度汇总到感兴趣的点的温度的 spots × nodes 矩阵。

解决方案

原始系统转换为以下形式

dS
-- = A S + B P
dt

Q = C S + Mq Tamb

其中

S = D^(-1) (T - Tamb),
A = -D Gth D,
B = D Mp,
C = Mq D, and
D = Cth^(-1/2).

A 的特征分解,它是一个实对称矩阵,是

A = U diag(Λ) U^T.

对于短时间间隔 [0, Δt],解是通过以下方程得到的

S(t) = E S(0) + F P(0)

其中

E = exp(A Δt) = U diag(exp(λi Δt)) U^T and
F = A^(-1) (exp(A Δt) - I) B = U diag((exp(λi Δt) - 1) / λi) U^T B.

该解利用了以下假设:Δt(称为时间步长)足够短,使得在 [0, Δt] 时间内功率损耗变化不大。为了计算整个感兴趣时间段对应的温度分布,时间段被划分为小的子区间,并依次将上述方程应用于每个子区间。

依赖关系

~14MB
~120K SLoC