数字电源控制模型:数字PWM调制原理、功率级小信号建模、数字补偿器结构
各位工程师朋友,咱们今天聊聊数字电源控制模型。说实话,很多刚转数字电源的同事,最头疼的就是这三个东西怎么串起来——PWM怎么调、功率级怎么建模、补偿器怎么写代码。我当年第一次调数字电源环路,也是被这几个概念绕得晕头转向。今天咱们一个一个掰开揉碎了讲。
数字PWM调制原理
数字PWM,说白了就是把数字控制器的输出值,转成实实在在的开关管驱动信号。你想想看,DSP算出来一个占空比数值,比如0.35,怎么让MOS管真的开35%的时间?
核心就是数字比较器+计数器。系统时钟驱动一个计数器,从0一直数到周期值。同时有个比较寄存器,存着你算好的占空比。当计数值小于比较值时,输出高电平;大于等于时,输出低电平。就这么简单。
关键参数:
- PWM分辨率:由系统时钟和PWM周期决定。比如100MHz时钟,100kHz开关频率,计数器从0数到1000,分辨率就是0.1%。
- 死区时间:上下管切换必须留死区。我习惯用硬件自动插入,比软件延时靠谱。
- 对齐模式:边沿对齐还是中心对齐?中心对齐的谐波特性更好,但计算量稍大。
我在项目中遇到过一个问题:PWM分辨率不够,导致轻载时输出电压纹波特别大。后来把时钟从50MHz提到100MHz,分辨率翻倍,问题就解决了。嗯,这里要注意——分辨率不是越高越好,太高了计数器位数太长,会占用DSP资源。
功率级小信号建模
功率级建模,目的是得到从占空比到输出电压的传递函数。Buck、Boost、Buck-Boost,拓扑不同,模型也不同。但思路是一样的:状态空间平均法。
具体步骤我总结了一下:
- 写出开关管导通和关断两个状态的状态方程。
- 按占空比加权平均,得到平均模型。
- 在静态工作点附近加小信号扰动,线性化。
- 拉普拉斯变换,得到传递函数。
以Buck电路为例,最终得到的控制到输出传递函数是:
Gvd(s) = Vin * (1 + s*Rc*C) / (1 + s*(Rl+Rc)*C + s²*L*C)
其中Rc是电容ESR,Rl是电感DCR。你看,分母是个二阶系统,有谐振峰。这个谐振峰的位置和Q值,直接决定了环路补偿的难度。
我的经验:实际建模时,别忘了把采样延迟和PWM更新延迟加进去。数字控制比模拟多了一个采样周期左右的延迟,这个延迟在高频段会显著降低相位裕度。我曾经因为这个延迟没算进去,环路仿真时相位裕度60度,实际板子一测只有30度,差点翻车。
数字补偿器结构
补偿器,就是用来修正环路特性的。数字补偿器说白了就是数字滤波器,用差分方程实现s域的传递函数。
常见的结构有三种:
| 类型 | 传递函数(s域) | 特点 | 适用场景 |
|---|---|---|---|
| PI补偿器 | Kp + Ki/s | 结构简单,无高频增益 | 电流内环、对动态要求不高的场合 |
| PID补偿器 | Kp + Ki/s + Kd*s | 响应快,但微分项对噪声敏感 | 电压外环、需要快速响应的场合 |
| Type III补偿器 | 带两个零点两个极点 | 灵活性强,可调相位提升 | 高带宽、高相位裕度要求的场合 |
数字实现时,最常用的是双线性变换法(Tustin变换),把s域的传递函数转成z域,再写成差分方程。举个例子,PI补偿器的差分方程是:
u[k] = u[k-1] + Kp*(e[k] - e[k-1]) + Ki*Ts*e[k]
其中Ts是采样周期。你看,就三个乘加运算,DSP一个指令周期就能算完。
注意:数字补偿器有积分饱和问题。当输出限幅时,积分项会一直累加,导致退出饱和后响应很慢。我习惯用条件积分法——输出限幅时停止积分累加。另外,补偿器的系数要量化到位,我一般用Q15格式,16位定点数,精度够用又不占资源。
知识体系总览
下面这张图把三个部分的关系画清楚了。你看,数字PWM是执行机构,功率级是被控对象,补偿器是大脑。三者环环相扣,缺一不可。
你看,从PWM到功率级再到补偿器,最后通过反馈采样形成闭环。这个闭环的稳定性,就是咱们这门课要解决的核心问题。
我个人习惯,在设计一个新项目时,先把这三个模块的模型在仿真软件里搭一遍。功率级用实际元件参数,补偿器用双线性变换后的差分方程,PWM用理想计数器模型。仿真跑通了,再上硬件。这样做的好处是——问题在仿真阶段就暴露了,不用在板子上反复焊接调试。