3. 数字控制环路结构
做数字电源控制,绕不开建模。说白了,你得知道你的被控对象长什么样,才能设计出好用的控制器。Buck变换器是最基础的拓扑,咱们就从它开始。
我记得刚入行那会儿,总觉得建模是理论派干的事,调参数全靠试。结果有一次,一个48V转12V的项目,负载动态响应怎么调都振荡。后来老老实实把模型拉出来,才发现补偿器的零点位置完全不对。从那以后,我再也不敢跳过建模这一步了。
3.1 Buck电路工作原理
先快速回顾一下Buck的基本原理。一个开关管、一个二极管、一个电感和一个电容,就构成了最简Buck。
工作分两个阶段:
- 开关导通(Ton):输入通过开关管给电感充电,同时给负载供电。电感电流上升,储能增加。
- 开关关断(Toff):电感通过续流二极管释放能量,电流下降,继续给负载供电。
稳态时,伏秒平衡成立:
Vin * Ton = Vout * (Ton + Toff)
所以输出电压:
Vout = D * Vin
其中D是占空比。嗯,这个公式太理想了,实际中还要考虑导通压降、寄生电阻等因素。但作为建模起点,它够用了。
3.2 状态空间平均法
为什么要用状态空间平均法?因为Buck是个开关电路,一会儿这个拓扑,一会儿那个拓扑,直接分析太麻烦。状态空间平均法的思路很简单:把两个开关状态下的方程,按占空比加权平均,得到一个连续的平均模型。
具体步骤:
- 列写每个模态的状态方程
- 按占空比加权平均
- 得到平均模型
咱们以CCM Buck为例,选电感电流iL和电容电压vC(也就是输出电压)为状态变量。
模态1(开关导通,0 ≤ t ≤ dTs):
diL/dt = (Vin - vC) / L
dvC/dt = (iL - vC/R) / C
模态2(开关关断,dTs ≤ t ≤ Ts):
diL/dt = -vC / L
dvC/dt = (iL - vC/R) / C
加权平均后:
diL/dt = (d * Vin - vC) / L
dvC/dt = (iL - vC/R) / C
你看,平均模型里已经没有开关动作了,变成了一个连续系统。这就是状态空间平均法的核心——用连续模型近似开关电路。
3.3 小信号模型推导
平均模型是非线性的,因为输入d和状态变量vC相乘了。控制设计需要线性模型,所以要做小信号扰动。
思路:把每个变量写成稳态值加小扰动。
d = D + d̂
vC = VC + v̂C
iL = IL + îL
Vin = VIN + v̂in
代入平均模型,忽略二阶小项,得到:
dîL/dt = (D * v̂in + VIN * d̂ - v̂C) / L
dv̂C/dt = (îL - v̂C/R) / C
拉普拉斯变换后,得到从占空比到输出电压的传递函数:
Gvd(s) = v̂C(s) / d̂(s) = VIN / (LC * s² + (L/R) * s + 1)
这是一个典型的二阶系统。自然频率和阻尼比:
| 参数 | 表达式 | 物理意义 |
|---|---|---|
| 自然频率 ωn | 1 / √(LC) | LC谐振频率 |
| 阻尼比 ζ | (1 / (2R)) * √(L/C) | 负载和LC共同决定 |
这个传递函数,就是咱们设计数字补偿器的起点。你想想看,有了它,你就可以用经典控制理论来设计PID参数了。
3.4 知识体系总览
下面这张图,把Buck建模的整个逻辑串起来了。从实际电路到小信号模型,每一步都有明确的物理意义和数学操作。
从这张图可以清楚看到,建模不是一步到位的。先理解电路怎么工作,再通过状态空间平均把开关电路变成连续模型,最后用小信号扰动得到线性传递函数。每一步都有明确的物理意义。
3.5 实战中的注意事项
模型推导完了,但实际用的时候有几个坑:
- ESR的影响:实际电容有等效串联电阻(ESR),会在传递函数中引入一个零点。忽略ESR,相位裕度可能算错。
- 采样延迟:数字控制有采样和计算延迟,会在系统中引入额外相位滞后。建模时最好把延迟也考虑进去。
- 电感饱和:大电流下电感值会下降,导致模型参数变化。我曾经在一个50A的项目里,没考虑电感饱和,结果满载时系统振荡。后来加了电感电流前馈才解决。