Ich möchte den Strom und die Leistung in ngspice darstellen. Wenn ich zum Beispiel bei Spannung die Spannung an Knoten 1 zeichnen möchte, würde ich Folgendes verwenden:
plot v(1)
Das Problem ist, wenn ich i (1) versuche, wird der Vektor nicht erkannt. Könnte jemand ein paar Beispiele dafür geben?
i(1)
ist immer 0.Antworten:
Oli gab eine korrekte Antwort, aber das I (element_name) ist eine Erweiterung, die nur den kommerziellen SPICE-Versionen hinzugefügt wurde.
In ngspice (das auf Berkeley Spice 3 basiert) können Sie Ströme nur durch (unabhängige) Spannungsquellen zeichnen. Dies sind die einzigen Ströme, die in den Schaltungsgleichungen erscheinen, mit denen SPICE arbeitet.
In einer interaktiven Spice-Sitzung oder aus einem speziellen Block im Skript (siehe auch diese Frage ) können Sie Ausdrücke verwenden, z. B.
(v(1)-v(2))/1k
wenn der Strom durch einen 1 kΩ-Widerstand zwischen den Knoten 1 und 2 fließt. Für reaktive Elemente (wie einen 1μF-Kondensator) sollte dies so(v(1) - v(2))/(2*pi*frequency*1u)
sein auch Arbeit.quelle
Ich habe ngspice nicht verwendet (ich verwende LTSpice, aber soweit ich weiß, basieren alle SPICEs auf der ursprünglichen Berkeley-Syntax und funktionieren ähnlich), aber normalerweise zeichnen Sie den Strom durch eine Komponente oder z. B. in die Basis eines Transistors als an einem Knoten nach Kirchoffs erstem Gesetz (die Summe der Ströme, die sich an einem Punkt treffen, ist Null)
BEARBEITEN - wie jpc betonte, sind die Dinge für ngspice (und wahrscheinlich die meisten anderen nichtkommerziellen / frühen Varianten) etwas anders, da Sie nur Ströme durch eine Spannungsquelle zeichnen können. Man müsste also eine 0-V-Quelle in den Zweig der interessierenden Schaltung einfügen und den Strom durch diese zeichnen. Ich habe unten ein Beispiel hinzugefügt.
Wenn Sie also eine einfache Schaltung haben, die aus einem Widerstand (R1) mit einer Spannungsquelle (V1) besteht (ich bin kein Experte auf der Netzliste, nehmen Sie als grobes Beispiel):
V1 1 0 5
R1 1 0 1000
(1, 0 sind die Knoten, 5 (V) und 1000 (Ohm) sind die jeweiligen Werte)
Sie können den Strom entweder mit I (R1) oder I (V1) und nicht mit I (1) zeichnen. Sie könnten jedoch V (1) für die Spannung zeichnen.
NGSPICE-Version (getestet und bestätigt)
V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0
Beachten Sie, dass Vdummy in Reihe mit dem Widerstand geschaltet ist, sodass derselbe Strom durch ihn fließen muss. Um den Strom für R1 zu zeichnen, schreiben wir I (Vdummy). Für eine komplexere Schaltung stellen wir nur sicher, dass die gleichen Bedingungen gelten.
Hier ist ein "echtes" Beispiel von LTspice:
NETLIST
V1 V + 0 24 Rser = 0
V2 SIG 0 SINE (-1,4563 1 m 1000 0 0 0 0) AC 2 Rser = 0
V3 V- 0 -24
Q1 N001 N002 N003 0 2N2222
R1 V + N001 1f
R2 N003 V- 2K7
C2 N004 N003 100 uF
R3 N004 0 3K9
R4 N002 0 22K
C1 N002 SIG 100 uF
BILD DER SCHALTUNG
PLOT-OPTIONEN
(Beachten Sie, dass es kein I (n001), I (n002) usw. gibt.)
quelle
Sie können Ströme zeichnen, müssen jedoch wissen, über welche Ströme Sie Bescheid wissen möchten, bevor Sie Ihre Simulation ausführen.
Wenn Sie beispielsweise eine Diode D1 hatten und den Strom durch diese zeichnen wollten, könnten Sie:
Weitere Informationen finden Sie auf Seite 519 (Kapitel 31) des ngspice-Handbuchs unter http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
quelle
Wenn Gleichspannung über eine einzelne Komponente gewobbelt wird, können Sie den Zweigstrom darstellen. Durch Laden der folgenden Netzliste
zu ngspice und befehlen
Sie sollten in der Lage sein, ein Diagramm des Stroms über die Diode d1 zu erhalten.
quelle
Fügen Sie für die Stromdarstellung eine Nullspannungsquelle in diesen Zweig ein und geben Sie den Zweig vlabel # in das Terminal ein.
quelle
Platzieren Sie seit NGSpice 27 R2017 diese Codezeile:
Speichert die Ströme, die abgerufen werden
@R1[i]
können@D1[id]
, usw.Suchen Sie im NGSpice-Handbuch nach dieser Option .
quelle