Worst-Case Analyse mit LTSpice

(Gast) Thomas Wetzel

25/06/2020

Beim Entwickeln von Schaltungen hat man es immer mit toleranzbehafteten Bauteilen zu tun, welche die Funktionalität der Schaltung mehr oder minder stark beeinflussen können. Um den Einfluss von Bauteiltoleranzen auf die uns interessierenden Ausgangsgrößen zu ermitteln, bietet sich eine Simulation mit LTSpice an. Verbreitete Methoden wie die Monte-Carlo-Analyse sind bereits in LTSpice integriert. Dieser Beitrag beschäftigt sich mit einem vereinfachten, deutlich schnellerem Analyseverfahren, der Worst-Case Analyse, welche nur die äußersten Grenzwerte der Bauteiltoleranzen berücksichtigt.

Worst-Case bei einer einfachen Stromquelle

In diesem Beispiel sehen Sie den Aufbau einer einfachen Stromquelle mit einem npn-Transistor, 3 Widerständen (R1, R2 und R3) sowie einem Lastwiderstand (R_LOAD). Der Strom durch den Lastwiderstand ist dabei „lastunabhängig“ auf circa 1,84 mA eingestellt.

Um den Einfluss der Widerstandstoleranzen von R1, R2 und R3 auf den Laststrom durch R_LOAD zu bestimmen, bietet LTSpice mehrere vorgefertige Funktionen, um Bauteilwerte über mehrere Simulationsläufe zu variieren.

  • gauss(x), eine Zufallszahl mit Gaußverteilung mit einem Sigma von x
  • flat(x), eine Zufallszahl zwischen x und -x mit Normalverteilung
  • mc(x,y), eine gleichverteilte Zufallszahl zwischen x*(1+y) und x*(1-y)

All jene Funktionen bieten dann einen Vorteil, wenn es um die Verteilung der Streuung geht. Will ich als Entwickler jedoch nur abschätzen können, was im schlimmsten Fall aus meiner Schaltung herauskommt, dann sind diese Analyseverfahren oft sehr zeitaufwendig, da sehr viele Simulationsdurchläufe absolviert werden müssen, um mit hoher Wahrscheinlichkeit auch die Randwerte meiner Bauteiltoleranzen zu erwischen. Hier bietet sich ein anderes Verfahren an, welches mit Hilfe zweier manuell hinzugefügter Funktionen einfach realisierbar ist.

Worst-Case Analyse Funktionen

Dieses sogenannte Worst-Case-Analyseverfahren wird implementiert, indem man zwei Funktionen als Spice Directive in den zu analysierenden Schaltplan einfügt. Diese Funktionen sind:

.func wc(nom,tol,index) if(run==numruns,nom,if(binary(run,index),nom*(1+tol),nom*(1-tol)))

.func binary(run,index) floor(run/(2**index))-2*floor(run/(2**(index+1)))

Sind beide Funktionen auf den Schaltplan kopiert, können die Bauteilwerte von R1, R2 und R3 verändert werden. Dazu fügen wir für den jeweiligen Bauteilwert die Funktion {wc(nom,tol,index)} mit entsprechenden Werten ein. Für die Widerstandstoleranz wurde in unserem Beispiel ein Wert von 1% gewählt.

Für R1: {wc(10k,0.01,0)}
Für R2: {wc(10k,0.01,1)}
Für R3: {wc(1k,0.01,2)}

Beachten Sie dabei, dass jedem Bauteil neben dem Nominalwiderstandswert und der Toleranz auch ein fortlaufender Index, beginnend bei 0, zugewiesen werden muss. Um die Simulation starten zu können, fehlen noch die Informationen über die Anzahl der zu vollführenden Durchläufe. Bei 3 zu variierenden Bauteilen ergibt sich eine Durchlaufzahl von 2^n+1. In unserem Fall also 9 Durchläufe. Dies teilen wir LTSpice mit, indem wir die beiden folgenden Spice-Directives auf den Schaltplan legen:

.step param run 0 8 1
.param numruns=8

Simulationsergebnis

Anschließend können wir die Simulation starten und sehen folgendes Ergebnis:

Je nachdem, welche Bauteile geliefert wurden, kann es also sein, dass der Strom zwischen 1,79 mA und 1,88 mA variiert, was bei einem Nominalstromwert von 1,84 mA bereits mehr als 2% Abweichung sind. Dies kann nun vom Entwickler entsprechend interpretiert und damit eine Beurteilung zur Tauglichkeit der Schaltung vorgenommen werden. Am Rande erwähnt sei noch, dass in einer realistischeren Beurteilung auch die Toleranz der Spannungsversorgung und des npn-Transistors durchgeführt werden müsste, was ebenfalls mit der Worst-Case-Funktion realisierbar ist.

Bei Fragen zu diesem Analyse-Verfahren oder allgemein zu Simulationen in LTSpice, zögern Sie nicht und melden sie sich bei uns. Wir helfen Ihnen gerne weiter.


Geschrieben von (Gast) Thomas Wetzel

Mein Name ist Thomas Wetzel und ich habe Elektrotechnik und Mechatronik in Erlangen, Deggendorf und Dresden studiert, komme ursprünglich aber aus Forchheim in Oberfranken. Während eines Auslandsaufenthaltes in Papua-Neuguinea im Jahre 2010 arbeitete ich in einem Krankenhaus im technischen Bereich und konnte dort mit Begeisterung meine ersten Erfahrungen im medizinischen Umfeld erlangen. Während meines Masterstudiums in Erlangen und dem anschließenden Berufsstart bei Siemens Healthineers konnte ich Erfahrungen im Bereich der Hardwareentwicklung sammeln.


Weitere Beiträge

  • 29/01/2025
  • Allgemein, Hardware, Testen

EinleitungUm bei der EMV Prüfung für die Zulassung neuer medizintechnischer Geräte das Risiko zu reduzieren machen wir gerne Vortests mit den Geräten in der Prototypen Phase. Aktuell unterstützen wir ...

Weiterlesen
  • 12/11/2024
  • Allgemein, Software, Testen, Tools

In sicherheitskritischen Softwareprojekten steht die Qualität der Software an erster Stelle. Besonders bei Klasse-C-Software, die nach strengen Normen wie IEC 62304 (Medizintechnik) zertifiziert werden muss, ist es essenziell, dass ...

Weiterlesen
  • 12/09/2024
  • Allgemein, Fertigung, Hardware, Qualität

Die Schnellen fressen die Langsamen – die Bedeutung der schnellen Prototypenfertigung in der Elektronikentwicklung Unsere Bestückungsmaschine erlaubt uns kleinere Chargen manuell und wesentlich schneller zu bestücken. In der Elektronikbranche ...

Weiterlesen
Cookie-Übersicht

Die Internetseiten der MEDtech Ingenieur GmbH verwenden Cookies. Cookies sind Textdateien, welche über einen Internetbrowser auf einem Computersystem abgelegt und gespeichert werden.

Zahlreiche Internetseiten und Server verwenden Cookies. Viele Cookies enthalten eine sogenannte Cookie-ID. Eine Cookie-ID ist eine eindeutige Kennung des Cookies. Sie besteht aus einer Zeichenfolge, durch welche Internetseiten und Server dem konkreten Internetbrowser zugeordnet werden können, in dem das Cookie gespeichert wurde. Dies ermöglicht es den besuchten Internetseiten und Servern, den individuellen Browser der betroffenen Person von anderen Internetbrowsern, die andere Cookies enthalten, zu unterscheiden. Ein bestimmter Internetbrowser kann über die eindeutige Cookie-ID wiedererkannt und identifiziert werden.

Durch den Einsatz von Cookies kann die MEDtech Ingenieur GmbH den Nutzern dieser Internetseite nutzerfreundlichere Services bereitstellen, die ohne die Cookie-Setzung nicht möglich wären.

Mittels eines Cookies können die Informationen und Angebote auf unserer Internetseite im Sinne des Benutzers optimiert werden. Cookies ermöglichen uns, wie bereits erwähnt, die Benutzer unserer Internetseite wiederzuerkennen. Zweck dieser Wiedererkennung ist es, den Nutzern die Verwendung unserer Internetseite zu erleichtern. Der Benutzer einer Internetseite, die Cookies verwendet, muss beispielsweise nicht bei jedem Besuch der Internetseite erneut seine Zugangsdaten eingeben, weil dies von der Internetseite und dem auf dem Computersystem des Benutzers abgelegten Cookie übernommen wird.

Die betroffene Person kann die Setzung von Cookies durch unsere Internetseite jederzeit mittels einer entsprechenden Einstellung des genutzten Internetbrowsers verhindern und damit der Setzung von Cookies dauerhaft widersprechen. Ferner können bereits gesetzte Cookies jederzeit über einen Internetbrowser oder andere Softwareprogramme gelöscht werden. Dies ist in allen gängigen Internetbrowsern möglich. Deaktiviert die betroffene Person die Setzung von Cookies in dem genutzten Internetbrowser, sind unter Umständen nicht alle Funktionen unserer Internetseite vollumfänglich nutzbar.

Weitere Informationen erhalten Sie in unserer Datenschutzerklärung.

Unbedingt notwendige Cookies

Dieses Cookie wird benötigt, um Ihre Cookie-Einstellungen zu merken und weitere Hauptfunktionen zur Verfügung zu stellen

Um Ihnen eine Auskunft über Ihre gespeicherten personenbezogenen Daten hier (https://medtech-ingenieur.de/gespeicherte-daten-2/) geben zu können, benötigen wir einen Cookie, um Sie bei der Datenabfrage identifizieren zu können. Dieser Cookie muss aus Sicherheitsgründen deshalb aktiviert sein. Ein weiterer Cookie wird gesetzt, um diesen Banner nicht erneut anzeigen zu müssen.

Cookie-Name Beschreibung
PHPSESSID Name: PHP session
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Wir benötigt, um Sie bei der Anfrage von personenbezogenen Daten identifizieren zu können. Das Cookie wird nur gesetzt, wenn Sie eine Anfrage hier (https://medtech-ingenieur.de/gespeicherte-daten-2/) stellen.
Laufzeit: Sitzungsende
Kategorie: Unbedingt notwendige Cookies
moove_gdpr_popup Name: Cookie-Box Einstellungen
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Wird benötigt, um Ihre Cookie-Einstellungen zu speichern, um den Cookie-Banner nicht erneut anzeigen zu müssen.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
comment_author_9c90e388e3e1be4a6c594fa6ac8a3eec
comment_author_email_9c90e388e3e1be4a6c594fa6ac8a3eec
comment_author_url_9c90e388e3e1be4a6c594fa6ac8a3eec
Name: Kommentar Einstellungen
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Cookie wird angelegt, wenn Sie ein Kommentar auf MEDtech Ingenieur veröffentlichen wollen, um Sie als Autor identifizieren und den aktuellen Status Ihres Kommentars anzeigen zu können. Das Cookie enthält den angegebenen Namen. Das Cookie wird erst gesetzt, wenn Sie der Speicherung Ihrer personenbezogenen Daten zustimmen.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
rmp-rate Name: RMP Rate
Anbieter: Eigentümer der Webseite (MEDtech Ingenieur)
Zweck: Cookie wird angelegt, wenn Sie eine Bewertung eines Blogbeitrags mithilfe des Sternebewertungssystems abgeben. Ihnen wird eine anonymisierte ID zugewiesen, um zu erkennen, ob Sie einen Artikel bereits bewertet haben oder nicht. Das Cookie wird nur verwendet, um zu verhindern, dass mehrfache Bewertung abgegeben werden und erst gesetzt, wenn Sie auf einen Stern klicken.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
medtech-download-page Name: Download Page
Anbieter: Eigentümer der Webseite (MEDtech Ingenieur)
Zweck: Cookie wird angelegt, wenn Sie den Landing-Page Prozess erfolgreich durchlaufen haben. Dies geschieht nur, wenn Sie einen Content-Download von unserer Website anstreben.
Laufzeit: 1/2 Jahr
Kategorie: Unbedingt notwendige Cookies