发布于 2013-04-21 21:45:28
32楼
PID真的很神秘吗?如果你这么认为,那么就是你上学时没好好学?
下面我贴出离散的PID算法:
int speed_pid(uint32_t setve0l)
{
v_set=setve0l;
v_feedback=actvel; /*读取即时速度偏差 */
verror=v_set-v_feedback; /*计算速度偏差 */
d_error=verror-v_preerror; /*计算速度偏差之差 */
v_preerror=verror; /*本次偏差作为下次偏差 */
v_out+=(v_kp*d_error+v_ki*verror); /*控制器输出 */
v_output=(v_out>>12); /*控制器输出右移12位 */
if(v_output>=MAX) /*上限限幅 */
{v_output=6000;}
if(v_output<=MIN) /*下限限幅 */
{v_output=1000;}
return(v_output);
}
路漫漫而求索!