数字电源控制模型:数字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,拓扑不同,模型也不同。但思路是一样的:状态空间平均法。

具体步骤我总结了一下:

  1. 写出开关管导通和关断两个状态的状态方程。
  2. 按占空比加权平均,得到平均模型。
  3. 在静态工作点附近加小信号扰动,线性化。
  4. 拉普拉斯变换,得到传递函数。

以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调制 计数器+比较器 分辨率/死区/对齐 执行机构 功率级小信号建模 状态空间平均法 传递函数推导 被控对象 数字补偿器 PI/PID/Type III 双线性变换 大脑/控制器 反馈采样(ADC) 设计流程 ① 确定功率级参数(L、C、开关频率) ② 推导功率级传递函数,绘制Bode图 ③ 设计补偿器,满足带宽和相位裕度 ④ 离散化,写差分方程,调系数 数字电源控制环路三要素

你看,从PWM到功率级再到补偿器,最后通过反馈采样形成闭环。这个闭环的稳定性,就是咱们这门课要解决的核心问题。

我个人习惯,在设计一个新项目时,先把这三个模块的模型在仿真软件里搭一遍。功率级用实际元件参数,补偿器用双线性变换后的差分方程,PWM用理想计数器模型。仿真跑通了,再上硬件。这样做的好处是——问题在仿真阶段就暴露了,不用在板子上反复焊接调试。