3. 仿真类型与设置:瞬态分析、直流扫描、交流小信号
各位同学,欢迎来到第三章。前两章我们把 LTspice 的界面和元件库摸了个遍。从这章开始,咱们要真正让电路“动”起来。
LTspice 的仿真类型,说白了就三大类:瞬态分析 (.tran)、直流扫描 (.dc)、交流小信号 (.ac)。我做了十几年电源,90% 的调试工作都围着这三种仿真转。你想想看,一个电源芯片从启动到稳定,再到纹波噪声,哪个环节能离开它们?
核心观点:三种仿真对应三个维度——时间域看波形、直流域看工作点、频域看稳定性。掌握这三板斧,开关电源仿真你就入门了。
3.1 瞬态分析 (.tran) —— 时间域里的“录像机”
瞬态分析,你可以把它理解成给电路装了一台高速录像机。从 t=0 开始,LTspice 会按照你设定的步长,一帧一帧地记录每个节点的电压、电流波形。
我个人习惯,做开关电源仿真时,第一个跑的永远是 .tran。为什么?因为电源芯片的启动过程、软启动时间、过冲幅度,这些东西在直流扫描里是看不到的。
3.1.1 基本语法与参数
在原理图界面,按 Ctrl + S 或者点击工具栏的 .op 图标,就能调出仿真命令设置面板。在面板里输入:
.tran 10m startup
这行命令的意思是:仿真 10 毫秒,并且从零状态开始启动(startup 关键字让电源电压从 0 开始爬升)。
| 参数 | 含义 | 我常用的值 |
|---|---|---|
10m |
总仿真时长 | 开关电源一般 5m~20m |
startup |
从零状态启动 | 必加,否则初始条件不对 |
uic |
使用初始条件 | 很少用,除非你知道自己在做什么 |
我的小技巧:仿真时长别设太长。比如 Buck 电路,开关频率 500kHz,周期才 2μs。你设个 100ms,LTspice 要算 50000 个周期,电脑风扇会转得飞起。先跑 5ms 看看趋势,够用就行。
3.1.2 最大步长设置
有时候你会发现波形很粗糙,像锯齿一样。这是因为 LTspice 自动调整了计算步长。你可以手动限制最大步长:
.tran 0 10m 0 100n startup
这行命令的完整格式是:.tran <Tstep> <Tstop> <Tstart> <Tmax>。其中 100n 就是最大步长 100 纳秒。
我曾经调试一个 LLC 谐振变换器,波形总是有毛刺。折腾了半天,发现是步长太大,没捕捉到谐振电流的细节。把最大步长设到 50ns,波形瞬间干净了。
注意:步长设得太小,仿真时间会指数级增加。100ns 的步长对于 100kHz 的开关频率已经足够。别为了追求完美设到 1ps,除非你有一台服务器。
3.2 直流扫描分析 (.dc) —— 找到电路的工作点
直流扫描,说白了就是让某个电压源或电流源的值慢慢变化,然后看电路其他节点的响应。这在分析电源的线性调整率、MOSFET 的转移特性时特别有用。
我记得刚入行时,带我的老工程师让我测一个 LDO 的 Dropout 电压。我拿着万用表量了半天,他走过来看了一眼,说:“用 .dc 扫描,5 秒钟出结果。” 从那以后,我就爱上了这个功能。
3.2.1 语法与示例
.dc V1 0 5 0.1
这行命令的意思是:让电压源 V1 从 0V 扫描到 5V,步长 0.1V。LTspice 会在每个步长点计算一次直流工作点。
你还可以做嵌套扫描,比如同时改变输入电压和负载电流:
.dc V1 0 5 0.1 I1 0 1 0.05
这个命令会生成一个二维扫描表。我一般用这个来分析电源的效率地图。
| 应用场景 | 命令示例 | 看什么 |
|---|---|---|
| LDO Dropout 电压 | .dc VIN 0 5 0.05 |
输出电压开始下降的点 |
| MOSFET 转移特性 | .dc VGS 0 5 0.01 |
VGS 与 ID 的关系曲线 |
| 电源线性调整率 | .dc VIN 4.5 5.5 0.01 |
VOUT 随 VIN 的变化量 |
关键点:直流扫描不涉及时间,所以仿真速度极快。哪怕电路很复杂,几秒钟就能跑完。这是快速验证电路静态特性的利器。
3.3 交流小信号分析 (.ac) —— 看穿电源的“频率响应”
交流小信号分析,这是开关电源仿真里最“玄学”的部分,但也是最重要的。它用来分析电路在频域中的行为——比如环路增益、相位裕度、输出阻抗。
你想想看,一个电源如果相位裕度不够,轻载时可能稳定,重载时就开始振荡。这种问题在时域波形里很难一眼看出来,但在 .ac 分析的波特图上一目了然。
3.3.1 语法与设置
.ac dec 100 10 100k
这行命令的意思是:以 10 倍频程(decade)为步进,每 10 倍频程取 100 个点,频率从 10Hz 扫到 100kHz。
我个人习惯,做 Buck 变换器的环路分析时,频率范围设到开关频率的 1/10 到 10 倍。比如开关频率 500kHz,我就扫 1kHz 到 5MHz。
| 扫描方式 | 语法 | 适用场景 |
|---|---|---|
| 十倍频程 (dec) | .ac dec 100 10 100k |
环路增益分析,低频段细节丰富 |
| 线性扫描 (lin) | .ac lin 1000 10 100k |
窄带分析,比如谐振频率附近 |
| 八倍频程 (oct) | .ac oct 50 10 100k |
介于 dec 和 lin 之间,较少用 |
3.3.2 必须注意的坑
做 .ac 分析前,LTspice 会先计算直流工作点。所以你的电路必须先能稳定工作在某个静态点。如果电路在直流下就不收敛,.ac 分析会直接报错。
我曾经踩过的坑:有一次做 Flyback 的环路分析,怎么跑都不收敛。查了半天,发现是反馈补偿网络的电容初始电压没设对。解决办法:在 .ac 之前先跑一段 .tran,让电路进入稳态,然后用 .save 保存工作点,再跑 .ac。
3.4 仿真命令设置面板详解
说了这么多语法,咱们来看看 LTspice 的仿真命令设置面板长什么样。在原理图界面,点击工具栏的 .op 图标(或者按 S 键),会弹出一个对话框。
这个面板其实就是一个文本编辑器。你可以在里面写任意多条仿真命令。比如:
.tran 10m startup
.option plotwinsize=0
.option numdgt=7
这里我加了两个 .option 命令:plotwinsize=0 禁用波形压缩,保证精度;numdgt=7 提高数值输出精度。这两个选项我几乎每次仿真都会加。
| 常用 .option | 作用 | 推荐值 |
|---|---|---|
plotwinsize |
波形数据压缩 | 0(禁用压缩) |
numdgt |
数值精度 | 7(双精度) |
reltol |
相对误差容限 | 1e-6(默认 1e-3) |
abstol |
绝对电流误差 | 1e-12 |
我的习惯:每次新建仿真,我都会在面板里先写好这三行:.tran 10m startup、.option plotwinsize=0、.option numdgt=7。然后根据具体需求再改。这样能避免很多因为精度不够导致的奇怪问题。
3.5 三种仿真的协同使用
在实际项目中,这三种仿真不是孤立的。我通常的工作流程是:
- 先跑 .dc:确认电路的静态工作点正确,比如输出电压、偏置电流。
- 再跑 .tran:看启动波形、负载瞬态响应、开关管应力。
- 最后跑 .ac:分析环路稳定性,确认相位裕度大于 45°。
你想想看,如果直流工作点都不对,瞬态波形肯定也是错的。如果瞬态波形有振荡,那 .ac 分析大概率会发现相位裕度不够。这三者环环相扣。