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 自整定流程框架
下面这张图是我自己总结的完整流程,每个项目我都会按这个步骤来:
这个流程看起来简单,但实际做的时候有几个坑要注意。我曾经在一个项目中,因为采样频率不够,导致提取的周期误差很大,整出来的参数根本不能用。后来我把采样频率提高到极限环频率的20倍,问题就解决了。
4.5 实际应用中的注意事项
最后,我给大家总结几条实战经验:
- 继电器幅值的选择:太小不起振,太大容易损坏执行器。我一般从满量程的3%-5%开始试。
- 滞环宽度的设置:滞环可以防止噪声引起的误触发。但太宽了会影响极限环的精度。我通常设为信号噪声幅值的2倍。
- 整定过程中的保护:一定要设置超时保护和幅值限幅。万一系统发散,能及时切断。
- 参数的后处理:Z-N法给出的参数通常需要微调。我习惯先做一次阶跃响应测试,看看超调和响应时间,再手动修正一下。
一个小技巧: 如果你觉得Z-N法太激进,可以试试改进的继电反馈法。在继电器后面串联一个低通滤波器,可以有效抑制高频噪声,提取出来的参数更平滑。我在做无人机姿态控制时,这个方法帮了大忙。
好了,继电反馈法的原理就讲到这里。这个方法虽然经典,但用好了确实能解决很多实际问题。下次你们调试PID的时候,不妨试试这个思路,省时省力还靠谱。
公众号:蓝海资料掘金营,微信deep3321