Software: SimX - Einfuehrung - Elektro-Chaos - Parameter-Identifikation

Aus OptiYummy
Zur Navigation springenZur Suche springen

Parameter-Identifikation (Spice-Modell der Diode)

Das Dioden-Modell in der SimulationX-Bibliothek bildet das Verhalten einer Halbleiter-Diode bedeutend besser ab, als unser einfaches Kennlinien-Modell für die Sperrschichtkapazität. Deshalb sollte man in einer elektronischen Schaltung natürlich das Bibliothekselement nutzen, wenn man eine C-Diode benötigt.

Leider gibt es keine Möglichkeit, eine beliebige C-Kennline direkt in dieses Dioden-Modell einzulesen. Die Kennline wird darin durch eine vorgegebene Funktion nachgebildet, deren Parameter man einstellen kann.


Modell mit Guete-Kriterium

Das Ziel der nächsten Experimente soll die Parameter-Findung für diese Kennlinien-Funktion unter Nutzung der numerischen Optimierung sein. Dazu erstellen wir aus unserem Modell C-Kennlinie.ism eine Kopie Parameterfindung.ism. Dieses Modell werden im Folgenden nutzen:

  • Das Element dC_dt für die Bildung der Ableitung können wir in der Modellstruktur löschen.
  • Wir holen uns eine Diode aus der Modell-Bibliothek und öffnen den Eigenschaftsdialog. Hier kann man zwischen verschiedenen Typen von Dioden-Modellen umschalten:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Diode Spice-Kind.gif
  • Das Spice-ähnliche Diodenmodell ist das, welches unter anderem auch die Sperrschicht-Kapazität in Abhängigkeit von der Spannung berücksichtigt. Ruft man innerhalb des Eigenschaftsdialogs mit <F1> die Hilfe auf, so erhält man einen Überblick über die implementierten physikalischen Effekte und die zugehörigen Modell-Parameter:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Diode Cj-Function.gif
  • Unsere Kennlinie ist durch den oberen Zweig der Formel beschrieben. Der untere Teil beschreibt den Durchlassbereich der Diode.
  • Für den oberen Zweig muss man die Parameter Cj0 und M so wählen, dass eine möglichst gute Übereinstimmung zu unserer Kennlinie der Diode BB 512 erreicht wird.
  • Das könnte man mit etwas Mühe auch noch manuell machen. Wir werden diesen Prozess jedoch mit Hilfe der numerischen Optimierung automatisieren.

Im Dioden-Modell wird der aktuelle Wert der Kapazität nicht als Variablen-Wert berechnet. Deshalb entfällt der direkte Vergleich der Kapazitäten von Diode und Kennlinien-Modell als Kriterium für die Optimierung. Man könnte mit etwas Aufwand die Berechnung der Dioden-Kapazität ergänzen, aber wir gehen einen anderen Weg der Parameter-Identifikation:

  • Wenn unsere Kennlinien-Kapazität das gleiche Verhalten beim Aufladen zeigt, wie die Sperrschicht-Kapazität der Diode, dann sollte die Abhängigkeit der Kapazität von der Spannung in beiden Elementen den gleichen Verlauf haben.
  • Wir konfigurieren deshalb unser Modell so, dass die C-Diode und unsere Kennlinien-Kapazität gleichzeitig unter gleichen Bedingungen aufgeladen werden.
  • Die Abweichung zwischen den Signalen der Kondensatorspannungen sollen minimal werden. Deshalb wird diese Abweichung im Modell als Gütekriterium berechnet.

Die dafür erforderliche Modellstruktur ist ziemlich einfach:

Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Diode Modellstruktur.gif
  • Das eigene Kennlinien-Element wurde jetzt C_Kennlinie genannt.
  • Man muss darauf achten, dass die Diode D in Sperr-Richtung betrieben wird.
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Diode Signale Startpunkt.gif
  • Der Zeitbereich muss so gewählt werden, dass mit dem Vorwiderstand R die Kennlinien-Kapazität bis zur Spannung von 10 V aufgeladen wird.
  • Der Vorwiderstand RD der Diode D besitzt den gleichen Wert, wie der Vorwiderstand R des kennliniengesteuerten Kondensators.
  • Die Ausgangssignale der beiden Spannungssensoren werden in einen Function2-Block eingespeist. Dieser bildet das Fehlerquadrat der aktuellen Spannungsdifferenz: (x1-x2)^2 .
  • Die Abweichung zwischen den Spannungsänderungen wird als Fehlerquadratsumme durch Integralbildung berechnet.
  • Es müssen nun die Dioden-Parameter Cj0 und M gefunden werden, welche die kleinste Abweichung beim Aufladevorgang beider Kapazitäten ergeben.
  • Cj0 ist der Wert der Sperrschicht-Kapazität für die Spannung Null. Dieser Wert wird also etwas größer als 600 pF sein. Mit cj0=800 pF haben wir einen realistischen Anfangswert.
  • M ist ein Koeffizent, welcher die Krümmung der C-Funktion beschreibt. Hier könnte man manuell nach günstigen Werten suchen, aber wir behalten den Vorgabewert M=0,5 und überlassen die Parametersuche der numerischen Optimierung!
  • Für die restlichen Dioden-Parameter benutzen wir ebenfalls die Vorgabewerte.
  • Das für die Parameterfindung konfigurierte Modell sollte das nebenstehende Verhalten zeigen.


Finden optimaler Parameter mit numerischer Optimierung

Als Optimierungstool nutzen wir OptiY. Die Trial Edition ist ausreichend, welche unter www.optiy.de/Download.html bereitgestellt wird. Im Rahmen dieser Übung wird die Konfiguration des erforderlichen Optimierungsexperiments für den Einsteiger beschrieben. Vorkenntnisse zum Programm OptiY sind also nicht erforderlich:

  • Nach der wahrscheinlich problemlosen Installation unter Windows kann das Programm OptiY gestartet werden:
Optiy-fenster nach start.gif

Hinweis: Das Modell Parameterfindung im SimulationX sollte geöffnet sein, bevor man dieses Modell in den OptiY-Workflow einbindet.

Experiment-Workflow

OptiY stellt über den Workflow-Editor Schnittstellen zu unterschiedlichsten Programmsystemen bereit, u.a. zu SimulationX:

  • Der Menüpunkt Einfügen - Simulationsmodelle ermöglicht die Wahl eines unterstützten Modell-Typs SimulationX:
    Software SimX - Nadelantrieb - Wirkprinzip - simulationsmodell einfuegen.gif
  • Welches konkrete Modell sich dahinter verbirgt, wird vorläufig nicht spezifiziert, sondern es wird mittels Mausklick vorerst nur ein SimulationX-Modellobjekt auf dem Workflow abgelegt:
    Software SimX - Nadelantrieb - Wirkprinzip - simulationsmodell einfuegen workflow.gif
  • Jedes Modellobjekt enthält Input- und Output-Container (Parameter- und Ergebnis-Interface), welche in der Baumstruktur des Experiments erscheinen.
  • Die Eigenschaften eines Modellobjekts kann man definieren, nachdem man mittels Doppelklick in den entsprechenden Dialog gelangt ist:
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Simulationsmodell oeffnen.gif
  • Name und Kommentar sollte man im OptiY-Workflow mit sinnvollen Begriffen versehen.
  • Wichtig:
    Wir ersetzen den Arbeitsverzeichnis-Pfad durch das Zeichen \. Damit wird das Modell im gleichen Pfad erwartet, wie die OptiY-Projektdatei. Die Experimente sind damit zwischen unterschiedlichen Computern portabel!
  • Das Zuordnen von Eingängen und Ausgängen ist noch nicht möglich, weil auf dem Workflow noch keine Datenobjekte definiert wurden.
  • Das Modell erscheint unter seinem Namen (hier "Parameterfindung") im OptiY-Explorer.

Konfiguration speichern:

  • Mittels Datei - Speichern sollte man den aktuellen Zustand des Projektes sichern.
  • Dies erfolgt in eine Datei mit der Extension .opy, welche im gleichen Ordner zu speichern ist, wie das Simulationsmodell.
  • Den Dateinamen sollte man im Beispiel möglichst vom Modell übernehmen (Parameterfindung.opy). Nur so erkennt man später auch noch die Zuordnung zwischen Simulationsmodell und Optimierungsprojekt.
  • Ein späteres Öffnen der .opy-Datei stellt die gesicherte Konfiguration des Projektes wieder her.

Entwurfsparameter (Nennwerte)

Entwurfsparameter sind diejenigen Parameter des Modells, an denen das Optimierungsprogramm Veränderungen vornehmen soll, um eine optimale Lösung für die Optimierungsaufgabe zu finden. Wir suchen die Nennwerte zweier Entwurfsparameter:

  • Cj0: Sperrschichtkapazität bei v=0
  • M: Kapazitätskoeffizient

Wir definieren die zwei Entwurfsparameter im Workflow-Editor durch Einfügen - Entwurfsparameter - Nennwerte:

Software SimX - Nadelantrieb - Wirkprinzip - nennwerte einfuegen.gif
  • In einem ersten Schritt erzeugt man dafür mit dem Workflow-Editor abstrakte Daten-Objekte. Diese Nennwert-Objekte kann man mittels Mausklick auf dem Workflow-Desktop ablegen:
    • Hält man dabei die Strg-Taste gedrückt, so kann man mehrere nacheinander ablegen.
    • Nach dem Platzieren des letzten Nennwerts beendet man den Vorgang mit der ESC-Taste.
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Nennwerte.gif
  • Markierte Symbole kann man auf dem Workflow verschieben, so dass eine übersichtliche Anordnung entsteht.
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Nennwert-Eigenschaft.gif
  • Die Standardbezeichner Nennwert_x sollte man durch sinnvolle Namen versehen. Ein zusätzlicher Kommentar erleichtert die spätere Deutung:
    • Eigenschaftsdialog über Doppelklick auf Symbol im Workflow-Editor
    • oder über das Eigenschaftsfeld des Nennwerts im OptiY-Explorer
      Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Nennwert-Eigenschaft2.gif
    • Hinweis: Die Einheiten und Werte der Entwurfsparameter werden später automatisch bei der Zuordnung zu den konkreten Parametern des SimulationX-Modells ergänzt!
  • Die "abstrakten" Entwurfsgrößen sollen nun im Workflow den konkreten Modellparametern zugeordnet werden. Nach Doppelklick auf das SimulationX-Objekt erscheint wieder der Dialog zu den Modell-Eigenschaften. Darin markieren wir beide möglichen Eingangsparameter und wechseln danach in die Registerkarte Eingang:
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Eingaenge markiert.gif
  • Dort wählt man nacheinander jeweils die zusammengehörenden Paare aus Modell-Parameter und Eingang und stellt die Verbindung her:
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Eingaenge verbinden.gif
  • Achtung:
    Man sollte alle markierten Eingangsgrößen konsequent mit Modellparametern verbinden, bevor man OK drückt. Fehlt die Modellzuordnung für eine Verbindung, so führt das später zu "unerklärlichem" Verhalten bei der Optimierung!
  • Nach Abschluss der Zuordnung erscheinen die Verbindungen im Workflow und können als Eigenschaft der Input-Größen angezeigt werden. Hier sollte man überprüfen, ob alle Zuordnungen korrekt erfolgt sind:
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Input Eigenschaft.gif

Die Eigenschaften der Entwurfsparameter werden auf Basis der aktuellen Modellwerte mit Standard-Annahmen versehen:

Startwert:

  • Ist der jeweils im Simulationsmodell für die Ausgangslösung eingestellte Wert in der benutzten physikalischen Einheit:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Nennwert Cj0 Default.gif

Grenzwerte:

  • Die Grenzwerte beschreiben den zulässigen Bereich für die jeweilige Entwurfsgröße.
  • Unter- und Obergrenze werden von OptiY automatisch um 20% vom Startwert entfernt platziert.
  • Diese Vorgaben muss man meist durch technisch-physikalisch sinnvolle Werte ersetzen. Die Grenzen sollte man nicht zu eng wählen, damit die optimale Lösung innerhalb des Bereiches liegt. Für die Kapazität Cj0 kann man auf Grundlage des Datenblattes den möglichen Bereich recht gut abschätzen:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Nennwert Cj0 Grenzen.gif
  • Für den Kapazitätskoeffizienten M fehlt uns noch das Gefühl. Wir übernahmen einfach den vorgegebenen Wert, der aber die Krümmung bei weitem nicht nachbildet. Wir nehmen z.B. einen Bereich von 0.1 bis 10 an und hoffen, dass dies ausreicht. Wenn nicht, kann man das später immer noch ändern:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Nennwert M Grenzen.gif


Guetekriterium

Als Bewertungsgröße wird in unserem Simulationsmodell die Verhaltensabweichung zwischen der Datenblatt-Kennlinie und der C-Diode als Fehlerquadratsumme berechnet:

  • Die Abweichung benutzen wir als Gütekriterium für die Optimierung.
  • Wir haben die bestmöglichen Parameter für die C-Diode gefunden, wenn die Abweichung nicht mehr verkleinert werden kann.
  • Wir fügen ein Gütekriterium in den Experiment-Workflow ein und nennen es Abweichung.
  • Bewertungsgrößen (hier Gütekriterium) kann man nicht direkt den konkreten Modellgrößen zuordnen. Dafür benötigt man jeweils eine zusätzliche Ausgangsgrößen (Einfügen > Ausgangsgrößen):
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Nennwert M Grenzen.gif
  • Da Workflow-Objekte nicht gleiche Namen besitzen sollten, ist es günstig bei den Ausgangsgrößen z.B. in Hinblick auf die zugehörigen Bewertungsgrößen einen Unterstrich voranzustellen.
  • Die Ausgangsgrößen kann man nun in Analogie zu den Entwurfsparametern mit dem Modell-Objekt verknüpfen. Für die Wertbildung einer Ausgangsgröße stehen vielfältige Möglichkeiten zur Verfügung. Wir benötigen hier die Standard-Vorgabe "Letzter Wert", um das Ergebnis des aktuellen Simulationslaufes bewerten zu können:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Ausgang verbinden.gif
  • Die Verknüpfung des Gütekriteriums mit der Ausgangsgröße erfolgt über den Eigenschaftsdialog des Gütekriteriums (Doppelklick auf das Symbol) und Aufruf des Editors:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Guetekriterium verbinden.gif
  • Der Wert einer Bewertungsgröße kann durch mathematische Verknüpfung aller Input- und Output-Größen des Workflows gebildet werden.
  • Diese Verknüpfung wird in Form eines Ausdrucks notiert.
  • Den Ausdruck kann man jedoch nicht direkt eintragen, sondern man muss ihn mit einem bereitgestellten "Rechner" Editieren:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Guetekriterium Editieren.gif
  • Nach dem Bearbeiten des Gütekriteriums wird die Verknüpfung im Workflow visualisiert: :
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow Guetekriterium verbunden.gif


Experiment-Konfiguration

Optimierungsverfahren

Software SimX - Nadelantrieb - Wirkprinzip - optimierungsverfahren standard.gif

Wir haben über den Experiment-Workflow von OptY unser Problem der Parameterfindung komplett in eine Optimierungsaufgabe transformiert. Damit der Computer nun automatisch unser "Problemchen" löst, fehlt nur noch die Konfiguration der Numerik des Optimierungsverfahrens:

  • OptiY bietet für den unerfahrenen Nutzer ein Standard-Verfahren an. Welches Verfahren sich dahinter verbirgt, ist abhängig von der Anzahl der Entwurfsparameter P und Gütekriterien K:
    • Evolutionsstrategie bei P>1 oder K>9,
    • Hook-Jeeves-Verfahren für P<2 und K<10
  • In unserem Beispiel würde also das Hook-Jeeves-Verfahren genutzt. Dieses tastet sich auf der Zielfunktion von der Anfangslösung schrittweise in Richtung kleinerer Werte "bergab" und endet dort in der Talsohle - in der Hoffnung, dass dies das globale Optimum ist:
    • Die Option "Automatischer Stop=True" soll die Suche beenden, wenn das Minimum erreicht wurde. Das dafür implementierte Kriterium funktioniert leider nicht immer zuverlässig!
    • Um das Optimum zu finden, sollte man "Automatischer Stop=False" setzen. Die Anzahl der Optimierungsschritte kann man auf einen großen Wert (z.B 1000) setzen:
      Software SimX - Nadelantrieb - Wirkprinzip - optimierungsverfahren step1000.gif
    • Man kann die Optimierung jederzeit manuell stoppen, wenn keine weitere Verbesserung der Lösung zu erwarten ist.
    • Um an dieser Stelle zumindest einen Einblick in die Konfiguration eines Optimierungsverfahren zu erhalten, wählen wir das Hook-Jeeves-Verfahren:
      Software SimX - Nadelantrieb - Wirkprinzip - optimierungsverfahren hook jeeves.gif
    • Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Workflow manu Startschritte.gif
      Die individuelle Abtast-Schrittweite für jeden Entwurfsparameter ist in der Standardeinstellung u.a. von deren vorgegebenem Variationsbereich [Untergrenze, Obergrenze] abhängig. Da dies numerisch nicht immer günstig sein muss, sollte man sich den Zugriff auf diese Abtast-Schrittweite ermöglichen, indem man Startschrittweite=manuell setzt.
    • Die Startschrittweite erscheint dann als zusätzliche Eigenschaft nach Wahl des jeweiligen Entwurfsparameters im OptiY-Explorer (Wert =1/100 des Startwert der Entwurfsgröße). Dieser Vorgabewert ist, wie auch in unserem Fall, meist nutzbar.

Visualisierung

Um das Optimierungsexperiment verfolgen und beurteilen zu können, muss man alle dafür wesentlichen Informationen in geeigneter Form visualisieren. Dazu gehören auch Signalverläufe des Simulationsmodells:


1. SimulationX-Modell

  • Während des Optimierungsexperiment werden die Entwurfsparameter für das SimulationX-Modell in Abhängigkeit vom konfigurierten Optimierungsvefahren verändert.
  • Im OptiY kann man nur die Output-Größen des Modells als Ergebniswerte des aktuellen Simulationslaufes darstellen. Ob das zeitliche Verhalten des Modells wirklich sinnvoll ist, wird damit nicht unbedingt sichtbar.
  • Im SimulationX sollte man möglichst ein Ergebnisfenster konfigurieren, welches alle zur Beurteilung des Modellverhaltens relevanten Signalverläufe enthält. Das sind z.B. die beiden Spannungssignale:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Visulisierung Aufladung in SimX.gif
  • Alle nicht mehr benötigten Signalfenster sollte man schließen (wegen der Übersichtlichkeit und dem Zeitbedarf für das Zeichnen!).
  • Für die zur Experiment-Visualisierung gewählten Signale sollte man feste Grenzen für die Koordinatenachsen einstellen, um ein ständiges Flackern der Darstellung zu vermeiden.
  • Das Fenster mit den Simulationssignalen ist so auf dem Bildschirm zu platzieren, dass es neben dem OptiY-Fenster sichtbar bleibt.

2. OptiY-Experiment

  • Die Optimierung dauert eine Weile. Deshalb sollte man alle wichtigen Informationen zum Optimierungsfortschritt dabei im Grafik-Bereich darstellen.
  • Zumindest bei einer überschaubaren Anzahl von Experiment-Größen kann man alle variablen Entwurfsparameter und die Bewertungsgrößen (Restriktionen und Gütekriterien) per Drag & Drop vom Explorer in den OptiY-Grafik-Bereich ziehen.
  • Fenster > Anordnen ordnet alle Fenster im Grafik-Bereich nebeneinander an (auch das Workflow-Fenster).
  • Bei drei Signalfenstern ist es z.B. günstig, das Workflow-fenster erst nach dem Anordnen zu schließen:
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - ParmIdent - Visulisierung in OptiY.gif


3. Konfiguration speichern

Spätestens jetzt sollte man die aktuelle Konfiguration des OptiY-Versuchsstandes mal wieder als .opy-Datei speichern!


Experiment-Durchfuehrung

===>>> Hier geht es bald weiter !!!