Die Grundlagen von Monte Carlo in SPICE: Theorie und Demonstration

Zachariah Peterson
|  Erstellt: April 14, 2022  |  Aktualisiert am: September 2, 2024
Monte Carlo in SPICE

Immer wenn Sie eine Komponente auf Ihrer Leiterplatte platzieren, ist es fast so, als würden Sie wetten. Alle Komponenten haben Toleranzen, und einige davon sind sehr präzise (zum Beispiel Widerstände), aber andere Komponenten können sehr weite Toleranzen bei ihren Nennwerten aufweisen (z.B. Drahtgewickelte Induktoren oder Ferrite). Für den Fall, dass die Toleranzen dieser Komponenten zu groß werden, wie können Sie vorhersagen, wie diese Toleranzen Ihre Schaltkreise beeinflussen werden?

Obwohl Sie Variationen um die nominalen elektrischen Werte (Spannung, Strom oder Leistung) von Hand berechnen könnten, ist das Durchführen dieser Berechnungen von Hand sehr zeitaufwendig, besonders bei großen Schaltkreisen. SPICE-Simulatoren haben jedoch eine sehr nützliche Art der Simulation aus der Wahrscheinlichkeitstheorie übernommen, um Ihnen bei der Beantwortung dieser Fragen zu helfen. Diese Art der Simulation ist als Monte Carlo bekannt, und Sie können diese Simulation jetzt mit dem SPICE-Paket in Altium Designer durchführen.

In diesem Artikel werde ich einen Überblick über die Theorie geben, die zum Verständnis und zum Aufbau von Monte-Carlo-Simulationen notwendig ist. Anschließend werde ich einige Beispielresultate für einen Spannungsreglerkreis zeigen und wie die Ergebnisse durch Toleranzen beeinflusst werden. Monte-Carlo-Simulationen erzeugen eine große Menge an Daten, die Sie nutzen können, um Statistiken für den Betrieb Ihres Schaltkreises zu erstellen. Dies gibt Ihnen eine gute Vorstellung davon, ob Ihr Produkt aufgrund von Toleranzen bei den Bauteilwerten sehr wahrscheinlich Ihren Spezifikationen entspricht.

Monte Carlo in SPICE-Simulationen

Monte-Carlo-Simulationen basieren auf einem einfachen Prozess: Zufällig eine Reihe von Zahlen generieren und dann diese zufälligen Zahlen in einem mathematischen Modell verwenden, um etwas Nützliches zu berechnen. Wenn eine Monte-Carlo-Simulation in SPICE verwendet wird, generiert die Simulation die Bauteilwerte in Ihrem Schaltkreis zufällig unter Verwendung von Toleranzen, die Sie definieren. Anschließend verwendet sie diese zufällig generierten Bauteilwerte, um eine Standard-SPICE-Simulation durchzuführen. Dieser Prozess wird mehrmals wiederholt (manchmal hunderte Male), um Ihnen eine Datenmenge zu liefern, die beschreibt, wie sich das Verhalten Ihres Schaltkreises aufgrund von Bauteiltoleranzen ändert.

SPICE-Pakete implementieren Monte-Carlo-Simulationen durch einen einfachen Prozess. Dies umfasst die Generierung von Zufallszahlen und die Berechnung von Spannung und Strom im Standard-SPICE-Algorithmus, gefolgt von der Anzeige der Ergebnisse in einer Tabelle oder einem Diagramm:

  1. Wählen Sie aus, welche Komponenten zufälligen Schwankungen unterliegen sollen, und definieren Sie die Toleranz für die Komponente.
  2. Wählen Sie eine Verteilung für die Komponententoleranzen (Gauß-Verteilung wird am häufigsten verwendet) und die Anzahl der Simulationsdurchläufe.
  3. Der SPICE-Simulator generiert zufällige Komponentenwerte unter Verwendung des im Schaltplan definierten Nennwerts und der in Schritt 2 definierten Toleranz/Verteilung.
  4. Der SPICE-Simulator berechnet die Zielspannung/-strom/-leistung an jedem Punkt im Schaltkreis unter Verwendung der zufälligen Komponentenwerte in Schritt 3.
  5. Die Schritte 3 und 4 werden wiederholt, bis die gewünschte Anzahl von Simulationsdurchläufen erreicht ist.
  6. Die Ergebnisse aus Schritt 5 werden in einem Diagramm oder einer Tabelle für weitere Untersuchungen oder Analysen zusammengefasst.

Beispiel: Monte-Carlo-Simulation eines Spannungsreglers

In dem kommenden Beispiel habe ich den unten gezeigten Buck-Konverter-Schaltkreis verwendet. Dieser Schaltkreis verwendet eine relativ große Induktivität im Hauptteil (L1), gefolgt von einem L-Filter am Ausgang, um das Schaltungsrauschen weiter zu reduzieren. Der Ausgangskondensator hat einen Snubber-Widerstand, um die Stärke der transienten Antwort zu reduzieren und die Ausgangsspannung zu glätten.

Monte Carlo SPICE buck converter
Buck-Konverter-Schaltung, die ich in diesem Beispiel-Simulation verwenden werde.

Diese Schaltung soll die Eingangsspannung von 25 V auf etwa 6,75 V herunterregeln. In meiner Simulation werde ich zulassen, dass die Induktivitätswerte um bis zu 30% variieren, und ich werde 15 Durchläufe durchführen. Diese große Variation könnte bei einigen Drahtwickelinduktoren und Ferriten zu finden sein, und die Verwendung einer so großen Variation kann Ihnen helfen zu sehen, welche extremen Werte von Ripple und Überschwingen auftreten könnten.

Der andere Grund, warum der Induktor die variierende Komponente ist, liegt darin, dass er ein entscheidender Faktor für das Ausgangsripple ist, wenn der Wandler im dauerhaften Leitungsmodus betrieben wird. Wir könnten sogar noch einen Schritt weitergehen und den Induktorstrom selbst betrachten, um zu sehen, wie nahe der Induktorstrom dem dauerhaften Leitungsmodus kommt, wenn wir das worst-case elektrische Verhalten wirklich überprüfen müssten.

Ergebnisse

Einige erste Ergebnisse, die die transiente Antwort bei 30% Variationen in den Komponentenwerten zeigen, sind unten dargestellt. Aus diesem Fenster sehen wir, dass der Wandler bereits ein Überschwingen aufweist, das je nach den Werten der Induktoren zwischen 8,37 V und 8,56 V liegt. Die Werte für die untere Kontur (in Grün, L1 = 91,9 uH, L2 = 6,16 uH) und obere Kontur (in Lila, L1 = 122uH, L2 = 7,64 uH) sind im Diagramm unten markiert.

Monte Carlo SPICE simulation
Transient Analyseergebnisse für unseren Buck-Konverter mit Monte Carlo in SPICE generiert.

Jede Kurve entspricht einem Paar zufällig generierter Induktivitätswerte. Aus den Ergebnissen können wir deutlich die Auswirkungen von Variationen in der Induktivität sehen:

  1. Es gibt einige Variationen in der Anstiegszeit, dem Überschwingen und der transienten Antwort, wenn der Regler eingeschaltet wird.
  2. Jeder mögliche Induktivitätswert erzeugt sehr kleine Änderungen im Ripple auf der Ausgangsspannungswellenform.

Die Tatsache, dass der Ausgangsripple so niedrig bleibt, ist ermutigend; es bedeutet, dass wir uns auf dieses Design verlassen können, um einen konsistenten Ripple zu liefern, vorausgesetzt, es gibt kleine Variationen in allen anderen Parametern.

Warum ist die Änderung im Ripple so niedrig?

Ohne auf die Gleichung für das Ausgangsrippel als Funktion der Ausgangsinduktivität zu schauen, ist es natürlich anzunehmen, dass eine Änderung der Induktivität um +/- 30% ähnlich große Variationen in der Ausgangsinduktivität erzeugen würde. Wenn wir jedoch die Gleichung für das Spannungsrippel am Ausgangsstrom für einen Buck-Konverter im kontinuierlichen Leitmodus betrachten, können wir sehen, warum dies nicht der Fall ist:

Monte Carlo SPICE
Ausgangstrom Ripple für einen Buck-Konverter.

Da der Induktivitätswert im Nenner steht, wird der Effekt dieser Variationen reduziert. Dies kann man sehen, indem man eine Störung um die nominellen Induktivitätswerte nimmt und betrachtet, wie die Rippelsensitivität proportional zu jeglicher Variation in den Induktivitäten ist:

Monte Carlo SPICE
Abweichung des Ausgangswellenstroms für unsere 30%ige Toleranz an den Induktoren. Wir können sehen, dass die Wirkung dieser Variationen kleiner ist, wenn der Induktor größer ist.

Der Einfluss dieser Variationen wird durch den Wert der Induktivität reduziert. Mit anderen Worten, eine 30% Toleranz für eine große Induktivität wird eine viel geringere Änderung im Ausgangsrippel erzeugen als die gleiche 30% Toleranz bei einer kleineren Induktivität. Dieses Verhalten ist typisch, wenn die Beziehung zwischen einem elektrischen Wert (in diesem Fall Strom) und dem betreffenden Bauteilwert nichtlinear ist.

Zusätzlich liegt die 3-dB-Grenzfrequenz im Ausgangsfilter (L2 + C2) bereits unter der PWM-Frequenz, die Q1 moduliert. Die 3-dB-Grenzfrequenz in diesem Filterabschnitt beträgt nominell 41,1 kHz, während die Ripple-Frequenz der PWM-Frequenz von 100 kHz entspricht. Das Ripple wird bereits deutlich gefiltert, sodass die resultierenden Variationen in der Grenzfrequenz nicht so starken Einfluss auf das Ausgangsripple haben.

Statistische Analyse

Wenn Sie eine Monte-Carlo-Analyse durchführen möchten, müssen Sie möglicherweise einige statistische Analysen durchführen, um die Grenzen des Verhaltens Ihrer Schaltung aufgrund zufälliger Variationen in den Bauteilwerten wirklich zu verstehen. Im untenstehenden Diagramm habe ich meine obigen transienten Analyseergebnisse genommen und die maximale Spannung, die während der Einschaltphase aufgrund von Überschwingen auftritt, extrahiert. Ich habe den Durchschnitt und die Standardabweichung berechnet, um die Auswirkungen von Variationen in den Induktivitätswerten zu quantifizieren.

Um Ihre transienten Ergebnisse in CSV oder einem anderen Datenformat zu exportieren, verwenden Sie den Befehl Datei → Exportieren → Plot aus dem Hauptmenü in Altium Designer. Sie können dann Ihre Daten in Excel, MATLAB, Mathematica oder ein anderes Datenanalyseprogramm importieren.

Monte Carlo SPICE statistics
Durchschnittliche und Standardabweichung der Überschreitungsspannung, die aus vorübergehenden Reaktionen ermittelt wird.

Wenn wir ein Konfidenzintervall mit unseren gesammelten Daten und den oben genannten statistischen Werten erstellen, werden 95% dieser Schaltungen ein Überschwingen im Bereich von 8,375 V bis 8,605 V aufweisen. Wenn wir eine weitere Analyse durchführen möchten, wie zum Beispiel eine Worst-Case-Analyse, könnten wir einen dieser Extremwerte verwenden, um das Verhalten der Schaltung zu verstehen.

Zuverlässigkeitsbewertung mit größeren Datensätzen

Um die Zuverlässigkeit statistisch zu bewerten, könnten Sie eine viel größere Anzahl von Simulationen durchführen, sodass Sie viele Datenpunkte zur Ansicht hätten. Mit mehr Daten könnten Sie ein Histogramm aus Ihren extrahierten Messungen erstellen und dies verwenden, um eine Wahrscheinlichkeitsverteilung zu erhalten, die das Verhalten der Schaltung definiert; Sie könnten dann diese Werte verwenden, um die Wahrscheinlichkeit zu bestimmen, dass die Schaltung in einem völlig inakzeptablen Regime arbeitet (jenseits der extremen Werte in unserem Konfidenzintervall).

Nur zum Spaß habe ich die Anzahl der Simulationen in dieser Analyse auf 100 Durchläufe erhöht. Die transienten Ergebnisse mit 100 Iterationen werden unten gezeigt. Aus diesen Kurven können wir erneut die maximale Überspannung während der Einschaltphase extrahieren.

Monte Carlo SPICE statistics
Übergangsreaktion während der ersten 100 uns der Einschaltphase. Aus diesem Satz von 100 Kurven konnten wir die Überschreitungsspannung für jede Kurve extrahieren und eine Wahrscheinlichkeitsverteilung bestimmen, die die maximale Spannung beschreibt.

Wenn Sie die Ergebnisse in Excel exportieren, haben Sie nun genügend Daten, um ein Histogramm wie das unten gezeigte zu erstellen. Die überlagerte orangefarbene Kurve zeigt die kumulative Funktion, die aus den gruppierten Daten bestimmt wurde; sie zeigt, welcher Prozentsatz der Daten auf oder unterhalb der aktuellen Gruppe liegt und kann als Maß für den erwarteten Betriebsbereich dieses Schaltkreises verwendet werden.

Monte Carlo SPICE statistics
Übershoot-Spannungsstatistiken, die aus 100 Simulationen ermittelt werden.

Die Quintessenz hier ist, dass wir eine schnelle und einfache Methode haben, um zu überprüfen, wie die Schaltkreisleistung angesichts der Komponententoleranzen variieren wird. Wenn die Ergebnisse nicht innerhalb unserer Spezifikationen oder Sicherheitsmargen liegen, muss der Schaltkreis vor der Erstellung des PCB-Layouts und dem Zusammenbau eines Prototyps modifiziert werden.

Wenn Sie an der Durchführung von Monte-Carlo-Simulationen für Ihre Schaltkreise innerhalb von Altium Designer® interessiert sind, benötigen Sie kein externes Simulationspaket oder spezialisierte Analyse-Software. Alles, was Sie benötigen, um Ihre Schaltkreise zu bewerten und Zuverlässigkeitssimulationen durchzuführen, finden Sie im Schaltplan-Editor in Altium Designer. Sobald Sie Ihre PCB fertiggestellt haben und bereit sind, Ihre Entwürfe mit Mitarbeitern oder Ihrem Hersteller zu teilen, können Sie Ihre fertigen Entwürfe über die Plattform Altium 365™ teilen. Alles, was Sie benötigen, um fortschrittliche Elektronik zu entwerfen und zu produzieren, finden Sie in einem Softwarepaket.

Wir haben nur an der Oberfläche dessen gekratzt, was mit Altium Designer auf Altium 365 möglich ist. Starten Sie heute Ihre kostenlose Testversion von Altium Designer + Altium 365.

Über den Autor / über die Autorin

Über den Autor / über die Autorin

Zachariah Peterson verfügt über einen umfassenden technischen Hintergrund in Wissenschaft und Industrie. Vor seiner Tätigkeit in der Leiterplattenindustrie unterrichtete er an der Portland State University. Er leitete seinen Physik M.S. Forschung zu chemisorptiven Gassensoren und sein Ph.D. Forschung zu Theorie und Stabilität von Zufallslasern. Sein Hintergrund in der wissenschaftlichen Forschung umfasst Themen wie Nanopartikellaser, elektronische und optoelektronische Halbleiterbauelemente, Umweltsysteme und Finanzanalysen. Seine Arbeiten wurden in mehreren Fachzeitschriften und Konferenzberichten veröffentlicht und er hat Hunderte von technischen Blogs zum Thema PCB-Design für eine Reihe von Unternehmen verfasst. Zachariah arbeitet mit anderen Unternehmen der Leiterplattenindustrie zusammen und bietet Design- und Forschungsdienstleistungen an. Er ist Mitglied der IEEE Photonics Society und der American Physical Society.

Ähnliche Resourcen

Verwandte technische Dokumentation

Zur Startseite
Thank you, you are now subscribed to updates.