4. 反馈控制系统:从开环到闭环的进化
做电源设计,刚开始接触的都是开环系统。你给一个占空比,输出一个电压,看起来挺简单。但实际一接负载,电压就往下掉——这就是开环的痛点。我最早做Buck变换器时就吃过这个亏,调了半天参数,一上负载就垮了。
闭环控制,说白了就是让系统自己看着输出,发现不对就自己调整。你想想看,这就像开车——你不可能闭着眼睛踩油门吧?得看着路,偏了就打方向盘。反馈控制就是这个道理。
4.1 闭环控制的核心概念
闭环控制有三个基本要素:测量、比较、修正。测量输出量,跟目标值比一比,差多少就调多少。
闭环控制的基本结构:
- 参考值(Reference):你想要的目标电压
- 反馈量(Feedback):实际测到的输出电压
- 误差(Error):参考值 - 反馈量
- 控制器(Controller):根据误差计算控制量
- 被控对象(Plant):电源变换器本身
我在项目中见过不少新手,上来就写PID,连反馈回路都没搞清楚。嗯,这里要注意:反馈极性不能搞反。负反馈是正路,正反馈会炸机——我亲眼见过一次,输出直接飙到天上去了。
4.2 PID控制原理
PID是工业界最经典的控制器。比例、积分、微分,三个环节各司其职。
4.2.1 比例环节(P)
比例环节最简单:误差大,输出就大。但有个问题——稳态误差。你想想看,如果只用比例控制,输出永远到不了目标值,总会差那么一点。我习惯叫它"欠压一点点"。
4.2.2 积分环节(I)
积分就是用来干掉稳态误差的。它把误差累积起来,时间越长,出力越大。但积分有个副作用——积分饱和。启动时误差大,积分器疯狂累积,等你输出到了目标,它还在那使劲推,结果就过冲了。
积分饱和的坑:我曾经在一个48V通信电源项目里,积分饱和导致启动过冲超过60V,直接把后级负载打坏了。后来加了抗饱和措施才解决。
4.2.3 微分环节(D)
微分看的是误差的变化率。误差突然变大,微分就猛拉一把;误差在减小,微分就收一收。说白了就是提前预判。但微分对噪声特别敏感——采样信号稍微抖一下,微分输出就炸了。
数字域里,我一般会在微分前加个低通滤波,不然高频噪声会让你怀疑人生。
4.2.4 离散PID公式
模拟PID的公式大家都会背:
u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt
但到了数字域,得写成离散形式。最常用的是位置式PID:
u[k] = Kp * e[k] + Ki * Ts * Σe[i] + (Kd/Ts) * (e[k] - e[k-1])
还有增量式PID,只算变化量:
Δu[k] = Kp * (e[k] - e[k-1]) + Ki * Ts * e[k] + (Kd/Ts) * (e[k] - 2*e[k-1] + e[k-2])
我个人更喜欢增量式,因为积分饱和好处理,而且输出限幅天然安全。
4.3 数字PID与模拟PID的区别
很多人觉得数字PID就是模拟PID的离散版本,其实没那么简单。我列个表,你一看就明白:
| 对比项 | 模拟PID | 数字PID |
|---|---|---|
| 实现方式 | 运放+阻容 | MCU/DSP软件计算 |
| 参数调整 | 换电阻电容 | 改代码里的系数 |
| 采样延迟 | 无(连续时间) | 有(采样周期Ts) |
| 量化误差 | 无 | ADC分辨率限制 |
| 抗饱和 | 运放自然限幅 | 需要软件处理 |
| 灵活性 | 低(硬件固定) | 高(可在线调整) |
| 噪声敏感度 | 低(连续滤波) | 高(需数字滤波) |
这里有个关键点:采样频率。数字PID的性能很大程度上取决于采样率。我一般建议采样频率至少是开关频率的2倍,最好到5-10倍。采样太慢,相位滞后会让你稳不住。
经验值:对于100kHz开关频率的数字电源,采样率设在200kHz-500kHz比较合适。ADC的转换时间要算进去,别让采样拖了后腿。
4.4 稳定性判据
闭环系统最怕什么?振荡。一个不稳定的电源,输出会来回晃,轻则纹波超标,重则炸管。我见过一个同事,调了三天没调稳,最后发现是相位裕度不够。
4.4.1 相位裕度与增益裕度
这是最常用的两个指标:
- 相位裕度(Phase Margin):增益为0dB时,相位距离-180°还有多少度。一般要求>45°,最好60°以上。
- 增益裕度(Gain Margin):相位为-180°时,增益距离0dB还有多少dB。一般要求>10dB。
为什么要有裕度?因为实际系统有参数漂移。温度变了,电感值会变;电容老化了,ESR会变。你算出来刚好45°,实际可能只剩30°了。
4.4.2 奈奎斯特判据
这个判据比较理论化,但很实用。它通过开环传递函数的奈奎斯特图来判断闭环稳定性。简单说:开环稳定不代表闭环稳定,但开环不稳定,闭环可能通过反馈变稳定。
我记得在学校时觉得这玩意没用,直到做了一款大功率逆变器,开环增益太高,闭环怎么调都振荡。后来用奈奎斯特图一分析,发现是高频段有个谐振峰没压住。
4.4.3 数字域的特殊问题
数字控制系统有个模拟系统没有的问题——离散化带来的相位滞后。采样保持、计算延迟、PWM更新延迟,这些都会引入额外的相位滞后,降低相位裕度。
我习惯在设计中预留5-10°的额外裕度,专门用来抵消数字延迟的影响。另外,零阶保持器(ZOH)的等效延迟是Ts/2,这个在建模时一定要算进去。
数字电源稳定性检查清单:
- 开环传递函数是否包含所有延迟?
- 相位裕度是否>45°(含数字延迟)?
- 增益裕度是否>10dB?
- 采样频率是否足够高(>10倍闭环带宽)?
- ADC量化误差是否会导致极限环?
4.5 本章知识体系
下面这张图把本章的核心逻辑串起来了:
4.6 实际调试中的避坑指南
最后分享几个我踩过的坑:
- 积分饱和:启动时误差大,积分器疯狂累积。等输出到了目标,积分器还在推,结果过冲。解决办法:加积分限幅,或者用增量式PID。
- 微分噪声放大:采样信号稍微抖一下,微分输出就炸了。我习惯在微分前加一阶低通滤波,截止频率设在闭环带宽的5-10倍。
- 采样延迟:ADC转换、计算、PWM更新都有延迟。这些延迟会降低相位裕度。我一般会在仿真里把这些延迟都建模进去。
- 极限环:ADC量化误差导致输出在小范围内来回跳。解决办法:提高ADC分辨率,或者加死区。
嗯,这一章的内容就到这里。反馈控制是数字电源的核心,理解了闭环、PID和稳定性,后面讲环路补偿就顺了。