Answers:
Oli给出了正确的答案,但I(element_name)是仅在商业SPICE版本中添加的扩展名。
在ngspice(基于Berkeley Spice 3)中,您只能绘制通过(独立)电压源的电流。这些是出现在SPICE工作原理的电路方程式中的唯一电流。
在交互式香料会话或从在脚本一个特殊的块(也参见这个问题),可以使用像表达式(v(1)-v(2))/1k
当电流通过节点1和2的反应性元素(如一个1pF电容)之间的1kΩ的电阻像(v(1) - v(2))/(2*pi*frequency*1u)
应也可以。
我没有使用过ngspice(我使用LTSpice,但是据我了解,几乎所有SPICE都基于原始的Berkeley语法,并且工作类似),但是通常您将电流绘制通过某个组件或进入一个晶体管的基极,而不是根据基尔霍夫的第一定律(在一个点处相遇的电流之和为零)
编辑-正如jpc所指出的,对于ngspice(以及可能的大多数其他非商业/早期变体),情况略有不同,因为您只能绘制通过电压源的电流。因此,必须在目标电路的支路中添加一个0V电源,并绘制通过该电源的电流。我在下面添加了一个示例。
因此,如果您有一个简单的电路,该电路由电阻器(R1)和两端的电压源(V1)组成(我不是网表专家,那么请举一个大概的例子):
V1 1 0 5
R1 1 0 1000
(1,0是节点,5(V)和1000(Ohms)是各自的值)
您可以用I(R1)或I(V1)而不是I(1)绘制电流。但是,您可以绘制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正弦(-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
电路图片
剧情选择
(请注意,没有I(n001),I(n002)等)
您可以绘制电流,但是在运行模拟之前,您需要知道要了解的电流。
例如,如果您有一个二极管D1,并且想要绘制通过它的电流,则可以:
.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]
有关更多信息,请参见ngspice手册的第519页(第31章),网址为http://ngspice.sourceforge.net/docs/ngspice-manual.pdf
从NGSpice 27 R2017开始,放置以下代码行:
.options savecurrents
节省的电流,这可以通过对被称为@R1[i]
,@D1[id]
等
plot @R1[i] vs v(1)
在NGSpice手册中寻求此选项。
i(1)
始终为