Software: SimX - Einfuehrung - Elektro-Chaos - Eigene Elemente

Aus OptiYummy
Zur Navigation springenZur Suche springen

Modellierung eigener Elemente

Bisher haben wir fertige Modell-Elemente aus der SimulationX-Bibliothek verwendet. Am Beispiel der elektrischen Elemente Widerstand, Induktivität und Kapazität werden wir diese Bibliothekselemente zu Übungszwecken nachbauen und am Beispiel des Serienschwingkreises in Betrieb nehmen:

Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - Neu.gif
  • Dazu erstellen wir zuerst eine Kopie vom Modell des Reihenschwingkreises unter dem Namen RLC-Kreis.ism
  • Mit diesem funktionierenden Modell können wir dann testen, ob die selbst erstellten Elemente genausogut funktionieren, wie die Bibliothekselemente.

Neue Elementtypen erstellt man mit dem sogenannten TypeDesigner von SimulationX:

  • Man wählt im Modellexplorer die Seite Typen.
  • Dort wählt man mit dem Kontextmenü des Wurzeleintrags (rechte Maustaste) Neu > Model.
  • Damit bearbeitet man einen lokalen Elementtyp, der als Bestandteil der Modelldatei gespeichert wird:
Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - Neu Allgemein.gif


Datenfluss in Modell-Elementen

Bevor wir ein konkretes Modell-Element "programmieren", werfen wir einen Blick auf die Einbindung dieser n-Pole in die Struktur des Gesamtmodells und den daraus resultierenden Datenfluss durch die Elemente:

  • In einem physikalischen System kann man die Energieübertragung als kontinuierlichen Vorgang im Zeitbereich betrachten, solange man sich nicht auf das Niveau der Quantenphysik begibt.
  • Ein System besteht aus Elementen, welche sich meist wechselseitig beeinflussen. Diese wechselseitige Beeinflussung erfolgt durch die Energieübertragung zwischen den Elementen.
  • Bestimmend für die übertragene Energie W ist der jeweilige Momentanwert der Leistung P=dW/dt.

Betrachtet man ein technisches System (z.B. einen elektro-magnetischen Antrieb) mit seinen unterschiedlichen physikalischen Domänen (z.B. Elektrik, Magnetik, Mechanik), so kommt man sehr anschaulich zu einer verallgemeinerten Netzwerk-Theorie:

Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - Systemstruktur.gif
  • Die Energieübertragung zwischen den Elementen wird über energetische Verbindungen (Connection) realisiert. Dazu besitzen die Elemente energetische Anschlüsse (Connectoren).
  • Jede physikalische Domäne ist durch eine spezielle Art der Energie gekennzeichnet (z.B. elektrische Energie, Energie des magnetischen Feldes, mechanische Energie). Für jede physikalische Domäne gibt es deshalb spezielle energetische Anschlüsse und Verbindungen (z.B. elektrische, magnetische, mechanische).
  • Betrachtet man die elektrische Domäne eines Systems, so kann an dem als Verbindung dienenden "Draht" ein Spannungspotential v in Bezug auf den Massepunkt der Schaltung messen. Durch den Draht fließt ein Strom i. Die aktuell durch den Draht übertragene elektrische Leistung ist Pe=v·i.
  • In der mechanischen Domäne eines Systems berechnet man die mechanische Leistung Pm=v*F als Produkt aus Geschwindigkeit und Kraft der mechanischen starren Verbindung. In Analogie zur Spannung in der Elektrik ist in der Mechanik die Geschwindigkeit die Potentialgröße gemessen im Bezugskoordinatensystem. Die Kraft wird als Flussgröße betrachtet.

Verallgemeinerung für beliebige energetische Netzwerke:

  • energetische Verbindungen zwischen den Elementen besitzen Potential- und Flussgrößen
  • die aktuell auf einer Verbindung übertragene Leistung ist das Produkt aus Flussgröße und Potentialgröße

Die Wechselwirkung zwischen den Element-Schnittstellen findet in der Natur augenblicklich statt ("Parallelverarbeitung"). Der Mensch definiert dafür jedoch aus Gründen der Anschaulichkeit gern kausale Abfolgen, z.B.

Kraft als Ursache der Bewegungsänderung einer trägen Masse
  • Die umgekehrte Kausalfolge
Bewegungsänderung einer trägen Masse als Ursache einer Kraftwirkung
ist zwar gewöhnungsbedürftig, aber genauso brauchbar. Dies widerspiegelt sich vereinfacht in der Gleichung F=m·a, die beliebig umgestellt werden kann, ohne an Gültigkeit zu verlieren.

Moderne Simulationssysteme bilden diese Gleichzeitigkeit durch die Generierung und Lösung eines ganzheitlichen Gleichungssystems ab. Es ist jedoch in Hinblick auf die Anschaulichkeit sinnvoll, bei der Modellbildung kausale Wirkungsrichtungen als Datenflüsse abzubilden:

  • Die Richtung des Datenflusses durch die Modell-Elemente wird hierbei als kausale Wirkungsrichtung interpretiert.
  • Die Werte der Potentialgrößen Pi werden in die Element-Anschlüsse eingespeist. Aus der Sicht eines Elements (n-Pol) stehen also sämtliche Potentialwerte seiner Anschlüsse als Werte zur Verfügung.
  • Aus den Potentialgrößen (=Ursache) Pi werden in jedem Element die Werte der Flussgrößen (=Wirkung) Fi berechnet und über die Anschlüsse nach außen gegeben.
Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - Datenfluss.gif
  • Jede Connection besitzt eine Potentialgröße, deren Wert sie in die mit ihr verbundenen Element-Anschlüsse einspeist.
  • Nach dem Knotensatz gilt für jede Connection ΣFn=0, wobei die Werte der Fn von den verbundenen Elementen in die Connection eingespeist werden.
  • Für jeden berechneten Zeitschritt verändert der Solver iterativ die Werte aller Potentialgrößen solange, bis hinreichend genau für alle Verbindungen der Knotensatz ΣFn=0 erfüllt ist und eventuell definierte weitere Zwangsbedingungen eingehalten werden.
  • Die Potentialgrößen stellen praktisch die Unbekannten des zu lösenden Gleichungssystems dar.

Zusammenfassung für eine günstige Modellierungsmethode:

  • Bei der Programmierung eines Modell-Elements betrachtet man die Potential-Größen der Anschlüsse zusätzlich zu den Element-Parametern als vorgegebene Werte.
  • Aus den Parametern und Anschluss-Potentialen versucht man mittels eines sequentiellen Algorithmus alle Anschluss-Flussgrößen zu berechnen.
  • Existiert aus der lokalen Sicht eines Elements kein solcher Algorithmus, beschreibt man die Zusammenhänge zwischen Potentialgrößen und Flussgrößen mittels zusätzlicher Gleichungen (=Zwangsbedingungen). Diese zusätzlichen Zwangsbedingungen werden vom Solver bei der Ermittlung der aktuellen Potentialwerte berücksichtigt.

Da auf Basis der Modell-Elemente ein Baustein-System für Modelle angestrebt wird, müssen bei der Festlegung der positiven Richtungen an den Schnittstellen bestimmte Konventionen eingehalten werden:

  • Im Sinne einer einfachen Übertragung von Modellen zwischen unterschiedlichen Simulationssystemen werden dabei die Vereinbarungen der Netzwerk-Theorie genutzt. Beispielhaft werden hier die positiven physikalischen Richtungen von Fluss- und Potentialgrößen an den Schnittstellen der "Verlust-Elemente" ohmscher Widerstand und translatorische mechanische Dämpfung gegenübergestellt:
Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - physik Schnittstellen R.gif Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - physik Schnittstellen D.gif
physikalische Größe:  positive Richtung / Bezugspunkt 
-------------------------------------------------------------------------------------------
               Kraft:  in das Element hinein! 
     Geschwindigkeit:  "zeigt" in positive Wegrichtung;
                       v-Tensor pos.=Elementverkürzung; 
       Wegkoordinate:  Wert auf zugehöriger Achse X,Y,Z des globalen Raumkoordinatensystems 
                       (bezogen auf Koordinaten-Ursprung) 
  Elektrischer Strom:  in das Element hinein! 
Elektrische Spannung:  vom Potentialpunkt gegen Nullpotential 
  • Die physikalisch positive Richtung (Pfeilrichtungen an obigem Widerstand und Dämpfer) muss man unterscheiden von der kausalen Datenflussrichtung. Zur Unterscheidung wird die Datenflussrichtung deshalb durch Halbpfeile abgebildet:
    • Die Halbpfeile der Potentialgrößen zeigen grundsätzlich in die Elemente (unabhängig von der physikalischen Wirkungsrichtung).
    • Die Halbpfeile der Flussgrößen zeigen grundsätzlich von den Elementen weg (unabhängig von der physikalischen Wirkungsrichtung).

Ohmscher Widerstand

Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - physik Schnittstellen R.gif

Wir beginnen mit dem Elementtyp Ohmscher Widerstand. Der Abschnitt Allgemein des SimulationX-TypeDesigners für die Erstellung eines lokalen Elementtyps ist geöffnet, wie bereits beschrieben wurde:

Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - R Allgemein.gif
  • Wir vergeben einen sinnvollen Namen und einen aussagekräftigen Kommentar für den neuen Elementtyp.
  • Das Symbol erstellen wir als Neues Bitmap der Größe 61x31 Pixel mit dem Symbol-Editor des TypeDesigners.
  • Die linke Seite (Seite 1) ist bei den Bibliothekselementen mit einem rotem Plus gekennzeichnet. Wir verwenden zur Unterscheidung ein kleines blaues Plus:
    Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - R Symboledit.gif
  • Wir definieren im nächsten Abschnitt zwei elektrische Anschlüsse. Die Standardbezeichner behalten wir bei:
    Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - R Anschluesse.gif
  • Als Komponenten des Elements werden im Beispiel der Parameter R mit der Standardbelegung 1 Ohm, sowie die Variablen v und i ohne Anfangswert definiert. Die richtige physikalische Größe ist zuzuweisen:
    Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - R Komponenten.gif
  • Im Abschnitt "Verhalten" werden die im Modell-Element berücksichtigten physikalischen Effekte definiert. Wir berücksichtigen nur das ohmsche Gesetz:
Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - R Algoritmus neu.gif
  • Standardmäßig enthält der Verhaltensabschnitt nur eine Registerkarte für "Gleichungen". Mit diesen Gleichungen kann man die physikalischen Zusammenhänge in Form von einzuhaltenden Zwangsbedingungen beschreiben. Die Intelligenz der symbolischen Analyse des Simulationssystems kümmert sich dann um die Generierung der erforderlichen Modellalgorithmen.
  • Für den Einsteiger wird es als günstig erachtet, den Algorithmus für Modell-Elemente selbst zu schreiben. Das fördert das Verständnis für die numerische Simulation und gewährleistet auch, dass man alle erforderlichen mathematischen Zusammenhänge im Verhaltensabschnitt definiert.
  • Wir fügen deshalb dem Verhaltensabschnitt eine Registerkarte "Algorithmus" hinzu.

Hinweis:
Für das Erstellen des Verhaltensquelltextes kann man auf alle links im Editor aufgelisteten Elementgrößen per Drag&Drop zugreifen.

Achtung:
Man sollte sich bei der Programmierung des Algoritmus folgende Vorgehensweise angewöhnen:

  1. Berechnung des Differenz-Potentials zwischen den Anschlüssen (Benutzung der von außen eingespeisten Potentialwerte).
  2. Einspeisung der noch zu berechnenden Werte der Flussgrößen in alle Anschlüsse:
    Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - R Algoritmus inout.gif
  3. Schrittweise Ergänzung von Anweisungen "von unten nach oben", bis alle Flussgrößen sequentiell "von oben nach unten" aus den eingespeisten Parametern und Potentialgrößen eindeutig berechnet werden können:
  • Zuerst schreiben wir i:=.
  • Dann suchen wir einen Zusammenhang, wie man den Strom i aus anderen physikalischen Größen berechnen kann.
  • Im Beispiel ist es das ohmsche Gesetzt (Proportionalität zwischen Strom I und Spannung U am konstanten Widerstand R). Für das ohmsche Gesetz gibt es drei gleichberechtigte Gleichungsschreibweisen:
[math]\displaystyle{ R = \frac U I\ ; \quad U =R\cdot I\ ;\quad I=\frac U R }[/math]
  • Wir verwenden natürlich die Schreibweise, bei welcher der Strom allein auf einer Seite der Gleichung steht. Daraus formulieren wir die Zuweisung i:=v/R;:
    Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - R Algoritmus Effekt.gif
  • Nun muss man überprüfen, ob in der zuletzt notierten Anweisung alle Größen auf der rechten Seite der Zuweisung wertmäßig bekannt sind. In unserem Beispiel ist das gewährleistet. R ist ein Element-Parameter und v haben wir bereits berechnet. Wir sind also fertig, denn alle Anweisungen in diesem Algorithmen können sequentiell von oben nach unten berechnet werden.
  • Existierte noch eine Größe mit unbekannten Werten, würde man diese oberhalb in der nächsten Ergibt-Anweisung notieren und einen weiteren physikalischen Zusammenhang für ihre Berechnung suchen.
Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - R in Modellstruktur.gif

Wir können unser Element nun fertigstellen (hoffentlich ohne Fehlermeldung). Danach sollte man das Modell RLC-Kreis.ism speichern, damit die bisherige Arbeit auf der Festplatte gesichert ist.

Ob das Modell-Element richtig funktioniert, können wir im Vergleich zum R-Bibliothekselement einfach testen, da wir über ein lauffähiges Modell für einen Reihenschwingkreis verfügen:

  • Wir löschen das bisherige Widerstandselement in der Modellstruktur.
  • Per Drag&Drop ziehen wir stattdessen unser Resistor-Element in das Modell und verbinden es über seine Anschlüsse.
  • Der alte Name R sollte wieder benutzt werden und man darf nicht vergessen, den Parameter R auf 1.3 Ohm zu setzen.
  • Hinweis: Ergebnis-Fenster, welche Bezug auf gelöschte Modell-Elemente nehmen, werden automatisch mit gelöscht. Das Fenster für den Stromverlauf R.i als Funktion von Frequenz.y müssen wir deshalb neu konfigurieren.
  • Wenn keine Flüchtigkeitsfehler passiert sind, sollte unserer eigenes Widerstandselement genauso funktionieren, wie das Bibliothekselement!

Elektrische Induktivitaet

Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - physik Schnittstellen L.gif

Eine elektrische Induktivität ist ein elektrischer 2-Pol, wie der ohmsche Widerstand:

  • Der wesentliche Unterschied im Verhalten beider Elemente besteht darin, dass bei konstanter Induktivität der Spannungsabfall proportional zur Stromänderungsgeschwindigkeit idot=di/dt ist.
  • Den aktuell fließenden Strom i kann man durch ein Zeit-Integral über idot berechnen.
  • Für den Zeitpunkt tStart benötigt der Strom i als Integralgröße einen Anfangswert i0.

Die Vorgehensweise für die Bildung eines lokalen Elementtyps (Name=Inductor /Kommentar=mit konstantem L) ist analog der zu dem Widerstandselement. Es werden deshalb im Folgenden nur die Unterschiede beschrieben:

  • Das Spulensymbol der Größe 61x31 Pixel ist mit dem Symboleditor etwas umständlich zu zeichnen. Es geht einfacher:
    • Man markiert das Spulensymbol in der Modellstruktur (Hervorhebung als graues Feld)
    • Mittels <Alt><Druck> kopiert man das komplette SimulationX-Fenster als Bild in die Zwischenablage.
    • Mit einem geeigneten Bildeditor produziert man daraus ein Bild der Größe 61x31 Pixel.
    • Im TypeDesigner holt man dann das Symbol aus der Zwischenablage oder lädt eine Bilddatei.
  • Man benötigt 3 Komponenten für den Strom:
  1. Startwert i0: Dieser wird als normaler Parameter definiert und dann als Startwert gekennzeichnet:
    Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - L Komponenten i0.gif
  2. Ableitung idot: Wird als Variable definiert und benötigt die Maßeinheit A/s. Diese steht im SimulationX nicht als physikalische Größe für die Elektrotechnik zur Verfügung. In diesem Fall sollte man als Maßeinheit "-" vergeben und die Einheit als Teil des Kommentars notieren. In unserem speziellen Fall existiert die Einheit A/s jedoch in der Magnetik als "Zeitliche Ableitung des magnetischen Potentials". Diese Einheit kann man dann auch benutzen.
  3. Integralgröße i: Wird als Variable definiert. Als Anfangswert wählt man den zuvor definierten Startwert i0:
    Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - L Komponenten i mit i0.gif
  • Den Algorithmus-Abschnitt für das Verhalten definieren wir, wie es für das Widerstandselement beschrieben wurde:
  1. Zuerst notieren wir die Übernahme der Potentialgrößen und die Belegung der Flussgrößen.
  2. Die Berechnung des Stromes durch zeitliche Integration erstreckt sich über zwei Anweisungen:
idot  := v/L;
i     := integral (idot,i0);
  • Wir testen das Spulenelement wieder durch Ersatz des Bibliothekselements.

Elektrische Kapazitaet

Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - physik Schnittstellen C.gif

Der Aufbau eines lokalen Elementtyps für die elektrische Kapazität (Name=Capacitor /Kommentar=mit konstantem C) sollte nun kein Problem mehr darstellen:

  • Die Integralgröße für die elektrische Kapazität ist die Spannung:
[math]\displaystyle{ u(t) = \frac{1}{C} \cdot \int i(t) \, \mathrm dt }[/math]
  • Die elektrische Spannung ist im Algoritmus jedoch durch die an den Anschlüssen anliegende Spannung vorgegeben. Deshalb benötigen wir die Differentialform der Integralgleichung, um damit den Wert des Stromes berechnen zu können:
[math]\displaystyle{ i(t) = C \cdot \frac{\mathrm du(t)}{\mathrm dt} }[/math]
  • Im Verhaltensabschnitt widerspiegelt sich das in den beiden Anweisungen:
vdot  := der(v);
i     := C*vdot;
Software SimX - Einfuehrung - Elektro-Chaos - Elementmodelle - RLC vollendet.gif
  • Achtung: Obwohl im Algorithmus kein Integral auftaucht, handelt es sich bei der Spannung v trotzdem um eine Integralgröße. Diese benötigt einen Anfangswert v0, den man im Komponenten-Abschnitt als Parameter (Startwert) definieren und der Variablen v als Anfangswert zuweisen muss.

Nach dem sicher erfolgreichen Test unseres Kondensator-Elements haben wir ein Gefühl dafür entwickelt, wie man physikalische Zusammenhänge als Algorithmus in einen Elementtyp einbindet.