vorhergehende Seite nächste Seite Inhaltsangabe

25. Die Monte-Carlo-Analyse

Die Demonstrationsschaltung
Die Vergabe von Bauteiletoleranzen
Die Transientenanalyse einrichten
Die Monte-Carlo-Analyse einrichten
Die Monte-Carlo-Analyse ausführen
Die Arbeitspunktangaben in Probe für jeden Durchgang
Die tatsächlichen Bauteilewerte eines jeden Durchgangs
Die graphische Ausgabe in Probe
Histogramme oder Balkendiagramme
Der AC-Sweep (Frequenzganguntersuchung)
Die Quelle VSIN für den AC-Sweep vorbereiten
Die Einstellungen für die Vergleichsfunktionen unter "More Settings"
Anzeige einzelner Durchgänge im Probe-Fenster

Mit der Monte-Carlo-Analyse können Sie den Bauteilen unterschiedliche Toleranzen vergeben, um dann die Schaltung nach dem Zufallsprinzip einer statistischen Untersuchung zu unterziehen (Monte-Carlo-Analyse). Dabei wird die Schaltung mehrmals hintereinander vollständig simuliert. Für jede neue Simulation (Durchgang) liefert das Programm neue, per Zufall ausgewählte Bauteilewerte für die toleranzbehafteten Bauteile. Später erfahren Sie noch, wie Sie den einzelnen Modell-Parametern Toleranzen vergeben können, um z.B. die Exemplarstreuungen von Halbleitern zu berücksichtigen. Es besteht auch die Möglichkeit jedem Parameter bzw. Bauteil eine eigene Verteilungskurve zuzuweisen.

Die Demonstrationsschaltung

Die zu untersuchende Schaltung stellt einen einfachen Emitterschaltung mit Stromgegenkopplung dar. Die Kondensatoren C1 und C3 tragen dafür Sorge, dass der Frequenzgang zwischen etwa 300 und 3000 Hz nach oben und unten eine Begrenzung erfährt. Ri stellt den Innenwiderstand der Eingangsquelle VSIN dar. Sowohl der Frequenzgang (AC-Sweep) als auch die Transientenanalyse (Zeitbereich, Oszilloskop) soll in Verbindung mit einer Monte-Carlo-Analyse untersucht werden.


Die Schaltung der Emitterschaltung (die vorbereitete Schaltung finden Sie unter mc1 oder mc1.zip).

Die Vergabe von Bauteiletoleranzen

Um eine Monte-Carlo-Analyse vornehmen zu können, muss mindestens ein Bauteil oder ein Modell-Parameter eine Toleranzangabe enthalten. Wie Sie passiven Bauteilen (Widerständen, Kondensatoren, Induktivitäten) Toleranzen vergeben, erfahren Sie nachfolgend am Beispiel eines Widerstandes:


So vergeben Sie passiven Bauteilen Toleranzen und machen diese im Schaltbild sichtbar.

Die Vorgehensweise Schritt-für-Schritt erklärt:

1. Klicken Sie doppelt auf das markierte Bauteil (hier R1), um den Property-Editor (Eigenschaftenfenster) zu öffnen.
2. Tragen Sie im Property-Editor in der Spalte "TOLERANCE" die Bauteile-Toleranz ein. Vergessen Sie dabei nicht das Prozent-Zeichen. Im Beispiel wurden 10% (ohne Leerzeichen) eingetragen. Dies bedeutet, dass der Widerstandswert von R1 zwischen 180 kOhm plus minus 10% bewegen kann.

Damit wäre die eigentliche Arbeit  schon erbracht. Allerdings würden Sie die Toleranzangabe noch nicht in Ihrem Schaltbild sehen können. Dazu sind noch die folgenden Schritte nötig:

3. Klicken Sie auf den Knopf "TOLERANCE", welcher am Anfang der betreffenden Spalte angebracht ist. So geschehen, muss diese Spalte schwarz erscheinen.
4. Klicken Sie auf den Knopf "Display..." der Werkzeugleiste des Property-Editors. Es öffnet sich ein Fenster "Display Properties".
5. In diesem Fenster aktivieren Sie "Value Only". Bestätigen Sie nun mit dem OK-Knopf. Dann schließen Sie den Property-Editor.

Die Transientenanalyse einrichten

Für die Transientenanalyse (Untersuchung im Zeitbereich) vergeben Sie in unserem Beispiel für "Run to time" = 5 ms, für "Start saving data after" = 1 ms und für "Maximum step size" = 0.005ms (sollte diese Rechenschrittweite zu klein sein, weil Ihr Rechner zu langsam ist, darf diese Angabe entfallen):


Die Angaben für die Transientenanalyse.

Mit diesen Angaben alleine könnten Sie allerdings nur die Schaltung ohne Berücksichtigung der Toleranzen simulieren. Für die statistische Untersuchung müssen Sie noch zusätzlich die Monte-Carlo-Analyse einrichten und aktivieren.

Die Monte-Carlo-Analyse einrichten

Bei der Monte-Carlo-Analyse verteilt das Programm nach dem Zufallsprinzip den toleranzbehafteten Bauteilen neue Werte, welche sich im Rahmen der jeweiligen Toleranzangabe bewegen. Anschließend erfolgt mit diesen neuen Bauteilewerten eine Simulation. Eine einzige Simulation würde allerdings keine statistische Aussage erlauben. Um eine signifikantes, statistisches Ergebnis zu erhalten, müssen Sie dieses Spiel mehrmals wiederholen lassen. Bei jedem neuen Simulations-Durchgang (Pass) werden dann per Zufall den Bauteilen neue Werte zugeteilt. Das alles erfolgt selbstverständlich automatisch. Die Anzahl der Simulationsdurchgänge können Sie selbst bestimmen.

Klicken Sie zum Einrichten der Monte-Carlo-Analyse im Fenster "Simulations Settings" / Registerkarte "Analysis" unter "Options" auf "Monte Carlo/Worst Case". Achten Sie dabei, dass dort das kleine Häkchen  sichtbar ist (häufiger Fehler). Andernfalls würde das Programm die Monte-Carlo-Analyse nicht ausführen - selbst dann, wenn Sie schon die Daten dafür eingetragen haben:


So bereiten Sie die Monte-Carlo-Analyse vor.

1. Aktivieren Sie "Monte Carlo" und nicht "Worst-case/Sensitivity"

2. Tragen Sie unter "
Output variable" den Wert V(aus) ein. Für die grafische Ausgabe spielt es eigentlich keine Rolle, welchen Knoten Sie hier angeben, denn die statistische Auswertung wird ja auf jeden Fall für jeden Knoten der Schaltung durchgerechnet. Wenn Sie aber hier z.B. V(aus) angeben, sehen Sie nach erfolgter Simulation in der Output-Datei eine sortierte Liste der statistischen Abweichungen von V(aus) untergebracht. Was genau untersucht werden soll, können Sie mit dem Knopf  "More Settings" auswählen.

3. Unter "Number of runs" tragen Sie ein, wie viele Simulationsdurchgänge mit jeweils anderen, nach dem Zufallsprinzip vergebenen Bauteilewerten durchgeführt werden sollen. Je höher diese Zahl, desto länger dauert natürlich der gesamte Simulationsvorgang und desto höher ist die Wahrscheinlichkeit, dass der Worst Case ermittelt wird.


4. Unter "Use Distribution" geben Sie die statistische Verteilungskurve an. In der Wirklichkeit ist es die Gaußsche Glockenkurve (Gaussian). Dies bedeutet, dass solche Werte, die dicht beim Nominalwert liegen, mit einer größeren Wahrscheinlichkeit auftreten werden. Wenn Sie hier allerdinds "Uniform" auswählen, bekommt jeder Wert die gleiche Chance. Damit steigt auch die Wahrscheinlichkeit, dass Sie dem ungünstigen Fall (Worst Case) näher kommen. Mit dem Knopf "Distributions" können Sie sogar eigene Verteilungskurven in Form von Wertepaaren eintragen und abspeichern. Mehr zum Unterschied zwischen der uniformen und der Gauß-Verteilung finden Sie hier.

5. Unter "Random number seed" tragen Sie den Startwert für den Zufallsgenerator ein. Es dürfen nur ungerade Werte zwischen 1 und 32767 zum Einsatz kommen. Wenn Sie denselben Startwert verwenden, hat dies zur Folge, dass Sie trotz erneuter Simulation exakt dasselbe Ergebnis erhalten. Wenn Sie in diesem Feld nichts eintragen, verwendet das Programm den Wert 17533.

Unter "Save data from" könnten Sie noch bestimmen, welche Daten der Monte-Carlo-Analyse sowohl in Probe (dort in der DAT-Datei) als auch in der Output-Datei (OUT-Datei) festgehalten werden sollen. Dazu können Sie die folgende Auswahl treffen:

<none>: Nur der Nominaldurchgang (also ohne Toleranzen) wird abgespeichert.
All: Alle Durchgänge werden gespeichert.
First <n Durchgang>: nur die ersten n Durchgänge
Every <n. Durchgang>: nur jeder n-te Durchgang
Runs (list) < a b c d ...>: nur die aufgelisteten Durchgänge werden angezeigt. Die Nummern sind nur durch Leerzeichen zu trennen, z.B. . Maximal 25 Nummern können Sie eintragen.

Die Monte-Carlo-Analyse ausführen

Die Simulation starten Sie wie gewohnt mit F11 auf Ihrer Tastatur. Bevor  nach der Simulation die eigentliche grafische Ausgabe zu sehen ist, erscheint in Probe ein Auswahlfenster, das Sie bereits von der parametrischen Simulation her kennen:


Hier können Sie alle oder bestimmte Simulationsdurchgänge auswählen.

Mit diesem Fenster können Sie alle oder nur bestimmte Simulationsdurchgänge markieren, auswählen und anschließend  in Probe anzeigen lassen. Die einzelnen Durchgänge sind nummeriert.

Die Arbeitspunktangaben in Probe für jeden Durchgang

Mit Hilfe der Nummer finden Sie in der Output-Datei  für jeden Durchgang die dazugehörigen Gleichspannungen des Arbeitspunktes wieder. Zum Beispiel für den 750. Durchgang:


Angaben zum Arbeitspunkt für den 750. Durchgang der Monte-Carlo-Analyse.

Die tatsächlichen Bauteilewerte eines jeden Durchgangs

Wenn Sie exakt jeden tatsächlichen Bauteilewert eines jeden Durchgangs erfahren möchten, müssen Sie im Fenster "Simulations Settings" den Knopf "More Settings.." betätigen. Er befindet sich ebenfalls dort, wo Sie die Angaben für die Monte-Carlo-Analyse vornehmen (siehe nachfolgendes Bild). Es öffnet sich dann ein Fenster "Monte Carlo/Worst-Case Output File Options". In diesem aktivieren Sie mit einem Häkchen "List model parameter values in the output file for each run":


So lassen Sie sich in der Output-Datei die tatsächlichen Bauteilewerte für jeden Simulationsdurchgang anzeigen.

Dann finden Sie nach erfolgter Simulation in der Output-Datei eine nach den Durchgängen geordnete Liste, aus der Sie für jeden Durchgang und jedes toleranzbehaftete Bauteil die tatsächlichen Werte ermitteln können. Die Abweichungen liegen als Faktoren vor:


Die tatsächlichen Abweichungen der toleranzbehafteten Bauteile sind für jeden Durchgang in der Output-Datei aufgelistet.

Die graphische Ausgabe in Probe

Die grafische Ausgabe von allen 1000 einzelnen Simulationen lässt in Probe kaum einzelne Kurvenzüge erkennen:


Das graphische Ergebnis von 1000 Transientensimulationen.

Auffallend ist z.B. der oberste, blaue Kurvenzug, welcher sehr stark von allen anderen abweicht. Eine nähere Untersuchung würde sich lohnen. Um dazu seine Nummer zu erfahren, klicken Sie mit der rechten Maustaste auf diesen Kurvenzug, damit sich ein kleines Fenster öffnet. Dort klicken Sie auf "Information. In einem weiteren Fenster erscheint die Nummer. Es ist die 459, nach der Sie in der Output-Datei suchen. Wenn Sie sich nur die 459. Simulation anzeigen lassen wollen, müssen Sie dazu im Fenster "Add Traces" lediglich "V(aus)@495" eintragen. Diese Vorgehensweise kennen Sie schon von der parametrischen Simulation.

Histogramme oder Balkendiagramme

Da die grafische Ausgabe nur einen groben Überblick liefert, bietet Probe die Möglichkeit an, sich die Ergebnisse in Form von Histogrammen oder Balkendiagrammen die statistischen Verteilungen anzeigen zu lassen.

Der AC-Sweep (Frequenzganguntersuchung)

Die Quelle VSIN für den AC-Sweep vorbereiten

Für die Frequenzganganalyse (AC-Sweep) müssen wir unsere Schaltung noch etwas abändern, denn die Sinusspannungsquelle VSIN, welche die Schaltung speist, ist eigentlich nur für die Transientenanalyse geeignet. Um diese Quelle auch für den AC-Sweep verwenden zu können, müssen Sie den Property-Editor öffnen und in der Spalte "AC" "1V" eintragen:


So können Sie die Quelle VSIN auch für den AC-Sweep verwenden: Tragen Sie 1V in die Spalte AC des Property-Editors ein.

Die Vorgehensweise Schritt für Schritt:

1. Klicken Sie doppelt auf das Symbol VSIN, um den Property-Editor aufzurufen.
2. Geben Sie in der Spalte "AC" "1" oder "1V" ein. Dann liefert VSIN für den AC-Sweep einen Bezugswert von 1 Volt. Sie funktioniert dann im AC-Sweep wie die Quelle VAC. Quergestreifte Felder bedeuten übrigens, dass diese in der Voreinstellung leer stehen.
3. Schließen den Property-Editor wieder. Zuvor könnten Sie den neuen Eintrag auch mit Hilfe des Display-Knopfes im Schaltbild sichtbar machen.

Für die AC-Analyse wählen Sie folgende Einstellungen:


Die Einstellungen für die AC-Analyse.

Für die Monte-Carlo-Simulation wählen Sie folgende Einstellungen:


[Image]
Die Einstellungen für die Monte-Carlo-Analyse.

Dann erhalten Sie folgende Frequenzgänge:


Das Ergebnis der Monte-Carlo-Analyse bei 3000 Durchgängen.

Die Monte-Carlo-Analyse zeigt, dass bei 3000 Durchgängen 3 Simulationen ganz erhebliche Abweichungen vorweisen. Die Schaltung würde also nicht in jedem Fall das gewünschte Resultat liefern.

Die Einstellungen für die Vergleichsfunktionen unter "More Settings"

Diese Einstellung ist nur für Angaben in der Output-Datei von Bedeutung. Wenn Sie im Eingabefenster für die Monte-Carlo/Worst-Case-Simulation den Knopf "More Settings" betätigen, öffnet sich das folgende Fenster:


Über den Knopf "More Settings" können Sie sich verschiedene Ausgaben in der Output-Datei anzeigen lassen.

Die Vergleichsfunktionen, deren Ergebnisse in Form einer nach der Abweichung sortierten Liste in der Output-Datei abgespeichert werden, können Sie im Auswahlfenster "Find" auswählen. Die Vergleichsfunktionen beziehen sich immer auf die Nominalwerte und für den Wert (z.B. V(out)), welchen Sie unter "Output Variable" eingetragen haben:

YMAX sucht den größten Unterschied der Y-Werte zwischen der Nominalkurve und der Kurve des n-ten Durchgangs. Die Ergebnisse werden als sortierte Liste ausgegeben.  Achten Sie darauf, das genügend simulierte Punkte vorhanden sind, da sonst durch die lineare Interpolation zwischen den Punkten falsche YMAX-Werte angegeben werden. Achten Sie außerdem darauf, dass eventuelle Einschwingvorgänge keine Berücksichtigung finden können.

MAX findet den absoluten Maximalwert der Y-Werte.

MIN findet den absoluten Minimalwert der Y-Werte.

RISE_EDGE findet die steigende Flanke, die ab einem bestimmten Schwellenwert, den Sie unter "Threshold Value" eintragen, beginnt.

FALL_EDGE findet die fallende Flanke, die ab einem bestimmten Schwellenwert "Threshold Value" beginnt.

Bei allen Vergleichsfunktionen kann der zu untersuchende Bereich zudem unter "Evaluate only when the sweep variable is in the range" eingegrenzt werden.

Anzeige einzelner Durchgänge im Probe-Fenster

Wie bei der Parametrischen Simulation kann man sich mit dem @-Symbol einzelne Durchgänge gezielt in Probe anzeigen lassen.


Anzeige des 5. Simulationsdurchgangs mit dem Ausdruck V(aus)@5 in der Monte-Carlo-Analyse.

Beachten Sie, dass Sie den Ausdruck "V(aus)@5" erst dann erfolgreich in das Add-Traces-Fenster eingeben können, wenn Sie zuvor alle Kurvenzüge im Probe-Fenster gelöscht haben. Die gilt ebenso für die Parametrischen Analyse.

Zum nächsten Abschnitt.