27,374
社区成员
发帖
与我相关
我的任务
分享
float pwm;
_STRUCT_WHEEL_CAL *wheel = &robot.wheel.wheelRight;
if(wheel->updateFlag == TRUE){ // 新的采样更新
wheel->updateFlag = FALSE;
wheel->pid.error = speed - wheel->curSpeed;
wheel->pid.errSum += wheel->pid.error;
pwm = KP * wheel->pid.error + KI * wheel->pid.errSum + KD * (wheel->pid.error - wheel->pid.errLast);
if(pwm < 0) pwm = 0;
else if(pwm > 100) pwm = 100;
wheel->pid.errLast = wheel->pid.error;
WheelRightPWMCtrl(pwm, dir);
}