#temperature #electronic #systems #solver #equations #modeling #analysis

tempan

该库提供了一个基于指数积分器的求解器,用于求解模拟电子系统温度的微分代数方程组

6 个版本

使用旧的 Rust 2015

0.0.7 2015年1月10日
0.0.6 2015年1月8日
0.0.4 2014年12月30日
0.0.2 2014年11月21日

#11 in #electronic

MIT 许可证

33KB
466

温度分析 构建状态

该库提供了一个基于指数积分器的求解器,用于求解模拟电子系统温度的微分代数方程组。

文档

贡献

  1. fork 项目。
  2. 实现你的想法。
  3. 创建 pull request。

lib.rs:

电子系统温度分析。

模型

温度分析基于电与热电路之间已知的类比。对于感兴趣的电子系统,构建一个等效的热阻电路。电路由 nodes 个热节点组成。从 nodes 个节点中选出的一部分 cores 热节点对应于电子系统的功耗元件,被称为活性。

电子系统的热行为通过以下微分代数方程组进行建模

    dQall
C * ----- + G * (Qall - Qamb) = M * P
     dt

Q = M^T * Qall

其中

  • C 是一个 nodesnodes 列的热容对角矩阵;

  • G 是一个 nodesnodes 列的对称、正定热导率矩阵;

  • Qall 是所有热节点的 nodes 元素温度向量;

  • Q 是活性热节点的 cores 元素温度向量;

  • Qamb 是环境的 cores 元素温度向量;

  • P 是活性热节点的 cores 元素功率向量;并且

  • M 是一个对角元素为 1 的 nodescores 列的矩形对角矩阵。

解决方案

原始热系统按以下方式进行转换

dS
-- = A * S + B * P
dt

Q = B^T * S + Qamb

其中

S = D^(-1) * (Qall - Qamb),
A = -D * G * D,
B = D * M, and
D = C^(-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 被称为时间步长。为了找到对应整个感兴趣时间段内的温度分布,将时间段分割成小的间隔,并依次将这些小间隔应用到上述方程中。

依赖项

~1.5MB
~56K SLoC