电路仿真工具(Circuit Simulation)
本质与导读
本质 没有一款仿真工具全任务最优,选型是收敛性 × 精度 × 速度的三难:SPICE 家族精度最高但收敛最慢,SIMPLIS 用分段线性直接求稳态快 10~50× 而精度略低,PSIM 用理想开关换极速但丢波形细节,Simulink 只做系统级与控制、不碰器件物理。选错工具能让 5 分钟的仿真变成 5 小时不收敛——选型先于建模。
1. 核心框架:四种仿真任务与对应工具
电路仿真4 种任务对应不同工具——SPICE 详细瞬态(LTspice)、状态空间(SIMPLIS)、混合电气热(PSIM)、有限元(Ansys)。每种工具的速度精度权衡不同,选错工具仿真效率差 10×。
| 任务 | 首选工具 | 原因 |
|---|---|---|
| 详细开关波形 | LTspice | 真实器件波形 |
| 电源环路 Bode | SIMPLIS | 直接求稳态;快 10× |
| 系统级功率+控制 | PSIM | 理想开关;C Block |
| 控制算法+HIL | Simulink | 建模;代码生成 |
| 多物理场 | Modelica | 多域方程耦合 |
仿真任务大致分为四类,每类都有最适合的工具。
2. SPICE 家族——精度的代价是速度
SPICE (Simulation Program with Integrated Circuit Emphasis) 是 1973 年 UC Berkeley 开发的模拟电路仿真器。所有现代 SPICE 衍生品(LTspice、PSpice、HSpice、SIMetrix、NGspice)都基于同一套数值方法。
2.1 SPICE 的工作原理
基于节点分析 (Modified Nodal Analysis, MNA),在时域内逐步数值积分,每个时间步内重复求解过程如下:
| 步骤 | 说明 |
|---|---|
| Step 1 | 建立电路的 KCL/KVL 方程组(矩阵 ) |
| Step 2 | 牛顿–拉普森迭代求解非线性器件 |
| Step 3 | 时间步进(梯形法 / Gear 法)推进到下一时刻 |
| Step 4 | 重复 Step 2–3,直到仿真时间结束 |
每个时间步需要迭代收敛——这是 SPICE 精度的来源,也是慢的原因。
2.2 SPICE 的收敛陷阱
SPICE 仿真经常不收敛——尤其是电路里有高 Q 值谐振、快速开关或强非线性时。常见错误信息:
- "timestep too small":时间步被自动减小到最小限制
- "iteration limit reached":牛顿迭代在一步里不收敛
- "singular matrix":KCL 方程组奇异(电路连接错误)
调试方法:
1 放宽收敛参数:
.options RELTOL=0.01 (默认 0.001)
.options ABSTOL=1u (默认 1p)
.options VNTOL=0.1m (默认 1u)
放宽 10× 可以解决大部分收敛问题,代价是精度略降。
2 增加阻尼:在高 Q 回路加小电阻(1 mΩ ~ 1 Ω)模拟实际寄生。
3 改变积分方法:
.options METHOD=GEAR (默认 TRAP)
Gear 法对高 Q 回路更稳定,但有"数值阻尼"导致精度略降。
4 设置合理的初始条件:
.ic V(node)=5 (强制某节点初始电压)
避开启动瞬态的困难时刻。
5 使用"软启动"源:
V_in in 0 PULSE(0 12 0 1u) ; 1us 内从 0 升到 12 V
而不是阶跃源(上升时间为 0)。
2.3 LTspice——免费的事实标准
LTspice 由 Linear Technology(已被 ADI 收购)开发,完全免费,但功能丰富:
- 快速求解器(比 PSpice 快 2~3×)
- 完整的 ADI / Linear 器件库(大量精密运放、LDO、Buck 控制器)
- 集成波形查看器,支持表达式计算
- 参数扫描 + 自动测量
- Python 接口(PyLTspice)支持自动化
对功率工程师来说,LTspice 几乎是默认选择。
2.4 LTspice 核心命令
LTspice 几个核心命令覆盖 90% 仿真场景——.tran(瞬态)、.ac(频域)、.dc(直流)、.noise(噪声)、.step(参数扫描)、.meas(测量提取)。这 6 个命令组合可完成绝大多数功率仿真。
| 命令 | 功能 | 典型应用 |
|---|---|---|
.tran | 瞬态仿真 | 开关波形、启动过程 |
.ac | AC 小信号 | Bode 图、滤波器频响 |
.dc | DC 扫描 | 传输特性、工作点 |
.op | 工作点分析 | 静态偏置验证 |
.noise | 噪声谱密度 | 低噪声电路 |
.tf | 传递函数 | 小信号分析 |
.step | 参数扫描 | 一次仿真多组参数 |
.meas | 自动测量 | 效率、建立时间等 |
.mc | 蒙特卡洛 | 公差分析 |
.model | 定义自定义模型 | 简化器件模型 |
2.5 .step + .meas 示例
- 定义参数
.param Rg = 10
- 在电路中使用
R_gate gate_drv gate {Rg}
- 参数扫描
.step param Rg list 5 10 22 47
- 自动测量效率
.meas TRAN Pin AVG -V(vin)*I(Vin) FROM 90u TO 100u
.meas TRAN Pout AVG V(vout)*I(Rload) FROM 90u TO 100u
.meas TRAN Eff param (100*Pout/Pin)
- 自动测量开关损耗
.meas TRAN Esw_on INTEG V(sw_node)*I(M1_drain) FROM 91u TO 91.5u
一次运行得到 4 组结果,可视化对比选择最佳 。
2.6 PyLTspice——自动化仿真
PyLTspice 是 LTspice 的 Python 接口,可以:
- 批量修改网表并运行仿真
- 直接读取
.raw波形文件 - 做 Monte Carlo 或参数优化
示例(批量测不同 Q 因子的滤波器响应):
from PyLTSpice import SimRunner, SpiceEditor
LTC = SimRunner(output_folder='./temp')
netlist = SpiceEditor("filter.asc")
for Q in [0.5, 0.707, 1.0, 2.0]:
netlist.set_component_value('R1', str(1000/Q))
LTC.run(netlist)
LTC.wait_completion()
这种自动化对大规模设计空间探索或Monte Carlo 良率分析非常有用。
LTspice 是免费 + 快速 + 库丰富的组合,是功率工程师的"瑞士军刀";.step + .meas + PyLTspice 构成完整自动化仿真体系。
3. SIMPLIS——开关电源的专业工具
SIMPLIS (SIMulation for Piecewise-LInear Systems) 是 SIMetrix 软件里的专用引擎,专为开关电路设计。它不是 SPICE——用的是完全不同的数值方法。
3.1 SIMPLIS 的分段线性方法
SIMPLIS 把电路看作分段线性 (Piecewise-Linear) 系统:
关键优势:
- 直接求解周期稳态 (Periodic Operating Point, POP)——不需要等几十个开关周期
- 比 SPICE 快 10~50×(对开关电源仿真)
- 自动 AC 分析:注入小信号扰动 + 测量响应 → 自动输出 Bode 图
- 比 SPICE 更容易收敛(分段线性减少了非线性迭代)
3.2 SIMPLIS vs SPICE 的根本差异
SIMPLIS 与 SPICE 核心差异是分段线性 vs 全 SPICE——SIMPLIS 把开关器件简化为分段线性,仿真速度比 SPICE 快 10-100×,但精度损失。适用场景:闭环稳态分析、IC 控制器设计。
| 特性 | SPICE | SIMPLIS |
|---|---|---|
| 数值方法 | 时域逐步积分(ODE) | 分段线性 + 解析求解 |
| 达到稳态 | 需仿真几十个周期 | 直接计算稳态 |
| Bode 图 | 需要平均模型或特殊技巧 | 自动生成 |
| 速度 | 基准 | 快 10~50× |
| 精度 | 真实器件模型(振铃可见) | 分段线性(振铃不可见) |
| 收敛 | 常见不收敛问题 | 更容易收敛 |
3.3 SIMPLIS 的典型用途
主要用于开关电源设计的稳态和环路分析**:
不适合:
- 详细器件波形(看不到寄生振铃、dv/dt)
- EMI 预估(需要高频细节)
- 非开关电路(SIMPLIS 对普通模拟电路不优势)
3.4 一个示例:PCM Buck 的 Bode 图
在 SPICE 中:
- 建平均模型(State-Space Average)—— 需要理论推导
- 或者直接用开关电路运行 AC 分析(SPICE 的 AC 分析对开关电路基本无效)
- 结果:几小时 + 大量 debug
在 SIMPLIS 中,全流程只需四步即可拿到环路 Bode 图:
| 步骤 | 说明 |
|---|---|
| Step 1 | 用原理图搭真实的 PCM Buck(含 MOSFET、PWM 比较器、电感、电容) |
| Step 2 | 运行 POP (Periodic Operating Point) 分析 → 得到稳态 |
| Step 3 | 运行 AC 分析 → 自动注入扰动 → 自动输出 Bode 图 |
| Step 4 | 调整补偿器参数,重复 Step 3 |
5 分钟出第一版 Bode 图。这是 SIMPLIS 对开关电源设计的革命性价值。
SIMPLIS 用分段线性绕过 SPICE 的数值积分,直接求周期稳态,是开关电源环路设计的事实标准——但你必须接受"看不到详细振铃"的代价。
4. PSIM——系统级功率电子仿真
PSIM(Powersim 开发)是另一个专用仿真器,不属于 SPICE 家族。它的设计哲学更激进:用理想开关代替真实器件模型,换取极致的仿真速度。
4.1 PSIM 的理想开关
理想开关模型:
- ON 状态: = 0,I 任意(零电阻)
- OFF 状态:I = 0,V 任意(无穷电阻)
- 切换瞬间:瞬时完成(无上升下降时间)
这个模型显然不符合物理——但对大多数系统级分析已经足够。你不关心具体的 dv/dt,你关心的是平均占空比、输出电流、效率、控制器行为。
结果:PSIM 比 SPICE 快 10~100×,同时收敛性好得多。
4.2 PSIM 的核心模块
PSIM 专攻"功率电子 + 电机控制"——理想开关 + 电机模型 + 控制框图。设计周期短但精度损失。适合项目早期拓扑选型,不适合后期 EMC/损耗仿真。
- Ideal Switch:理想开关
- C Block:直接用 C 语言写控制器,编译后嵌入仿真
- SimCoupler:与 MATLAB/Simulink 联合仿真
- Motor Drive Module:PMSM/BLDC 电机模型、Hall/Resolver 传感器
- Thermal Module:导入厂商 模型,计算实时结温
- Renewable Energy Module:光伏 / 风力模型
4.3 C Block——关键杀手级特性
在 PSIM 里用 C 语言直接写控制器代码:
// 简单的 PI 控制器
static double err_integral = 0;
double PI_Control(double v_out, double v_ref) {
double err = v_ref - v_out;
err_integral += err * T_s;
return KP * err + KI * err_integral;
}
这段代码同时:
- 在 PSIM 仿真里运行(验证算法)
- 直接编译到嵌入式目标(MCU / DSP)
这是 PSIM 最大的价值——仿真代码 = 量产代码,避免"仿真看起来对但实际板子跑不动"的痛苦。
4.4 PSIM vs SPICE:一个 LLC 仿真对比
LLC 谐振变换器稳态仿真:
- SPICE:LLC 的 Q 值高,需要几十个开关周期才能达到稳态;收敛慢;可能 30 分钟 才出一次结果
- PSIM 理想开关:同样精度的稳态,30 秒
- 差距:100×
代价:PSIM 看不到 SiC MOSFET 的真实振铃和 EMI 细节。如果你需要评估 EMI,必须用 LTspice 详细仿真补充。
实务:PSIM 做系统设计(拓扑、控制、效率),LTspice 做器件级细节(开关波形、EMI、损耗)。两者互补。
PSIM 用理想开关换速度,用 C Block 换 "仿真 = 代码" 的一致性;是系统级功率电子设计的主流工具。
5. SPICE MOSFET 模型层次 — 拆出 atomic 专题
SPICE 内置 L1/L2/L3 经验模型 vs BSIM3/4 vs EKV vs PSP 物理模型,加上厂商 subcircuit 模型(包封装寄生 / 热网络 / 反向恢复 / 自热 / 雪崩等),功率器件仿真选哪个层次决定能看到什么 datasheet 行为——4 端口标准模型看不到 hottest cell,5 端口 / 7 端口才能。详见 topic-spice-mosfet-models。
6. MATLAB/Simulink——系统级控制设计
MATLAB/Simulink 不是电路仿真器——它是系统级建模工具。用于:
- 控制算法设计(PID、LQR、MPC、Kalman 滤波)
- 系统建模(状态空间、传递函数)
- 自动代码生成(Simulink Coder → C 代码)
- HIL 仿真(Hardware-in-the-Loop)
6.1 典型流程:EV 电机控制器开发
EV 电机控制器仿真按 4 阶段递进——概念(PSIM 简化)、详细(SPICE)、闭环(SIMPLIS)、整机(MATLAB Simulink)。每段用合适工具,工时分布大致均等。下表把 Simulink 主线从建模到量产的五步拆开,每步对应一项可交付物:
| 步骤 | 说明 |
|---|---|
| Step 1 建立完整模型 | 功率变换器(Simscape 或 PSIM 共仿真)、PMSM 电机模型、FOC 控制器(Clarke / Park / PI 电流环 / 速度环)、SVPWM 调制 |
| Step 2 调试控制算法 | 调 PI 参数、验证带宽和稳定性、验证启动/制动/弱磁等工况 |
| Step 3 自动代码生成 | Simulink Coder → C 代码 → 嵌入 MCU |
| Step 4 HIL 测试 | 真实 MCU + Simulink 模拟的"虚拟硬件"在实时仿真器上运行,验证代码在真实硬件上的行为 |
| Step 5 量产 | 同一套代码 + 真实功率硬件 |
Simulink 的价值:算法开发、仿真验证、代码生成都在同一个环境里——从模型到量产代码无缝过渡。
实际使用:EV 主驱 ECU 的控制软件绝大多数用 Simulink 开发(特斯拉、比亚迪、通用等)。
6.2 Simulink 和 PSIM 的联合仿真
SimCoupler(PSIM 的接口模块)允许:
- PSIM 做功率变换器(快速收敛、高精度)
- Simulink 做控制算法(调参方便、可视化好)
- 两者实时数据交换
优点:利用两个工具各自的优势。缺点:设置稍复杂,需要理解数据交换时序。
Simulink 做系统级控制设计和代码生成,与 PSIM 或 Simscape 配合做完整仿真;它不是电路仿真器,不要和 SPICE 比较器件级精度。
7. Modelica——多物理场仿真
Modelica 是一个多物理域建模语言,不是工具——用 Modelica 建模然后在 Dymola、OpenModelica、JModelica 等工具中仿真。
7.1 Modelica 的独特价值
多物理域方程系统:
- 电路(电压、电流)
- 热学(温度、热流)
- 机械(位置、力)
- 液压、气动等
同时耦合求解。对于热-电耦合(MOSFET 结温随损耗动态变化)、电-机耦合(电机温升影响转矩)等问题,Modelica 有独特优势。
8. 仿真工具选型决策矩阵
这一节不追求一张全能矩阵,而是按任务粒度拆成三组:先看器件与波形,再看电源 / 系统,最后看控制与 HIL。这样读者先确定任务,再选工具。
8.1 器件 / 波形级任务
这一组关心的是模型细节、开关波形和小信号响应,所以 LTspice / SIMPLIS 这类电路级工具会明显占优。
| 任务 | 最佳工具 | 次选 |
|---|---|---|
| 小信号运放 | LTspice | — |
| 开关电源波形 | LTspice | SIMPLIS |
| EMI 仿真 | LTspice | — |
| 蒙特卡洛公差 | LTspice | SIMPLIS |
8.2 电源 / 系统级任务
这组开始进入平均模型、系统功率流和热耦合,所以选型标准从"波形够不够细"转成"系统跑得动、调参够不够快"。
| 任务 | 最佳工具 | 次选 |
|---|---|---|
| 电源 Bode 图 | SIMPLIS | PSIM |
| 电源稳态 | SIMPLIS | PSIM |
| 系统级功率 | PSIM | Simulink |
| 热-电协同 | Modelica | PSIM |
8.3 控制 / HIL 任务
最后这一组是把控制器、实时性和代码生成放回主角位,所以 Simulink 这类控制工具会天然更合适。
| 任务 | 最佳工具 | 次选 |
|---|---|---|
| 电机控制算法 | Simulink | PSIM |
| HIL 仿真 | Simulink | PSIM |
成本:LTspice 免费;Modelica 有开源版;SIMPLIS / PSIM / Simulink 均为商业。
9. 仿真工程陷阱 G1-G7
仿真陷阱绝大多数不是求解器本身的 bug——而是"用错了工具、模型层次与任务不匹配、测量窗口写错"。下面七个陷阱覆盖了功率电子工程师最高频的失误,每条给出根因和可落地的修正。
G1 — Level 1 SPICE 仿 SiC 导通损耗低估 3-5×
Level 1 MOSFET 模型(.model M NMOS LEVEL=1 KP=... VTO=...)只有五个参数,源自 1970 年代 CMOS 电路经验——它完全没有漂移区电阻,无法重现功率 MOSFET 的 RDSon。对 SiC MOSFET 误差最大:SiC 漂移区贡献 80% 以上的 RDSon,这部分在 L1 里不存在。实测:同一电感、相同占空比下,L1 模型算出的导通损耗比厂商 subckt 低 3-5×;据此选散热片会造成热失控。修正:下载 ROHM 官方 .lib 文件,用厂商 subckt 替换 Level 1 模型,在 netlist 里加 .include "SCT3080AL.lib" 一行。
G2 — SPICE .ac 分析对开关电源无效
.ac 命令在直流工作点附近做小信号线性化——对非时不变电路(开关变换器)根本不适用:SPICE 的 DC 工作点求解器会把 MOSFET 固定在某个中间状态(通常是"刚好导通"的奇点),线性化后的 Bode 图要么增益恒定、要么振荡失控,与实际频率响应毫无关联。每届工程师都踩过这个坑——看到 SPICE Bode 图"不对"然后怀疑补偿器,实际上工具根本不支持这个任务。修正:开关电源 Bode 图必须用 SIMPLIS(POP → AC 扫描),或在 SPICE 里手工建立状态空间平均模型(State-Space Average Model)。
G3 — .meas 测量窗口含启动瞬态导致效率虚高
.meas TRAN Pout AVG ... FROM 0 TO 100u 从零时刻开始测量时,前 20-50 个开关周期是电容充电的启动瞬态:电感电流和输出电压都在爬坡,瞬时吸收的能量远小于稳态,导致算出的"平均输出功率"偏低、"效率"偏高——有时能高出真值 5-8 个百分点。修正:测量窗口必须从稳态开始,例如 .tran 0 5m 4.8m 10n(第三参数 4.8m = skip start time)配合 .meas TRAN ... FROM 4.8m TO 5m,取最后 10% 时间内完整周期的均值。
G4 — SIMPLIS POP 在 CCM/DCM 边界发散
SIMPLIS 的 Periodic Operating Point 算法假定电路存在唯一周期稳态——在 CCM 和 DCM 各自内部成立,但在边界点处电感电流恰好在每个周期末触零,状态轨迹对初始条件极为敏感,POP 的 Newton 迭代在该点附近发散。诊断标志:POP 迭代次数超限报错,或输出误收敛到 DC 工作点。修正:设计留 20% 以上 CCM 裕量(即最小负载电流 ≥ 1.2 × ΔiL/2),或显式建立 DCM 模型(SIMPLIS 有内置 DCM 切换块)。
G5 — PSIM 理想开关掩盖器件选型风险
PSIM 的理想开关 RDSon = 0、VF = 0、开关时间为零——在这套模型里任何 MOSFET 都不会发热:选 2 Ω 还是 80 mΩ 器件,仿真波形和效率完全相同。工程师在 PSIM 里看到"稳态建立、电流波形平滑"就认为设计 OK,实际上器件可能在 200°C 工作或已超 SOA。修正:PSIM 系统仿真确认控制逻辑正确后,必须切到 LTspice 用厂商 subckt 做器件级仿真,验证导通损耗、开关损耗和热裕量。
G6 — PyLTspice 参数修改后初始条件未同步
批量仿真时,netlist.set_component_value('L1', '300u') 改变了感值,但网表里已有的 .ic I(L1)=... 或 UIC 标志并不随之更新——SPICE 可能用上一组参数的稳态电流当新参数的初始条件。例如:把电感从 300 µH 改为 100 µH,若启动初始条件 IL(0) = 7.5 A(原稳态峰值),则 100 µH 的仿真会从大电流启动,前几个周期严重失真甚至假收敛。修正:参数批量扫描时,要么显式重置 .ic I(L1)=0,要么在每次运行前用 set_parameter 清除初始条件;或用足够长的 .tran 让电路从零状态自然建立稳态。
G7 — 仿真时步过大,漏掉 SiC 栅极寄生振荡
SiC MOSFET 的开关速度(dv/dt 可达 20-50 V/ns)远高于 Si IGBT,与 PCB 走线寄生电感(2-5 nH)和栅极电容(1-5 nF)组成的谐振频率在 100-500 MHz 量级。若仿真 TMAX 设得过大(如 200 ns),这段高频振荡完全被时域平均掉:波形显示完美正弦型开关,看不到任何振铃——实际 PCB 上可能有超过 50 V 的栅源过压。修正:器件级仿真必须设 TMAX ≤ 200 ps(甚至 50 ps),验证栅极振荡存在后再决定加 Rg(栅极阻尼电阻)或 RC snubber。
10. 如何把 SPICE 用成实验平台
对功率电子来说,SPICE 的价值不在于“把电路画出来”,而在于把拓扑、器件额定、控制时序、波形质量和实验边界放进同一条可反复验证的闭环。实验台昂贵、危险且迭代慢,所以更稳的做法不是先堆最复杂器件模型,而是先把“要回答什么问题、要看什么量、用哪一类模型、在什么窗口验收”写清。
10.1 先定义观测量,再决定仿真
仿真最常见的误判不是求解器算错,而是一开始就看错了量。看器件额定时,重点应是开关节点电压、支路电流和瞬时功率;看控制与滤波时,重点应是增益、相位和稳态窗口;看波形质量时,重点应是最后若干完整周期的 Fourier 或 THD,而不是启动阶段的混合波形。若某条支路电流不是天然可读,最稳的办法是串一个 0 V 电压源,把它固定成 I(Vx) 这样的观测对象。
10.2 分析命令和激励模型必须匹配问题
.TRAN 适合启动、换流、负载阶跃和谐振建立;.AC 适合小信号频率响应;.OP、.TF、.SENS 适合先把工作点、输入输出阻抗和敏感参数钉住。对应的激励也不能偷懒:PULSE 用来写门极边沿和死区,PWL 用来写母线跌落、预充电和任务曲线,SIN 用来写线频或谐振激励。把真实边界全替换成理想阶跃,通常只会得到更好看的假结果。
10.3 模型复杂度要跟问题层级一致
先验证拓扑逻辑、占空比关系和续流路径时,简化开关或行为模型往往比完整器件子电路更有用,因为它能把主因果链看清。只有当问题切到损耗、寄生振铃、反向恢复、磁饱和、热边界或高压动态时,才值得切到厂商 .lib 或 .subckt。这条分层不只适用于二极管、BJT、MOSFET 和 IGBT,也适用于运放、磁件、传输线和电机。原理图文件只描述连接关系,真正决定仿真能否运行、结果是否可信的,是生成的 netlist 和被正确挂接的模型库。
10.4 行为块适合先原型化测量与控制链
VALUE、TABLE、POLY 和 LAPLACE 不只是“补模型”的技巧,它们可以先把平均值、RMS、迟滞、PFC 电流参考、运放一阶极点、反电势和转矩关系写成可审计的中间层。这样做的好处是,控制律和测量函数可以先独立验证,再决定是否要接入完整 MCU、DSP 或厂商控制芯片模型。对功率电子来说,先把控制链拆成可解释的行为块,通常比一开始就上黑箱更稳。
10.5 多数“收敛问题”其实是边界条件没写清
功率级最常见的失败不是软件脾气,而是模型过理想或参考网络不成立。高频寄生被全部删掉、节点没有 DC 泄放路径、理想电压源和电感构成零阻回路、启动窗口过长、输出点数过多,都会把 deck 推向发散或假稳态。更有效的排障顺序通常是:
- 先检查 netlist、
.lib和节点参考是否正确,而不是先怀疑拓扑。 - 对浮点节点补高值泄放电阻,对零阻回路补很小的串联电阻或 snubber。
- 用
.NODESET帮求解器找到合理工作点;只有在初始储能本身就是问题时,才用.IC或UIC。 - 先把
.TRAN的稳态观测窗口和输出点数收紧,再决定是否放宽RELTOL、ABSTOL或提高ITL4/ITL5。
这也是为什么 SPICE 在功率电子里更像一套实验语言:真正重要的不是“会点哪个菜单”,而是能否把观测量、激励边界、模型层级和验收口径组织成一份可重复的实验脚本。
对功率电子来说,SPICE 常被用来追开关应力、寄生振铃和损耗;对 CMOS 集成电路来说,它首先是偏置、小信号和层次化验证平台。把 LTspice 用在这类问题上时,关键不是一上来就搭两级运放,而是先把工作点、局部线性化和 PVT 裕量这三层测量链练熟。
10.6 为什么 CMOS 学习不能一上来就做运放
CMOS 教学里最容易走偏的地方,是把 LTspice 当成画原理图的软件,而不是定义观测量的实验平台。无源网络和受控源之所以应该先学,不是因为它们更重要,而是因为它们能把参考地、节点名、netlist 语义、支路方向和 .op/.dc/.tran 的基本动作先钉死;只有这层稳定以后,后面的差分对、源跟随器和两级运放才不会变成只会点菜单的机械操作。
- 先用纯电阻、RC 和受控源练熟节点、参考地、PWL 激励、初始条件与 netlist 对应关系。
- 再用四端
nmos4/pmos4看工作区、体效应、W/L和小信号参数如何随偏置变化。 - 再进入共源级、源跟随器、共栅级、差分对和两级运放,把 、、极点、GBW 和 slew rate 串起来。
- 最后再做
subckt、反馈、角点和 Monte Carlo,把单题仿真升级成可复用的验证夹具。
这也是为什么 LTspice 很适合作为 运算放大器与模拟设计 的前置训练:它先训练你如何提出问题,再训练你如何解释结果。
10.7 工作点先于波形:LTspice 的 CMOS 测量链
在 CMOS 场景里,第一性问题从来不是波形好不好看,而是偏置点有没有站稳。.op 决定后续一切线性化的锚点,.dc/.tf/.ac/.tran/.noise 只是围绕这个锚点分别回答不同问题;如果偏置、参考方向或激励口径写错,后面的频响、噪声和瞬态都会一起失真。
.op用来确认节点电压、支路电流、工作区以及SPICE Error Log里的 、、 和寄生电容。.dc用来看I-V曲线、共模范围、翻转点和参数扫描后的大信号边界。.tf用来在当前工作点附近直接线性化,读取低频增益、输入电阻和输出电阻,而不是靠手工差分去猜斜率。.ac用来看极点、零点、相位裕度、GBW 和偏置相关电容;交流激励最好归一到1,这样传函和阻抗更容易直接读取。.tran用来看启动、充放电、slew rate、开关状态变化和非线性失真;涉及储能元件时要先写清PWL或.ic。.noise用来读输出噪声和输入等效噪声;若模型里没有KF等 flicker 参数,低频平坦谱只说明模型截断了1/f噪声,并不说明电路天然没有低频噪声。.step与.measure的价值,在于把肉眼读图变成可回归的测量口径,让时间常数、带宽、增益和阻抗都能直接写回 log 或表格。
很多所谓 LTspice 问题,其实不是求解器坏了,而是语义没写清:电流控制量最好用串联 0 V 测试源显式定义,PMOS 电流方向要按 LTspice 的端口正方向来读,结果异常时优先先看 netlist 和 SPICE Error Log,再去怀疑电路理论。
10.8 同一个 LTspice,CMOS 和功率器件用的是两套模型哲学
LTspice 可以同时服务功率电子和 CMOS 模拟设计,但两者关心的问题不同,所以模型边界也不同。对亚微米 CMOS 增益级,关键是体效应、沟道长度调制、寄生电容和局部小信号参数,因此应使用四端 MOS 和 BSIM 这类紧凑模型去解释 、、、 等量;对高压功率 MOSFET,真正关键的是漂移区、雪崩、SOA、体二极管反向恢复和开关应力,因此应回到厂商 .lib/.subckt 或行为模型。
这与本页前面关于功率器件模型层次的结论并不冲突,反而是在强调同一个仿真器面对不同器件层级时必须切换模型哲学。工程上可以把分界线记成一句话:当对象是 CMOS 增益级时,BSIM 是理解局部参数的入口;当对象切到高压开关器件时,应回到厂商模型和器件物理边界。
10.9 从单题仿真到设计验证:subckt、角点和 Monte Carlo
subckt、角点和 Monte CarloLTspice 真正开始像设计平台,而不只是教学工具,是从你把重复电路块封成 subckt、把工艺放进模型库、再把角点和统计散布接进同一套 test bench 开始的。此时 symbol 只是可视化外壳,pin order 才是接口契约;schematic 负责拓扑,model library 负责工艺,顶层 test bench 负责激励、负载和测量口径。
- 可复用的差分对、共源第二级、滤波块或 mixed-signal cell 应优先封成
.subckt,而不是在每张图里手工复制晶体管。 - 模型文件最好在顶层统一
include,不要把工艺定义散落在每个子电路内部,否则后续换角点、换工艺或导出 expanded netlist 时会立刻失控。 - 角点分析应先做 deterministic worst-case,再做 Monte Carlo。对很多增益和带宽问题,真正的最坏 operating corner 往往是低
VDD、高温再叠加 slow process;Monte Carlo 则主要回答局部失配和公差在这个最坏工作点附近还能吃掉多少裕量。 .net适合保留层次引用和 sweep 语义,expanded netlist 适合做跨工具迁移,但它更像当前参数状态的快照,不能替代完整的角点/step 环境。
这条方法链的核心不是让图更整齐,而是把单次仿真变成 regression:偏置是否还在、增益是否还在、极点是否移位、失配是否把 margin 吃光,都应能在同一套 deck 里重复回答。
10.10 LTspice 的边界在哪里
对 CMOS 集成电路,LTspice 很适合做偏置检查、小信号参数提取、反馈与补偿直觉验证、早期 mixed-signal 原型和 pre-layout 级的 PVT/Monte Carlo 训练;但它不是完整的 full-custom 设计流,不负责版图编辑、DRC、LVS、寄生提取和 sign-off。更稳的用法,是把 LTspice 视为原理图级和模型级的前端实验平台:先在这里把因果链讲清,再进入更完整的 PDK 与版图环境。
11. Worked Design — LTspice 验证 SCT3080AL 400V→48V/15A Buck 五步流程
这个样例从零开始在 LTspice 里验证一款 SiC Buck 主回路,覆盖参数推导、netlist 建立、稳态验证、损耗分解和热裕量迭代——五步内拿到可以和测试台对标的仿真数据。
器件:SCT3080AL(ROHM, 650 V / RDSon = 80 mΩ / ID = 30 A, TO-247-4L Kelvin)
11.1 Step 1 — 参数推导与器件选型
目标规格:Vin = 400 V,Vout = 48 V,Iout = 15 A,fsw = 50 kHz。三个核心被动元件由纹波指标反推。
电感量(目标纹波比 r = ΔiL/Iout = 20%,即 ΔiL = 3 A):
验核: (18.8%,满足 ✓)
输出电容(纹波 ΔVout ≤ 0.5 V):
验核: (✓)
11.2 Step 2 — LTspice netlist 关键要素
netlist 有三个关键决策:必须 include 厂商 subckt(G1)、skip start time 避测量窗口污染(G3)、TMAX ≤ 200 ps 可见栅极振荡(G7)。
; SCT3080AL 400V→48V/15A Buck
.include "SCT3080AL.lib" ; 必须用厂商 subckt,禁止 Level 1 模型(G1 陷阱)
M1 drain gate source source_k SCT3080AL ; Kelvin 4-pin TO-247
D1 sw gnd SiC_body_diode ; 续流体二极管
L1 sw out 300u Rser=20m ; DCR 20 mΩ(大功率磁件典型值)
C1 out gnd 47u Rser=10m ; ESR 10 mΩ(陶瓷并联)
Rload out gnd 3.2 ; 48 V / 15 A = 3.2 Ω
Vbus bus gnd 400
.param Ton=2.4u Ts=20u ; D=0.12,Ts=20 µs(50 kHz)
Vpwm gate_ctrl gnd PULSE(0 15 0 5n 5n {Ton} {Ts})
.tran 0 5m 4.8m 200p ; 第三参数=skip start time,避 G3 陷阱;200p→可见 G7
.meas TRAN Pin AVG -V(bus)*I(Vbus) FROM 4.8m TO 5m
.meas TRAN Pout AVG V(out)*V(out)/3.2 FROM 4.8m TO 5m
.meas TRAN Eff PARAM (100*Pout/Pin)
11.3 Step 3 — 稳态验证
稳态仿真应当覆盖 250 个以上开关周期,测量窗口取最后 10 个周期。
| 量 | 仿真结果 | 目标 | 判定 |
|---|---|---|---|
| Vout | 48.0 V | 48 V(开环) | ✓ |
| ΔVout | 0.15 V | ≤ 0.5 V | ✓ |
| ΔiL | 2.82 A | ≤ 3 A | ✓ |
| 稳态达到时间 | < 4 ms | — | ✓ |
11.4 Step 4 — 损耗分解
导通损耗由 Q 源漏电流的 RMS 值决定:
开关损耗通过 .meas INTEG 直接积分换流窗口内 vDS × iD 获得:
11.5 Step 5 — 热裕量验证 + RDSon 热迭代
热通路由结-壳-散热片三级热阻串联,合计 6.16 °C/W。
| 热阻节点 | 值 |
|---|---|
| Rth(jc)(TO-247,数据手册) | 0.86 °C/W |
| Rth(cs)(导热硅脂) | 0.30 °C/W |
| Rth(sa)(中型散热片) | 5.00 °C/W |
| 合计 | 6.16 °C/W |
第一次估算:
热迭代(SCT3080AL 数据手册: RDSon(150°C) ≈ 120 mΩ,线性插值到 66°C):
| 指标 | 值 | 判定 |
|---|---|---|
| Tj(收敛) | 68.1 °C | ✓ |
| Tj(max,SCT3080AL) | 175 °C | — |
| 热裕量 | 106.9 °C | ✓ (安全边界 ≥ 50 °C) |
结论:此配置在 25°C 环境下热裕量充足。若在 70°C 引擎舱高温环境,Tj 上升至约 113°C,仍在额定内;但须同时验证 C1 角点(冷启 Vth 漂移)和 C2 角点(高温 SIMPLIS 模型)。
11.6 Engineering Objects
| 对象 | 来源/规范 | 关键值 | 条件 |
|---|---|---|---|
| SCT3080AL RDSon | ROHM DS Rev.H | 80 mΩ | Vgs = 18 V, Tj = 25°C |
| SCT3080AL Rth(jc) | ROHM DS Rev.H | 0.86 °C/W | TO-247-4L |
| Eon+Eoff | ROHM DS 典型值 | 90 µJ | 400 V / 15 A, Rg = 10 Ω |
| ΔVout 验核 | 本页 §11.1 推导 | 0.15 V | L = 300 µH, C = 47 µF, 50 kHz |
12. Corner 分析 C1-C3
C1 — 低温冷启 ():RDSon 下降但 Vth 上升
SiC MOSFET 与 Si 相反:在 时 RDSon 下降约 25%(SCT3080AL: 80 mΩ → ~60 mΩ),导通损耗降低——仿真若只在 25°C 做,会低估冷角损耗。但同时,低温下 Vth 从 3.5 V 上升到约 4.5 V:驱动电压 Vgs(on) = 15 V 不变,但米勒平台区间缩短——从仿真看开关更干净,实际 PCB 上栅极寄生振荡峰值在冷角可能更高,逼近 SCT3080AL 的 Vgs(max) = ±22 V 极限。验证方法:若厂商提供 子电路参数,代入 Step 5 重跑热迭代;若无多温 .lib,须在测试台做冷箱实测补充。
C2 — 高温老化角 ():SIMPLIS 分段线性模型固化
SIMPLIS 的分段线性模型在建模时固化了 ON-state 斜率和阈值——通常在室温下标定。把同一电路仿到 125°C 时,SIMPLIS 模型里的 MOSFET RDSon 仍然是 80 mΩ,而真实器件在 125°C 已达约 113 mΩ;电感磁芯饱和电流在高温下降低 10-15%。后果:SIMPLIS 给出的环路 Bode 图相位裕度"达标",实际热角工作点电感已饱和、环路已失稳。修正:高温角环路分析必须手工调整 SIMPLIS 模型参数(RDSon 和 Ldc 降额)再运行 AC 扫描,而非信任室温参数;或用 LTspice + 厂商 125°C 子电路重新建模作交叉验证。
C3 — 多工具协仿延迟不同步
PSIM + Simulink 联仿(SimCoupler)或 PSIM + MATLAB 的控制接口以固定步长 Tex = Tsw 交换数据——每个开关周期数据刷新一次。这引入一个在单工具仿真中不出现的计算延迟 Tdelay = Tsw = 20 µs(50 kHz)。对一个带宽 5 kHz 的电压环,Tdelay 对应 fBW × Tdelay × 360° = 5 kHz × 20 µs × 360° = 36° 的额外相移——已接近大多数设计的相位裕度边界。现象:单工具 SIMPLIS 仿真相位裕度 45°,联仿后实际相位裕度降至 9°,仿真"刚好稳定",真实硬件由于 DSP 固有采样延迟叠加可能振荡。修正:联仿时在 Simulink 控制模型里显式加入 采样延迟(或 Transport Delay 模块)以补偿数据交换延迟;联仿 Bode 图与 SIMPLIS 单工具结论出现差异时,以包含延迟的联仿结果为准。
核心要点
- 没有全能仿真工具。SPICE 看细节,SIMPLIS 做环路,PSIM 做系统,Simulink 做控制,Modelica 做多物理场。
- SPICE 精度最高但最慢——收敛困难时放宽 RELTOL 或换 Gear 法,加阻尼。
- LTspice 是免费 + 快速 + 库丰富的组合,是功率工程师首选;
.step+.meas+ PyLTspice 构成完整自动化。 - SIMPLIS 用分段线性直接求稳态,比 SPICE 快 10~50×;是开关电源环路分析的事实标准。
- PSIM 用理想开关比 SPICE 快 100×;C Block 让仿真代码 = 量产代码,是系统级功率电子首选。
- MATLAB/Simulink 做系统级控制,不是电路仿真器;自动代码生成 + HIL 是 EV 主驱 ECU 开发的标准流程。
- SPICE MOSFET 模型层次:BSIM 为 IC 设计,不适合功率器件;必须用厂商行为模型——所有主流厂商都提供。
- 用错模型比不仿真更危险:Level 1 仿 SiC MOSFET 的开关损耗误差 3~5×,按仿真选散热会炸管。
- 仿真策略:PSIM 做系统设计,LTspice 补做器件级细节,两者互补。
延伸阅读
SPICE / LTspice
- LTspice Help XVII(官方文档)
- Essential Circuit Analysis using LTspice
- CMOS Integrated Circuit Simulation with LTspice
- PyLTspice 文档(Python 接口)
SPICE 基础
- The SPICE Book(Vladimirescu)
- SPICE for Power Electronics and Electric Power(Rashid)
- Switch-Mode Power Supply Simulation: Designing with SPICE 3
PSIM
- PSIM User Manual
- Power Electronics Circuit Analysis with PSIM
SIMetrix / SIMPLIS
- SIMetrix User Manual
- SIMPLIS Reference
PSpice / OrCAD
- PSpice for Circuit Theory and Electronic Devices
- Analog Design and Simulation Using OrCAD Capture and PSpice
MOSFET 建模
- Introduction to SPICE Source Files
- SPICE MOSFET Model Intro 系列
- ST — UM1575: SPICE Model Tutorial for Power MOSFETs
多物理场
- Modelica Tutorial
- VHDL-AMS Tutorial
- Verilog-A 参考
Cross-references
- ← 索引
- MOSFET SOA SPICE Wrapper — 仿真中自动捕获 SOA 越界
- MOSFET 技术 — 功率 MOSFET 的物理参数和开关过程
- SiC 器件(Silicon Carbide Devices) — SiC 模型的特殊性
- 半导体器件物理 — SPICE 模型的物理基础
- 功率电子学(Power Electronics) — 拓扑和控制仿真需求
- 电源设计(Power Supply) — 补偿器设计用 SIMPLIS
- 运算放大器与模拟设计 — 运放电路用 LTspice
- 热管理(Thermal Management) — PSIM 热模块和 Modelica 热-电协同
- ADC 与混合信号设计
- FPGA 与数字设计