共计 1490 个字符,预计需要花费 4 分钟才能阅读完成。
一、Buck 变换器基础认识
首先我们来看典型的 Buck 变换器拓扑(图 1),它由开关管 Q、续流二极管 D、滤波电感 L 和输出电容 C 组成。当开关管导通时,输入电压 Vin 对电感充电;关断时电感通过二极管续流。在这个过程中,有两个关键状态变量:
- 电感电流 iL(反映系统储能)
- 电容电压 vC(决定输出电压)

二、状态空间方程推导详解
1. 分段等效电路建模
在开关周期 Ts 内,Buck 变换器有两种工作状态:
- 导通阶段(0 < t < dTs)
- 开关管闭合,二极管反偏
-
等效电路满足:
$$L\frac{di_L}{dt} = V_{in} – v_C$$
$$C\frac{dv_C}{dt} = i_L – \frac{v_C}{R}$$ -
关断阶段(dTs < t < Ts)
- 开关管断开,二极管导通
- 等效电路满足:
$$L\frac{di_L}{dt} = -v_C$$
$$C\frac{dv_C}{dt} = i_L – \frac{v_C}{R}$$
2. 状态空间平均法
将两个阶段方程按占空比 d 加权平均:
$$\begin{cases}
L\frac{d\langle i_L \rangle}{dt} = dV_{in} – \langle v_C \rangle \
C\frac{d\langle v_C \rangle}{dt} = \langle i_L \rangle – \frac{\langle v_C \rangle}{R}
\end{cases}$$
3. 小信号线性化处理
在工作点附近引入扰动:
- 变量分解:x = X + x̂
- 忽略二阶小量后得到线性化模型:
$$\begin{cases}
L\frac{dîL}{dt} = Dv̂d̂ – v̂_C \
C\frac{dv̂_C}{dt} = î_L – \frac{v̂_C}{R}
\end{cases}$$} + V_{in
三、MATLAB 实现示例
% 系统参数定义
L = 100e-6; % 电感(H)
C = 470e-6; % 电容(F)
R = 10; % 负载电阻(Ω)
D = 0.5; % 标称占空比
Vin = 24; % 输入电压(V)
% 状态矩阵计算
A = [0 -1/L;
1/C -1/(R*C)];
B = [D/L Vin/L;
0 0];
C_mat = [0 1]; % 输出为电容电压
D_mat = [0 0];
% 构建状态空间模型
sys = ss(A,B(:,1),C_mat,D_mat(1));
% 绘制 Bode 图
figure;
bode(sys);
grid on;
四、Simulink 建模技巧
1. 状态空间模块配置
在 Simulink Library 中找到 State-Space 模块,按以下方式设置参数:
- A 矩阵:
[0 -1/L; 1/C -1/(R*C)] - B 矩阵:
[D/L; 0] - C 矩阵:
[0 1] - D 矩阵:
0
2. 与开关模型对比验证
建议搭建两种模型进行交叉验证:
- 理想开关模型(使用 MOSFET 和二极管)
- 状态空间模型
通过对比两者的动态响应(如负载突变时的输出电压波动),可以验证模型准确性。
五、实践避坑指南
- 寄生参数影响
- 实际电感存在等效串联电阻(ESR)
- 电容也有 ESR 和 ESL
-
建议在模型中增加:
$$A(1,1) = -R_L/L$$
$$A(2,2) = -1/(RC) – 1/(R_CC)$$ -
工作点选取
- 线性化只在静态工作点附近有效
-
建议通过仿真先确定稳态工作点
-
离散化采样频率
- 至少 10 倍于开关频率
- 推荐使用
c2d函数进行离散化:sys_d = c2d(sys, 1/(10*fsw), 'tustin');
六、扩展思考
如何实现电流模式控制?建议尝试:
- 新增电流内环状态变量
- 修改 B 矩阵包含电流参考输入
- 在 Simulink 中添加比较器和 RS 触发器模块
通过本文的建模方法,可以进一步构建更复杂的控制算法仿真平台。建议读者尝试改变电路参数,观察模型响应变化,这对理解开关电源动态特性很有帮助。
