Could some Ngspice guru please clarify if there is a
good battery or transformer model in ngspice ? I
have tried to adapt PSpice models of the two to
ngspice, but the results are disappointing. Ngspice's
own transformer model of tightly coupled inductors,
is also not very effective. Any hints, suggestions
would be of immense help.
For really good physics based battery models you should implement the ideas of Peter Notten:
'Battery management Systems', Henk Jan Bergveld, Wanda S. Kruijt and Peter H. L. Notten, Kluwer Academic Publishers, ISBN 1-4020-0832-5.
NGSPICE has all that it takes to implement non-saturating transformers and inductors, but there is no hysteresis possibility in the core inductor device (like the Chan model in LTSPice). For power electronics use the hysteresis effect should be frequency dependent and I am not aware of any simulator that can do this (there is no clear formulation in the time domain that can be used with available measurements).
For a general transformer with N primaries and M secondaries, with arbitrary couplings between each pair, I suggest you use the cantilever approach (e.g. Erickson and Maksimovic). This approach can be done in NGSPICE, is canonical, can be easily characterized with measurements, and avoids constructing physically impossible configurations.
Constructing a multi-domain N-winding transformer model with correct excitation-level and frequency dependent losses is a research problem. Let me know when you find one :-)
What about the XSPICE models
Inductive coupling (manual chapt. 12.2.18)
Magnetic core (manual chapt. 12.2.19)
Sounds as if you can create (arbitrary) transformer models (don't ask me further, I did not use it).
Thank you Holger, I overlooked the XSPICE models!
> but there is no hysteresis possibility in the core
> inductor device (like the Chan model in LTSPice).
.. is therefore false, you can do the Chan model
in NGSPICE, too. The bit about frequency dependent hysteresis
losses stays true. However, in XSPICE it might be possible to "count"
how may times/sec you go through the B-H loop. A reasonable
adjustment of losses might be possible that way.