6 releases
Uses old Rust 2015
0.0.7 |
|
---|---|
0.0.6 | Jan 8, 2015 |
0.0.4 | Dec 30, 2014 |
0.0.2 | Nov 21, 2014 |
#11 in #electronic
33KB
466 lines
Temperature Analysis
The library provides an exponential-integrator-based solver for systems of differential-algebraic equations modeling temperature of electronic systems.
Documentation
Contributing
- Fork the project.
- Implement your idea.
- Create a pull request.
lib.rs
:
Temperature analysis of electronic systems.
Model
Temperature analysis is based on the well-known analogy between electrical
and thermal circuits. For an electronic system of interest, an equivalent
thermal RC circuit is constructed. The circuit is composed of nodes
thermal nodes. A subset of cores
(out of nodes
) thermal nodes
corresponds to the power-dissipating elements of the electronic system and
is referred to as active.
The thermal behavior of the electronic system is modeled using the following system of differential-algebraic equations:
dQall
C * ----- + G * (Qall - Qamb) = M * P
dt
Q = M^T * Qall
where
-
C
is annodes
-by-nodes
diagonal matrix of thermal capacitance; -
G
is annodes
-by-nodes
symmetric, positive-definite matrix of thermal conductance; -
Qall
is annodes
-element temperature vector of all thermal nodes; -
Q
is acores
-element temperature vector of the active thermal nodes; -
Qamb
is acores
-element temperature vector of the ambience; -
P
is acores
-element power vector of the active thermal nodes; and -
M
is annodes
-by-cores
rectangular diagonal matrix whose diagonal elements equal to unity.
Solution
The original thermal system is transformed as follows:
dS
-- = A * S + B * P
dt
Q = B^T * S + Qamb
where
S = D^(-1) * (Qall - Qamb),
A = -D * G * D,
B = D * M, and
D = C^(-1/2).
The eigendecomposition of A
, which is real and symmetric, is
A = U * diag(Λ) * U^T.
The solution of the system for a short time interval [0, Δt]
is based on
the following equation:
S(t) = E * S(0) + F * P(0)
where
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
is referred to as the time step. In order to find the temperature
profile corresponding to the whole time span of interest, the time span is
split into small intervals, and the above equation is successively applied
to each of these small intervals.
Dependencies
~1.5MB
~56K SLoC