Thermal Network
A Python library for thermal network model identification using reparametrized unconstrained optimization with JAX.
Overview
Thermal Network is a Python library for thermal network model identification, fitting, and conversion between Cauer (ladder) and Foster (parallel) RC networks. It combines symbolic mathematics for network conversion with high-performance JAX-based optimization for model fitting.
Key Features
Network Conversion
Symbolic conversion between Cauer and Foster RC network topologies using high-precision algebraic methods.
Reparametrized Unconstrained Optimization
The fitting engine encodes constraints directly into the parameter space, eliminating the need for penalty functions or explicit constraint handling:
- Time constant ordering: Log-space gaps between consecutive tau values enforce monotonicity
- Resistance distribution: Softmax encoding ensures the sum constraint is satisfied exactly
- Steady-state detection: Total resistance derived from data endpoints, exact by construction. A function is provided to automatically detect and trim steady-state regions from impedance data to avoid overweighting and improve fit quality.
The loss function operates in log-space, providing better numerical conditioning for thermal data spanning multiple decades and guaranteeing positivity.
Automatic Model Selection
Model comparison using AIC/BIC information criteria to select optimal complexity without manual tuning.