Dokumentation

Was Sie über Simulation wissen sollten: Unterschied zwischen den Versionen

 
Zeile 97: Zeile 97:




Weitere Informationen auf der TARGET 3001! - Homepage:<br>
[http://www.ibfriedrich.com/simulation1.htm http://www.ibfriedrich.com/simulation1.htm]<br>
oder in der online Hilfe:<br>
[http://www.eichenzell.com/target/deutsch/help/8.htm http://www.eichenzell.com/target/V12/deutsch/help/8.htm]


[[en:What you should know about simulation]]
[[en:What you should know about simulation]]

Version vom 15. Juli 2016, 08:25 Uhr

Zurück zum Artikel Simulation


Was ist eine numerische Simulation?

Eine Simulation ermöglicht Aussagen über das Verhalten eines physikalischen Systems, mittels eines anderen einfacheren/reduzierten physikalischen Systems oder über ein mathematisches Modell. Ein Beispiel für den ersten Fall sind reale Flugzeugmodelle im Windkanal. Die Zutaten im zweiten Fall sind "Bleistift und Papier" und Kenntnisse in Mathematik, Physik, Elektronik, etc. Der Computer und geeignete Software automatisieren lediglich diese Arbeit, wobei kein menschlicher Rechenknecht mehr erforderlich ist und die Berechnungen ohne die herkömmlichen manuellen Rechenfehler und viel schneller erfolgen.

Der Zusatz "numerisch" besagt, das die Rechenergebnisse stets Zahlen sind. Zur Erläuterung ein einfaches Beispiel, für eine nicht numerische Berechnung:

Eine Batterie mit einer konstanten Spannung Ubat wird mit einem Widerstand Rx belastet.
Welcher Strom fließt durch den Widerstand?

Ein Elektroniker würde das folgende Rechenergebnis mit "Bleistift und Papier" erzielen:
"I=Ubat/Rx" (Spannung Ubat geteilt durch Widerstandswert Rx) Das Ergebnis ist zunächst keine Zahl, sondern eine Formel, aber allgemein und exakt.

Es gibt Simulatoren, die solche Formeln/Gleichungen errechnen (sogenannte symbolische Berechnung). Diese Berechnungen können jedoch nicht immer durchgeführt werden, da oftmals entsprechende mathematische (geschlossene) Lösungen noch nicht existieren.

Bei einer rein numerischen Simulation sind die Endergebnisse und die Zwischenergebnisse stets Zahlen, keine allgemeinen Ergebnisse, deshalb muss eine Simulation komplett neu durchgeführt werden, wenn sich die Anfangs-/Rand-Bedingungen ändern. Der oben erwähnte Elektroniker muss hingegen für einen anderen Widerstandswert nicht die Formel neu aufstellen, sondern nur die neuen Werte einsetzen. Ein zweiter Nachteil der numerischen Simulationen sind die vielfach eingesetzten Näherungsverfahren, die auch mal kein Ergebnis abliefern (Konvergenzprobleme), d.h. das Verfahren wird abgebrochen, wenn ein maximaler relativer Fehler nicht mehr garantiert werden kann.


Was soll berechnet/analysiert werden?

Die verschiedenen Berechnungswünsche werden als Analysen bezeichnet, wobei das Rechenergebnis i.A. jeweils eine andere Form hat. In der Transienten-Analyse werden Werte (i.A. Ströme und Spannungen) über die Zeit ausgegeben (z.B.: [0, 1V] [1s, 2V] [1.5s, 0.7V] ... ). Die AC-Analyse errechnet/erzeugt einen Frequenzverlauf (z.B.: [0, 2V] [10Hz, 1.9V] [5KHz, 0.3V] ... ). Bei einer experimentellen AC-Analyse müssten die Frequenzen der entsprechenden Generatoren auf der Platine bei konstanter Amplitude schrittweise erhöht werden, wobei erst nach ausreichender Einschwingzeit die Messwerte aufgenommen werden.


Was ist ein SPICE-Modell?

Ein math. Modell ist grundsätzlich jede wohldefinierte mathematische Beschreibung eines realen Systems, aber für den TARGET 3001! - Simulator muss zusätzlich der Modell-Typ im Simulator implementiert sein und die Syntax muss stimmen.

Im Simulator implementierte Modell-Typen:
Jeder Simulator besitzt eine endliche Anzahl von Grundelementen, die variiert (parametrisiert) oder konstruktiv zusammengesetzt/verknüpft werden können. In SPICE sind die Grundelemente allgemeine Modelle für Widerstand, Diode, Transistor, etc. Diese allgemeinen Modelle besitzen einige Parameter, womit das allgemeine Modell auf ein bestimmtes Modell angepasst werden kann. Hier können Sie mit Google nach Modellen suchen.

Beispiel Transistor BC140:
Der Bipolartransistor ist als sogenanntes Gummel-Poon Modell implementiert, wobei die ideale maximale Vorwärts-Stromverstärkung als Parameter BF ausgelegt ist. Das allgemeine Modell wird zum BC140-Modell, wenn der Parameter BF und noch einige andere auf den bestimmten Wert festgelegt werden.

Die Grundelemente können auch zu einem Makro zusammengesetzt werden, wenn die Modellierung mit nur einem Grundelement nicht möglich ist. Diese Makros sind sogenannte Subcircuits, d.h. eine Verschaltung aus Grundelementen wird als Modell (Black Box) verfügbar. Ein Beispiel ist ein Brückengleichrichter-Modell, der aus vier Dioden in der üblichen Verschaltung modelliert wird. Es ist sogar möglich exotische (mechanische) Modelle wie einen Motor mit elektrischen Grundelementen zu modellieren.

Syntax der Modelle:
Das Format der Modell-Beschreibung muss der Simulator verstehen können! Das folgende Beispiel ist zwar für jeden Menschen lesbar, aber nicht für den TARGET 3001!-Simulator:

MODELL BIPOLARTRANSISTOR NPN
  NAME=BC140
  BF=230
ENDE

Die Modelle müssen im sogenannten SPICE-Format (SPICE3F5 oder PSPICE) vorliegen. Dieses Format wurde für eines der ersten Programme (Berkeley SPICE) zur Simulation von elektr. Schaltungen konzipiert.

Beispiel Bipolartransistor-Modellkarte: .MODEL BC140 NPN(BF=230)

Eine Modellkarte für einen bestimmten Modell-Typ enthält hierbei entsprechende Parameter mit jeweiligen Zahlenwerten.

Die Modelle von Bauteil-Herstellern, die im Internet verfügbar sind, sind i.A. formatiert nach SPICE3F5 oder PSPICE. Diese Modelle werden als Textdateien (.TXT, .SUB, .MOD, .LIB) geliefert, aber TARGET 3001! kann auch beliebige (binäre) Dateien nach SPICE-Modellen durchsuchen.

Wie sind Modelle in TARGET 3001! integriert?

Die minimale Form eines Bauteils in TARGET 3001! ist ein Symbol mit einigen Linien, Kreisen, etc. und einem Anschluss. Es können natürlich eigene neue Symbole erzeugt und in eine Bibliothek gespeichert werden. TARGET 3001! hatte nicht von Anfang an einen Simulator, weshalb einige Bauteile kein Modell besitzen. Unsere Bauteile werden jedoch ständig mit Modellen aufgerüstet. Das Modell muss nachträglich eingebunden werden, aber natürlich nicht jedesmal beim Einfügen des Bauteils im Schaltplan, sondern einmalig in der Bibliothek. Sämtliche Modell-Informationen sind in der Projektdatei (.T3001) bzw. in der Bibliothek (.SYM3001) abgelegt, somit entfallen die lästigen zusätzlich verknüpften Dateien (.Lib etc.), wie bei anderen Programmen üblich.

Ein Modellimport ist sehr einfach, denn fast alles funktioniert automatisch: Die Modelle einer Datei können dursucht werden, wobei eine Liste von gefundenen Modellen erscheint. Die Auswahl des richtigen Modells muss der Anwender vornehmen, wobei der Modellname und Kommentare im Modell hilfreich sind. Die Einbindung erfolgt danach automatisch im Hintergrund auf Knopfdruck, bis auf die Pinzuordnung. Die Pinzuordnung verlötet sozusagen die Anschlüsse im Symbol mit den Knoten im Modell, hierfür gibt es einen eigenen Dialog.

Beispiel Diode:
Ein Symbol mit einem Dreieck, zwei Linien und zwei Anschlüssen, die jeweils eine Pinnummer haben (1, 2). Als Modell wurde eine Diodenmodellkarte ausgewählt, welche die Knoten Anode und Kathode besitzen. Die Pinnummern 1 und 2 müssen nun den Knoten zugeordnet werden. Der Anwender muss nun diese Zuordnung vornehmen, da sonst Ihre Zeichnung (das Symbol) automatisch analysiert/verstanden werden müsste. Im allgemeinen Fall würde das künstliche Intelligenz erfordern!

Ein Bauteil besitzt ein oder mehrere „Modelle", eigentlich Instanzen! d.h. im Bauteil ist eingetragen „hier soll das Grundmodell Diode eingesetzt werden, mit folgender Pinzuordnung A=1 K=2 und mit den Parametern der Dioden-Modellkarte mit dem Namen 1N4001". Die Bauteile sind nicht die Eigentümer dieser globalen Modellkarten, sondern das Projekt bzw. die Bibliothek, da auch andere Bauteile diese Modellkarte verwenden könnten (z.B. Sie haben zwei 1N4001-Dioden im Schaltplan). Diese globalen Modellkarten und auch die Subcircuits können somit als Klassen bezeichnet werden.

Einige Bauteile (bzw. das Modell) sind nocht nicht vollständig parametrisiert, da dies unökonomisch wäre, denn es macht zwar Sinn die Diode 1N4001 sofort Einsatzfähig zu gestalten, aber nicht tausende von Batterie-Bauteilen für 1V, 2V, ..., 12V usw. zu erstellen! Die Leerlaufspannung für die Batterie muss erst im Schaltplan eingegeben werden. Sie können aber auch sämtliche Parameter der im Schaltplan eingesetzten 1N4001-Dioden nachträglich verändern.


Wie wird in TARGET 3001! eine Simulation durchgeführt?

Die gewünschte Schaltung wird im Schaltplan gezeichnet/aufgebaut, wobei beim Symbolimport die Option „Nur Bauteile mit Modell" empfehlenswert ist. Einige Bauteil(Modell)-Parameter müssen noch im Schaltplan eingegeben werden (z.B. Leerlaufspannung einer Batterie). Es gibt auch virtuelle, ideale Bauteile (gesteuerte Quellen etc.), die als Ansteuerung, Modellierung von Subcircuits etc. dienen. Diese Bauteile finden Sie in der Bibliothek "Simulation.SYM3001" (neben der Standard.SYM)

Nun wird der Hauptdialog der Simulation geöffnet. Es müssen noch zwei Fragen geklärt werden:

1. Welche Form sollen die Simulations-Ergebnisse haben?
Damit ist gemeint, welche Analyse durchgeführt werden soll. Die gebräuchlichste Analyse ist die sogenannte Transienten-Analyse. Diese Analyse errechnet Kurvenverläufe (i.A. Spannung oder Strom) über eine Zeit von 0s bis zu einem festlegbaren Endzeitpunkt.

2. Welche Ergebnisse sollen gespeichert werden?
Der Simulator speichert alle Spannungen, Ströme durch Quellen, etc., wenn keine spezielle Anweisung (PROBE) gegeben wird. Sie können jedoch nur einige Spannungen, Ströme oder digitale Signale im Schaltplan auswählen, womit der Simulator schneller rechnet, da er nicht durch das Speichern gebremst wird.

Ein Level muß i.A. nicht eingestellt werden, da dies erst erforderlich ist, wenn ein Bauteil mehrere Modelle zur Auswahl hat, aber gewöhnlich nur ein Modell pro Bauteil vorhanden ist.

Die eigentliche Arbeit beginnt nun für TARGET 3001! mit der Erzeugung der Datei Target.Cir. Diese Textdatei enthält ein Abbild des Projekts (Schaltplan) mit allen für die Simulation relevanten Daten (d.h. eine Netzliste, Modellkarten, Subcircuits und die Anweisungen). Das Textformat ist wieder das bekannte SPICE-Format, womit auch andere externe SPICE-Simulatoren gesteuert werden könnten. Der eigentliche Grund für die Erzeugung dieser Datei ist jedoch, dass der Simulator-Kern (Sim.Exe) als eigenständiges Programm (Back-End) ausgelegt wurde, wobei aber der Anwender nichts davon merkt. TARGET 3001! (als Front-End) übernimmt sämtliche Aufgaben.

Die Rechenergebnisse werden automatisch im TARGET 3001! - Postprozessor (Oszilloskop) oder im Schaltplan über interaktive Elemente (Voltmeter, Leuchtdiode, Oszis etc.) dargestellt.

Der Simulator-Kern ist eine Weiterentwicklung des Berkeley SPICE3F5 (letzte aktuelle Version des weltweit bekannten und bewährtem Berkeley SPICE). Es musste hauptsächlich die Simulation auf digitaler Ebene, wie im Simulationsprogramm PSPICE, eingebaut werden. Die Bezeichnung Mixed Mode bedeutet, das gleichzeitig auf analoger und digitaler Ebene simuliert wird. Auf der digitalen Ebene gibt es keine Spannungen und Ströme, sondern digitale Zustände (Low, High). Das digitale Grundelement „NOT" (Inverter) übersetzt ein Low/High am Eingang nach einer festlegbaren Verzögerungszeit zum Ausgang als High/Low. Die Schnittstellen (AD/DA-Wandler) zwischen digitalen Knoten und analogen Knoten werden ggf. automatisch vom Simulator eingebaut.


Spice Circuit Datei

Aus dem Simulator heraus kann man über diese Schnittstelle eine SPICE-Circuit-Datei erzeugen und damit zum Beispiel auch einen vorhandenen fremden Simulator direkt ansteuern. TARGET 3001! kann folgende Formate unterstützen : Spice3f5, PSpice, MicroCap und ICap.


Wie man die TARGET 3001!-Simulation im einem kleinen Projekt einsetzt, sehen Sie anhand zweier Artikel:
Simulieren_der_Funktion_Teil_1 und Simulieren_der_Funktion_Teil_2