Oli hat eine richtige Antwort gegeben, 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 nur Ströme durch (unabhängige) Spannungsquellen darstellen. Dies sind die einzigen Ströme, die in den Schaltungsgleichungen auftauchen, nach denen SPICE arbeitet.
In einer interaktiven Spice-Sitzung oder aus einem speziellen Block im Skript (siehe auch diese Frage) können Sie Ausdrücke wie (v(1)-v(2))/1k
verwenden 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) so etwas wie (v(1) - v(2))/(2*pi*frequency*1u)
sollte auch funktionieren.
Ich habe ngspice nicht verwendet (ich verwende LTSpice, aber soweit ich weiß, basieren so ziemlich alle SPICEs auf der ursprünglichen Berkeley-Syntax und funktionieren ähnlich), aber normalerweise zeichnen Sie den aktuellen durch eine Komponente oder in z.B. Basis eines Transistors, und nicht an einem Knoten, gemäß dem ersten Kirchhoffschen 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 nicht kommerziellen / frühen Varianten) etwas anders, da Sie Ströme nur durch eine Spannungsquelle zeichnen können. Man müsste also eine 0-V-Quelle im Zweig des interessierenden Stromkreises hinzufügen und den Strom durch diese grafisch darstellen. Ich habe unten ein Beispiel hinzugefügt.
Wenn Sie also eine einfache Schaltung haben, die aus einem Widerstand (R1) mit einer Spannungsquelle (V1) darüber besteht (ich bin kein Experte für die Netzliste, nehmen Sie also ein 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 mit I (V1) darstellen, nicht mit I (1). Sie könnten jedoch V(1) für die Spannung darstellen.
NGSPICE-Version (getestet und bestätigt)
V1 1 0 5
R1 1 2 1000 V Dummy 2 0 0
Beachten Sie, dass Vdummy mit dem Widerstand in Reihe geschaltet ist, sodass derselbe Strom durch ihn fließen muss. Um also den Strom für R1 darzustellen, schreiben wir I(Vdummy). Für eine komplexere Schaltung stellen wir einfach sicher, dass die gleichen Bedingungen gelten.
Hier ist ein "echtes" Beispiel von LTspice:
NETZLISTE
V1 V+ 0 24 Rser=0
V2 SIG 0 SINE(-1.4563 1m 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µF
R3 N004 0 3K9
R4 N002 0 22K
C1 N002 SIG 100µF
BILD DER SCHALTKREISE
PLOTOPTIONEN
(Beachten Sie, dass es kein I(n001), I(n002) usw. gibt)
Sie können Strömungen darstellen, aber Sie müssen wissen, über welche Strömungen Sie wissen möchten, bevor Sie Ihre Simulation ausführen.
z.B. Wenn Sie eine Diode D1 hätten und den Strom durch sie aufzeichnen wollten, könnten Sie:
.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]
Weitere Informationen finden Sie auf Seite 519 (Kapitel 31) des ngspice-Handbuchs unter http://ngspice.sourceforge.net/docs/ngspice-manual.pdf