int16 PlacePID_Control(PID *sptr, int16 Setpoint,int16 Turepiont) { int16 iError,Actual; float KP; //动态P,注意与Kp区分 iError = Setpoint - Turepiont; KP = (iError)*sptr->Ki +sptr->Kp; //动态P的计算 //sptr->SumError+=iError; Actual =KP * iError + sptr->Kd* (iError - sptr->LastError); sptr->LastError = iError; return Actual; }
时间: 2024-01-16 16:05:28 浏览: 58
增量式PID控制算法C51程序
这是一个实现位置式PID控制器的函数,它的输入参数包括PID结构体指针、设定值(Setpoint)和实际值(Turepiont)。函数内部通过计算误差(iError)和动态P(KP)来得到控制量(Actual),其中动态P是根据误差计算得到的,而不是固定的Kp参数。函数还更新了PID结构体中的LastError成员变量,以便下一次调用时使用。
阅读全文