验证済み SPICE 网表与示例电路集锦
以下为经测试的 SPICE 2g6 网表,附必要时的简短说明。(更多网表信息见第 2 章“电路计算机仿真”。)
可随意“复制”“粘贴”任意网表至你的 SPICE 源文件进行分析或修改。目标有二:提供实用 SPICE 网表设计例以深化语法理解,并展示简单电路分析中 SPICE 网表的简洁紧凑。
所有示例输出均已“裁剪”冗余信息,呈现最精简的 SPICE 输出。主要为节省篇幅。实际运行时输出含大量页头和汇总信息,不必惊讶于与本书呈现不完全一致!
示例:多源直流电阻网络电路,第 1 部分

无 .dc 卡和 .print/.plot 卡时,输出仅显示节点 1、2、3 对节点 0 的电压。
网表:
Multiple dc sources v1 1 0 dc 24 v2 3 0 dc 15 r1 1 2 10k r2 2 3 8.1k r3 2 0 4.7k .end
输出:
node voltage node voltage node voltage ( 1) 24.0000 ( 2) 9.7470 ( 3) 15.0000
voltage source currents name current v1 -1.425E-03 v2 -6.485E-04
total power dissipation 4.39E-02 watts
示例:多源直流电阻网络电路,第 2 部分

添加 .dc 分析卡并指定 V1 从 24V 到 24V 步进 1(即恒定 24V),可用 .print 打印任意两点间电压。奇怪的是,调用 .dc 分析后,默认的各节点对地电压打印消失,必须在 .print 卡显式指定才能看到。
网表:
Multiple dc sources v1 1 0 v2 3 0 15 r1 1 2 10k r2 2 3 8.1k r3 2 0 4.7k .dc v1 24 24 1 .print dc v(1) v(2) v(3) v(1,2) v(2,3) .end
输出:
v1 v(1) v(2) v(3) v(1,2) v(2,3) 2.400E+01 2.400E+01 9.747E+00 1.500E+01 1.425E+01 -5.253E+00
示例:RC 时间常数电路

DC 分析中,无源元件(C 或 L)的初始条件必须指定(电容电压、电感电流)。由电容卡最后数据字段提供 (ic=0)。执行 DC 分析需指定 .tran(“瞬态”)分析选项,首字段为秒单位时间增量,次字段为总分析时长(秒),uic 告知“使用初始条件”分析。
网表:
RC time delay circuit v1 1 0 dc 10 c1 1 2 47u ic=0 c2 1 2 22u ic=0 r1 2 0 3.3k .tran .05 1 uic .print tran v(1,2) .end
输出:
time v(1,2) 0.000E+00 7.701E-06 5.000E-02 1.967E+00 1.000E-01 3.551E+00 1.500E-01 4.824E+00 2.000E-01 5.844E+00 2.500E-01 6.664E+00 3.000E-01 7.322E+00 3.500E-01 7.851E+00 4.000E-01 8.274E+00 4.500E-01 8.615E+00 5.000E-01 8.888E+00 5.500E-01 9.107E+00 6.000E-01 9.283E+00 6.500E-01 9.425E+00 7.000E-01 9.538E+00 7.500E-01 9.629E+00 8.000E-01 9.702E+00 8.500E-01 9.761E+00 9.000E-01 9.808E+00 9.500E-01 9.846E+00 1.000E+00 9.877E+00
绘图与分析简单交流正弦波电压电路

此练习展示用 .plot 函数绘制正弦波电压源瞬时值的正确设置(作为 瞬态 分析)。不出所料,傅里叶分析也需 .tran 选项在合适时间范围执行。此套牌时间范围导致傅里叶精度较差。瞬态分析覆盖的基波周期越多,傅里叶分析越精确。这非 SPICE 怪癖,而是波形基本原理。
网表:
v1 1 0 sin(0 15 60 0 0) rload 1 0 10k * change tran card to the following for better Fourier precision * .tran 1m 30m .01m and include .options card: * .options itl5=30000 .tran 1m 30m .plot tran v(1) .four 60 v(1) .end
输出:
time v(1) -2.000E+01 -1.000E+01 0.000E+00 1.000E+01 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.000E+00 0.000E+00 . . * . . 1.000E-03 5.487E+00 . . . * . . 2.000E-03 1.025E+01 . . . * . 3.000E-03 1.350E+01 . . . . * . 4.000E-03 1.488E+01 . . . . *. 5.000E-03 1.425E+01 . . . . * . 6.000E-03 1.150E+01 . . . . * . 7.000E-03 7.184E+00 . . . * . . 8.000E-03 1.879E+00 . . . * . . 9.000E-03 -3.714E+00 . . * . . . 1.000E-02 -8.762E+00 . . * . . . 1.100E-02 -1.265E+01 . * . . . . 1.200E-02 -1.466E+01 . * . . . . 1.300E-02 -1.465E+01 . * . . . . 1.400E-02 -1.265E+01 . * . . . . 1.500E-02 -8.769E+00 . . * . . . 1.600E-02 -3.709E+00 . . * . . . 1.700E-02 1.876E+00 . . . * . . 1.800E-02 7.191E+00 . . . * . . 1.900E-02 1.149E+01 . . . . * . 2.000E-02 1.425E+01 . . . . * . 2.100E-02 1.489E+01 . . . . *. 2.200E-02 1.349E+01 . . . . * . 2.300E-02 1.026E+01 . . . * . 2.400E-02 5.491E+00 . . . * . . 2.500E-02 1.553E-03 . . * . . 2.600E-02 -5.514E+00 . . * . . . 2.700E-02 -1.022E+01 . * . . . 2.800E-02 -1.349E+01 . * . . . . 2.900E-02 -1.495E+01 . * . . . . 3.000E-02 -1.427E+01 . * . . . . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fourier components of transient response v(1) dc component = -1.885E-03 harmonic frequency fourier normalized phase normalized no (hz) component component (deg) phase (deg) 1 6.000E+01 1.494E+01 1.000000 -71.998 0.000 2 1.200E+02 1.886E-02 0.001262 -50.162 21.836 3 1.800E+02 1.346E-03 0.000090 102.674 174.671 4 2.400E+02 1.799E-02 0.001204 -10.866 61.132 5 3.000E+02 3.604E-03 0.000241 160.923 232.921 6 3.600E+02 5.642E-03 0.000378 -176.247 -104.250 7 4.200E+02 2.095E-03 0.000140 122.661 194.658 8 4.800E+02 4.574E-03 0.000306 -143.754 -71.757 9 5.400E+02 4.896E-03 0.000328 -129.418 -57.420 total harmonic distortion = 0.186350 percent
示例:简单交流 RC 电路

.ac 卡指定 60Hz 到 60Hz 单点交流分析。此卡对多频率分析更有用,可分步分析频率范围。.print 卡输出节点 1-2 间交流电压、节点 2 对地交流电压。
网表:
Demo of a simple AC circuit v1 1 0 ac 12 sin r1 1 2 30 c1 2 0 100u .ac lin 1 60 60 .print ac v(1,2) v(2) .end
输出:
freq v(1,2) v(2) 6.000E+01 8.990E+00 7.949E+00
示例:低通滤波器电路

此低通滤波器阻交流通直流至 Rload。典型用于抑制整流电路纹波,因有谐振频率,技术上属带通滤波器。但对通直流、阻整流高次谐波效果良好。用 500 Hz 到 15 kHz 交流源扫描测量性能。如需图形化显示节点 4 交流电压,可替换或补充 .plot 卡。
网表:
Lowpass filter v1 2 1 ac 24 sin v2 1 0 dc 24 rload 4 0 1k l1 2 3 100m l2 3 4 250m c1 3 0 100u .ac lin 30 500 15k .print ac v(4) .plot ac v(4) .end
输出:(含频率-电压表格与 ASCII 绘图,此处省略冗长数据)
示例:多源交流网络电路

SPICE 怪癖之一:无法处理仅由串联电压源和电感组成的环路。因此 V1-L1-L2-V2-V1 “环路”不可接受。解决方法:在该环路插入低阻电阻打破。故在节点 3-4 间加 Rbogus(1 pΩ),V2 在 4-0 间。上图为原设计,下图插入 Rbogus 避免 SPICE 报错。

网表:
Multiple ac source v1 1 0 ac 55 0 sin v2 4 0 ac 43 25 sin l1 1 2 450m c1 2 0 330u l2 2 3 150m rbogus 3 4 1e-12 .ac lin 1 30 30 .print ac v(2) .end
输出:
freq v(2) 3.000E+01 1.413E+02
示例:交流相移演示电路

各支路电流由各自分流电阻(1 A = 1 V 过 1 Ω)上的压降指示,由 .print 卡的 v(1,2) 和 v(1,3) 输出。各支路电流相位由分流电阻压降相位指示,输出 vp(1,2) 和 vp(1,3)。
网表:
phase shift v1 1 0 ac 4 sin rshunt1 1 2 1 rshunt2 1 3 1 l1 2 0 1 r1 3 0 6.3k .ac lin 1 1000 1000 .print ac v(1,2) v(1,3) vp(1,2) vp(1,3) .end
输出:
freq v(1,2) v(1,3) vp(1,2) vp(1,3) 1.000E+03 6.366E-04 6.349E-04 -9.000E+01 0.000E+00
示例:变压器电路

SPICE 将变压器理解为一组互耦电感。仿真变压器须将初、次级绕组指定为单独电感,再用 “k” 卡指定耦合系数。理想变压器耦合系数为 1,但 SPICE 不支持,用 0.999 等近似。所有 绕组电感对须各自用 k 卡耦合。两绕组变压器单 k 卡即可。三绕组需三 k 卡(L1-L2、L2-L3、L1-L3)。L1/L2 电感比 100:1 给 10:1 降压比。120V 输入应得 L2 输出 12V。L1/L3 比 100:25 (4:1) 给 2:1 降压比,应得 L3 输出 60V。
网表:
transformer v1 1 0 ac 120 sin rbogus0 1 6 1e-3 l1 6 0 100 l2 2 4 1 l3 3 5 25 k1 l1 l2 0.999 k2 l2 l3 0.999 k3 l1 l3 0.999 r1 2 4 1000 r2 3 5 1000 rbogus1 5 0 1e10 rbogus2 4 0 1e10 .ac lin 1 60 60 .print ac v(1,0) v(2,0) v(3,0) .end
输出:
freq v(1) v(2) v(3) 6.000E+01 1.200E+02 1.199E+01 5.993E+01
Rbogus0 低阻电阻打破 V1/L1 源/电感环路。Rbogus1、Rbogus2 高阻电阻为各隔离电路提供直流地参考。初级一侧直接接地。无这些地参考,SPICE 会报错!
示例:全波桥式整流电路

SPICE 中二极管等半导体元件必须建模。幸好 SPICE 自带通用模型,二极管最基础。注意 .model 卡仅指定 “d” 作为 mod1 的通用二极管模型。因绘制波形,需在单卡指定交流源所有参数并用 .tran 打印/绘图所有值。
网表:
fullwave bridge rectifier v1 1 0 sin(0 15 60 0 0) rload 1 0 10k d1 1 2 mod1 d2 0 2 mod1 d3 3 1 mod1 d4 3 0 mod1 .model mod1 d .tran .5m 25m .plot tran v(1,0) v(2,3) .end
输出:(含 ASCII 波形图与傅里叶分析,此处省略冗长数据)
示例:共基极 BJT 放大器电路

此分析将输入电压 (Vin) 从 0 扫描至 5V,步进 0.1V,打印晶体管集电极-发射极间电压 v(2,3)。晶体管 (Q1) 为 NPN,正向 Beta 50。
网表:
Common-base BJT amplifier vsupply 1 0 dc 24 vin 0 4 dc rc 1 2 800 re 3 4 100 q1 2 0 3 mod1 .model mod1 npn bf=50 .dc vin 0 5 0.1 .print dc v(2,3) .plot dc v(2,3) .end
输出:(含 DC 扫描表格与 ASCII 绘图,此处省略冗长数据)
示例:自偏置共源极 JFET 放大器电路

网表:
common source jfet amplifier vin 1 0 sin(0 1 60 0 0) vdd 3 0 dc 20 rdrain 3 2 10k rsource 4 0 1k j1 2 1 4 mod1 .model mod1 njf .tran 1m 30m .plot tran v(2,0) v(1,0) .end
输出:(含瞬态波形 ASCII 绘图,此处省略)
示例:反相运放电路

SPICE 中模拟理想运算放大器,用电压控制电压源作极高增益差分放大器。“e” 卡建立受控电压源,四节点:3 和 0 为电压输出,1 和 0 为电压输入。受控源无需电源,异于真实运放。此处电压增益设为 999,000。输入电压源 (V1) 从 0 扫描至 3.5V,步进 0.05V。
网表:
Inverting opamp v1 2 0 dc e 3 0 0 1 999k r1 3 1 3.29k r2 1 2 1.18k .dc v1 0 3.5 0.05 .print dc v(3,0) .end
输出:(含 DC 扫描表格,此处省略)
示例:同相运放电路

另一 SPICE 怪癖:受控电压源 “e” 不被视为 V1 的负载,SPICE 认为 V1 开路而拒绝分析。修复:并联 Rbogus 于 V1 作直流负载。直接跨接 V1,Rbogus 阻值不关键,10 kΩ 即可。为保持网表和输出简洁,本例未扫描 V1。
网表:
noninverting opamp v1 2 0 dc 5 rbogus 2 0 10k e 3 0 2 1 999k r1 3 1 20k r2 1 0 10k .end
输出:
node voltage node voltage node voltage ( 1) 5.0000 ( 2) 5.0000 ( 3) 15.0000
示例:仪表放大器电路

网表中极高阻 Rbogus1、Rbogus2 跨接各输入电压源(原理图为简洁未画),防 SPICE 误判 V1、V2 开路,同其他运放例。
网表:
Instrumentation amplifier v1 1 0 rbogus1 1 0 9e12 v2 4 0 dc 5 rbogus2 4 0 9e12 e1 3 0 1 2 999k e2 6 0 4 5 999k e3 9 0 8 7 999k rload 9 0 10k r1 2 3 10k rgain 2 5 10k r2 5 6 10k r3 3 7 10k r4 7 9 10k r5 6 8 10k r6 8 0 10k .dc v1 0 10 1 .print dc v(9) v(3,6) .end
输出:
v1 v(9) v(3,6) 0.000E+00 1.500E+01 -1.500E+01 1.000E+00 1.200E+01 -1.200E+01 2.000E+00 9.000E+00 -9.000E+00 3.000E+00 6.000E+00 -6.000E+00 4.000E+00 3.000E+00 -3.000E+00 5.000E+00 9.955E-11 -9.956E-11 6.000E+00 -3.000E+00 3.000E+00 7.000E+00 -6.000E+00 6.000E+00 8.000E+00 -9.000E+00 9.000E+00 9.000E+00 -1.200E+01 1.200E+01 1.000E+01 -1.500E+01 1.500E+01
示例:正弦波输入运放积分器电路
网表:
Integrator with sinewave input vin 1 0 sin (0 15 60 0 0) r1 1 2 10k c1 2 3 150u ic=0 e 3 0 0 2 999k .tran 1m 30m uic .plot tran v(1,0) v(3,0) .end
输出:(含瞬态波形 ASCII 绘图,此处省略)
示例:方波输入运放积分器电路

网表:
Integrator with squarewave input vin 1 0 pulse (-1 1 0 0 0 10m 20m) r1 1 2 1k c1 2 3 150u ic=0 e 3 0 0 2 999k .tran 1m 50m uic .plot tran v(1,0) v(3,0) .end
输出:(含瞬态波形 ASCII 绘图,此处省略)
工业技术