如何在ngspice中绘制电流?


Answers:


8

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是否具有某种获取值的方法,甚至可能获取组件的节点名称。我肯定知道有带有模型参数的虚拟矢量。
2011年

6

我没有使用过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)等)

绘图选项


1
正如jpc刚刚评论的那样,使用ngspice时,您只能绘制通过电压源的电流。我刚刚下载了ngspice并确认了这一点,可以放置i(Vx),但不能放置i(Rx)等。因此,我想您需要在要绘制电流的电路的任何分支中添加0V电源。 (假设它称为Vx),然后放置图i(Vx)。
奥利·格拉泽

@OliGlaser:实际上,大多数商业SPICE派生都是基于SPICE2代码库(在Fortran中),而ngspice(以及其他开源/免费版本)是基于更新的(!)C语言重写,即SPICE3。我相信陪审团仍在哪个更好。:)
jpc 2012年


3

如果在单个组件上扫描直流电压,则可以绘制支路电流。通过加载以下网表

.MODEL DI1N4004 D (IS=76.9n RS=42.0m  BV=4 IBV=5.00u CJO=39.8p
+M=0.333 N=1.45 TT=4.32u)

D1 1 0 DI1N4004
Vin 1 0 dc 12 ac 0

ngspice和命令

dc vin -10 5 0.001
plot -vin#branch

您应该能够获得二极管d1两端电流的曲线图。


2

对于电流绘图,请在该分支中添加零电压源,然后在端子中键入vlabel#branch。


3
这没有增加其他答案未曾说过的内容,而且过于简洁,无法单独使用。
Dave Tweed

2

从NGSpice 27 R2017开始,放置以下代码行:

.options savecurrents

节省的电流,这可以通过对被称为@R1[i]@D1[id]

plot @R1[i] vs v(1)

NGSpice手册中寻求此选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.