|
做了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周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|