Salz in der Suppe: Elektroniksimulation mit Spice

Mit der wachsenden Leistungsfähigkeit der Computer gewinnt die Schaltungssimulation zunehmend an Bedeutung. Analogschaltungen jedoch sind eine harte Nuß.

Abb. 1: Amplitudengang des Differenzverstärkers

Wer sich als Elektronikfreak und Bastler nach Simulationsprogrammen für Digitalelektronik auf dem Atari ST umschaut, wird sogar im PD-Markt schnell fündig. Da überhaupt nur zwei bzw. drei verschiedene Zustände in jeder Leitung möglich sind, ist es keine Hexerei, eine Softwaresimulation für solche digitalelektronischen Schaltungen zu programmieren.

Will man zusätzlich auch das Zeitverhalten der Schaltkreise in der Simulation berücksichtigen, wird die Sache zwar schon etwas problematischer, stellt einen guten Programmierer aber immer noch nicht vor unlösbare Aufgaben. Daraus erklärt sich wohl auch das relativ gute Angebot digitaler Schaltungssimulatoren für ST.

Ganz anders sieht die Sache jedoch aus, wenn es an die Simulation von Analogelektronik geht. Hier sind tausenderlei Faktoren zu berücksichtigen und Probleme zu bewältigen. Zunächst einmal müssen geeignete Rechenmodelle gefunden werden, die die Bauteile überhaupt hinreichend beschreiben bzw. simulieren: Widerstände sind ja noch relativ einfach mathematisch zu modellieren (vernachlässigt man einmal solche Feinheiten wie das Rauschverhalten). Halbleiter-Bauelemente jedoch folgen komplizierten Verhaltensweisen, die insbesondere nichtlinear sind. Schließlich ist in analogelektronischen Schaltungen praktisch immer Rückkopplung im Spiel, d.h., man kann einzelne Knoten (die Verbindungen zwischen Bauteilen) nicht einfach der Reihe nach abarbeiten wie bei einer Digitalsimulation. Um auch nur für einen einzigen Zeitpunkt den Zustand einer Schaltung zu bestimmen, muß ein kompliziertes nichtlineares Gleichungssystem gelöst werden.

Abb. 2: Einfache Testschaltung

Kein Wunder, daß solche Programme rar und die brauchbaren unter ihnen ausgesprochen teuer sind. Aber eine Ausnahme gibt es doch: ein PD-Programm namens Spice, das sogar für den ST zu haben ist. Wohl die meisten professionellen Elektronikentwickler dürften mit irgendeiner Version von Spiee arbeiten, dem Hobbyisten ist der würzige Simulator jedoch relativ unbekannt (»Spiee« heißt »Gewürz«). Das liegt daran, daß die einfachen PD-Versionen von Spiee ausgesprochen umständlich zu bedienen sind. Dazu muß man wissen, daß Spiee ein Fortran-Programm ist, das auf jeglichen Schnickschnack verzichtet (die kommerziellen, teuren Versionen bieten natürlich komfortable Ein- und Ausgabeschnittstellen und bieten Zugriff große Bibliotheken). Außerdem stammt Spiee aus einer Zeit, in der noch mit Lochkarten gearbeitet wurde. Und da gab es eben noch keine grafischen Benutzeroberflächen.

Was leistet das Simulationsprogramm nun? Spice-Schaltungen können folgende Bauelemente enthalten: Widerstände, Kondensatoren, Induktivitäten, Spannungs- und Stromquellen (auch gesteuerte), Dioden, Bipolartransistoren und Feldeffekttransistoren , (JFETs und MOS-FETs). Die unterschiedlichen Charakteristika beispielsweise von Transistoren können dabei über eine Vielzahl von Parametern festgelegt werden.

Sobald die Schaltung erst einmal spezifiziert ist, lassen sich folgende Analysen durchführen: Mit der DC-Analyse (Gleichspannungs-Analyse) wird der Arbeitspunkt einer Schaltung bestimmt. Kleinsignal-Analysen (dabei werden die Abweichungen vom Arbeitspunkt mit linearen Modellen errechnet) sind ideal z. B. für Verstärker. Sie können das Rauschen in einer Schaltung bestimmen, außerdem läßt sich das Verhalten der Schaltung auf Transienten (kurzzeitige Signale an den Eingängen) untersuchen. Wenn Sie wollen, ist sogar eine Temperaturanalyse möglich, wobei der Einfluß der Temperatur auf die Schaltung untersucht wird.

Abb. 3: Schaltung eines Differenzverstärkers
Listing 1: Eingabefile für Spice

Das klingt zwar alles furchtbar beeindruckend, aber es geht doch nichts über einige einfache Beispiele.

Wir wollen mit Spiee beispielsweise die Abhängigkeit von Spannung und Strom in einer einfachen Diode bestimmen. Wie Sie sicher wissen, läßt sich dieses Verhalten mit ziemlich hoher Genauigkeit durch eine Exponentialkurve beschreiben. Das dazu notwendige Eingabefile können Sie Listing 1 (S 16) entnehmen. Das Listing mag zunächst kryptisch aussehen, ist jedoch mit der Anleitung zu Spiee leicht zu entschlüsseln: die einzelnen Eingabezeilen heißen in Spice-Dateien »Cards« (Lochkarten konnten jeweils nur eine Textzeile fassen).

Die ».WIDTH«-Card bestimmt das Ein- und Ausgabeformat: bei der Eingabe werden bis zu 133 Zeichen beachtet, bei der Ausgabe 80 Zeichen ausgegeben. Die ».OPTIONS«-Karte sorgt dafür, daß bei der Ausgabe keine Seitenvorschübe ausgegeben werden. Die ».TEMP«-Karte schließlich bestimmt die Umgebungstemperatur (25 Grad Celsius).

Mit der nächsten Zeile beginnt die Schaltungsbeschreibung. Unser Testbeispiel besteht aus einer Diode und einer Gleichspannungsquelle. Diese werden über ein Strommeßgerät miteinander verbunden und stellen somit drei Knoten (nodes) dar, die mit 0, 1 und 2 bezeichnet werden. VIN (nächste Zeile) ist demnach eine Spannungsquelle (Vxxxxx bedeutet eine Spannungsquelle, die restlichen Buchstaben geben dieser einen Namen) mit einer DC-Spannung (Gleichspannung) von 1 Volt. VM ist eine Spannungsquelle, die 0 V liefert, sie hat deshalb auf die Schaltung keinen Effekt, man benutzt sie jedoch, um den fließenden Strom zu messen. Das dritte Bauteil schließlich ist eine Diode mit Namen Dl, deren Typ durch die Bezeichnung »OA95« festgelegt wird. Die dazugehörige Typenbeschreibung findet sich in der nächsten Zeile. Alles in allem sieht die Schaltung also so aus wie in Abb. 2 (S. 15).

Die ».DC«-Karte startet nun die eigentliche Analyse. Es wird dabei nicht das frequenzabhängige Verhalten ermittelt, sondern der Gleichgewichtszustand der Schaltung. Außerdem erlaubt es die DC-Analyse, eine (bzw. zwei) Spannungsquellen (oder Stromquellen) in Schritten »durchzufahren«. Im Beispiel wird die Spannung VIN von 0 -1 Volt in Schritten von 0.05 V durchlaufen.

Die nächste und letzte bedeutungsvolle Karte (».PLOT«) beschreibt nun noch, in welcher Form die Daten ausgegeben werden sollen. »Plotten« kann dabei durchaus wörtlich verstanden werden: auch mit ASCII-Zeichen lassen sich Zeichnungen erzeugen. Das Ergebnis zeigt Listing 3 (S. 17). Sie erkennen das zunächst exponentielle Verhalten (die senkrechte Achse nach unten bezeichnet die Spannung, die horizontale Achse die Stromstärke. Bei höheren Spannungswerten wird die Kurve zur Geraden, denn in der Modellbeschreibung der Diode wurde ein Innenwiderstand RS von 160 Ohm spezifiziert. Wer die Steigung der Geraden ohne Zuhilfenahme von Software nach alter Manier von Hard ausrechnet, findet in der Tat eine Größe nahe des simulierten Werts.

Abb. 4: Phasengang des Differenzverstärkers
Abb. 5: Schaltbild des aktiven Filters
Listing 2: Spice-fähige Eingabedatei

Nach diesem simplen Test wollen wir nun eine richtige Baugruppe analysieren. Es handelt sich um einen einfachen Differenzverstärker in Abb. 3 (S. 15). Der Schaltplan ist recht schnell in die Eingabedatei übersetzt. Die der Schaltungsbeschreibung folgenden Karten bestimmen, was eigentlich untersucht werden soll. Die ».MOD«-Karte bestimmt z. B. die Parameter des Transistormodells (auf die wir nicht näher eingehen wollen). Mit der Karte ».TF« werden die Ausgangs- und Eingangswerte für die Kleinsignalanalyse festgelegt — in diesem Fall also die Spannung an Knoten 5, V(5), und die Spannung am Eingang VIN, denn uns interessiert natürlich insbesondere die Verstärkung der Schaltung.

Die ».AC«-Karte bewirkt schließlich die Ausführung der Kleinsignalanalyse. Die DEC-Option bedeutet, daß die »Meßpunkte« logarithmisch gleichmäßig verteilt sind (immer gleich viele Punkte pro Frequenzdekade, im konkreten Beispiel sind es zehn). Die letzten beiden Parameter geben das zu untersuchende Frequenzintervall an, hier von 1 Hz bis 100 MHz. Die folgende ».PRINT«-Karte bewirkt natürlich die Druckausgabe der errechneten Werte, wobei VM(5) und VP(5) für Amplitude (magnitude) und Phase der Ausgangswechselspannung an Knoten 5 stehen.

Wir verkneifen uns an dieser Stelle den Abdruck des Ausgabelistings, es ist doch etwas unübersichtlich. Besitzer des Computeralgebraprogrammes »Riemann II« haben es ein wenig leichter: Für dieses Programm existiert ein PD-Zusatzpaket von Georg Michel, das Spice-Ausgabedateien analysiert und die Ergebnisse mit den Riemann-II-Grafikfunktionen ausplotten kann. Die Ergebnisse eines solchen Plots sind in Abb. 1 S. 15 (Amplitude) und Abb. 4 (Phasenverschiebung) zu sehen.

Wer bereits so weit vorgestoßen ist, möchte natürlich auch den Eingabeprozeß vereinfachen, bei komplizierteren Schaltungen macht man nämlich sehr leicht Fehler. Wer neben Riemann II auch das Schaltplanprogramm »Circu it!« besitzt, kann sich glücklich schätzen: Für dieses Programm gibt es nämlich einen Treiber, der die Schaltung direkt im Spice-Eingabeformat ausgibt. Eines der Beispiele zeigt einen aktiven Filter (Abb. 5 S 16). Die Spice-fähige Eingabedatei dazu zeigt Listing 2 S 17.

Integrierte Schaltkreise

Vielleicht wundern Sie sich ein bißchen über den IC in diesem Beispiel, denn Spiee kennt keine ICs (das wäre ja auch ein bißchen viel verlangt). Ist man jedoch in der Lage, den IC durch eine diskrete Schaltung zu beschreiben, läßt sich auch der integrierte Schaltkreis als Spice-Schaltung darstellen. Da dies bei jeder neuerlichen Verwendung des ICs sehr mühsam wäre, lassen sich in Spiee Subschaltungen als Module definieren, die sich mehrmals einsetzen lassen. Die Definition beginnt mit der ».SUBCKT«-Karte.

Vielleicht haben Sie mit diesem kleinen Beitrag ein wenig Interesse an Spiee gewonnen: auch wer nicht über Circu It! und Riemann II verfügt, kann mit dem PD-Programm Spiee Schaltungen simulieren, von denen andere Atari-Programme nur träumen, (hu)

Spice gibt es z. B. bei über FDP-Server, »Anonymus-FDP«, 141.211.164.8

Listing 3: Ergebnis-Plot in ASCII

Hans Stein
Aus: ST-Magazin 04 / 1993, Seite 15

Links

Copyright-Bestimmungen: siehe Über diese Seite