书接上回-今天我们来学习PID双环控制
单环PID只能对被控对象的一个物理量进行闭环控制,而当用户需要对被控对象的多个维度物理量(例如:速度、位置、角度等)进行控制时,则需要多个PID控制环路,即多环PID,多个PID串级连接,因此也称作串级PID
多环PID相较于单环PID,功能上,可以实现对更多物理量的控制,性能上,可以使系统拥有更高的准确性、稳定性和响应速度
为什么要用双环结构?
抗干扰能力强: 速度环可以非常快速地响应和抑制扰动。例如,如果电机负载突然增加导致转速下降,速度环会立刻发现“实际速度”跟不上“目标速度”,并迅速增加PWM输出来抵抗负载,而这个过程外环(位置环)可能还没来得及做出反应。这使得控制更加稳定和平滑。
调试更方便: 可以将内外环分开调试。先调试好内环(速度环),让电机能够精确地响应速度指令,然后再调试外环(位置环)来获得理想的位置响应特性。
性能更优越: 相比于只用一个位置环直接输出PWM,双环结构可以实现更快速、更精确、更平滑的位置控制,有效抑制超调和振荡。
双环控制调参黄金法则:先内环,后外环这是一个必须遵守的原则,顺序搞错,系统永远无法稳定。
-
屏蔽外环,先调内环:
-
将位置环(外环)的PID参数全部设为0,或者直接在代码中注释掉外环的计算。
-
手动给速度环一个目标值。
-
调整速度环的Kp, Ki, Kd参数,直到
实际速度
能够快速、准确、稳定地跟随目标速度
。此时,内环应该表现为一个优秀的“速度跟随者”。
-
-
锁定内环,再调外环:
-
保持调好的内环参数不变!
-
将外环的PID控制逻辑加回来。
-
调整位置环的Kp, Ki, Kd参数,直到
实际位置
能够快速、准确、稳定地到达目标位置
。
-
核心思想:必须保证内环的响应速度远快于外环。这样,外环发出的任何速度指令,内环都能迅速完成,外环才能稳定工作。通常,内环的控制频率也应高于外环。
这里来看为什么双环具有更好的准确性:
对于双环PID的位置环它的输出值作用于速度环的目标速度,因此无论位置环输出多小的值,电机都不可能不转。另一个角度:把电机和速度环看成一个整体,整体的电机不存在启动力度,自然不会像单环PD控制器那样,有最后一点误差消除不了。
为什么有更高的稳定性和响应速度:干扰通过先稳定快速的内环,大大缩短了整个系统的控制延迟,使得系统可以被更“激进”、更快速地控制而不会失控。内环负责处理所有导致不稳定的高频动态,外环则可以专注于平滑的低频指令。内外环可共同作用于外界干扰。
接下来我们来研究基于双环的倒立摆
内环角度环:保持摆杆稳定倒立 外环位置环:保持横杆的位置固定在一个地方
摆杆的角度靠角度传感器获取,横杆的位置靠电机编码器获取,倒立摆的首要任务是维持摆杆的倒立位置,所以内环是角度环,所以内环的实际值输入是当前摆杆的角度,而目标角度正常给的是中心角度位置,通过动态改变电机的PWM来摆杆的始终贴合设定的目标中心角度。需要注意的是位置环的输出作用于角度环时需要加一个中心角度的固定偏移。