4. 自整定原理:继电反馈法

各位同学,今天我们来聊聊自整定里最经典的方法——继电反馈法。说实话,这个方法我用了快十年了,从四旋翼到固定翼,从云台到机械臂,几乎每个项目都离不开它。为什么?因为它简单、可靠,而且不需要你懂太多复杂的数学。

4.1 继电反馈法的核心思想

先问大家一个问题:怎么让一个系统自己找到临界振荡点?

传统方法是我们手动调大比例增益,直到系统开始等幅振荡。但这样做有几个问题:第一,你不知道什么时候该停;第二,万一调过头了,系统可能直接发散炸掉。我在做第一版飞控的时候,就因为这个原因烧过一块电机驱动板……嗯,从那以后我就再也不敢手动试了。

继电反馈法的思路很巧妙——用非线性环节代替人工调节。你只需要在反馈回路里插入一个继电器,系统就会自动进入等幅振荡状态。说白了,就是让系统自己「抖」起来,然后我们从这个抖动里提取参数。

核心优势:

  • 不需要人工干预,自动建立极限环
  • 对系统模型要求低,黑箱也能用
  • 鲁棒性强,抗干扰能力好

4.2 极限环振荡的建立过程

你可能会问:为什么加个继电器就能产生等幅振荡?

我简单解释一下。继电器的输出只有两个值:+h 和 -h。当系统误差为正时,输出正饱和;误差为负时,输出负饱和。这种开关控制会让系统在平衡点附近来回切换,最终形成一个稳定的极限环。

我在项目中遇到过一种情况:如果系统惯性太大,极限环的周期会很长,整定时间就变长了。这时候我一般会适当提高继电器幅值 h,让振荡频率加快一点。

极限环建立的条件其实很简单:

  • 系统必须是开环稳定的(或者至少是条件稳定的)
  • 继电器滞环宽度要合适,太大会导致振荡发散
  • 采样频率要足够高,至少是极限环频率的10倍以上

我的经验: 实际调试时,我一般先给一个较小的 h 值(比如满量程的5%),观察系统是否起振。如果不起振,再逐步增大。千万别一上来就给大信号,容易把执行器打坏。

4.3 参数提取:从极限环到PID参数

好了,现在系统已经进入等幅振荡了。我们能从振荡波形里提取什么?

两个关键参数:

参数 符号 提取方法
临界增益 Ku Ku = 4h / (πa)
临界周期 Tu 直接测量振荡周期

其中 h 是继电器幅值,a 是极限环的振幅。这两个参数一出来,剩下的就是查表了。

我常用的Ziegler-Nichols整定规则是这样的:

控制器类型 Kp Ti Td
P 0.5 Ku
PI 0.45 Ku 0.85 Tu
PID 0.6 Ku 0.5 Tu 0.125 Tu

注意: Z-N整定法给出的参数通常偏激进。我在做高精度云台时,一般会把 Kp 再乘以0.7,防止超调过大。你想想看,飞控上要是超调20%,飞机可能直接就翻过去了。

4.4 自整定流程框架

下面这张图是我自己总结的完整流程,每个项目我都会按这个步骤来:

继电反馈法自整定流程框架 步骤1:初始化 步骤2:注入继电信号 步骤3:等待极限环建立 步骤4:提取K_u和T_u 步骤5:查表计算PID参数 结束 关键说明 • 初始化:设置继电器幅值h 和滞环宽度ε • 注入信号:将继电器接入 反馈回路 • 等待建立:通常需要3-5个 振荡周期 • 参数提取:测量振幅a和 周期T_u • 查表计算:使用Z-N规则 或改进规则 ⚠ 注意事项: • 确保系统在整定过程中 不会受到大幅扰动 • 整定完成后及时切除继电器

这个流程看起来简单,但实际做的时候有几个坑要注意。我曾经在一个项目中,因为采样频率不够,导致提取的周期误差很大,整出来的参数根本不能用。后来我把采样频率提高到极限环频率的20倍,问题就解决了。

4.5 实际应用中的注意事项

最后,我给大家总结几条实战经验:

  1. 继电器幅值的选择:太小不起振,太大容易损坏执行器。我一般从满量程的3%-5%开始试。
  2. 滞环宽度的设置:滞环可以防止噪声引起的误触发。但太宽了会影响极限环的精度。我通常设为信号噪声幅值的2倍。
  3. 整定过程中的保护:一定要设置超时保护和幅值限幅。万一系统发散,能及时切断。
  4. 参数的后处理:Z-N法给出的参数通常需要微调。我习惯先做一次阶跃响应测试,看看超调和响应时间,再手动修正一下。

一个小技巧: 如果你觉得Z-N法太激进,可以试试改进的继电反馈法。在继电器后面串联一个低通滤波器,可以有效抑制高频噪声,提取出来的参数更平滑。我在做无人机姿态控制时,这个方法帮了大忙。

好了,继电反馈法的原理就讲到这里。这个方法虽然经典,但用好了确实能解决很多实际问题。下次你们调试PID的时候,不妨试试这个思路,省时省力还靠谱。


公众号:蓝海资料掘金营,微信deep3321