一些仿真器没有包含LRC元件的ABM方程,采用本文所述的简单子电路,可以根据复杂的分析表达式(包括逻辑表达式)创建无源元件,比如建立非线性电容、时变电阻等。 采用SPICE仿真电路时,通常需使用可变无源元件,如电阻、电容或电感。如果电源可以从外部控制上述器件的值,自然就可以从中推导出电容和电感的模拟行为建模表达式:非线性行为、随电流变化而变化的电感等。然而,很少有基于SPICE的仿真器可适用于无源元件的内嵌方程。为了解决这个问题,本文将介绍可以通过外部电压源进行器件值调节的若干无源元件。 最简单的情况:电阻 欧姆定律(Ohm Law)指出:电流I通过电阻R时产生电压V。电阻R保持不变时,电流源I的值为(方程1),其中1和2为电阻终端,如图1所示。
IsSpice .subckt VARIRES 1 2 CTRL R1 1 2 1E10 B1 1 2 I=V(1,2)/(V(CTRL)+1μ) .ENDS Pspice .subckt VARIRES 1 2 CTRL R1 1 2 1E10 G1 1 2 Value = { V(1,2)/(V(CTRL)+1μ) } .ENDS 在电流源表达式中,如果控制电压值V(CTRL)接近于零,1μ值不为零,即(V(CTRL)+1μ)不为零,从而避免被除数被零除。如果V(CTRL)为100kV,则等效电阻为100kΩ。图2表示,在子电路上施加一个简单电阻分压器,相当于产生一个1Ω电阻。现在,可以为V3建立一个复杂电压源,并轻松形成非线性关系。
与前面介绍的电阻相类似,电容可以用符合下列定律的电压源表示:(方程2)。也就是说,如果我们对流入等效子电路电容的电流进行积分,并且将它乘以控制电压V的倒数,即可得到电容的值C = V! 然而,由于变数t不断变化,所以在SPICE中不存在积分原函数。因此,应该采用方程2,并且使子电路电流流入 1F电容。通过观察1F电容上得到的电压,可以对 Ic(t) 进行积分。图3显示了建立子电路的方法。
IsSpice .SUBCKT VARICAP 1 2 CTRL R1 1 3 1u VC 3 4 BC 4 2 V=(1/v(ctrl))*v(int) BINT 0 INT I=I(VC) CINT INT 0 1 .ENDS PSpice .SUBCKT VARICAP 1 2 CTRL R1131u VC34 EC42Value={(1/v(ctrl))*v(int)} GINT 0 INT Value = { I(VC) } CINT INT 0 1 RINT INT 0 1G .ENDS 对测试也进行了交流分析,证实模型在频域内可以正常工作。 电感是一个电流源 如果对电感施加电压,它将保持安培匝数恒定,相当于一个真正的电流源,这就是对可变电感建模的方法。根据楞次定律(Lenz Law),可以得出:
.SUBCKT VARICOIL 1 2 CTRL BC 1 2 I=V(INT)/V(CTRL) BINT 0 INT I=V(1,2) CINT INT 0 1 .ENDS PSpice .SUBCKT VARICOIL 1 2 CTRL GC12Value={V(INT)/V(CTRL)} BGINT 0 INT Value={ V(1,2) } CINT INT 0 1 RINT INT 0 1G .ENDS
| |||||||||
更多回帖