本帖最后由 zhxzhxzzhhxx 于 2016-8-8 19:01 编辑
注意,例程里的PID算法有一点错误:
pre_error=error;
last_error=pre_error;
应该是
last_error=pre_error;
pre_error=error;
PWM_temp= PWMDTY01+Kp*error+Ki*(error-last_error)+Kd*(error+pre_error-2*last_error);
应是
PWM_temp= PWMDTY01+Kp*(error-last_error)+Ki*error+Kd*(error-2*last_error+pre_error);
|