5.2.PID调试
——基本原理
P就是比例作用,简单说就是输入偏差乘以一个系数。
I就是积分,简单说就是将输入偏差进行积分运算。
D就是微分,简单说就是将输入偏差进行微分运算
PID基本公式
PID调节器参数整定过程通俗讲就是先把系统调为纯比例作用,逐步增强比例作用让系统振荡,记录下比例作用和振荡周期,然后这个比例作用乘以0.6,积分作用适当延长 KP=0.6 Km
KD= KP×π/4ω
KI= KP×ω/π
公式中KP为比例控制参数;KD为积分控制参数;KI为微分控制参数;Km为系统开始振荡是的比例值;ω为极坐标下振荡时的频率
——具体分析
**************************************************************************/平衡PD调节
int balance(float Angle,float Gyro)
balance=35*Bias+Gyro*0.125;//=== 这是平衡调节的PD控制公式
P的系数是35,D的系数是0.125。
这个数据测试时后是比较合适的,调整D的系数0.125过大,就会不断摇摆,不容易稳定。调整P的系数35过小,就使平衡容易受扰动,容易失稳。
具体在下一个静止调节中说明。
**************************************************************************/速度PI调节
int velocity(int encoder_left,int encoder_right)
Encoder_Least =(Encoder_Left+Encoder_Right)-0;
Encoder *= 0.8;
Encoder += Encoder_Least*0.2;
这是速度调节的PI控制公式,这个是综合左右编码器的数值来调节运动的速度,这几个系数均小于1,而且系数和0.8+0.2=1。综合是闭环控制,使速度偏差逐步减小,达到减速稳定的作用。调节这些数据超过1,立刻失稳。本实验在标准数值范围内微调,变化不明显,运行保持稳定。OK。
**************************************************************************/转向PD调节
int turn(int encoder_left,int encoder_right,float gyro)
Turn_Bias=Encoder_Left-Encoder_Right;
Turn_Bias_Integral+=Turn_Bias;
Turn_Bias_Integral-=Turn_Target;
Turn=Turn_Bias_Integral*2+gyro/12;
这是转向调节的PD控制公式:通过获得左右两个电动机编码器的编码数据获得转向偏差初值Turn_Bias,结合遥控的目标值Turn_Target,经过和z轴旋传感器角度采集值经量化取得最终的转向控制值Turn,用于转向控制。
本公式中turn均是取1作为控制系数,调节各个组成部分的比例,可以改变调整的强度。如给
Turn_Bias_Integral-=Turn_Target 改为
Turn_Bias_Integral-=2*Turn_Target,就可以使调节更灵敏,幅度更大,当然也更不好控制。因为有限幅的语句,所以能保证稳定调节。测试OK。