电机PID控制和闭环控制

电机PID控制和闭环控制

1 PID控制

1.1 位置式PID

理论公式:

PID中,P用于提高响应速度,I用于减小静差、D用于抑制震荡。一般在进行PID参数整定时,首先设I和D的值为0,然后把P值从0逐渐增大,直到系统震荡。当P值足够大且I值为0时没有静差,P值较小且I值为0时会出现静差。位置控制的调节经验为:先只调节P,增大P系数至系统震荡后加入微分控制以增大阻尼,消除震荡之后再根据系统对响应和静差等的具体要求,调节P和I参数。

控制原理:

C代码实现:

int Position_PID(int Position,int Target)
{
          
   
    static float Bias,Pwm,Integral_bias,Last_Bias;
    Bias=Position-Target;                             //计算偏差
    Integral_bias+=Bias;                              //求出偏差的积分
    Pwm=Position_Kp*Bias+Position_Ki*Integral_bias+Position_Kd*(Bias-Last_Bias);
    Last_Bias=Bias;                                   //保存上一次偏差
    return Pwm;
}

通过输入测量值和目标值,返回为电机控制的PWM:

第一行是相关内部变量的定义 第二行求出速度偏差 第三行通过累加求偏差的积分 第四行使用位置PID控制器求出电机PWM 第五行保存上一次偏差,用于下次。 然后在中断服务函数里调用该函数实现我们控制的目标。

1.2 增量式速度闭环PID

理论公式:

控制原理:

C代码实现:

int Velocity_PI(int velocity,int Target)
{
          
   
    static float Bias,Pwm,Last_Bias,
    Bias=velocity-Target;
    Pwm+=Velocity_Kp*(Bias-Last_Bias)+Velocity_Ki*Bias;
    Last_Bias=Bias;
    return Pwm;
}

通过输入测量值和目标值,返回为电机控制的PWM:

第一行是相关变量的定义; 第二行是求出速度偏差; 第三行是使用增量PI控制器求出电机PWM; 第四行保存上一次误差 然后在中断服务函数里调用该函数实现我们控制的目标。# 电机PID控制和闭环控制
经验分享 程序员 微信小程序 职场和发展