【实例介绍】
此文件还包含改进的PID算法,如可变积分控制
【实例截图】
【核心代码】
具体的PID实现代码如下。
pid.Kp=0.4; pid.Ki=0.2;
//增加了积分系数
pid.Kd=0.2;
浮动PID _ realize (浮动速度) {
浮动索引;
pid.SetSpeed=speed;
PID.err=PID.set speed-PID.actual speed;
if(ABS(PID.err ) 200 )//变积分过程
{
索引=0.0;
}elseif(ABS(PID.err ) 180 ) )。
索引=1.0;
pid.integral=pid.err;
}else{
索引=(200-ABS ) PID.err )/20;
pid.integral=pid.err;
}
PID.voltage=PID.KP * PID.errindex * PID.ki * PID.integral PID.KD * (
id.err-pid.err_last;
pid.err_last=pid.err;
PID.actual speed=PID.voltage * 1.0;
return pid.ActualSpeed;
}