Software: SimX - Nadelantrieb - Struktur-Optimierung - Struktur-Modifikation: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
 
(33 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung|&uarr;]] <div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Schwachstellen-Analyse|&larr;]] [[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Nennwert-Optimierung|&rarr;]] </div>
[[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung|]] <div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Schwachstellen-Analyse|]] [[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Nennwert-Optimierung|]] </div>
<div align="center">''' Struktur-Modifikation (Modell)  '''</div>
<div align="center">''' Struktur-Modifikation (Modell)  '''</div>
Ausgehend vom Nennwert-optimierten Modell, welches wir in der ''Etappe4'' probabilistisch untersucht haben, erstellen wir als Kopie ein Modell '''Etappe5_xx.isx''' (mit '''xx'''=Teilnehmer 00..99). An diesem Modell nehmen wir kleine Struktur-Änderungen vor, um die Schwachstellen unserer bisherigen Lösung zu beheben.


'''''Hinweis zur SimulationX-Studentenversion:'''''
== Vorbereitung des SimulationX-Modells ==
* Die Anzahl zulässiger Zustandsgrößen beträgt im Simulationsmodell nur 17. Um die zusätzlichen Elemente zur Strom-/Spannungsbegrenzung ergänzen zu können, muss man anderweitig im Modell Zustandsgrößen einsparen:
 
*# Die Diode ist als "'''Ideale Diode'''" zu konfigurieren (falls sie wegen numerischer Probleme noch nicht durch einen "Draht" ersetzt wurde).
Das für die aktuelle Etappe benötigte Simulationsmodell '''Etappe5_xx.isx''' (mit '''xx'''=Teilnehmer 00..99) erzeugen wir als Kopie aus der Modell-Datei der vorherigen Etappe:
*# Der Wirbelstrom für den kurzen Eisenabschnitt im Spuleninnern kann vernachlässigt werden ('''Wirbel_Innen löschen!''').<br>Wenn man den kompletten ohmschen Eisenwiderstand dem äußeren Eisenabschnitt zuweist, ergeben sich praktisch deckungsgleiche Signalverläufe:<center>''Wirbel_Aussen.Reddy'' = '''Geometrie.Re_Eisen'''</center>
* Dieses SimulationX-Modell muss mit den Parametern des in der Etappe3 erreichten Nennwert-Optimums konfiguriert sein.
* Es enthält die erforderlichen Ergänzungen für die Durchführung der probabilistischen Simulation.
 
'''Wichtig:'''
* Die Nennwert-Optimierung in Etappe3 erfolgte mit einer angenommenen Spulen-Temperatur '''T_Spule=90°C'''.
* Im Rahmen der Toleranz-Analyse wurde der obere Grenzwert für den zulässigen Temperaturbereich auf '''70°C''' präzisiert.
* Um dies zu berücksichtigen, muss für die erneute Nennwert-Optimierung  '''CAD.T_Spule=70°C''' gesetzt werden!
 
Wir haben uns noch nicht auf eine konkrete neue Schutzbeschaltung als Ersatz für den Schutzwiderstand festgelegt. Jedoch ist die Dimensionierung einer elektrischen Schutzbeschaltung für die Magnet-Spule immer abhängig von den zulässigen elektrischen Grenzwerten. Deshalb erweitern wir die Liste der CAD-Parameter um die elektrische Grenzwerte der Spule im "CAD_Data-Compound":
i_Grenz_Spule  = 1.5 A        [Max. Spulenstrom    ]
v_Grenz_Spule  = 200 V        [Max. Spulenspannung ]
* Diese CAD-Parameter ermöglichen eine nachträgliche Anpassung bzw. Präzisierung der elektrischen Grenzwerte an zentraler Stelle.
* Die Einspeisung dieser Grenzwerte in die zugehörigen Schaltelemente gewährleistet eine automatische Anpassung an die aktuellen Vorgaben.
* '''''Hinweis'':''' Der Wert '''i_Grenz=1.5&nbsp;A''' entspricht der aktuellen Forderung aus Sicht des verfügbaren Netzteils. Dieser Wert muss im Verlaufe der Struktur-Optimierung an die funktionellen "Bedürfnisse" des E-Magneten angepasst werden!
 
 
== Modifikation der Ansteuerschaltung im Controller-Compound ==
 
Die elektrischen Spulen-Grenzwerte werden für die Dimensionierung der Schaltungselemente benötigt. Dafür sind im Controller-Compound die beiden zusätzlichen Parameter-Komponenten zu ergänzen:
i_Grenz  = CAD.i_Grenz_Spule  [Max. Spulenstrom    ]
v_Grenz  = CAD.v_Grenz_Spule  [Max. Spulenspannung ]
'''''Beachte'':'''
* Innerhalb des Type-Designers sollte nicht Bezug auf übergeordnete Bezeichner des konkreten Modells genommen werden!
* Deshalb sollten bei der Definition der neuen Parameter im Controller-Compound unsere vorläufigen Werte als Standardwerte benutzt werden.
* Die Zuweisung der CAD-Werte erfolgt dann erst über die Parameter des aktualisierten Elektronik-Teilmodells.
 
Die Änderung der Schutzbeschaltung für die Magnet-Spule muss in der Srukturansicht des Controller-Compound erfolgen. Bisher wurde darin nur eine Spannungsreduktion mittels des zu einer Freilauf-Diode in Reihe geschalteten ohmschen Widerstands vorgenommen:
<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_alte_Schutzbeschaltung.gif|.]]</div>
 
=== Spannungsbegrenzung mit Z-Diode ===
 
Der bisherige konstante ohmsche Widerstand kann einfach durch eine sogenannte [https://de.wikipedia.org/wiki/Z-Diode '''Z-Diode'''] ersetzt werden. Damit wird der Spannungsabfall über die Spule automatisch bei jedem Abschaltstrom auf die vorgegebene Grenzspannung begrenzt:
* In Durchlassrichtung verhalten sich Z-Dioden wie normale Dioden. In Sperrrichtung sind Z-Dioden bei geringen Spannungen sperrend, genauso wie normale Dioden. Ab einer gewissen Sperrspannung, der so genannten Durchbruchspannung steigt der Strom innerhalb weniger hundert Millivolt um viele Größenordnungen an.
* Z-Dioden sind zwar für Durchbruchspannungen für bis zu '''300&nbsp;V''' verfügbar, können aber dabei aber nicht den im Beispiel erforderlichen Strom von mehreren Ampere aufnehmen!
* Es gibt aber die Möglichkeit, durch eine einfache Zusatzschaltung funktionell eine Z-Diode beliebig hoher Leistung zu erzeugen (Siehe: [https://www.elektronik-kompendium.de/public/schaerer/powzen.htm '''Die Power-Zenerdiode aus Z-Diode und Transistor''']).
 
Vereinfacht verwenden wir nur das Modell-Element der '''Z-Diode''' (aus '''''Bibliotheken > Elektronik > Analog > Halbleiter''''') mit seinen Standard-Parametern:
<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Spannungsbegrenzung_mit_Z-Diode.gif|.]]</div>
* Als Durchbruchspannung '''Vbv''' der Z-Diode weisen wir den '''v_Grenz'''-Wert des Controller-Compound-Parameter zu.
* '''R_Schutz''' als Parameter wird im Controller-Compound den nicht mehr benötigt ->  mit dem SimulationX-TypeDesigner in den Compound-Komponenten löschen.
* Mit '''v_Grenz=200&nbsp;V''' dürfte sich am Verhalten des Magnet-Antriebs nichts merklich ändern, da der Kraftabbau hierbei nur sehr wenig beeinflusst wird.
* Die gemessene Maximalspannung '''v_Max = -201,4 V''' resultiert:
*# aus die Durchlass-Spannung von '''ca. 0,8&nbsp;V''' der in Reihe geschalteten Freilaufdiode und
*# aus der um ca. '''0,6&nbsp;V''' über der Durchbruchspannung sich einstellenden Z-Diodenspannung.
* Diese systematische Überschreitung der Grenzspannung von ca. '''1,4&nbsp;V''' kann man akzeptieren (insbesondere da bei den Kennwerten der Spule Sicherheitsfaktoren berücksichtigt sind!).
* Als Wert für die Spannungsbegrenzung ist der entsprechende CAD-Parameter zuzuweisen:
 
'''Elektronik.v_Grenz  = CAD.v_Grenz_Spule  [Max. Spulenspannung ]'''


=== Strombegrenzung ===
=== Strombegrenzung ===


Wir greifen die naheliegende Idee auf und versehen das Netzteil mit einem Strombegrenzungselement '''''iGrenz''''':<div align="center"> [[Bild:Software_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_elektroschaltung.gif| ]] </div>
Bisher sollte durch die Dimensionierung des Magnet-Antriebs gewährleistet werden, dass der resultierende maximale Spulenstrom die verwendete Stromversorgung nicht überlastet. Dieses Konzept ist gescheitert:
* Unter ungünstigen Umständen gelangen jedoch Teile des magnetischen Eisenkreises während des Prägevorgangs in den Bereich der Sättigung. Dies führt zu hohen Stromspitzen im Bereich von bis zu ca. '''5&nbsp;A'''.
* Im schlimmsten Fall des "Nichtprägens" des Papiers wird der Maximalstrom nur durch den ohmschen Widerstand des Spulendrahtes begrenzt und kommt somit fast auf '''20&nbsp;A'''. 
 
Eine reversible Strombegrenzung ist für das Netzteil unbedingt erforderlich, wenn man das Netzteil nicht überdimensionieren möchte:
* Durch diese Strombegrenzung sollte jedoch der benötigte Maximalstrom für einen "bestmöglichen" Magnetantrieb nicht unnötig eingeschränkt werden.
* Die Strombegrenzung sollte nur für die Stromspitzen nach Erreichen der Magnetkreis-Sättigung wirken, um Auswirkungen auf die erreichbare Prägegeschwindigkeit zu vermeiden.
 
Wir greifen die naheliegende Idee auf und versehen das Netzteil mit einem zusätzlichen Strombegrenzungselement '''''iGrenz''''':<div align="center"> [[Bild:Software_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Strombegrenzer.gif|.]] </div>
* Leider enthält die Modell-Bibliothek keinen Strombegrenzer als Elementtyp, so dass wir selbst ein solches Element entwickeln müssen.
* Leider enthält die Modell-Bibliothek keinen Strombegrenzer als Elementtyp, so dass wir selbst ein solches Element entwickeln müssen.
* Wir benutzten dafür direkt einen normalen elektrischen Widerstand, dessen Widerstandswert '''R''' sich in Abhängigkeit vom durchfließenden Strom ändern soll:<div align="center"> '''R=| i / i<sub>Grenz</sub> |<sup>512</sup>''' </div>
* Wir benutzten dafür direkt einen normalen elektrischen Widerstand, dessen Widerstandswert '''R''' sich in Abhängigkeit vom durchfließenden Strom ändern soll:<div align="center"> '''R=| i / i<sub>Grenz</sub> |<sup>512</sup>''' </div>
* Der Wert für den Maximalstrom '''iGrenz''' wird im '''Geometrie'''-Element als zusätzlicher Parameter definiert.
* Der Wert für den Maximalstrom '''i_Grenz''' wurde im Controller-Compound als zusätzlicher Komponenten-Parameter definiert.
:# Für i<i<sub>Grenz</sub> geht der Widerstandswert gegen Null.
:# Für '''i&nbsp;<&nbsp;i<sub>Grenz</sub>''' geht der Widerstandswert gegen Null.
:# Für i>i<sub>Grenz</sub> nimmt der Widerstandswert große Werte an, um den Strom zu begrenzen.
:# Für '''i&nbsp;>i&nbsp;<sub>Grenz</sub>''' nimmt der Widerstandswert große Werte an, um den Strom zu begrenzen.
* Der '''Exponent=512''' hat sich als numerisch günstiger Kompromiss zwischen numerischer Stabilität und Begrenzungsfunktion erwiesen.
* Der '''Exponent=512''' hat sich als numerisch günstiger Kompromiss zwischen numerischer Stabilität und Begrenzungsfunktion erwiesen.
* Insbesondere der 2. Fall führt infolge der Exponentialfunktion im Zusammenspiel mit den Eigenarten der numerischen Simulation schnell zu numerischen Problemen. Deshalb erfolgt für den Widerstandsparameter '''iGrenz.R''' eine Begrenzung der Exponentialfunktion unter Berücksichtigung der Ereignisbehandlung:
* Insbesondere der 2. Fall führt infolge der Exponentialfunktion im Zusammenspiel mit den Eigenarten der numerischen Simulation schnell zu numerischen Problemen. Deshalb erfolgt für den Widerstandsparameter '''iGrenz.R''' eine Begrenzung der Exponentialfunktion unter Berücksichtigung der Ereignisbehandlung (noEvent-Funktion):
  if noEvent(abs(self.i/Geometrie.iGrenz)<1.1)then pow(abs(self.i/Geometrie.iGrenz), 512)else pow(1.1,512)
  if noEvent(abs(self.i/i_Grenz)<1.1)then pow(abs(self.i/i_Grenz), 512)else pow(1.1,512)
=== Spannungsbegrenzung ===
 
Würde man den Schutz-Widerstand wie bisher in die Nennwert-Optimierung einbeziehen, so wird das Abschalten der Spule wahrscheinlich nicht beim Maximalstrom erfolgen:
Die Simulation mit einem Grenzwert von '''1.5&nbsp;A''' dürfte das Verhalten des Antriebs nicht ändern, da der Maximalwert der zuvor optimierten Lösung unter 1.5&nbsp;A bleibt:
* Damit kann weiterhin eine zu hohe Abschaltspannung auftreten (z.B. bei Behinderung des Prägens).
* Zur Verifizierung der Strombegrenzung muss man temporär einen geringeren Wert wählen (z.B. '''Elektronik.iGrenz=1.0&nbsp;A''') -> infolge des begrenzten Stroms findet dann auch kein Prägen des Papiers statt:
* Diese Abschaltspannung ist dann ca. doppelt so groß wie zulässig und würde wahrscheinlich zur Zerstörung der Spule führen.
<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Test_mit_iGrenz_1A.gif|.]]</div>
Falls man ein zusätzliches Begrenzer-Element für die Spannung vermeiden will, so muss man den Abschaltwiderstand so dimensionieren, dass bei max. zulässigem Strom höchstens die max. zulässige Spannung anliegt:<div align="center"> '''Widerstand.R = v<sub>Grenz</sub>/i<sub>Grenz</sub> ''' </div>
* Als Wert für die Strombegrenzung ist der entsprechende CAD-Parameter zuzuweisen:
* Der Wert für die Maximalspannung '''vGrenz''' wird ebenfalls im '''Geometrie'''-Element als zusätzlicher Parameter definiert.
'''Elektronik.i_Grenz  = CAD.i_Grenz_Spule  [Max. Spulenstrom    ]'''
* Der Wert des Schutz-Widerstandes ist nun durch die laut Anforderungsliste gegebenen elektrischen Grenzwerte vollständig bestimmbar. Deshalb muss er nicht mehr als Entwurfsparameter in den folgenden Optimierungsschritten berücksichtigt werden. Liegt der berechnete Wert außerhalb z.B. der [http://de.wikipedia.org/wiki/Widerstandsreihe '''E24-Widerstandsreihe'''], so könnte man ihn technisch z.B. durch Parallelschaltung zweier E24-Widerstände kostengünstig realisieren!
 
=== Realisierung der erforderlichen numerischen Robustheit ===
 
Bisher gab es bei der Simulation sporadisch Warnungen in Hinblick auf die Ereignisbehandlung beim Abschaltvorgang. Diese Warnungen treten nur beim Vorhandensein der Freilauf-Diode auf. Als Ursache wird das Zusammenspiel der starken Nichtlinearitäten von Dioden-Kennlinie und Magnet-Hysterese vermutet:
* Da trotz dieser Warnungen jede Simulation erfolgreich zu Ende geführt wird, mussten wir uns um diesen "Schönheitsfehler" bisher nicht weiter kümmern.
* Nach Ersatz des Schutzwiderstands durch die Z-Diode kommt es immer noch zu diesen Warnungen:
** Leider merkt man erst später bei den vielen Simulationsläufen der Optimierung, dass nun zusätzlich vereinzelt an dieser Stelle Fehler auftreten. Diese führen zur abnormalen Beendigung des betroffenen Simulationslaufes ohne verwertbare Ergebnisse.
** Ein Nennwert-Optimierung würde solche vereinzelte fehlerhaften Läufe ignorieren und trotzdem ein Optimum finden.
** Probleme gibt es dann jedoch spätestens bei der probabilistischen Simulation mit einer Moment-Methode. Dort muss jede Stützstelle erfolgreich berechnet werden!
 
Im Rahmen der Übung soll bereits an dieser Stelle dieses Problem der mangelnden numerischen Robustheit möglichst endgültig gelöst werden:
* Die Freilaufdiode ist funktionell in Reihe zur Z-Diode erforderlich und kann nicht einfach durch einen "Draht" ersetzt werden.
* Durch "Zufall" wurde bei der Entwicklung dieser Übungsanleitung bemerkt, dass es keine Warnungen und Fehler mehr gibt, wenn man die Diode durch eine Z-Diode mit hinreichend großer Durchbruchspannung ersetzt.
* Nach Löschen des Dioden-Elements platziert man an diese Stelle mit der richtigen Orientierung das Element einer Z-Diode. Diese konfiguriert man exakt wie die eigentliche Z-Diode mit der Durchbruchspannung '''Vbv=v_Grenz'''<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Test_mit_iGrenz_1A.gif|.]]</div>
* Auch Schaltungstechnisch ist diese Lösung nicht abwegig, da damit die Spulen-Spannung unabhängig von ihrem Vorzeichen begrenzt wird. Natürlich würde man in der Praxis an dieser Stelle eher ökonomisch handeln!
 
'''''Hinweis'':''' Der beschriebene Workaround zur Numerischen Robustheit bezieht sich auf die SimulationX-Version 4.5.2.
 
== Flussdichten-Sensor im Elektromagnet-Compound ==


=== Numerische Stabilität ===
Während des Optimierungsprozesses muss vermieden werden, dass Antriebe entstehen, welche durch Ausnutzung der magnetischen Sättigung des Eisens zu kürzeren Zykluszeiten gelangen:
* Dazu ist ein "virtuellen" Sensor im Simulationsmodell erforderlich, welcher für jeden Prägezyklus die maximal auftretende Flussdicht '''B_max''' im Eisenmaterial erfasst.
* Da im inneren Eisenabschnitt die höchste Flussdichte auftritt, genügt die Verarbeitung von '''Eisen_Innen.B'''.
* Leider existiert für die magnetische Domäne kein Sensor-Element in der Modell-Bibliothek von ''SimulationX''.
* Wir verwenden stattdessen ein einfaches '''Signalglied f(x)''' und belegen dessen Parameter '''F''' mit '''Eisen_Innen.B''':<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_B_Max_Sensor.gif|.]]</div>
* Den Signalausgang des hier '''B_innen''' genannten Signalgliedes '''f(x)''' verbinden wir mit dem Signaleingang des speziellen Signalgliedes zur Signalverarbeitung '''B_Max'''. Dieses konfigurieren wir für die Maximalwert-Erfassung.


* Bei Berücksichtigung der Hinweise zur Simulationssteuerung aus den vorherigen Etappen erfolgt die Simulation stabil.
Dies würde im Prinzip schon genügen, um während der Optimierung auf den '''B_Max'''-Wert zugreifen zu können:
* Falls Probleme beim Abschaltvorgang auftreten, muss man jedoch die Schutzdiode aus dem Modell entfernen. Dies ist der Fall, wenn bei der Optimierung gehäuft die Meldung auftritt: ''"Kann nach einer Unstetigkeit keinen konsistenten Zustand herstellen."'' <div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Schwachstellen-Analyse|&larr;]] [[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Nennwert-Optimierung|&rarr;]] </div>
* Um den Zugriff zu vereinfachen, erweitern wir mittels des ''SimulationX''-TypeDesigners den Elektromagnet-Compound um eine Ergebnis-Variable '''B_max''' im Komponenten-Abschnitt.
* '''''Beachte'':''' Da es keine Objekte gleichen Namens im aktuellen Namensraum geben darf, muss hier bewusst eine andere Schreibweise im Vergleich zum '''B_Max'''-Element genutzt werden!
* Die Zuweisung des Wertes für diese Ergebnis-Variable erfolgt in einem neuen Gleichungsabschnitt im Verhalten:
<div align="center">[[Bild:Software_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_B_Max_Ergebnis.gif|.]]</div>
* Die Ergänzung des Flussdichte-Sensors war erfolgreich, wenn sich das Verhalten bei der Simulation dadurch nicht verändert hat und der korrekte Maximalwert für '''Magnet.B_max''' angezeigt wird.
<div align="center"> [[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Schwachstellen-Analyse|]] [[Software:_SimX_-_Nadelantrieb_-_Struktur-Optimierung_-_Nennwert-Optimierung|]] </div>

Aktuelle Version vom 1. Juni 2024, 17:02 Uhr

Struktur-Modifikation (Modell)

Vorbereitung des SimulationX-Modells

Das für die aktuelle Etappe benötigte Simulationsmodell Etappe5_xx.isx (mit xx=Teilnehmer 00..99) erzeugen wir als Kopie aus der Modell-Datei der vorherigen Etappe:

  • Dieses SimulationX-Modell muss mit den Parametern des in der Etappe3 erreichten Nennwert-Optimums konfiguriert sein.
  • Es enthält die erforderlichen Ergänzungen für die Durchführung der probabilistischen Simulation.

Wichtig:

  • Die Nennwert-Optimierung in Etappe3 erfolgte mit einer angenommenen Spulen-Temperatur T_Spule=90°C.
  • Im Rahmen der Toleranz-Analyse wurde der obere Grenzwert für den zulässigen Temperaturbereich auf 70°C präzisiert.
  • Um dies zu berücksichtigen, muss für die erneute Nennwert-Optimierung CAD.T_Spule=70°C gesetzt werden!

Wir haben uns noch nicht auf eine konkrete neue Schutzbeschaltung als Ersatz für den Schutzwiderstand festgelegt. Jedoch ist die Dimensionierung einer elektrischen Schutzbeschaltung für die Magnet-Spule immer abhängig von den zulässigen elektrischen Grenzwerten. Deshalb erweitern wir die Liste der CAD-Parameter um die elektrische Grenzwerte der Spule im "CAD_Data-Compound":

i_Grenz_Spule   = 1.5 A        [Max. Spulenstrom    ]
v_Grenz_Spule   = 200 V        [Max. Spulenspannung ]
  • Diese CAD-Parameter ermöglichen eine nachträgliche Anpassung bzw. Präzisierung der elektrischen Grenzwerte an zentraler Stelle.
  • Die Einspeisung dieser Grenzwerte in die zugehörigen Schaltelemente gewährleistet eine automatische Anpassung an die aktuellen Vorgaben.
  • Hinweis: Der Wert i_Grenz=1.5 A entspricht der aktuellen Forderung aus Sicht des verfügbaren Netzteils. Dieser Wert muss im Verlaufe der Struktur-Optimierung an die funktionellen "Bedürfnisse" des E-Magneten angepasst werden!


Modifikation der Ansteuerschaltung im Controller-Compound

Die elektrischen Spulen-Grenzwerte werden für die Dimensionierung der Schaltungselemente benötigt. Dafür sind im Controller-Compound die beiden zusätzlichen Parameter-Komponenten zu ergänzen:

i_Grenz  = CAD.i_Grenz_Spule   [Max. Spulenstrom    ]
v_Grenz  = CAD.v_Grenz_Spule   [Max. Spulenspannung ]

Beachte:

  • Innerhalb des Type-Designers sollte nicht Bezug auf übergeordnete Bezeichner des konkreten Modells genommen werden!
  • Deshalb sollten bei der Definition der neuen Parameter im Controller-Compound unsere vorläufigen Werte als Standardwerte benutzt werden.
  • Die Zuweisung der CAD-Werte erfolgt dann erst über die Parameter des aktualisierten Elektronik-Teilmodells.

Die Änderung der Schutzbeschaltung für die Magnet-Spule muss in der Srukturansicht des Controller-Compound erfolgen. Bisher wurde darin nur eine Spannungsreduktion mittels des zu einer Freilauf-Diode in Reihe geschalteten ohmschen Widerstands vorgenommen:

.

Spannungsbegrenzung mit Z-Diode

Der bisherige konstante ohmsche Widerstand kann einfach durch eine sogenannte Z-Diode ersetzt werden. Damit wird der Spannungsabfall über die Spule automatisch bei jedem Abschaltstrom auf die vorgegebene Grenzspannung begrenzt:

  • In Durchlassrichtung verhalten sich Z-Dioden wie normale Dioden. In Sperrrichtung sind Z-Dioden bei geringen Spannungen sperrend, genauso wie normale Dioden. Ab einer gewissen Sperrspannung, der so genannten Durchbruchspannung steigt der Strom innerhalb weniger hundert Millivolt um viele Größenordnungen an.
  • Z-Dioden sind zwar für Durchbruchspannungen für bis zu 300 V verfügbar, können aber dabei aber nicht den im Beispiel erforderlichen Strom von mehreren Ampere aufnehmen!
  • Es gibt aber die Möglichkeit, durch eine einfache Zusatzschaltung funktionell eine Z-Diode beliebig hoher Leistung zu erzeugen (Siehe: Die Power-Zenerdiode aus Z-Diode und Transistor).

Vereinfacht verwenden wir nur das Modell-Element der Z-Diode (aus Bibliotheken > Elektronik > Analog > Halbleiter) mit seinen Standard-Parametern:

.
  • Als Durchbruchspannung Vbv der Z-Diode weisen wir den v_Grenz-Wert des Controller-Compound-Parameter zu.
  • R_Schutz als Parameter wird im Controller-Compound den nicht mehr benötigt -> mit dem SimulationX-TypeDesigner in den Compound-Komponenten löschen.
  • Mit v_Grenz=200 V dürfte sich am Verhalten des Magnet-Antriebs nichts merklich ändern, da der Kraftabbau hierbei nur sehr wenig beeinflusst wird.
  • Die gemessene Maximalspannung v_Max = -201,4 V resultiert:
    1. aus die Durchlass-Spannung von ca. 0,8 V der in Reihe geschalteten Freilaufdiode und
    2. aus der um ca. 0,6 V über der Durchbruchspannung sich einstellenden Z-Diodenspannung.
  • Diese systematische Überschreitung der Grenzspannung von ca. 1,4 V kann man akzeptieren (insbesondere da bei den Kennwerten der Spule Sicherheitsfaktoren berücksichtigt sind!).
  • Als Wert für die Spannungsbegrenzung ist der entsprechende CAD-Parameter zuzuweisen:
Elektronik.v_Grenz  = CAD.v_Grenz_Spule   [Max. Spulenspannung ]

Strombegrenzung

Bisher sollte durch die Dimensionierung des Magnet-Antriebs gewährleistet werden, dass der resultierende maximale Spulenstrom die verwendete Stromversorgung nicht überlastet. Dieses Konzept ist gescheitert:

  • Unter ungünstigen Umständen gelangen jedoch Teile des magnetischen Eisenkreises während des Prägevorgangs in den Bereich der Sättigung. Dies führt zu hohen Stromspitzen im Bereich von bis zu ca. 5 A.
  • Im schlimmsten Fall des "Nichtprägens" des Papiers wird der Maximalstrom nur durch den ohmschen Widerstand des Spulendrahtes begrenzt und kommt somit fast auf 20 A.

Eine reversible Strombegrenzung ist für das Netzteil unbedingt erforderlich, wenn man das Netzteil nicht überdimensionieren möchte:

  • Durch diese Strombegrenzung sollte jedoch der benötigte Maximalstrom für einen "bestmöglichen" Magnetantrieb nicht unnötig eingeschränkt werden.
  • Die Strombegrenzung sollte nur für die Stromspitzen nach Erreichen der Magnetkreis-Sättigung wirken, um Auswirkungen auf die erreichbare Prägegeschwindigkeit zu vermeiden.

Wir greifen die naheliegende Idee auf und versehen das Netzteil mit einem zusätzlichen Strombegrenzungselement iGrenz:

.
  • Leider enthält die Modell-Bibliothek keinen Strombegrenzer als Elementtyp, so dass wir selbst ein solches Element entwickeln müssen.
  • Wir benutzten dafür direkt einen normalen elektrischen Widerstand, dessen Widerstandswert R sich in Abhängigkeit vom durchfließenden Strom ändern soll:
    R=| i / iGrenz |512
  • Der Wert für den Maximalstrom i_Grenz wurde im Controller-Compound als zusätzlicher Komponenten-Parameter definiert.
  1. Für i < iGrenz geht der Widerstandswert gegen Null.
  2. Für i >i Grenz nimmt der Widerstandswert große Werte an, um den Strom zu begrenzen.
  • Der Exponent=512 hat sich als numerisch günstiger Kompromiss zwischen numerischer Stabilität und Begrenzungsfunktion erwiesen.
  • Insbesondere der 2. Fall führt infolge der Exponentialfunktion im Zusammenspiel mit den Eigenarten der numerischen Simulation schnell zu numerischen Problemen. Deshalb erfolgt für den Widerstandsparameter iGrenz.R eine Begrenzung der Exponentialfunktion unter Berücksichtigung der Ereignisbehandlung (noEvent-Funktion):
if noEvent(abs(self.i/i_Grenz)<1.1)then pow(abs(self.i/i_Grenz), 512)else pow(1.1,512)

Die Simulation mit einem Grenzwert von 1.5 A dürfte das Verhalten des Antriebs nicht ändern, da der Maximalwert der zuvor optimierten Lösung unter 1.5 A bleibt:

  • Zur Verifizierung der Strombegrenzung muss man temporär einen geringeren Wert wählen (z.B. Elektronik.iGrenz=1.0 A) -> infolge des begrenzten Stroms findet dann auch kein Prägen des Papiers statt:
.
  • Als Wert für die Strombegrenzung ist der entsprechende CAD-Parameter zuzuweisen:
Elektronik.i_Grenz  = CAD.i_Grenz_Spule   [Max. Spulenstrom    ]

Realisierung der erforderlichen numerischen Robustheit

Bisher gab es bei der Simulation sporadisch Warnungen in Hinblick auf die Ereignisbehandlung beim Abschaltvorgang. Diese Warnungen treten nur beim Vorhandensein der Freilauf-Diode auf. Als Ursache wird das Zusammenspiel der starken Nichtlinearitäten von Dioden-Kennlinie und Magnet-Hysterese vermutet:

  • Da trotz dieser Warnungen jede Simulation erfolgreich zu Ende geführt wird, mussten wir uns um diesen "Schönheitsfehler" bisher nicht weiter kümmern.
  • Nach Ersatz des Schutzwiderstands durch die Z-Diode kommt es immer noch zu diesen Warnungen:
    • Leider merkt man erst später bei den vielen Simulationsläufen der Optimierung, dass nun zusätzlich vereinzelt an dieser Stelle Fehler auftreten. Diese führen zur abnormalen Beendigung des betroffenen Simulationslaufes ohne verwertbare Ergebnisse.
    • Ein Nennwert-Optimierung würde solche vereinzelte fehlerhaften Läufe ignorieren und trotzdem ein Optimum finden.
    • Probleme gibt es dann jedoch spätestens bei der probabilistischen Simulation mit einer Moment-Methode. Dort muss jede Stützstelle erfolgreich berechnet werden!

Im Rahmen der Übung soll bereits an dieser Stelle dieses Problem der mangelnden numerischen Robustheit möglichst endgültig gelöst werden:

  • Die Freilaufdiode ist funktionell in Reihe zur Z-Diode erforderlich und kann nicht einfach durch einen "Draht" ersetzt werden.
  • Durch "Zufall" wurde bei der Entwicklung dieser Übungsanleitung bemerkt, dass es keine Warnungen und Fehler mehr gibt, wenn man die Diode durch eine Z-Diode mit hinreichend großer Durchbruchspannung ersetzt.
  • Nach Löschen des Dioden-Elements platziert man an diese Stelle mit der richtigen Orientierung das Element einer Z-Diode. Diese konfiguriert man exakt wie die eigentliche Z-Diode mit der Durchbruchspannung Vbv=v_Grenz
    .
  • Auch Schaltungstechnisch ist diese Lösung nicht abwegig, da damit die Spulen-Spannung unabhängig von ihrem Vorzeichen begrenzt wird. Natürlich würde man in der Praxis an dieser Stelle eher ökonomisch handeln!

Hinweis: Der beschriebene Workaround zur Numerischen Robustheit bezieht sich auf die SimulationX-Version 4.5.2.

Flussdichten-Sensor im Elektromagnet-Compound

Während des Optimierungsprozesses muss vermieden werden, dass Antriebe entstehen, welche durch Ausnutzung der magnetischen Sättigung des Eisens zu kürzeren Zykluszeiten gelangen:

  • Dazu ist ein "virtuellen" Sensor im Simulationsmodell erforderlich, welcher für jeden Prägezyklus die maximal auftretende Flussdicht B_max im Eisenmaterial erfasst.
  • Da im inneren Eisenabschnitt die höchste Flussdichte auftritt, genügt die Verarbeitung von Eisen_Innen.B.
  • Leider existiert für die magnetische Domäne kein Sensor-Element in der Modell-Bibliothek von SimulationX.
  • Wir verwenden stattdessen ein einfaches Signalglied f(x) und belegen dessen Parameter F mit Eisen_Innen.B:
    .
  • Den Signalausgang des hier B_innen genannten Signalgliedes f(x) verbinden wir mit dem Signaleingang des speziellen Signalgliedes zur Signalverarbeitung B_Max. Dieses konfigurieren wir für die Maximalwert-Erfassung.

Dies würde im Prinzip schon genügen, um während der Optimierung auf den B_Max-Wert zugreifen zu können:

  • Um den Zugriff zu vereinfachen, erweitern wir mittels des SimulationX-TypeDesigners den Elektromagnet-Compound um eine Ergebnis-Variable B_max im Komponenten-Abschnitt.
  • Beachte: Da es keine Objekte gleichen Namens im aktuellen Namensraum geben darf, muss hier bewusst eine andere Schreibweise im Vergleich zum B_Max-Element genutzt werden!
  • Die Zuweisung des Wertes für diese Ergebnis-Variable erfolgt in einem neuen Gleichungsabschnitt im Verhalten:
.
  • Die Ergänzung des Flussdichte-Sensors war erfolgreich, wenn sich das Verhalten bei der Simulation dadurch nicht verändert hat und der korrekte Maximalwert für Magnet.B_max angezeigt wird.