airwill 发表于 2013-4-20 23:01 
加大 Proportion 试试, 先加得大一点, 别怕超调
应该不是成熟的问题。把PID子程序改成了增量式,占空比PWMOUT还是没有变化,由于Period = 749,所以PWMOUT的范围应该是0到749吧,请问是什么原因?
unsigned int IncPID_Cal(unsigned int CurrentPoint)
{
SetPoint=Speed_Set;
Error = SetPoint - CurrentPoint;
out=Proportion * Error
- Integral * LastError
+ Derivative * PrevError;
PrevError = LastError;
LastError = Error;
return out;
}
/*计算占空比*/
PWMOUT += IncPID_Cal(Actual_Speed);
if(PWMOUT>749)
{
PWMOUT=749;
}
else if(PWMOUT<0)
{
PWMOUT=0;
}
|