|
做了50块温控板有5块在PID计算部分出错,单片机型是STC12C5A60S2。为什么同样的程序有的计算会出错呢?
计算部分如下:
- /*--------------------------------PID------------------------------------*/
- float PIDCalc( PID *pp, float NextPoint )
- {
- float xdata dError,Error;
- Error = pp->SetPoint - NextPoint; // 偏差
- pp->SumError += Error; // 积分
- dError = pp->LastError - pp->PrevError; // 当前微分
- pp->PrevError = pp->LastError;
- pp->LastError = Error;
- return (pp->Proportion * Error//比例
- + pp->Integral * pp->SumError*0.01 //积分项
- + pp->Derivative * dError); // 微分项
- }
复制代码 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|