PID控制电机,可是程序运行后电机转速实际值基本是一个定值,没有随时间趋近与转速设定值,请问是PID子程序的问题吗,还是其他问题?
这是我的PID子程序
unsigned int PID_Cal(unsigned int CurrentPoint)
{
SetPoint=Speed_Set;
Error = SetPoint - CurrentPoint; // 偏差
SumError += Error; // 积分
out=Proportion * Error // 比例项
+ Integral * SumError // 积分项
return out;
}
out相当于占空比TIM1->CCR1=out;
TIM1->CCR2=out;
TIM1->CCR3=out;
TIM_OCInitStructure.TIM_Pulse = out;
|