Das Simulieren von Spulen und Übertragern ist aus zwei Gründen nicht
trivial: Erstens sind sie stark nichtlinear und wie Du schon erwähnt
hast, hysteretisch und obendrein sind es Energiespeicher und damit
frequenzabhängig. Ich habe mich damit schon beruflich befasst und Kerne
vermessen. Die entstehenden Kurven sind auch mit guten Simulatoren nur
schwer nachzubilden. Das in SPICE integrierte Modell von Jiles und
Atherton konnte das auch nicht gut genug und ihm fehlte zudem die
Frequenzabhängigkeit. Man musste die Parameter für jede Frequenz einzeln
neu bestimmen, um die Kurve anzupassen. Damit sind natürlich nur
Simulationen mit statischen Frequenzen einigermassen realitätsnah.
Eine Erweiterung gabe es in einer Publikation über das Preissach-Modell,
mit dem die Frequenzabhängigkeit nachgebildet wurde, mit dem aber der
Simulator nicht zurecht kam. Ich habe das später mal in C nachgebaut und
fand, dass es den Charakter der BH-Kurven gut abbildet, es aber so gut
wie unmöglich ist, die Verlaufsformen der Kurzen über die Frequenz
(Deformation) einem realen Kernmaterial anzupassen.
Wenn man von einer einfachen Anordnung (Spule<->Kern<->Spule) weggeht
und zu einem M-Kern etwas Ähnlichem über geht, läuft das Modell komplett
aus dem Ruder. Ich empfehle daher, bei SPICE eine Art "Monte Carlo
Analyse" zu verwenden, indem man mit mehreren Modellen das Verhalten der
Anordnung einkapselt und Extremfälle simuliert und sich einen Eindruck
über die möglichen Verhaltseffekte zu verschaffen.
Eine weitere Möglichkeit ist, die Modelle zu morphen, indem man mehrere
Modelle als "Stützstellen" generiert und bei den Frequenzen
interpoliert, oder (was auch in Spice bedingt geht), die Modelle
generisch mit Parametern zu verändern.
Dabei gibt es aber zwei Probleme: Du kannst simulationstechnisch nur
einen Sweep beherrschen, weil irgendwelche Eingangssinale ja
fourriertechnisch aus wechselnden Freuquenzen bestehen, die ihre Phase
ändern und zudem musst Du im Modell dafür sorgen, dass die Differentiale
stetig sind, weil man sonst von einer Simulationsschleife in die nächste
Sprünge generiert, die Oberwellen erzeugen und völlig falsche Ergebnisse
liefern. Das müsste dann durch Glättung der Rechenergebnisse in der
Simulation selbst erfolgen, was eine eigene Software erfordert. In Spice
geht das definitiv nicht.
Ungeachtet der konzeptionellen Probleme wirst du rasch an die
Rechzeitgrenze stossen, vor allem, was Echtzeitberechung anbelangt:
>VHDL-Modell
Für die Echtzeitverfolgung einer Stromregelung habe ich mal ein solches
Modell entwickelt, das auf der Basis eines trägen Schwingungsmodells,
mit Hysteres und Energiespeicher (DGL 2.Ordnung) arbeitet und
vorausberechnet, wann ein Schwingkreis umschalten muss. Das war genügend
genau, um das Verhalten vorauszusagen und zu erkennen, um die Regelung
noch im Normalbetrieb arbeitet. Wenn man es mit stimulierten Frequenzen
durchspielt, bekommt auch in der Tat einen täuschend echten BH-Kurven-
und UI-Signalverlauf, wie bei den echten Messungen und es ist näher an
der Realität, als alles andere, was ich kenne. Allerdings sind die
Parameter komplett intuitiv und abgesehen von einem virtuellen µ nicht
direkt an physikalische Grössen gekoppelt. Sie müssen manuell an
Messungen adaptiert werden, allerdings habe ich im eigenen Modell auch
genügend Freiheitgrade, um das zu tun.
Trotzdem läuft die Simulation mittlfristig der Realität weg.
Insbesondere bei selbschwingenen Systemen kommt da rasch was anderes
raus und muss bei Echtzeitverfolgungen immer wieder durch reale
Messungen justiert werden.
Wie gesagt, das ist nicht trivial!
> was Einfaches, das keine grosse Rechenzeit beansprucht
dürfte schwer werden :-)