第四章 微分控制(D)深入:微分作用预测系统变化趋势、微分对噪声的敏感性、不完全微分与微分先行

各位工程师朋友,咱们今天来聊聊微分控制。说实话,在PID三个环节里,D是最容易被人误解的。很多人觉得D就是“加个阻尼”,让系统不震荡。其实远不止这么简单。

我个人习惯把D比作“系统变化的预言家”。它不看你现在在哪,它看你正往哪跑、跑得多快。这个视角,是P和I给不了的。

4.1 微分作用:预测系统变化趋势

先想一个问题:为什么光靠PI不够?

我举个例子。你开车下坡,眼睛看到坡底还有100米(这是P,看偏差大小)。但如果你只盯着距离,等你到坡底再刹车,早就冲出去了。你需要的是——感觉车速在加快,提前收油。这个“感觉车速变化”的能力,就是微分。

数学上,微分项的输出是:

D_out = Kd * (de/dt)

其中de/dt是偏差的变化率。注意,不是位置的变化率,是偏差的变化率。

这意味着什么?

  • 当偏差在快速减小(系统正在靠近目标),D会输出一个反向力,阻止它冲过头
  • 当偏差在快速增大(系统正在远离目标),D会输出一个正向力,提前把它拉回来

我在项目中遇到过一台高速贴片机,X轴定位总是过冲3mm。P调大了震荡,I调慢了响应。后来加了D,过冲直接压到0.3mm以内。为什么?因为D在系统还没到目标位置时,就已经“看到”了它要冲出去的势头,提前刹车了。

核心理解:微分不是“事后纠偏”,而是“事前预测”。它根据变化趋势提前输出控制量,相当于给系统加了一个“预见性”。

4.2 微分对噪声的敏感性——D的致命弱点

嗯,这里要注意。D虽然好,但它有个天生的毛病:怕噪声。

你想想看,微分计算的是变化率。如果信号上有毛刺,哪怕是一个很小的毛刺,求导之后都会被放大。举个例子:

  • 位置信号上有一个0.1mm的随机噪声
  • 采样周期1ms
  • 那么de/dt瞬间可能达到 0.1mm / 0.001s = 100 mm/s
  • 乘以Kd之后,输出可能直接爆表

我曾经调试一台伺服压机,位置反馈信号上有一点高频抖动。不加D的时候系统跑得好好的,一加D,电机开始“哆嗦”,声音都变了。查了半天,发现是编码器线缆屏蔽没做好,50Hz工频干扰串进来了。

避坑指南:我曾经因为没注意噪声问题,在一条产线上浪费了整整两天。后来总结了一条铁律:先确认反馈信号质量,再决定是否启用微分。如果信号噪声大,要么滤波,要么放弃D。

那怎么判断噪声大不大?我建议你用示波器看反馈信号,或者在上位机里看原始数据的波动幅度。如果波动超过量程的1%,用D就要非常小心。

4.3 不完全微分——给D加个“低通滤波器”

既然D怕噪声,那怎么办?最简单的办法:别直接用纯微分,用“不完全微分”。

说白了,就是在微分通道上串联一个低通滤波器。数学表达式是这样的:

D(s) = Kd * s / (Tf * s + 1)

其中Tf是滤波时间常数。当Tf=0时,它就是纯微分;Tf越大,滤波效果越强,但微分作用也越“钝”。

离散化之后,代码实现大概是:

// 不完全微分实现
float Tf = 0.01;  // 滤波时间常数,单位秒
float alpha = Tf / (Tf + Ts);  // Ts为采样周期
float D_filtered = (1 - alpha) * D_raw + alpha * D_filtered_prev;
D_output = Kd * D_filtered;

我在实际项目中,90%的情况都用不完全微分。纯微分?说实话,只用在仿真和教学里。现场环境太复杂,纯微分太容易“炸”了。

个人经验:Tf一般取采样周期的5~10倍。比如采样周期1ms,Tf取5~10ms。太小了没效果,太大了微分作用被过度削弱。

4.4 微分先行——只对输出求导,不对设定值求导

还有一个常见问题:当设定值突然变化时,微分项会“跳变”。

你想想看,设定值从100突然变成200,偏差瞬间变化100。de/dt瞬间无穷大(实际是很大),微分输出会猛冲一下。这个冲击,轻则系统抖动,重则损坏执行机构。

怎么解决?微分先行。

微分先行的思路是:只对实际输出(反馈值)求导,不对设定值求导。

传统PID的微分项:

D = Kd * d(SP - PV) / dt

微分先行:

D = -Kd * d(PV) / dt

注意那个负号。因为当PV在增大(远离目标),我们需要正向输出;当PV在减小(靠近目标),我们需要反向输出。所以是负的Kd乘以PV的变化率。

这样做的好处很明显:

  • 设定值变化时,微分项不受影响
  • 只根据实际输出的变化趋势来预测和修正

我记得有一次调试恒温槽,温度设定值从30度直接跳到80度。如果用传统微分,加热器瞬间满功率输出,温度过冲超过10度。改成微分先行之后,过冲控制在2度以内。效果立竿见影。

4.5 三种微分形式的对比

类型 优点 缺点 适用场景
纯微分 响应最快,相位超前最大 对噪声极度敏感,容易震荡 仿真、信号干净的实验室环境
不完全微分 抗噪声能力强,稳定性好 响应略慢,相位超前减少 大多数工业现场(推荐首选)
微分先行 避免设定值跳变冲击,抗噪声 实现稍复杂,对快速跟踪有影响 设定值频繁变化的系统(如温控、位置跟踪)

4.6 微分调参的实战建议

最后,我分享几个调D参数的心得:

  1. 先P后D:先把P调到系统刚好不震荡,再加D。不要一上来就三个参数一起调。
  2. D从小往大加:从0开始,每次增加10%~20%,观察系统响应。过冲减小了,但噪声放大了,就停下来。
  3. 注意执行机构:如果听到电机有高频“滋滋”声,或者阀门频繁动作,说明D太大了,或者噪声没处理好。
  4. 采样周期要够快:D的效果依赖于采样周期。采样周期太慢,微分算出来的是“历史数据”,没有预测意义。一般建议采样周期至少是系统时间常数的1/10。
  5. 能用I就别强求D:有些系统,比如大惯性温度控制,D的效果其实有限。这时候把I调好,比硬加D更实用。

一句话总结:微分是PID里的“双刃剑”。用好了,系统响应又快又稳;用不好,噪声放大、系统抖动、执行机构磨损。我的建议是——先确认信号质量,再决定用不用D;用的话,优先选不完全微分或微分先行。

好了,关于微分控制,今天就聊到这里。下一章咱们讲PID参数整定的实战方法,到时候我会分享一些“一招鲜”的调参口诀,敬请期待。