4、数字控制基础:采样定理与混叠效应,ZOH的频域特性,数字控制器的结构
各位工程师朋友,咱们今天聊聊数字控制的基础。说实话,很多做电源的兄弟一听到「数字控制」就头大,觉得是搞软件的事。其实没那么玄乎,你只要把采样、保持、控制器结构这三件事搞明白,数字环路在你手里就跟模拟环路一样听话。
4.1 采样定理与混叠效应
先说说采样。模拟信号是连续的,数字控制器只能认离散的点。这就好比拍电影——每秒24帧,你看到的是连续动作,但实际只是一张张照片快速切换。
采样定理(Nyquist-Shannon)告诉我们:采样频率必须大于信号最高频率的两倍。用公式说就是:
f_s > 2 × f_max
其中 f_s 是采样频率,f_max 是信号中最高频率分量。
为什么有这个要求?我举个例子你就明白了。假设你采样一个100kHz的正弦波,采样频率是150kHz。你猜会发生什么?
实际采到的点,看起来像是一个50kHz的信号。这就是混叠(Aliasing)。高频信号伪装成了低频信号,混进了你的控制环路里。我在项目中遇到过这种情况——一个200kHz的开关噪声,采样频率设成400kHz,结果环路里莫名其妙多了一个低频振荡。查了半天,原来是混叠搞的鬼。
抗混叠的方法其实就两个:
- 硬件滤波:在ADC前端加低通滤波器,把高于f_s/2的频率成分滤掉
- 提高采样率:让f_s远高于信号最高频率,把混叠频率推到系统带宽之外
我个人习惯是两者都用。硬件滤波用一阶RC就够了,成本低效果好。采样率嘛,能高就高,但也要考虑MCU的处理能力。
4.2 ZOH(零阶保持器)的频域特性
采样之后,数字控制器算出一个控制量,比如占空比。但这个值是个离散的点,怎么变成连续的PWM波形?靠的就是零阶保持器(ZOH)。
ZOH说白了就是:在一个采样周期内,保持输出值不变,直到下一个采样点到来才更新。你想想看,PWM的占空比不就是每个周期更新一次吗?这就是ZOH的物理实现。
ZOH的传递函数是:
G_zoh(s) = (1 - e^(-sT_s)) / s
其中 T_s 是采样周期。
这个公式看着复杂,但它的频域特性其实很直观:
- 低频段:增益接近1,相位延迟很小。说白了,低频信号经过ZOH几乎没影响。
- 高频段:增益衰减,相位延迟增大。在f_s/2处,相位延迟达到180度。
嗯,这里要注意:ZOH引入的相位延迟是数字控制不如模拟控制的地方。模拟环路里没有这个延迟,所以带宽可以做得很高。数字环路里,ZOH的延迟限制了你的穿越频率。
ZOH的幅频特性可以用下面这张图来理解:
从这张图你能看到:ZOH在低频段跟理想低通差不多,但到了f_s/2附近,增益开始明显下降。这就是为什么数字环路的带宽做不高的根本原因。
4.3 数字控制器的结构
讲完了采样和保持,咱们看看数字控制器本身长什么样。常见的结构有几种:
4.3.1 直接型结构
这是最直观的实现方式。把模拟PID的传递函数直接离散化,变成差分方程。比如:
u[k] = u[k-1] + Kp*(e[k] - e[k-1]) + Ki*Ts*e[k] + (Kd/Ts)*(e[k] - 2*e[k-1] + e[k-2])
这种结构简单,但有个问题:系数对量化误差敏感。我刚开始做数字电源时就用这个,结果发现16位定点数算下来,积分项老是丢精度。
4.3.2 级联型结构
把高阶控制器拆成多个一阶或二阶环节串联。好处是每个环节的系数范围合理,不容易出现数值问题。我现在做项目基本都用这种结构。
4.3.3 并联型结构
把控制器拆成多个环节并联。调试方便,可以单独调整每个环节的参数。但占用的资源多一些。
数字控制器的设计流程,我总结成三步:
- 连续域设计:先在s域设计好模拟控制器,得到传递函数
- 离散化:用双线性变换(Tustin)或零极点匹配法,把s域传函变成z域
- 实现:把z域传函写成差分方程,在MCU里跑起来
这里有个坑:双线性变换在高频段会有频率翘曲。如果你的穿越频率在采样频率的1/10以内,影响不大。但如果带宽比较高,我建议用零极点匹配法,更准一些。
最后说一句:数字控制器的结构没有绝对的好坏,关键看你的应用场景。开关频率低、带宽要求不高的,直接型就够了。高频、高精度的场合,老老实实用级联型。
好了,这一节的内容就到这儿。采样定理、ZOH特性、控制器结构,这三块是数字控制的基石。你把这几个概念吃透了,后面讲环路补偿、稳定性分析的时候,就不会觉得吃力。