不同就不同在PID算法上,与近三次的误差有关。
/*** @brief PID算法实现* @param val 目标值* @note 无* @retval 通过PID计算后的输出*/float PID_realize(float temp_val){/*计算目标值与实际值的误差*/pid.err = pid.target_val - temp_val;/*PID算法实现*/pid.actual_val += pid.Kp * (pid.err - pid.err_next)+ pid.Ki * pid.err+ pid.Kd * (pid.err - 2 * pid.err_next + pid.err_last);/*传递误差*/pid.err_last = pid.err_next;pid.err_next = pid.err;/*返回当前实际值*/return pid.actual_val;}

