3. SPICE中的基本元件:电阻、电容、电感、独立源、受控源的网表描述
SPICE网表是电路仿真中最底层的描述语言,它将电路拓扑与元件参数以文本形式精确表达。理解基本元件的网表语法,是后续进行模型参数提取与优化的重要基础。本节将系统介绍电阻、电容、电感、独立源和受控源的标准网表描述格式,并通过实例与图示帮助建立直观认识。
3.1 无源元件:电阻、电容、电感
无源元件是电路中最基础的构成单元。在SPICE网表中,每个元件行通常遵循以下通用格式:
<元件名> <正节点> <负节点> <模型名或参数值>
元件名必须以特定的字母开头,用于区分元件类型:R 代表电阻,C 代表电容,L 代表电感。
3.1.1 电阻(Resistor)
电阻的网表描述最为简单,直接指定阻值即可。基本格式为:
R<名称> <正节点> <负节点> <阻值>
示例:
R1 1 0 1k
R_load Vout 0 10k
R_feedback 2 1 100k
其中,1k 表示1000欧姆,10k 表示10000欧姆。SPICE支持科学计数法与工程后缀(如k、m、u、n、p)。
3.1.2 电容(Capacitor)
电容的网表描述与电阻类似,但可以附加初始条件(IC,即Initial Condition),用于瞬态分析的初始电压设定。
C<名称> <正节点> <负节点> <容值> [IC=<初始电压>]
示例:
C1 1 0 10p
C_bypass Vdd 0 100n IC=0V
C_load Out GND 1p IC=1.5V
在PN结电容建模中,电容值通常不是常数,而是偏压的函数。此时需要使用模型语句(.MODEL)来定义非线性电容特性,这在后续章节会详细展开。
3.1.3 电感(Inductor)
电感的网表格式与电容对称,同样支持初始电流设定。
L<名称> <正节点> <负节点> <感值> [IC=<初始电流>]
示例:
L1 1 0 1u
L_choke Vin Vout 10m IC=0A
3.2 独立源:电压源与电流源
独立源为电路提供激励信号。SPICE中独立源分为独立电压源(V)和独立电流源(I),支持直流、交流、瞬态等多种波形。
3.2.1 独立电压源(Independent Voltage Source)
V<名称> <正节点> <负节点> [[DC] <直流值>] [AC <幅值> [<相位>]] [<瞬态波形>]
常见形式:
| 类型 | 网表示例 | 说明 |
|---|---|---|
| 直流源 | Vdd 1 0 DC 5V |
节点1对地输出5V直流 |
| 交流源 | Vin 1 0 AC 1V 0 |
交流幅值1V,相位0°,用于AC分析 |
| 脉冲源 | Vpulse 1 0 PULSE(0 5 0 1n 1n 50n 100n) |
0→5V脉冲,延迟0,上升/下降1ns,脉宽50ns,周期100ns |
| 正弦源 | Vsin 1 0 SIN(0 1 1k 0 0 0) |
偏置0V,幅值1V,频率1kHz |
3.2.2 独立电流源(Independent Current Source)
格式与电压源完全对称,仅将首字母V换为I:
I<名称> <正节点> <负节点> [[DC] <直流值>] [AC <幅值> [<相位>]] [<瞬态波形>]
示例:
I1 0 1 DC 1mA
I_sense 2 0 AC 1uA
I1 0 1 DC 1mA,电流从节点0流向节点1,即实际电流从节点1流出。
3.3 受控源:四种基本类型
受控源是模拟有源器件(如晶体管、运放)行为的关键元件。SPICE提供四种线性受控源,其输出与输入控制量成线性比例。
| 类型 | 首字母 | 控制量 | 输出量 | 增益参数 |
|---|---|---|---|---|
| 电压控制电压源 | E | 电压 | 电压 | 电压增益 (V/V) |
| 电压控制电流源 | G | 电压 | 电流 | 跨导 (A/V) |
| 电流控制电压源 | H | 电流 | 电压 | 互阻 (V/A) |
| 电流控制电流源 | F | 电流 | 电流 | 电流增益 (A/A) |
3.3.1 电压控制电压源(VCVS)—— E元件
E<名称> <输出正节点> <输出负节点> <控制正节点> <控制负节点> <增益>
示例: 理想电压放大器,增益为100倍
E_amp 3 0 1 2 100
表示节点3与0之间的电压 = 100 × (V(1) - V(2))。
3.3.2 电压控制电流源(VCCS)—— G元件
G<名称> <输出正节点> <输出负节点> <控制正节点> <控制负节点> <跨导>
示例: 跨导放大器,跨导为10mS
Gm1 4 0 1 2 10m
表示从节点4流向节点0的电流 = 0.01 × (V(1) - V(2))。
3.3.3 电流控制电压源(CCVS)—— H元件
电流控制源需要引用一个独立的电压源作为电流传感器:
H<名称> <输出正节点> <输出负节点> <传感电压源名> <互阻>
示例:
Vsen 5 0 DC 0V ; 零值电压源,用于检测流过支路的电流
H_sense 6 0 Vsen 1k ; 输出电压 = 1000 × I(Vsen)
3.3.4 电流控制电流源(CCCS)—— F元件
F<名称> <输出正节点> <输出负节点> <传感电压源名> <电流增益>
示例: 电流镜,增益为2倍
Vref 7 0 DC 0V
F_mirror 8 0 Vref 2
表示从节点8流向节点0的电流 = 2 × I(Vref)。
3.4 网表结构综合示例
下面是一个完整的SPICE网表示例,包含上述所有基本元件类型:
Simple RC Circuit with Controlled Source
* 无源元件
R1 1 2 1k
C1 2 0 10p IC=0V
* 独立源
Vin 1 0 DC 5V AC 1V
Vdd 3 0 DC 3.3V
* 受控源:电压控制电压源,增益2倍
E_buf 4 0 2 0 2.0
* 受控源:电压控制电流源,跨导1mS
Gm_test 5 0 2 0 1m
* 分析指令
.OP
.AC DEC 10 1Hz 1MHz
.TRAN 1n 100n UIC
.END
3.5 元件网表描述关系图
下图总结了SPICE基本元件的网表描述体系,展示了元件类型、首字母、控制关系与典型应用场景:
3.6 常见错误与避坑指南
- 节点悬空: 每个节点至少连接两个元件(除电源节点外),否则SPICE会报“floating node”错误。
- 电流源串联回路: 独立电流源不能直接串联,会导致直流不收敛。需并联大电阻或使用其他拓扑。
- 受控源增益极性: 控制节点顺序为“正节点 - 负节点”,颠倒会导致相位反转。
- 单位后缀大小写: SPICE不区分大小写,但
M代表毫(10⁻³),MEG代表兆(10⁶),注意区分。 - IC选项生效条件: 电容/电感的IC值必须在 .TRAN 语句中加上
UIC关键字才会被使用。
.OPTIONS NOPAGE 可以简化输出;使用 .PRINT 或 .PLOT 查看节点电压与支路电流,快速验证网表连接是否正确。