http://sites.schaltungen.at/blackboard/ngspice
Wels, am 2016-12-23BITTE nützen Sie doch rechts OBEN das Suchfeld [ ] [ Diese Site durchsuchen]DIN A3 oder DIN A4 quer ausdrucken
*******************************************************************************I** DIN A4 ausdrucken siehe http://sites.schaltungen.at/drucker/sites-prenninger
********************************************************I* ~015_b_PrennIng-a_blackboard-ngspice (xx Seiten)_1a.pdf
********************************************************I*
Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]ENDE Schaltungssimulation mit BlackBoard und NGSpice (1)Schaltungssimulation mit BlackBoard und NGspice_1a.pdfIch wurde schon mehrfach angesprochen, ob ich nicht etwas zum Thema BlackBoard und Schaltungssimulation mit NGSPICE schreiben kann. Dem Wunsch möchte ich heute nachkommen. Da das Thema Schaltungssimulation sehr komplex ist, werden wir mit einem kurzen Essay nicht auskommen. Ich werde den Beitrag daher in mehrere Teile aufteilen. In der heutigen Folge wollen wir zunächst die Grundlagen von SPICE behandeln und in der nächsten Folge geht es dann an die praktische Simulation mit BlackBoard. Zunächst steht sicherlich die Frage im Raum, wozu speziell im Hobbybereich eine Schaltungssimulation gut sein soll. Zunächst befinden wir uns mittlerweile in der sehr komfortablen Situation, daß heutige Rechnersysteme so schnell sind, daß Schaltungen nahezu in Echtzeit simuliert werden können. Das versetzt uns in die Lage, das Verhalten von Schaltungen bereits vor dem experimentellen Aufbau im Detail untersuchen zu können. Die Simulationsysteme sind inzwischen so exakt, daß man sich den Schritt, die Schaltung auf dem Steckbrett aufzubauen fast sparen kann, von komplizierten Oszillatorschaltungen mal abgesehen. Schwachstellen und Designfehler können so bereits im Vorfeld aufgedeckt werden. Komplexe Systeme verhalten sich auf den sogenannten Breadboards auch mitunter sehr seltsam, weil Streukapazitäten durch die Kontaktierung entstehen oder der Fehler bereits allein durch eine falsche Anordnung der Bauteile entsteht. Durch die Simulation kann man wenigstens nachweisen, daß die Schaltung im Prinzip funktioniert. Viele, die BlackBoard nutzen, sind möglicherweise schon über die integrierte SPICE Anbindung gestolpert. Manche haben sich vielleicht auch gefragt, was der kleine "Play"-Knopf auf der Werkzeugleiste soll. Heute wollen wir also etwas Licht ins Dunkel bringen. Um eins vorwegzunehmen: BlackBoard kann noch keine Schaltpläne in Lochrasterplatinen überführen und umgekehrt. Wenn Ihr eine Schaltung entworfen habt, müsst Ihr entsprechend eine neue Lochrasterplatine erstellen und umgekehrt. GrundlagenAlso was hat es denn nun überhaupt mit SPICE auf sich?Ist das möglicherweise ein Gewürz? Oder ist es das Zeug aus dem Science-Fiction Epos "Dune"? Weder noch, liebe Leser, SPICE ist, salopp gesprochen, eine Umgebung zur Simulation von elektronischen Schaltungen und steht für Simulation Program with Integrated Circuit Emphasis. Der Vorläufer von SPICE war CANCER (Computer Analysis of Nonlinear Circuits Excluding Radiation). Das diese Bezeichnung vielleicht nicht überall so gut angekommen ist, kann sich vielleicht der ein oder andere von euch vorstellen. SPICE wurde ursprünglich am Electrical Engineering and Computer Sciences (EECS) Fachbereich der University of California in Berkeley entwickelt und steht heute im Quellcode in Version 3f5 zur allgemeinen Verfügung. Mittlerweile existieren zahlreiche Implementierungen bzw. Weiterentwicklungen von Berkeley SPICE, wie z.B. PSPICE, LTSpice, OrCAD SPICE, um nur einige zu nennen. An dieser Stelle soll uns nur die Open Source Variante NGSPICE interessieren, die ohne grafische Benutzeroberfläche daherkommt. Hier kommt dann später BlackBoard ins Spiel. So weit so gut, mit SPICE kann man also Schaltungen simulieren. Aber wie funktioniert das eigentlich? Werfen wir hierzu einen Blick auf die nachfolgende Grafik. Hier lässt sich der Ablauf gut erkennen: Zunächst erzeugt der Nutzer einen Schaltplan. Dies erfolgt für gewöhnlich mit einem grafischen Werkzeug. Hieraus wir dann als erstes eine sogenannte Netzliste erzeugt. Grob gesprochen enthält eine Netzliste Informationen darüber, welches Bauteil mit welchem verbunden ist. Wir werden uns in einem späteren Abschnitt genauer damit befassen, halten aber an dieser Stelle folgendes fest: Ein SPICE System, ganz gleich, ob es sich um NGSPICE, PSPICE, LTCSPICE o.ä. handelt, ist grundsätzlich zunächst ein textorientiertes System, welches aus einer Texteingabe eine verwertbare Ausgabe erzeugt. Die grafische Benutzeroberfläche ist sozusagen nur der "Komfortaufsatz". Selbst kommerzielle (und natürlich mitunter sehr komfortable) Lösungen wie z.B. Multisim von National Instruments haben sicher irgendeine SPICE Implementierung unter der Haube, Die Netzliste dient als Eingabe für den Simulator. Dieser nimmt nun die Netzliste als Grundlage und versucht anhand von Gleichungen, die das System beschreiben, eine näherungsweise Lösung für das System zu finden. Das klingt erst einmal recht simpel, basiert aber auf komplexen Differentialgleichungsystemen, die gelöst werden müssen. Wir wollen das hier nicht weiter vertiefen, sondern begnügen uns damit, daß der Simulator aus der Simulation Daten erzeugt, die wir auswerten können. SPICE organisiert die Ausgabe in sogenannten "Plots", die wiederum Vektoren von Daten enthalten. Stellen wir uns vor, wir haben eine Wechselspannung in unserer Schaltung. Dies ist dann ein "Plot". Die einzelnen Werte der Spannung zu jedem Zeitpunkt (diskrete Werte) stehen dann in dem Datenvektor. Ein Plot kann mehrere Vektoren enthalten. Ich werde nun vorführen, wie man anhand eines Schaltplans zur Netzliste und dann zur Ausgabe gelangt. Nehmen wir als Beispiel nachfolgende einfache Tiefpassschaltung: Hieraus entsteht dann folgende Netzliste:
Das sieht erst einmal wild aus, wird aber gleich viel klarer, wenn man den sogenannten "Netzen" der Schaltung Nummern gibt, in nachfolgender Grafik rot dargestellt:
Hier lässt sich zunächst gut erkennen, daß wir es offenbar mit 3 Netzen zu tun haben. Dem mit der Nummer 0, dies ist bei NGSPICE immer das Massenetz, die Nummer 1 verbindet R1 und die Spannungsquelle miteinander und die Nummer 2 verbindet R1 und C1 miteinander. Die Spannungsquelle und das andere Ende des C1 sind mit Masse verbunden. Nichts anderes ist in der Netzliste zu finden: Zeile 1 bezeichnet den Namen der Schaltung Zeile 2 beschreibt die Spannungsquelle VIN, die zwischen Netz 0 und 1 liegt Zeile 3 beschreibt R1 der zwischen Netz 1 und 2 liegt Zeile 4 beschreibt den Kondensator C1 der zwischen Netz 2 und 0 liegt Zeile 5 muss immer ein .end sein Netze mit der gleichen Nummer ind immer miteinander verbunden, egal wo sie in der Schaltung auch gezeichnet sein mögen. Schön und gut, werden Experten jetzt einwenden, aber damit haben wir noch lange keine funktionierende Simulation! Völlig richtig, denn dazu kommen wir im folgenden Abschnitt. AnalyseformenJetzt wird es kompliziert. Nicht wirklich, aber wenigstens ein bisschen. (Dieser Satz kein Verb).Man kann sich sicherlich vorstellen, daß an einer (simulierten) Schaltung verschiedene Aspekte interessant sein können. Diejenigen, die diesen Artikel lesen, haben sicherlich schon Erfahrung mit dem Entwickeln von Schaltungen und können sich gut vorstellen, wovon ich spreche. Nehmen wir als Beispiel eine Verstärkerschaltung. Folgende Messwerte können hier für uns von Belang sein: Spannungen an den Transistoren (Arbeitspunkte) Ruheströme Signalverhalten Stromaufnahme mit und ohne Last Es lassen sich hier sicher noch ein paar andere Größen ausmachen, aber die genannten sollten ausreichen, um zu verstehen, daß man hierfür verschiedene Arten der Analyse benötigt. NGSPICE bietet nahezu für jeden Einsatzzweck die passende Analyse. Ich will hier im ersten Teil allerdings nur auf die - meiner Meinung nach - drei wichtigsten Formen eingehen. TransientenanalyseDie transiente Analyse bildet den zeitlichen Verlauf der Variablen der vorliegenden Schaltung nach.Das heisst, daß wir hiermit leicht den Verlauf beispielsweise von Spannungen verfolgen können. Wir können hiermit betrachten, wie sich eine Schaltung bis zum Einschwingen verhält oder wie sich ein Rechtecksignal am Ausgang eines Tiefpasses verhält. Diese Analyseform ist sicherlich die anschaulichste, da sie am ehesten unserer alltäglichen Wahrnehmung von Ereignissen über die Zeit entspricht. ArbeitspunktanalyseBei der Arbeitspunktanalyse in einem SPICE System werden alle Kondensatoren als geöffnet und alle Spulen als geschlossen betrachtet.Anschließend werden alle Gleichspannungspotentiale der Schaltung bestimmt. Vor einer Transientenanalyse wird zunächst eine Arbeitspunktanalyse durchgeführt, um die Startbedingungen zu bestimmen. Kleinsignal und WechelspannungsanalyseHierdurch werden wir in die Lage versetzt, das zugrundeliegende System mit kleinen Signalen in der Nähe eines Arbeitspunktes zu untersuchen,oder das Wechselspannungsverhalten einer Schaltung über einen bestimmten Frequenzbereich zu betrachten. Als Beispiel seien hier die sogenannten Bode-Plots eines Filters genannt, auf die wir zum Schluss noch zu sprechen kommen werden. SimulierenWill man nun eine Schaltung simulieren, muss man dem Simulator irgendwie sagen, was genau man denn nun simulieren möchte.Wir haben weiter oben bereits eine einfache Netzliste kennengelernt, auf die ich nochmals zu sprechen kommen möchte. Die Struktur einer vollständigen Netzliste ist für gewöhnlich die folgende:
In unserem einfachen Fall haben wir weder Modelle, noch Verweise auf Bibliotheken. Wenn wir die Netzliste von oben nun also mit der Kleinsignalanalyse vervollständigen wollen, sieht das dann so aus:
Entscheidend für die Simulation ist die vorletzte Zeile. Hier wird bestimmt, daß wir eine Kleinsignal bzw. Wechselspannungsanalyse durchführen möchten. In Kapitel 15.3.1. des NGSPICE Manuals finden wir hierzu die Beschreibung der Parameter: ac dec nd fstart fstop ac ist das Schlüsselwort für den Typ der Analyse dec gibt an, daß wir unsere Simulation dekadisch, d.h. jeweils um 10er Potenzen von fstart nach fstop durchführen möchten nd ist die Anzahl der Messpunkte pro Dekade fstart die Startfrequenz der Analyse und fstop die Stopfrequenz, jeweils in Hz Hiermit haben wir dann die erste Simulation vollständig beschrieben und können dann das ganze mit run starten. Ihr werdet jetzt sicherlich einwenden, wohin Ihr denn mit der Netzliste sollt und wo das Kommando run eingegeben werden soll. Das ist nicht ganz unberechtigt, denn hierzu habe ich noch gar nichts gesagt. Die Sache ist relativ einfach. Unter http://ngspice.sourceforge.net lädt man sich die aktuelle Version von NGSPICE für sein Betriebssystem herunter und installiert sie. Die Netzliste kann mit jedem beliebigen Texteditor beschrieben werden. Zum Starten gibt man dann: ? 1 ngspice -i meineschaltung,cir auf der Kommandoebene ein und NGSPICE startet im interaktiven Modus, indem noch Befehle angegeben werden können. AusgabeZu guter letzt fehlt uns noch eine Auswertung bzw. Ausgabe der Ergebnisse, schliesslich haben wir ja gerade eine Schaltung simuliert.Hierzu gibt es das Kommando plot gefolgt vom namen des vektors den man ausgeben möchte. nehmen wir an wir möchten die Spannung am Netz Nummer 2 (also der Ausgang des Tiefpasses) in db über die Frequenz ausgeben, so lautet das Kommando:
Schliesslich kann man sich noch den Phasenverlauf ausgeben lassen:
Hier müssen wir uns etwas behelfen, da NGSPICE Winkel standardmäßig in Grad angibt. Die Ausgabe ist dann:
Auf die technischen Gegebenheiten der Schaltung will ich an dieser Stelle nicht eingehen, da dies nicht Thema dieser Folge sein soll. Diese beiden Plots werden auch als Bode-Plot bezeichnet, da Sie Spannungs und Phasenverlauf einer Wechselgröße über die Frequenz auftragen. Hiermit ist Folge 1 beendet. Im nächsten Teil werde ich zeigen, wie Schaltungen mit BlackBoard erstellt und simuliert werden. http://pueski.de/?p=56 DIN A4 ausdrucken
********************************************************I*
Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]ENDE |