電子仿真 SPICE 課程:初始條件和 .IC 指令
SPICE 中最有用的指令之一是允許您指定節(jié)點(diǎn)的初始條件以進(jìn)行瞬態(tài)分析的指令。初始條件是瞬態(tài)分析開始時(shí)電路的電氣條件。它們可用于表示處于靜止?fàn)顟B(tài)的電路或表示特定時(shí)刻的電路狀況。
.IC 指令允許您指定瞬態(tài)分析的初始條件??梢灾付ü?jié)點(diǎn)電壓和電感電流。使用初始條件作為主要約束來執(zhí)行直流解決方案。此指令有多種用途。例如,假設(shè)您正在模擬逐漸放電的充電電池或已達(dá)到特定電壓的電解電容器。在所有這些情況下,此指令都是不可替代的,可幫助設(shè)計(jì)人員模擬任何工作條件下的電路。
請注意,通常情況下,該過程不會(huì)為單個(gè)組件分配初始電壓值,而是為其所連接的節(jié)點(diǎn)分配初始電壓值。這是一個(gè)微妙但重要的細(xì)微差別,需要在您的設(shè)計(jì)中理解和實(shí)施。實(shí)際上,.IC 指令不是電路模型的一部分;相反,它是瞬態(tài)模擬的一部分。一旦定義了初始條件,它將具有較高的觀察和執(zhí)行優(yōu)先級(jí)。要使用的語法如下:
.IC [V()=<電壓>] [I(<電感>)=<電流>]
例如:
. IC V(輸入)=2 V(輸出)=5 V(vc)=1.8 I(L1)=300m
可以在同一行中設(shè)置多個(gè)初始條件,也可以使用多個(gè)單獨(dú)且獨(dú)立的指令,每個(gè)指令針對特定的初始條件。
電容器的放電
假設(shè)您要模擬一個(gè)帶有電解電容器和與之并聯(lián)的 LED 的電路,該電路顯然受電阻保護(hù)。在沒有任何初始指令的情況下,正常模擬會(huì)在電容器兩端產(chǎn)生 0 V 電位,因?yàn)闆]有其他電壓源。解決方案需要觀察電容器的電氣行為,該電容器事先已充電至 12 V 電壓。因此,模擬必須從組件上的正電壓開始,這可以通過 .IC 指令實(shí)現(xiàn)。圖 1 中的電氣圖顯示了以下元素:
· C1,2,200 μF 電解電容器
· R1,330 Ω電阻
· D1,紅色 LED
· “.tran 5”指令,指定 5 秒瞬態(tài)分析
· LED,如 LED1 模型規(guī)范中所定義
· “.IC V(cap)=12V”指令,將名為“cap”的線路置于 12 V 的初始電壓
詳細(xì)分析三個(gè)相關(guān)的波形圖很有趣:
· 上面的第一張圖顯示了電解電容器 C1 兩端的電壓,在 5 秒的瞬態(tài) (Vcap) 中。其電壓從最初的 12 V(T = 0 時(shí))降至 1.46 V(T = 5 時(shí))。LED 在大約 10 秒后關(guān)閉,電流停止流過。在這種情況下,電解電容器放電非常緩慢,在理想元件和無損耗的情況下,其電位在幾年后達(dá)到 0 V 電壓。一年后,其電壓仍約為 700 mV,因?yàn)椴辉儆腥魏坞娏髁鲃?dòng),但顯然,它無法打開 LED。
· 第二張圖位于中間,顯示了流過 LED D1 的電流(與流過電阻 R1 的電流相同),始終處于 5 秒的瞬態(tài)。電流從最初的 31 mA(對 LED 來說不危險(xiǎn))(在T = 0 時(shí))開始,一直到 106 μA(在T = 5 時(shí))。
· 下方第三張圖顯示了 LED D1 兩端的電壓。在整個(gè)瞬態(tài)過程中,該電壓幾乎保持不變,平均為 1.6 V,這是紅色 LED 的典型值。
圖 1:初始充電的電解電容器可為 LED 供電一段時(shí)間。
LTspice SPICE 源列表如下:
* .IC directive for LTspice – by laocuo
C1 cap 0 2200μF
R1 cap D 330
D1 D 0 LED1
.model LED1 D(Is=1e-19 N=1.6 Rs=2.5 Eg=2.1)
.tran 0 5
.IC V(cap)=12V
.backanno
.end
ngspice源列表如下,并產(chǎn)生相同的結(jié)果:
* .IC directive for ngspice – by laocuo
C1 cap 0 2200μF
R1 cap D 330
D1 D 0 LED1
.model LED1 D(Is=1e-19 N=1.6 Rs=2.5 Eg=2.1)
.IC V(cap)=12V
.control
tran 100mS 5s
plot v(cap)
.endc
.end
電容器的電荷
圖 2 顯示了相反的過程,即對已部分充電的電解電容器進(jìn)行充電。電氣圖包含以下元素:
· V1,12 V電壓源
· R1,一個(gè) 3,300 Ω 電阻,用于限制充電電流
· C1 為 2,200 μF 電解電容器,部分充電,電壓為 4 V,符合以下指令的規(guī)定
· “.IC V(cap)=4V”指令,將名為“cap”的線路置于初始電壓 4V,實(shí)現(xiàn)部分充電電容器
· “.tran 60”指令,指定 60 秒的瞬態(tài)分析
從圖中可以看出,電容器的充電不是從 0 V 開始,而是從 4 V 開始,因?yàn)樗糠殖跏茧姾?。瞬態(tài)在大約 30 秒內(nèi)結(jié)束。LTspice SPICE 源列表如下:
* .IC directive for LTspice – by laocuo
C1 cap 0 2200μF
R1 cap N001 3.3k
V1 N001 0 12V
.tran 60
.IC V(cap)=4V
.backanno
.end
在ngspice中的內(nèi)容如下:
* .IC directive for ngspice – by laocuo
C1 cap 0 2200μF
R1 cap N001 3.3k
V1 N001 0 12V
.IC V(cap)=4V
.control
tran 100mS 60s
plot v(cap) ylimit 0,13
.endc
.end
圖 2:電容器的部分電荷以及使用 LTspice 和 ngspice 獲得的相關(guān)圖表
我們可以不用.IC 指令嗎?
如上所述,SPICE 中的 .IC 指令用于指定一個(gè)或多個(gè)節(jié)點(diǎn)的瞬態(tài)分析的初始條件。初始條件是瞬態(tài)分析開始時(shí)的電路條件。但是,可以為單個(gè)組件分配初始電壓值。通常,在 LTspice 和 ngspice 中,只需手動(dòng)編輯 SPICE 源列表并使用以下屬性指定組件兩端的電壓即可:
C1電容0 220μF IC=9
在 LTspice GUI 上,操作更加簡單,只需右鍵單擊組件并同時(shí)按下 CTRL 鍵即可。然后,您需要在 SpiceLine 框中指定“IC=9”屬性。此更改也將顯示在 SPICE 源列表中。圖 3 顯示了涉及電解電容器放電的簡單電路。當(dāng)其降低的電壓達(dá)到第一個(gè)晶體管的截止閾值時(shí),LED 亮起。請注意,電路圖中未使用 .IC 指令,而是電容器包含其“IC=9”屬性,該屬性決定了該組件上的初始電壓。LTspice SPICE 源列表如下:
* .IC directive for LTspice – by laocuo
C1 cap 0 220μF IC=9
R1 N005 cap 10k
Q1 N004 N003 0 0 BC_547
D1 N002 N004 LED1
R2 N001 N002 330
V1 N001 0 9V
Q2 N003 N005 0 0 BC_547
R3 N001 N003 10k
.tran 0 40 0
.model BC_547 NPN (IS=50.7F NF=1 BF=325 VAF=155
+ IKF=.3 ISE=15.6P NE=2 BR=4 NR=1 VAR=24
+ IKR=.45 RE=.907 RB=3.63 RC=.363 XTB=1.5
+ CJE=20.8P CJC=8.33P TF=611P TR=138N)
.model LED1 D(Is=1e-19 N=1.6 Rs=2.5 Eg=2.1)
.backanno
.end
ngspice的資源來源列表如下:
* .IC directive – by laocuo
C1 cap 0 220uF IC=9V
R1 N005 cap 10k
Q1 N004 N003 0 0 BC_547
D1 N002 N004 LED1
R2 N001 N002 330
V1 N001 0 9V
Q2 N003 N005 0 0 BC_547
R3 N001 N003 10k
.model BC_547 NPN (IS=50.7F NF=1 BF=325 VAF=155
+ IKF=.3 ISE=15.6P NE=2 BR=4 NR=1 VAR=24
+ IKR=.45 RE=.907 RB=3.63 RC=.363 XTB=1.5
+ CJE=20.8P CJC=8.33P TF=611P TR=138N)
.model LED1 D(Is=1e-19 N=1.6 Rs=2.5 Eg=2.1)
.probe alli
.control
tran 10mS 40s UIC
plot v(cap)
plot i(D1)
.endc
.end
設(shè)計(jì)電路時(shí),應(yīng)避免在同一個(gè)節(jié)點(diǎn)上定義不同的初始電壓。例如,明確為電壓發(fā)生器的節(jié)點(diǎn)分配初始電壓是沒有效果的。
圖 3:在某些情況下,可以不使用通用 .IC 指令,而是在組件級(jí)別添加“IC”屬性。
SPICE 中的 .IC 指令是一個(gè)功能強(qiáng)大的工具,可用于指定瞬態(tài)分析的初始條件。電路中的初始條件對于獲得準(zhǔn)確而真實(shí)的仿真結(jié)果非常重要。組件級(jí) IC 指令可用于指定每個(gè)組件的初始條件。但是,此指令可能會(huì)導(dǎo)致不可預(yù)測的結(jié)果,尤其是當(dāng)兩個(gè)并聯(lián)連接的組件具有不同的起始電壓時(shí)。在這種情況下,仿真器可能會(huì)使用平均電壓,這不一定準(zhǔn)確。因此,如果在組件級(jí)使用 IC 指令,則必須確保并聯(lián)連接的組件具有相同的起始電壓。為避免此問題,建議在電路級(jí)使用 .IC 指令。該指令允許您一次指定連接到給定節(jié)點(diǎn)的所有電路元件的初始條件。