3、仿真设置与分析:.tran瞬态分析设置、.ac交流分析设置、.dc直流扫描设置、仿真命令详解。
各位同学,咱们今天聊聊仿真设置。说实话,很多工程师画原理图是一把好手,一到仿真设置就懵了。我见过不少同事,仿真跑不出来,急得满头大汗,最后发现是设置参数写错了。嗯,咱们今天就把这事儿彻底讲明白。
3.1 .tran 瞬态分析——看波形随时间怎么变
瞬态分析,说白了就是看电路从通电开始,电压电流随时间怎么变化。你想想看,电源上电瞬间有没有过冲?开关管导通时电流尖峰有多大?这些都得靠 .tran 来看。
基本语法:
.tran Tstep Tstop [Tstart [dTmax]] [modifiers]
参数含义:
| 参数 | 说明 | 我常用的值 |
|---|---|---|
| Tstep | 输出数据的时间步长 | 一般设 Tstop 的 1/1000 |
| Tstop | 仿真结束时间 | 看电路时间常数来定 |
| Tstart | 开始保存数据的时间(可选) | 跳过启动暂态时用 |
| dTmax | 最大仿真步长(可选) | 收敛困难时减小它 |
实战经验:我在做反激电源时,发现输出纹波总是不对。折腾了半天,原来是 Tstep 设得太大了,把高频纹波给"平滑"掉了。后来我把 Tstep 设为开关周期的 1/100,波形一下就清晰了。
常用修饰符:
uic——使用初始条件。我建议第一次仿真时加上,能避免很多收敛问题。startup——从零开始,电源缓慢上升。模拟真实上电过程。
举个例子,一个 Buck 电路,开关频率 100kHz,我想看 5ms 内的启动过程:
.tran 0 5m 0 10n startup
这里 Tstep 设 0,让 LTspice 自动选择。dTmax 设 10ns,保证能捕捉到开关动作。
我的小技巧:如果仿真跑得太慢,先别急着加 dTmax。试试把 Tstep 设大一点,比如设成 Tstop/5000。LTspice 内部会自动插值,不影响精度。
3.2 .ac 交流分析——看频域特性
交流分析,就是给电路加一个小信号正弦波,看它在不同频率下的响应。说白了,就是看你的电源环路稳不稳定,带宽够不够。
基本语法:
.ac DEC Ndec Fstart Fstop
三种扫描方式:
| 方式 | 语法 | 适用场景 |
|---|---|---|
| 十倍频程 | DEC Ndec Fstart Fstop | 环路分析最常用 |
| 线性 | LIN N Fstart Fstop | 窄带分析 |
| 倍频程 | OCT Noct Fstart Fstop | 音频电路 |
我个人习惯用 DEC,因为电源环路通常要看好几个十倍频程。比如:
.ac DEC 100 10 1MEG
这表示从 10Hz 扫到 1MHz,每十倍频程取 100 个点。
注意:做 .ac 分析前,一定要确保电路有正确的直流工作点。我曾经犯过一个低级错误——没给运放加供电电压,结果扫出来的增益曲线完全不对,还以为是环路补偿设计错了。折腾了两天才发现是电源没接。
怎么看结果?
- 右键点击波形图标签,选 "View" -> "Fourier",可以看谐波。
- 测相位裕度:把光标放在增益为 0dB 的频率点,看相位差。
- 测带宽:-3dB 对应的频率。
避坑指南:我曾经做一个 LLC 变换器,.ac 分析怎么都收敛不了。后来发现是变压器模型里漏感设得太小,导致高频极点跑到几 GHz 去了。把漏感调到实际值,问题就解决了。
3.3 .dc 直流扫描——看静态工作点怎么变
直流扫描,就是让某个参数(比如输入电压)慢慢变化,看电路各点的直流电压怎么跟着变。这个在电源设计中特别有用,比如看稳压器的线性调整率。
基本语法:
.dc SrcName Start Stop Step [Src2 Start2 Stop2 Step2]
参数说明:
SrcName——要扫描的源名称(V1、I1 等)Start——起始值Stop——终止值Step——步长
举个例子,看一个 LDO 在输入电压从 3V 到 5V 时的输出变化:
.dc V1 3 5 0.01
我的经验:做 .dc 扫描时,步长别设太小。我见过有人设 1μV 的步长,结果仿真跑了半小时还没完。一般来说,步长设为 (Stop-Start)/100 就够用了。
嵌套扫描:可以同时扫两个参数,比如看不同负载下的线性调整率:
.dc V1 3 5 0.1 I1 0 1 0.1
这样会生成一个二维扫描结果,用颜色深浅表示输出变化。
3.4 仿真命令详解——那些你可能不知道的"开关"
除了上面三个核心命令,LTspice 还有一些"隐藏"命令,用好了能省不少事。
| 命令 | 作用 | 我的用法 |
|---|---|---|
| .options | 设置仿真选项 | .options plotwinsize=0 关掉波形压缩 |
| .meas | 测量特定值 | .meas TRAN Vout_avg AVG V(out) 测平均电压 |
| .step | 参数扫描 | .step param Rload 10 100 10 扫负载 |
| .four | 傅里叶分析 | .four 100k V(out) 看 THD |
重点提醒:.options plotwinsize=0 这个命令,我几乎每个仿真都会加。LTspice 默认会压缩波形数据,导致波形有锯齿。关掉压缩后,波形平滑多了,尤其是看高频纹波时特别明显。
.meas 命令实战:
.meas TRAN Vout_rise TRIG V(out)=3.3 RISE=1 TARG V(out)=3.3*0.9 RISE=1
.meas TRAN Vout_overshoot MAX V(out) FROM 1m TO 2m
第一行测上升时间,第二行测 1ms 到 2ms 之间的最大过冲。这些数据可以直接在 SPICE Error Log 里看到,不用手动去波形图上量。
注意:.meas 命令对时间格式很敏感。我刚开始用时,经常因为时间单位写错(比如把 1ms 写成 1m,但 LTspice 默认是秒),导致测量结果完全不对。建议统一用 1m、1u 这种标准写法。
好了,关于仿真设置,今天就聊到这儿。记住一句话:仿真不是目的,帮你把电路调好才是。下次咱们讲怎么用这些命令搭一个完整的电源仿真平台。