3、数字控制环路:数字PID控制器原理、数字补偿器设计、量化效应对环路的影响
数字电源和模拟电源最大的区别在哪?
我个人觉得,就在这个“控制环路”里。模拟环路靠运放和阻容网络,调起来得换电阻电容,麻烦。数字环路呢?改几个系数就行,甚至可以在线调。听起来很美好,对吧?但数字环路也有它的“坑”。
这一章,我们就来聊聊数字控制环路的三个核心:PID原理、补偿器设计,以及那个容易被忽略的“量化效应”。
3.1 数字PID控制器:从模拟到数字的“翻译”
PID,比例-积分-微分。搞控制的没人不知道。但在数字域里,它不再是连续的电压信号,而是一串离散的数值。
位置式PID,说白了就是直接模仿模拟PID的表达式:
u(k) = Kp * e(k) + Ki * Σe(i) + Kd * [e(k) - e(k-1)]
这个公式很直观,但有个问题——积分项是累加的。如果系统出问题,积分项可能“冲”到天上去,恢复起来很慢。
增量式PID,我更喜欢用这个。它只计算当前控制量的变化量:
Δu(k) = Kp * [e(k) - e(k-1)] + Ki * e(k) + Kd * [e(k) - 2e(k-1) + e(k-2)]
u(k) = u(k-1) + Δu(k)
好处很明显:输出是增量,不会因为积分饱和导致大幅超调。而且,就算你算错了,顶多错一个步长,不会一直错下去。
3.2 数字补偿器设计:从S域到Z域的“变形记”
模拟补偿器设计,我们习惯在S域里搞。画伯德图,调零极点。数字补偿器呢?你得把S域的传递函数,映射到Z域。
常用的映射方法有几种:
| 映射方法 | 原理 | 特点 | 我推荐吗? |
|---|---|---|---|
| 前向欧拉 | s = (z-1)/T | 简单,但可能不稳定 | 不推荐,除非你很清楚自己在做什么 |
| 后向欧拉 | s = (z-1)/(z*T) | 稳定,但频率失真 | 可以用,但要注意高频特性 |
| 双线性变换 | s = (2/T)*(z-1)/(z+1) | 精度高,无混叠 | 强烈推荐 |
双线性变换,也叫Tustin变换。它把S平面的左半平面,映射到Z平面的单位圆内。这意味着,只要你的模拟补偿器是稳定的,数字补偿器也一定是稳定的。
举个例子,一个简单的PI补偿器:
模拟域:G(s) = Kp + Ki/s
用双线性变换,s = (2/T)*(z-1)/(z+1):
G(z) = Kp + Ki / [(2/T)*(z-1)/(z+1)]
= Kp + (Ki*T/2) * (z+1)/(z-1)
整理成差分方程形式:
u(k) = u(k-1) + (Kp + Ki*T/2)*e(k) + (-Kp + Ki*T/2)*e(k-1)
你看,最后就是一个简单的乘加运算。在DSP或MCU里,一个周期内就能算完。
3.3 量化效应:那个“看不见”的敌人
这是数字电源里,最容易出问题的地方。我刚开始做数字电源时,就吃过这个亏。
量化效应,说白了就是“精度不够”。ADC采样有量化,PWM输出有量化,系数存储也有量化。
ADC量化误差:
假设你的ADC是12位,参考电压3.3V。那么一个LSB代表3.3V/4096 ≈ 0.8mV。如果你的输出电压纹波只有1mV,那ADC只能分辨出1-2个台阶。反馈信号本身就带上了“台阶”,环路能不抖吗?
PWM分辨率:
PWM的占空比也是离散的。假设PWM时钟100MHz,开关频率100kHz,那么PWM分辨率是100MHz/100kHz = 1000个台阶。也就是说,占空比只能以0.1%的步进变化。如果环路计算出的占空比是50.05%,实际输出只能是50.0%或50.1%。这就是“极限环振荡”的根源。
系数量化:
PID系数Kp、Ki、Kd,在代码里是浮点数还是定点数?如果是定点数,你只有16位或32位来表示。很小的系数,比如0.0001,可能直接被截断成0。积分项永远加不上去,稳态误差就消不掉。
3.4 量化效应的应对策略
量化效应无法消除,但可以“管理”。
- 提高ADC有效位数: 用过采样+求平均,把12位ADC“拼”成14位甚至16位。代价是采样速度变慢,但很多电源应用够用了。
- 增加PWM分辨率: 用高分辨率定时器(HRPWM),或者用dithering技术。TI的C2000系列就有HRPWM,能把PWM分辨率做到150ps级别。
- 系数缩放: 把小数系数放大,用整数运算,最后再缩回来。比如Ki=0.001,你可以存成1000,计算完再除以1000000。注意不要溢出。
- 死区设置: 在误差很小时,干脆不调整占空比。避免极限环振荡。
下面这张图,是我自己总结的数字补偿器设计流程,你可以参考一下:
你看,从建模到代码实现,每一步都有坑。但只要你理解了量化效应的本质,这些坑都是可以填平的。
最后说一句:数字电源的环路调试,别光看仿真。上板实测,用示波器看动态响应,用频谱分析仪看噪声。理论和实践结合,才能真正吃透。