Forum: FPGA, VHDL & Co. Simulation von Spulen und anderen Bauteilen in Echtzeit


von HTI (Gast)


Lesenswert?

Ich verwende MODELSIM zur Simulation einer Steuerung für Antriebe und 
möchte die Regelschleife simulieren. Dazu muss allerdings auch 
Elektronik mitsimuliert werden - wenigstens im Groben. Die Elektronik 
steuert verschiedene Übertragersysteme für Stromimpulse, die erfasst und 
aufgezeichnet werden. Modelliert wird das bisher einfach durch ein 
Rechteck, dass durch den Startimpuls der VHDL-Schaltung ausgelöst wird, 
allerdings soll nun die Pulsform analysiert werden. Dafür bräuchte ich 
aber ein einigermassen stimmiges Verhalten der Übertrager, also 
magnetische Sättigung und Hysterese, weil die die Pulsform bestimmen. 
Mit Modelsim ist es grundsätzlich möglich, Modelle zu erstellen, die in 
Real rechnen. Mir stellt sich die Frage, ob es lohnt sich damit zu 
befassen und wie ich da rangehen könnte.

von Jonny (Gast)


Lesenswert?

VHDL-AMS

von HTI (Gast)


Lesenswert?

Dazu brauche ich aber einen anderen Simulator ....

von user (Gast)


Lesenswert?

Du kannst die eine Stimuli in Real rechnen das geht gut. VHDL-AMS 
braucht man dazu nicht. Du musst halt das Model selber beschreiben und 
rechnen.

von Bildverwursteler (Gast)


Lesenswert?

Ich habe etwas vor im Bereich Simulation elektrischer Felder:
Beitrag "Re: Matlab-Modelle in VHDL implementieren"

Ich habe bereits MATLAB Modelle für die Wellen und Feldausbreitung. Das 
liesse sich auch für Spulen verwenden, meine ich. Was brauchst Du?

von HTI (Gast)


Lesenswert?

Bildverwursteler schrieb:
> Ich habe bereits MATLAB Modelle für die Wellen und Feldausbreitung.
Das bezieht sich sicher auf die Ausbreitung in Luft?
Ich brauche die Verhältnisse im Material.

> liesse sich auch für Spulen verwenden, meine ich. Was brauchst Du?
So eine Art Spice Modell in VHDL würde ich mal sagen.

Eine andere Möglichkeit wäre, mit SystemC zu arbeiten und C-Modelle zu 
verwenden, habe damit aber keine Erfahrungen.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

HTI schrieb:
> Ich brauche die Verhältnisse im Material.
Welche Materialien sind das? Eisenkerne nehme ich an?

>> liesse sich auch für Spulen verwenden, meine ich. Was brauchst Du?
> So eine Art Spice Modell in VHDL würde ich mal sagen.
SPICE Modelle lassen sich in VHDL-Simulatoren direkt nicht verwenden, 
weil sie - speziell bei Bauelementen mit Energiespeichern - auf 
differentiellen numerischen Modellen beruhen, die mit interativen 
Methoden gelöst werden, was die VHDL-Simulatoren nicht können. Auch 
VHDL-AMS arbeit nicht so. Die Modelle müssen zunächst umgeformt und 
zeitdiskret gemacht werden. Ich habe sowas mal für einige analoge 
Modelle wie Schwingungssysteme erfolreich gemacht. Die Simulation läuft 
dann im fs-Bereich und bildet das Verhalten dann in der groben 
ns-Betrachtung gut ab.

Für magnetische Bauelemente ist das schwieriger. Wäre einen eigenen 
Artikel wert. Ich habe diesbezüglich mal etwas geforscht und mir ein 
VHDL-Modell für weichmagnetische Werkstoffe und die typischen 
Hystereskurven erarbeitet.

> Eine andere Möglichkeit wäre, mit SystemC zu arbeiten und C-Modelle zu
> verwenden, habe damit aber keine Erfahrungen.
Wäre mal interessant.

von K. L. (Gast)


Lesenswert?

Bildverwursteler schrieb:
> Ich habe bereits MATLAB Modelle für die Wellen und Feldausbreitung. Das
> liesse sich auch für Spulen verwenden, meine ich. Was brauchst Du?
Das interessiert mich! Ich wäre da an einer Zusammenarbeit interessiert. 
Ich bin gerade mit der Berechnung von SDR-Modulationen zu Gange und wir 
überlegen, ein passendes Testquipment zu bauen. So einen art von 
Stimuligenerator für Radarwellen.

Juergen Schuhmacher schrieb:
> Für magnetische Bauelemente ist das schwieriger. Wäre einen eigenen
> Artikel wert. Ich habe diesbezüglich mal etwas geforscht und mir ein
> VHDL-Modell für weichmagnetische Werkstoffe und die typischen
> Hystereskurven erarbeitet.
Wie bildest Du eine solche DGL in VHDL ab? Könnte man dazu mal was 
sehen?

von Software Manager (Gast)


Lesenswert?

Klaus L. schrieb:
> So einen art von
> Stimuligenerator für Radarwellen.
Könnte man komplett in Software machen und in eine DataAcquisitionSystem 
reinspielen. Im Prinzip nur ein Mehrkanal-DAC mit Wertespeicher, 
beschrieben aus MATLAB. Viele Systeme haben C-kompatible Interfaces zu 
MATLAB, bzw passende GUIs und Libs. Wir haben vor längerer Zeit sowas 
OEM produziert, für LIDAR.

von HTI (Gast)


Lesenswert?

Juergen S. schrieb:
> HTI schrieb:
> VHDL-Modell für weichmagnetische Werkstoffe
Könntest du mir einen Tipp geben, wie das aussehen kann?
Ich brauche etwas Einfaches, das keine grosse Rechenzeit beansprucht...

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

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 :-)

von K. L. (Gast)


Lesenswert?

Software Manager schrieb:
> Könnte man komplett in Software machen und in eine DataAcquisitionSystem
> reinspielen. Im Prinzip nur ein Mehrkanal-DAC mit Wertespeicher,
> beschrieben aus MATLAB.

Aber nicht in Echtzeit. Bei Weitem nicht.

von Jonas B. (jibi)


Lesenswert?

Schau doch mal hier:
Kein Plan wie aufwendig die Simulation da gemacht ist:

http://www.falstad.com/circuit/src.zip

Gruß Jonas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.