基于c8t6的平衡小车(CubeMX+MDK)(3)PID电机控制

编码器

增量式编码器

C1和C2引脚产生A相B相方波,方波的相位差(当C1为上升沿时候,C2的电平状态)指示了旋转方向(车轮正反转),对脉冲计数得出车轮速度

  • 使用TIM2和TIM3配置为encode Mode,连接电机编码器的C1C2方波输出引脚
  • 使用TIM4的CH1CH2

PID算法

PID(proportion integration differentiation)指比例积分微分控制闭环控制算法

  • target
  • actual
  • error
  • out
    error = target - actual
    out =Kp * F(error)+ Ki * G(error) + Kd * H(error)
    就是P比例,I积分,D微分

比例系数Kp

errorKp 为补偿值P, u+actual=New_actual,得出New_error,New_errorKp=New_P,依次补偿。
可以看到,Kp越大,系统相应越快,越快接近target,但是会导致超调,甚至在target附近震荡剧烈。
一些情况下,单纯的比例控制会导致稳态误差:系统的自发偏移值等于补偿值,导致系统始终保持当前误差不变

积分系数Ki

用于消除稳态误差,因为积分项的存在使得out逐渐增大,不会始终与偏移值相等
Ki越大,积分项权重越大,表示稳态误差消失的快,但是系统的滞后性也会增大

微分系数Kd

微分项用来阻止误差剧烈变化,本身不改变误差变化,但是可以预测未来误差大小,增加系统阻尼。
注意:Kd变大会使得系统一卡一卡的

!!!然后,上价值!!!
image

连续性PID公式离散化得到位置式PID增量式PID
还有其他PID:积分分离式PID、变速积分PID、不完全微分PID、微分先行PID、死区控制PID等

位置式PID

根据新的error 给出新的out
设置采样时间为T
I积分项近似:T和总error的积
D微分项近似:error的差与T的商
位置式PID的优点是静态误差小,缺点是计算量很大,累计误差较大,如果系统故障,容易出现积分饱和的问题,使系统失控.
位置式PID适用于被控对象没有积分功能的情况
image

增量式PID

根据新的error,给出∆out
优点是当系统出现故障时,影响较小,因为输出量只和过去的三次误差有关,计算量也相对较小,但缺点是有静态误差,增量式PID适用被控对象有积分功能的情况
image

posted @ 2025-09-20 17:12  loong2525  阅读(29)  评论(0)    收藏  举报