4. 无源元件建模:电阻R、电容C、电感L的SPICE语法、初始条件设置、寄生参数

无源元件是电路仿真的基石。电阻、电容、电感,这三个元件看似简单,但在SPICE里,它们的模型远不止一个理想符号。我见过太多新手在仿真时,明明电路图看着没问题,结果却跟实测差了好几条街——十有八九,问题就出在元件模型上。

这一章,咱们就把R、C、L的SPICE语法、初始条件怎么设、寄生参数怎么加,一次性讲透。

4.1 电阻R:从理想到寄生

电阻的SPICE语法最简单,但坑也不少。

4.1.1 基本语法

R<name> <+节点> <-节点> <阻值>

举个例子:

R1 1 0 10k

这就表示一个10kΩ的电阻,接在节点1和地之间。

单位后缀小技巧:
SPICE里单位不区分大小写,但要注意:
  • M = 1e-3(毫)—— 这是个经典陷阱
  • MEG = 1e6(兆)—— 这才是兆欧
我刚开始用SPICE时,写了个1M的电阻,心想是1兆欧,结果仿真出来电流大得离谱。查了半天才发现,SPICE把"M"当成了毫欧。从那以后,兆欧我统一写"MEG"。

4.1.2 半导体电阻模型

实际芯片里的电阻不是线性的。SPICE提供了半导体电阻模型:

R1 1 2 RMOD W=10u L=100u
.MODEL RMOD R RSH=50 TC1=0.002 TC2=0.0001

这里RSH是方块电阻,TC1和TC2是温度系数。我在做带隙基准时,就靠这个模型来补偿电阻的温度漂移。

4.1.3 寄生参数

高频下,电阻不再是纯电阻。它两端有寄生电容,引线有寄生电感。SPICE里可以这样加:

R1 1 2 10k
Cpar1 1 2 0.5p   ; 寄生电容
Lpar1 1 2 1n     ; 寄生电感
注意: 寄生参数不是随便加的。我见过有人把所有电阻都加上1pF电容,结果高频仿真全乱套。寄生参数要根据实际工艺和频率范围来定。一般频率低于100MHz时,可以忽略大部分寄生。

4.2 电容C:初始条件与模型选择

电容在SPICE里比电阻复杂一些,尤其是初始电压的设置。

4.2.1 基本语法

C<name> <+节点> <-节点> <容值> [IC=<初始电压>]

例子:

C1 1 0 10p IC=1.5V

这表示一个10pF的电容,初始电压设为1.5V。

4.2.2 初始条件设置

为什么要设初始条件?你想想看,仿真一个RC充放电电路,如果电容初始电压是0,那仿真结果就是从0开始充电。但实际电路中,电容可能已经充到某个电压了。

SPICE里设置初始条件有两种方式:

  1. 元件级设置: 直接在电容语句后面加IC参数
  2. 全局设置: 在仿真语句中使用UIC(Use Initial Conditions)选项
.TRAN 1n 100n UIC

用了UIC,SPICE就会跳过直流工作点计算,直接使用你设定的初始值。

我的经验: 做开关电源仿真时,初始条件设不好,仿真可能几个小时都收敛不了。我一般先跑一个短暂的瞬态仿真,让电路自己稳定下来,再把稳定后的节点电压作为初始条件。

4.2.3 电容模型

实际电容有电压系数和温度系数。SPICE提供了电容模型:

C1 1 2 CMOD W=10u L=10u
.MODEL CMOD C CJ=0.5m VJ=0.6 M=0.5

这里CJ是零偏结电容,VJ是内建电势,M是梯度因子。这个模型在做MOS管栅电容仿真时特别有用。

4.2.4 寄生参数

电容的寄生主要是等效串联电阻(ESR)和等效串联电感(ESL)。

电容类型 典型ESR 典型ESL 适用频率
陶瓷电容 1~10mΩ 0.5~2nH ~GHz
电解电容 0.1~1Ω 5~20nH ~MHz
钽电容 0.1~0.5Ω 2~10nH ~100MHz

在SPICE里,可以用子电路来建模带寄生的电容:

.SUBCKT CAP_WITH_PARASITICS 1 2
Cideal 1 3 10p
Rser 3 4 0.1
Lser 4 2 1n
.ENDS

4.3 电感L:互感与磁芯模型

电感在SPICE里是最容易出问题的无源元件。为什么?因为理想电感在直流下就是短路,仿真时容易引起数值问题。

4.3.1 基本语法

L<name> <+节点> <-节点> <感值> [IC=<初始电流>]

例子:

L1 1 0 100u IC=10mA

4.3.2 互感设置

变压器、耦合电感在SPICE里用K语句来定义互感:

L1 1 2 100u
L2 3 4 200u
K1 L1 L2 0.95

K是耦合系数,范围0~1。0.95表示95%的磁耦合。

耦合系数怎么定?
我做电源设计时,一般按这个经验来:
  • 紧密耦合变压器:K=0.99~0.999
  • 普通耦合电感:K=0.8~0.95
  • 松耦合(如无线充电):K=0.1~0.5

4.3.3 磁芯模型

实际电感有磁芯饱和、磁滞效应。SPICE提供了非线性磁芯模型:

L1 1 2 LMOD N=100
.MODEL LMOD CORE A=1e-4 LM=1m LMA=0.1

这里A是磁芯截面积,LM是磁路长度,LMA是饱和磁导率。这个模型能模拟磁芯饱和时的电感下降。

我曾经做过一个反激电源,仿真时电感一直不饱和,结果实际测试时变压器叫得跟杀猪一样。后来加了磁芯模型,才发现磁芯在峰值电流时已经饱和了。

4.3.4 寄生参数

电感的寄生主要是直流电阻(DCR)和并联电容(CP)。

L1 1 2 100u
Rdc 1 3 0.5
Cpar 2 3 5p

DCR决定了电感的直流损耗,CP决定了电感的自谐振频率。频率超过自谐振频率后,电感就变成电容了。

自谐振频率: 这是电感建模最容易忽略的点。我见过有人用10μH的电感做2GHz的滤波,结果根本滤不掉。一查,那个电感的自谐振频率才500MHz。高频下,电感模型必须包含寄生电容。

4.4 知识结构总览

下面这张图总结了无源元件建模的核心要点:

无源元件建模知识结构 无源元件建模核心要点 电阻 R 基本语法 半导体模型 温度系数 TC1/TC2 寄生:Cpar + Lpar 高频下必须加寄生 电容 C 基本语法 + IC 初始条件设置 电压系数模型 寄生:ESR + ESL UIC 选项控制 电感 L 基本语法 + IC 互感 K 语句 磁芯饱和模型 寄生:DCR + CP 自谐振频率 建模核心原则 1. 低频用理想模型,高频必须加寄生 2. 初始条件影响瞬态仿真起点 3. 模型复杂度要与仿真精度匹配 —— 过建模反而导致收敛困难 —— 每个元件都包含:基本语法 + 模型选择 + 初始条件 + 寄生参数

4.5 综合示例:一个带寄生的RLC电路

最后,咱们看一个完整的例子。这是一个带寄生参数的RLC滤波电路:

* 带寄生参数的RLC低通滤波器
Vin 1 0 AC 1V
R1 1 2 50
L1 2 3 100u
Rdc 2 4 0.2        ; 电感DCR
Cpar 3 4 2p        ; 电感寄生电容
C1 3 0 10p IC=0V
Resr 3 5 0.05      ; 电容ESR
Lesl 5 6 0.5n      ; 电容ESL
Rload 6 0 1k

.AC DEC 100 1k 100MEG
.TRAN 1n 1u UIC
.PROBE
.END

这个例子把这一章讲的内容都用上了。你想想看,如果只用理想元件,这个滤波器的截止频率和实际会有多大差别?

小结: 无源元件建模,说白了就是三个字——看频率。低频下,理想模型够用;频率一高,寄生参数就是主角。我建议你每次仿真前,先问问自己:这个电路的工作频率是多少?元件的自谐振频率是多少?想清楚这两个问题,模型就不会选错。