LTspice 手把手教程 —— 从零搭一个 Buck 变换器
你将学会:安装后第一次打开 LTspice → 画一个 Buck 电路 → 设定 100kHz 开关仿真 → 跑出波形 → 用光标量出纹波电流 → 比对手算公式。 预计时间:30 分钟(第一次)。前置:无需任何仿真经验。 LTspice 位置:本机 wine 下
/home/sam/.wine/drive_c/Program Files/ADI/LTspice/LTspice.exe。Linux 直接启动:wine LTspice.exe(GUI)或wine LTspice.exe -b 文件.cir(命令行 batch)。
第 1 步:启动 LTspice
wine "$HOME/.wine/drive_c/Program Files/ADI/LTspice/LTspice.exe" &
应该看到 LTspice 主窗口(空白灰色背景 + 顶部菜单栏)。如果没看到,检查 wine 是否安装:which wine。
命令行用户跳过 GUI:本教程第 6~10 步提供一个可直接运行的 netlist 文件(
.cir),用 batch 模式跑——不需要点任何菜单。GUI 操作见侧栏提示。
第 2 步:新建原理图
菜单:File → New Schematic(或 Ctrl+N)。
出现一个空白网格画布。左上角是原点。滚轮缩放,右键拖动平移。
第 3 步:放元件
按快捷键或菜单放元件。每放一个,按 Esc 退出放置模式,再按下一个快捷键。
3.1 电压源 Vin
- 按 V 键(或菜单 Component → voltage source)
- 在画布左侧点击放置
- 右键点击电压源符号 → 选 Advanced
- 填入:
- DC value:
12
- DC value:
- 点 OK
- 按 Esc 退出
此时元件上应显示 “V1” 和 “DC 12”。
3.2 开关(用电压控制开关代替 MOSFET,入门更简单)
- 菜单 Edit → Component(或按 F2)
- 在弹出的元件库对话框中,导航到
[Special Functions]→ 找到 sw - 点击 sw → 点 OK → 在画布中上部点击放置
- 右键 sw 符号 → 填入:
- Ron:
10m - Roff:
1Meg - Vt:
2.5
- Ron:
- 点 OK
3.3 二极管
- 按 D 键(或 F2 → Diodes → diode)
- 在 sw 节点下方放置(阳极在下、阴极在上,连接 sw 节点到地)
- 默认模型即可(右键 → Pick New Diode → 选 ideal 或者不选用默认)
3.4 电感
- 按 L 键
- 放在 sw 节点右侧
- 右键电感 → Value 填
22µ(或22u)
3.5 输出电容
- 按 C 键
- 放在电感输出端到地
- 右键电容 → Value 填
470µ - 右键电容 → 选 Add Parasitic Property → 添加
Rser=30m(等效串联电阻 ESR)
3.6 负载电阻
- 按 R 键
- 放在输出端到地
- 右键 → Value 填
2.5(5V ÷ 2A = 2.5Ω)
3.7 栅驱动电压源
- 再放一个电压源(按 V)
- 放在开关的栅极控制端
- 右键 → Advanced → 选 PULSE
- 填入:
- Vinitial:
0 - Von:
5 - Tdelay:
0 - Trise:
20n - Tfall:
20n - Ton:
4.17u - Tperiod:
10u
- Vinitial:
- 点 OK
这组参数 = 100kHz、占空比 0.417(4.17µs/10µs)。
第 4 步:连线
- 按 F3(或菜单 Edit → Draw → Wire)进入连线模式
- 依次点击两个端子完成连线
- 按 Esc 退出连线模式
连接关系:
Vin(+) ──── sw(S1) ──── L1 ──── Vout
│ │
D1(→GND) Cout(→GND)
RL(→GND)
pg(S1 栅驱动) ── 独立,不与主回路连接
接线清单(共 7 条线):
- Vin(+) → S1 一端
- S1 另一端 → D1 阴极 + L1 左端(这个节点叫 sw)
- D1 阳极 → GND
- L1 右端 → Cout 上端 + RL 上端(这个节点叫 vout)
- Cout 下端 → GND
- RL 下端 → GND
- 栅驱动 Vg → S1 控制端
第 5 步:放地(GND)
- 菜单 Edit → Place → Place Ground(或按 G)
- 在电路下方点击放置
- 必须有 GND,否则 LTspice 报错 “Node xxx is floating”
第 6 步:设仿真指令
- 菜单 Simulate → Edit Simulation Cmd
- 选 Transient 标签
- 填入:
- Stop time:
10m - Time to start saving data:
5m - Maximum timestep:
0.5u
- Stop time:
- 点 OK → 一个文本指令
.tran 0 10m 5m 0.5u出现在画布上 → 点击放置它
这行的意思:仿真 0→10ms;从 5ms 开始存数据(跳过启动瞬态);步长最大 0.5µs。
第 7 步:运行仿真
菜单 Simulate → Run(或按 运行 按钮,或 Ctrl+R... 不对,是点那个小人跑步图标)
应该弹出波形查看器窗口(黑色背景或白色背景取决于设置)
左侧是原理图,右侧是波形
如果报错:
- “Node xxx is floating” → 少接了地或某个元件悬空
- “Singular matrix” → 两个元件直接并联到地(短路)
- “Timestep too small” → 加 snubber(在开关两端接 100pF 电容)
第 8 步:看波形
波形查看器中:
- 点原理图上的节点 → 波形查看器自动叠加该节点的电压波形
- 点元件的引脚 → 显示流过该元件的电流波形
- 常用操作:
- 点原理图中的 L1 引脚 → 显示 I(L1)(电感电流)
- 点原理图中的 vout 节点 → 显示 V(vout)
- 点原理图中的 sw 节点 → 显示 V(sw)(方波)
你应该看到:
- V(sw):一个 0→12V 的方波,周期 10µs,高电平 4.17µs
- V(vout):一条平稳的直线,约 5V(±小纹波)
- I(L1):一个锯齿波,平均值约 2A,锯齿幅度约 1.3A
第 9 步:量纹波
- 确保波形查看器显示 I(L1)
- 放大到稳态:在波形窗口按住左键拖一个矩形(选最后 2~3 个周期)→ 自动放大
- 用光标量峰峰值:
- 右键点击波形标签
I(L1)→ 选 2D Viewer 或直接: - 菜单 View → Add Trace → 选 I(L1)
- 点工具栏的 Cursor 按钮 → 出现两条光标线
- 拖光标 A 到锯齿波的最高点,光标 B 到最低点
- 底部状态栏显示 Δ = xxx A
- 右键点击波形标签
你应该量到:
ΔI_L ≈ 1.3~1.4 A
比对手算:
$$\Delta I_L = \frac{V_{out} \times (1-D)}{L \times f} = \frac{5 \times (1-0.417)}{22\mu H \times 100kHz} = \frac{2.915}{2.2} = 1.325\ A$$
仿真值 ≈ 1.37 A vs 手算 1.33 A → 偏差 ~3%(二极管压降 + Ron 二阶效应)。
如果偏差 >10%,检查:
- D 是否真的 = 0.417(4.17µs/10µs)
- L 是否真的 = 22µH
- 是否在稳态段测量(前 5ms 是启动瞬态,不能用来量纹波)
第 10 步:命令行方式(跳过 GUI)
如果你偏好脚本化操作,跳过第 1~9 步,直接写 netlist 文件:
文件:buck.cir
* Buck: 12V->5V/2A @ 100kHz
V1 vin 0 DC 12
Vgate pg 0 PULSE(0 5 0 20n 20n 4.17u 10u)
S1 vin sw pg 0 SMOD
.model SMOD SW(Ron=10m Roff=1Meg Vt=2.5 Vh=0.1)
D1 0 sw DMOD
.model DMOD D(Is=1u Rs=20m)
L1 sw vout 22u
Cout vout 0 470u Rser=30m
RL vout 0 2.5
.tran 0 10m 5m 0.5u
.end
运行:
wine "$HOME/.wine/drive_c/Program Files/ADI/LTspice/LTspice.exe" -b "Z:\\tmp\\buck.cir"
(Z: 是 wine 映射的 Linux 根目录——Z:\tmp\ = /tmp/。)
产出:buck.raw(二进制波形文件)。用 LTspice GUI 打开查看,或用 Python 解析(.raw 头部 UTF-16LE,详见 09_LTspice_ngspice_实战)。
wine 环境注意:本机实测 LTspice 在 wine 下 .tran 开关电路可能出现数值发散(ΔI→10¹⁰A)。如遇此问题,改用 ngspice(原生 Linux,
sudo apt install ngspice,同一 netlist 大部分兼容,但Rser=参数须拆为独立电阻)。
精炼速查
元件快捷键
| 快捷键 | 元件 | 本例值 |
|---|---|---|
| R | 电阻 | 2.5Ω(负载) |
| C | 电容 | 470µF + ESR 30mΩ |
| L | 电感 | 22µH |
| D | 二极管 | 默认 |
| V | 电压源 | DC 12V / PULSE |
| F2 | 元件库(选 sw 等) | |
| F3 | 连线 | |
| G | 地(GND) |
仿真指令卡
| 指令 | 含义 |
|---|---|
.tran 0 10m 5m 0.5u |
瞬态 0→10ms,5ms 起存数据,步长 ≤0.5µs |
.ac dec 50 10 1meg |
交流扫频 10Hz→1MHz,每十倍频 50 点 |
.four 100k V(sw) |
傅里叶分析 @100kHz |
比对公式
| 量 | 公式 | 本例值 |
|---|---|---|
| ΔI_L | Vout(1−D)/(L·f) | 1.33 A |
| Vout | Vin×D | 5.00 V |
| ΔV_out | ΔI_L×ESR + ΔI_L/(8fC) | ~45 mV |
| D | Ton/T | 0.417 |
上一级:教程