共计 1838 个字符,预计需要花费 5 分钟才能阅读完成。
引言:为什么需要精确建模?
在实际电源设计中,Buck-Boost 变换器既能升压又能降压的特性使其广泛应用,但开关器件带来的非线性使得传统电路分析方法失效。工程师们常遇到这些问题:

- 如何预测变换器的动态响应?
- 怎样设计稳定的反馈控制器?
- 为什么仿真结果与实际测试存在偏差?
状态空间平均法正是解决这些痛点的钥匙。下面我将用最直白的语言,带你一步步完成从非线性开关系统到线性化模型的完整推导。
理论基础:状态空间平均法三要素
状态空间平均法的核心思想可以用三个关键词概括:
- 拓扑分离 :将开关周期分为导通(D)和关断(1-D)两个阶段
- 状态方程 :对每个阶段列写微分方程
- 加权平均 :用占空比作为权重合并两个阶段的方程
举个形象的例子——就像用两张不同角度的照片合成全景图,占空比决定了每张照片的贡献比例。
详细推导:从电路到状态方程
第一步:建立开关状态模型
以经典 Buck-Boost 电路为例,选择电感电流 $i_L$ 和电容电压 $v_C$ 作为状态变量:
MOSFET 导通时(阶段 1):
\begin{cases}
L\frac{di_L}{dt} = V_{in} \\
C\frac{dv_C}{dt} = -\frac{v_C}{R}
\end{cases}
二极管导通时(阶段 2):
\begin{cases}
L\frac{di_L}{dt} = -v_C \\
C\frac{dv_C}{dt} = i_L - \frac{v_C}{R}
\end{cases}
第二步:状态空间平均
将两个阶段的方程按占空比 $d$ 加权平均:
\begin{cases}
L\frac{d\langle i_L \rangle}{dt} = dV_{in} - (1-d)\langle v_C \rangle \\
C\frac{d\langle v_C \rangle}{dt} = (1-d)\langle i_L \rangle - \frac{\langle v_C \rangle}{R}
\end{cases}
这里用尖括号 $\langle \rangle$ 表示平均值,这就是我们的大信号模型。
小信号建模:线性化的艺术
扰动法实施步骤
-
给所有变量加上小信号扰动:
d = D + \hat{d}, \quad i_L = I_L + \hat{i}_L, \quad v_C = V_C + \hat{v}_C -
代入大信号模型并忽略二阶小量
-
分离直流项和交流项
最终得到小信号模型:
\begin{cases}
L\frac{d\hat{i}_L}{dt} = V_{in}\hat{d} + D\hat{v}_{in} - (1-D)\hat{v}_C + V_C\hat{d} \\
C\frac{d\hat{v}_C}{dt} = (1-D)\hat{i}_L - I_L\hat{d} - \frac{\hat{v}_C}{R}
\end{cases}
关键技巧:工作点计算
稳态工作点必须满足:
V_C = -\frac{D}{1-D}V_{in}, \quad I_L = \frac{V_C}{(1-D)R}
注意 :Buck-Boost 的输出电压是负的!这是初学者常踩的坑。
仿真验证:理论与实践的桥梁
这里给出 Matlab 验证代码的关键片段:
% 参数设置
L = 100e-6; C = 470e-6; R = 10;
D = 0.6; Vin = 12;
% 计算工作点
Vc = -D/(1-D)*Vin;
Il = Vc/((1-D)*R);
% 状态空间矩阵
A = [0 -(1-D)/L; (1-D)/C -1/(R*C)];
B = [Vin/L+Vc/L; -Il/C];
Cmat = [0 1]; % 输出电容电压
Dmat = 0;
% 验证传递函数
sys = ss(A,B,Cmat,Dmat);
tf(sys)
运行后可以看到从占空比到输出电压的传递函数,其极点位置反映了系统稳定性。
工程实践中的避坑指南
常见错误排查
- 工作点错误 :忘记 Buck-Boost 的负电压特性
- 线性化遗漏 :丢失 $V_C\hat{d}$ 等交叉乘积项
- 参数敏感区 :占空比接近 1 时模型精度下降
稳定性设计建议
- 优先保证电流内环带宽足够(通常 >1/10 开关频率)
- 电压外环带宽建议设为内环的 1 /5~1/10
- 特别注意右半平面零点(RHPZ)的影响
延伸思考
试着改变占空比 D 的值,观察:
1. 极点位置如何移动?
2. 什么情况下会出现 RHPZ?
3. 模型预测的阶跃响应与开关模型仿真结果差异多大?
这些实践能帮你更深入理解模型的局限性和适用边界。在实际工程中,我通常会先用这个模型做初步设计,再用 PLECS 或 Simulink 的开关模型进行验证,两者结合既高效又可靠。
希望这篇笔记对你有所启发!如果遇到具体问题,欢迎讨论实际案例。
