|
电机为直流无刷有感电机。PID采用网友 tim4146 提供的函数,http://www.amobbs.com/forum.php? ... 3&highlight=PID
int Speed_PIDAdjust(PIDtypedef *PIDx,float nextpoint){
int iError,iincpid;
iError=PIDx->setpoint-nextpoint; //????
iincpid= ((PIDx->proportion)*(iError-(PIDx->last_error)))
+((PIDx->b)*(PIDx->integral)*iError)
+((PIDx->derivative)*(iError-2*(PIDx->last_error)+(PIDx->prev_error)));
PIDx->prev_error=PIDx->last_error; //????,??????
PIDx->last_error=iError;
iincpid+=PIDx->Uk_1;
PIDx->Uk_1=iincpid;
if (iincpid> PWM_Max)
iincpid= PWM_Max;
else if(iincpid< PWM_Min)
Speed_To_Current= PWM_Min;
return(iincpid) ;
}
PID调整周期为100MS。请大家帮看看问题出在那里 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|