回答:
Oliは正解を出しましたが、I(element_name)は商用のSPICEバージョンにのみ追加された拡張機能です。
ngspice(Berkeley Spice 3に基づく)では、(独立した)電圧源を通る電流のみをプロットできます。これらは、SPICEが機能する回路方程式に現れる唯一の電流です。
インタラクティブスパイスセッション中またはスクリプトで特殊なブロックから(も参照この質問を)あなたのような表現を使用することができ(v(1)-v(2))/1k
、現在は、(1μFのコンデンサなど)の反応性元素のために、ノード1と2の間に1kΩの抵抗を介しているときのようなもの(v(1) - v(2))/(2*pi*frequency*1u)
SHOULDまた働く。
私はngspiceを使用していないが、通常は、現在のプロット(私はLTSpiceを使用しますが、私はほとんどすべてのスパイスをオリジナルのBerkeley構文に基づいており、理解し、仕事も同様に何から)を通じてではなく、部品やトランジスタの例えばベースにキルヒホフの第1法則に従って、ノードでよりも(ある時点で出会う電流の合計はゼロです)
編集-jpcが指摘したように、ngspice(およびおそらく他のほとんどの非商用/初期のバリアント)では、電圧源を流れる電流しかプロットできないため、状況は少し異なります。したがって、関心のある回路のレッグに0Vソースを追加し、これを通る電流をプロットする必要があります。以下に例を追加しました。
したがって、両端に電圧源(V1)が付いた抵抗(R1)で構成される単純な回路がある場合(私はネットリストの専門家ではないので、大まかな例を示します):
V1 1 0 5
R1 1 0 1000
(1、0はノード、5(V)および1000(オーム)はそれぞれの値です)
I(1)ではなくI(R1)またはI(V1)で電流をプロットできます。ただし、電圧のV(1)をプロットできます。
NGSPICEバージョン(テストおよび確認済み)
V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0
Vdummyは抵抗と直列であるため、同じ電流が抵抗に流れる必要があることに注意してください。したがって、R1の電流をプロットするには、I(Vdummy)と記述します。より複雑な回路の場合は、同じ条件が適用されることを確認します。
LTspiceの「実際の」例を次に示します。
ネットリスト
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 SIG100μF
回路の写真
プロットオプション
(I(n001)、I(n002)などがないことに注意してください)
電流をプロットできますが、シミュレーションを実行する前に、どの電流について知りたいかを知る必要があります。
たとえば、ダイオードD1があり、それを通る電流をプロットしたい場合、次のことができます。
.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]
詳細については、http: //ngspice.sourceforge.net/docs/ngspice-manual.pdfにあるngspiceマニュアルの519ページ(第31章)を参照してください。
現在のプロットでは、そのブランチにゼロ電圧ソースを追加し、ターミナルでvlabel#branchと入力します。
NGSpice 27 R2017以降、次のコード行を配置します。
.options savecurrents
ための貫通呼び出すことができ、電流、保存@R1[i]
、@D1[id]
など
plot @R1[i] vs v(1)
NGSpiceマニュアルでこのオプションを探してください。
i(1)
常に0である