Hallo, Ich versuche im Rahmen meiner BA aus den Daten einer FEM Simulation ein magnetisches Ersatznetzwerk aufzubauen. Mein Hauptproblem sind jedoch die Nichtlinearität der Widerstände in LT Spice einzubauen. Ich habe eine Magnetisierungskennlnie über Matlab mit einem Polynom 10. Ordnung intperpoliert. Einmal vorweg: Jeder Zweig besteht aus 2 Widerständen und einer Spannungsquelle, die die Durchflutung darstellen soll. Ich hab es auf drei verschiedene Arten probiert. 1) Mit Bi veränderlichen Stromquellen. Also Vorgabe des Flusses in Abhängigkeit des Über dem Bauteil abfallenden magnetischen Spannungsabfalls. Mir war aber eigentlich gleich klar das 2 Stromquellen in Reihe Unfug sind. Das kann LT-Spice zwar rechnen, aber fast alle Knoten sind "am floaten". 2) Mit Bv veränderlichen Spannungsquellen. Da ich dann nur Spannungsquellen im Netzwerk habe, kommt dann die Fehlermeldung, dass die Matrix überbestimmt ist. Ich nehme an es fehlt ein Widerstand der den Strom begrenzen könnte? 3)R = V(I(R))/I(R). Widerstand über "ohmsches" Gesetz, wobei der Spannungsabfall interpoliert wird. Hier wird jetzt jedenfalls das Iteration Limit erreicht. In dem einfachen Eisenkreismodell sind ca. 130 Widerstände. Bei komplexen Maschinen können das bis zu 1200 Widerstände werden. Ich habe die Netlist nach Methode 3 mal angehangen. Meine Frage: Weiß Jemand wie man gut nicht lineare Widerstände in LT Spice einbauen kann ? Oder ob ich irgendwie das Iteration Limit erhöhen kann ?
:
Bearbeitet durch User
Hallo R1 70 99 R = (1764.6553149933*pwr(I(R1),10) .... So eine Konstruktion ist ganz schlecht für die Konvergenz. Ersetze überall I(Rx) durch den Strom einer Spannungsquelle mit 0V die in Reihe mit Rx liegt. Achte auf die Polarität. So wie unten müsste es passen. VR1 70 701 0 R1 701 99 R = (1764.6553149933*pwr(I(V1),10) .... Gruß Helmut
Das hört sich doch gut an. Das werde ich morgen mal ausprobieren. Schonmal Danke für deine Mühe.
Helmut S. schrieb: > Hallo > > R1 70 99 R = (1764.6553149933*pwr(I(R1),10) .... > > So eine Konstruktion ist ganz schlecht für die Konvergenz. > > Ersetze überall I(Rx) durch den Strom einer Spannungsquelle mit 0V die > in Reihe mit Rx liegt. Achte auf die Polarität. So wie unten müsste es > passen. > > VR1 70 701 0 > R1 701 99 R = (1764.6553149933*pwr(I(V1),10) .... Wieso genau ist das schlecht für die Konvergenz? Es fließt doch in beiden Fällen der exakt gleiche Strom?
>> R1 70 99 R = (1764.6553149933*pwr(I(R1),10) .... > > So eine Konstruktion ist ganz schlecht für die Konvergenz. > > Ersetze überall I(Rx) durch den Strom einer Spannungsquelle mit 0V die > in Reihe mit Rx liegt. Achte auf die Polarität. So wie unten müsste es > passen. > > VR1 70 701 0 > R1 701 99 R = (1764.6553149933*pwr(I(V1),10) .... I(R1) und R1 sind in einer B-Quelle. Das ist aus Erfahrung schlecht für den Simulator. Ich hatte schon mehrfach Erfolg durch einfügen einer V-Quelle mit 0V. Übrigens ist das Standard in SPICE Ströme mit 0V-Quellen oder zumindest mit V-Quellen zu messen. Hab die Namensgebung nochmals verbessert. Statt: R1 70 99 R = (1764.6553149933*pwr(I(R1),10) .... So: VR1 70 R1 0 R1 R1 99 R = (1764.6553149933*pwr(I(VR1),10) ....
Ich habe die Netlist jetzt mit der 0V Spannungsquelle im Zweig umgebaut. Mit dem normalen Solver rechnet sich der Rechner tot. Nach 20min habe ich die Simulation abgebrochen. Mit dem alternativen Solver brechnet er den Arbeitspunkt jetzt in unter 1s. Kann man dem alternativen Solver denn auch einigermaßen vertrauen ? Was macht er anders ? Ich kann leider noch nicht ganz vergleichen, da mir noch ein Eingabeparameter fehlt. Ich werde das hinsichtlich der Abweichung dann genau überprüfen.
Beim Alternate Solver ist der Dynamikbereich für Variablen größer. Er ist aber auch so 30% langsamer (Wenn denn der Standardsolver die Lösung auch fände). Vermutlich gibt es noch ein paar subtilere Unterschiede. Das dürfte bei dir auch der Fall sein. Deine Netzliste werde ich aber nicht per Hand ändern ;-))
Stephan V. schrieb: > Ich habe eine Magnetisierungskennlnie über Matlab mit > einem Polynom 10. Ordnung intperpoliert. Hast Du schon mal überprüft, ob die Terme mit x^9, x^10 numerisch Sinn machen? Der Dynamikbereich von 64 bit floats (default in Matlab, Spice weiss ich nicht) ist schon ordentlich, ob aber der Term 1248 * i^10 ... + 0.18 nicht jenseits davon ist...? Bei i=10 wäre das 124800000000 + ... + 0.18 Schon überlegt, die offensichtlich etwas krumme Kurve anders zu approximieren? Spice dürfte da halt nicht viel bieten, PWL (piecewise linear) scheint das höchste der Gefühle zu sein. Sonst wären Splines (stückweise kubisch) sehr gute Kandidaten (pchip oder mkpp in Matlab). Ob Spice mit Deinem Polynomgrab oder einem PWL-Grab besser zu Rande kommen würde, weiss ich nicht. Nur so als Idee.
nochwas, Du hast die Interpolation und Netzlistengenerierung sowieso automatisiert, vermute ich - stell doch mal von Polynomen 10. Grades auf 2. oder 3. ein - nur um zu sehen, ob das irgend einen Einfluss hat.
> Ich habe die Netlist jetzt mit der 0V Spannungsquelle im Zweig umgebaut.
Mit dem normalen Solver rechnet sich der Rechner tot. Nach 20min habe
ich die Simulation abgebrochen. Mit dem alternativen Solver brechnet er
den Arbeitspunkt jetzt in unter 1s.
Ist doch super dass es geklappt hat. Außerdem mal wieder ein Beweis
mehr, dass es sich lohnt V-Quellen als "Strommesser" einzubauen.
Martin schrieb: > Stephan V. schrieb: >> Ich habe eine Magnetisierungskennlnie über Matlab mit >> einem Polynom 10. Ordnung intperpoliert. > > Hast Du schon mal überprüft, ob die Terme mit x^9, x^10 numerisch Sinn > machen? Der Dynamikbereich von 64 bit floats (default in Matlab, Spice > weiss ich nicht) ist schon ordentlich, ob aber der Term > 1248 * i^10 ... + 0.18 nicht jenseits davon ist...? Bei i=10 wäre das > 124800000000 + ... + 0.18 > Schon überlegt, die offensichtlich etwas krumme Kurve anders zu > approximieren? Spice dürfte da halt nicht viel bieten, PWL (piecewise > linear) scheint das höchste der Gefühle zu sein. Sonst wären Splines > (stückweise kubisch) sehr gute Kandidaten (pchip oder mkpp in Matlab). > Ob Spice mit Deinem Polynomgrab oder einem PWL-Grab besser zu Rande > kommen würde, weiss ich nicht. > Nur so als Idee. Numerisch geprüft habe ich das nicht. Ich wüsste auch nicht genau wie ich das machen könnte. ^^ polyfit von Matlab gibt ja auch meistens eine Warnung aus, wenn das eher schlecht funktioniert. Aber ich habe keine Warnung erhalten. Ich habe mir auch das Polynom und die Messwerte in eine Graphen ploten lassen, um mich zu vergewissern das es einigermaßen passt. Unter 10. Ordnung war die Abweichung zu stark. Zu dem Punkt nach einer anderen Methode zu suchen. Ich habe heute etwas von einer Interpolation (Name vergessen, ich habe gerade meine Aufzeichnungen nicht da) gehört, die die Magnetisierungskennlinien wohl ganz gut mit e-Termen abproximieren können soll. Ich werde mir das mal genauer anschauen, wenn das Tool soweit ist, dass ich mit den FEM-Daten vergleichen kann. Danke für euren Input!
Was heißt genau bei magnetischen Werkstoffen??? 10% vielleicht und das auch nur ohne Vorgeschichte und ohne Temperatur. Ich benutze tanh und pwr - das reicht völlig für Sättigungsverhalten. Vielleicht sind deine Maßstäbe einfach zu anspruchsvoll? Mit Polynomen gibts immer nur Krach in LTspice. Vielleicht ist PSPICE da einfach stabiler.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.