Software: FEM - Tutorial - Magnetfeld - C-Kennfeld-Testmodell
Aus OptiYummy
Zur Navigation springenZur Suche springen
Kennfeld-Testmodell (C-Code)
(Kein Bestandteil der Lehrveranstaltung FEM )
Bevor man die Kennfelder in ein kompliziertes Antriebsmodell einbindet, sollte man unbedingt ein Testmodell aufbauen, um das richtige Funktionieren zu überprüfen:
- Wir beginnen im SimulationX mit einer neuen Datei, welche wir als Kennfeld_xx.ism speichern (Teilnehmer-Nr. xx=00...99).
- Es werden zwei lokale Element-Typen im Modell definiert, welche jeweils eine der Kennfeld-Funktionen bereitstellen. Der Test erfolgt dann durch eine Rastersuche in einem OptiY-Experiment.
- Wir beginnen im SimulationX-Modell mit dem Elementtyp F_RSM für das Kraft-Kennfeld. Im Modellexplorer > Karte Typen > Wurzeleintrag > Kontextmenü wählen wir Neu > Model.
- Als Symbol wird ein 61x61-Pixel-Bild verwendet (nebenstehende Bild-Datei laden), welches eine modifizierte Kopie des 2D-Kennfeld-Symbols aus der SimulationX-Bibliothek darstellt (Symbol > Bitmap öffnen):
- Zum Testen speisen wir die Funktionsvariablen Strom i und Luftspalt s als Parameter in das Element ein und führen den Funktionswert der Kraft F als Variable nach außen:
- Achtung: Für diese Komponenten sollte man die gleiche Einheit für die physikalischen Größen wählen, wie sie im FE-Modell verwendet wurden. Das bedeutet, die Luftspalt-Werte sind in mm einzuspeisen! Das ist zurzeit noch erforderlich, wenn man mittels Rastersuche im OptiY die Kennfelder in den gleichen Grenzwerten darstellen möchte, wie die aus der FEM-Simulation gewonnene Antwortfläche. In OptiY erfolgen noch keine Umrechnungen zwischen unterschiedlichen Einheitsdimensionen.
- Das F-Kennfeld wird im Element-Typ unter Lokale Typen als externe Funktion definiert:
Durch Bearbeiten der Funktionseigenschaften definiert man die Schnittstelle zwischen dem SimulationX-Modell und der externen Funktion innerhalb der .dll-Datei:
- Für die allgemeinen Einträge genügen die Standard-Vorgaben.
- Als Argumente der Funktion definieren wir zwei Eingabe- und einen Ausgabeparameter:
- Dabei müssen wir ebenfalls die Maßeinheiten der Funktionsargumente berücksichtigen (z.B. Luftspalt in mm).
- Für die Argumente der Funktion kann man jedoch nur den Typ der physikalischen Größe angeben (z.B. Abmessungen). Deshalb ist es sinnvoll, eventuelle SI-Präfixe im Kommentar eines Arguments zu notieren (z.B. Luftspalt [mm]).
- Die Attribute der Argumente belassen wir auf den Standard-Einträgen.
- Unter den Aufrufkonventionen ist die Liste der Argumente bereits eingetragen. Wir definieren noch den Namen der benutzten .dll-Datei und den Typ der Schnittstelle:
- Wichtig: Man muss die Reihenfolge der Parameter für den Funktionsaufruf beachten!
- Beim Fertigstellen der Funktionsdefinition erfolgt eventuell eine Warnung, dass keine grafische Darstellung definiert wurde. Diese Warnung können wir ignorieren.
- Für das Verhalten des Element-Typs definieren wir abschließend den Funktionsaufruf unter Berücksichtigung der physikalischen Einheiten (Luftspalt in mm):
- Achtung: Die Umrechnung 'm->mm' ist unbedingt erforderlich, da die Kennfeld-Funktion auf der Einheit mm basiert. Innerhalb der SimulationX-Modelle wird aber grundsätzlich mit SI-Einheiten gerechnet, auch wenn man für einzelne Komponenten wegen der Anschaulichkeit abweichende Dimensionen definiert.
- Der lokale Element-Typ F_RSM wird als Element F_Kennfeld innerhalb des SimulationX-Modells verwendet.
- Für einen ersten Test wurde der Stromeingang i mit der Simulationszeit t belegt, die von 0 bis 10 s läuft.
- Sowohl für den Luftspalt s=0 mm, als auch für s=4 mm ergeben sich korrekte Funktionsverläufe. Man erkennt hier deutlich die Knicke im Funktionsverlauf an den ursprünglichen Abtastpunkten des Original-FE-Modells:
- Die Rastersuche nach Einbindung des Modells in ein OptiY-Experiment zeigt die komplette Funktionsfläche. Dabei wurden die gleichen Bereichsgrenzen verwendet, wie zuvor bei der Ermittlung der Antwortfläche anhand des FE-Modells:
Die Einbindung der C-Funktion für das Psi-Kennfeld in das SimulationX-Modell verläuft analog, wie bei dem F-Kennfeld. Es handelt sich praktisch um den gleichen Element-Typ, nur dass die Kraft F durch den Koppelfluss Psi ersetzt wird:
- Man kopiert den lokalen Typ F_RSM in den Bibliotheksordner ExternalTypes (mit <Strg>-Taste beim Drag&Drop).
- Unter ExternalTypes benennt man F_RSM in Psi_RSM um. Dazu muss man zusätzlich den external Type im Type-Designer öffnen und unter "Allgemein" auch den Namen ändern.
- Danach kopiert man den external Type Psi_RSM zu den lokalen Typen des Modells und ersetzt systematisch die Kraft durch den Koppelfluss.
- Es kann das nebenstehende Symbol für Psi_RSM verwendet werden.
- Beide Kennfeld-Elemente sollen durch die gleichen Werte für Strom und Luftspalt gespeist werden. Damit dies innerhalb des OptiY realisiert werden kann, benutzen wir dafür im SimulationX-Modell zwei Function-Signalglieder:
- In die Parameter F dieser Funktionsglieder müssen dann im OptiY-Workflow die Werte von Strom und Luftspalt eingespeist werden.
- Im SimulationX-Modell belegen wir die Parameter der Kennfeld-Elemente mit den Ergebnisgrößen der Funktionselemente:
s = 0.001*s.y i = i.y
- Der Umrechnungsfaktor für den Luftspalt ist erforderlich, damit der Parameterwert s.F in Millimeter eingegeben werden kann.
- Im OptiY-Workflow ergänzen wir die Größen für den Koppelfluss und verbinden i und s mit den Funktionsglieder des SimulationX-Modells:
- Im Ergebnis der Rastersuche erhält man im OptiY damit das Psi-Kennfeld in Form eines 3D-Diagramms:
Achtung:
- Die Arbeitskopie von Psi_RSM in der ExternalTypes-Bibliothek sollte man löschen, um eine spätere fehlerhafte Anwendung zu vermeiden!
- Sind beide lokalen Element-Typen verifiziert, erzeugt man Kopien im Bibliotheksordner ExternalTypes. Damit stehen die verifizierten externen Funktionen auch für die Implementierung in das eigentliche Antriebsmodell zur Verfügung.