DSP

增量pi和pid调节代码

2019-07-13 17:45发布

比较简单的增量pid控制,后面要学习平衡车pid和云台pid,四轴pid。 /* 作者:hes 日期:17-11-10 功能:增量式 pi和pid控制 */ #include "pi_control.h" float KP=0.01; //比例 float KI=0.01; //积分 float KD=0; //微分 float bias=0; //当前差 float last_bias=0; //上次差 float last_old_bias=0; //上上次差 float out_value=0; //输出的控制变量 //pi控制,目标值,当前值 u32 PI_ctr(u32 target,u32 present) { bias=target-present; out_value=KP*(bias-last_bias)+KI*bias; last_bias=bias; return (u32)(out_value+0.5); } //pid控制,目标值,当前值 u32 PID_ctr(u32 target,u32 present) { float ep, ei, ed; bias=target-present; ep = bias - last_bias; ei = bias; ed = bias - 2*last_bias + last_old_bias; out_value = KP*ep + KI*ei + KD*ed; last_old_bias = last_bias; last_bias = bias; return (u32)(out_value+0.5); }