双轮平衡车建模及控制2

张开发
2026/4/6 20:09:50 15 分钟阅读

分享文章

双轮平衡车建模及控制2
二、双轮平衡车PID控制参考2.WHEELTEC B570 平衡小车开发手册1. 控制系统为了使小车闭环稳定最简单的想法是通过PID控制器控制小车倾角θ\thetaθ使其为0。但实际应用时会发现由于测量倾角θ\thetaθ和实际重心倾角有误差即当测量的θ0\theta0θ0时小车重心实际存在倾斜导致小车持续加速。故实际上多采用小车倾角和速度双环PID级联的方式倾角环多采用PD控制器因为角度控制需要保证响应速度且允许稳态误差速度环多采用PI控制器因为速度控制不能有稳态误差。另外需注意速度环反馈为正反馈倾角环反馈为负反馈。双环并联PID控制器控制框图如下其中θ∗{\theta}^*θ∗为倾角目标值恒为0θ{\theta}θ为倾角测量值dθd_\thetadθ​为倾角扰动Cθ{\rm C}_\thetaCθ​为倾角PD控制器Cθk1kds{\rm C}_\theta k_1k_dsCθ​k1​kd​sPθ{\rm P}_\thetaPθ​为PWM倾角模型v∗{v}^*v∗为速度目标值vvv为速度测量值dvd_vdv​为速度扰动Cv{\rm C}_vCv​为速度PI控制器Cvk2ki/s{\rm C}_v k_2k_i/sCv​k2​ki​/sPv{\rm P}_vPv​为PWM速度模型Tp{\rm T}_pTp​为给电机的PWM信号。2. 小车软硬件设计小车实物图如下主控ESP32姿态角测量MPU6050电机驱动tb6612电池为塔克R5配套12v锂电池。电机控制周期10msPWM频率5kHz精度8192分频姿态角通过6050自带的IMU读取读取周期5ms。3. 模式识别3.1 PWM-倾角模型上一篇文章得到了小车模型传递函数为Pθ(s)−QrMlr{MJ(2m2Ir2)(JMl2)}s2−MlgP_\theta(s)\frac{-\frac{QrMl}{r}}{\{MJ(2m\frac{2I}{r^2})(JMl^2)\}s^2-Mlg}Pθ​(s){MJ(2mr22I​)(JMl2)}s2−Mlg−rQrMl​​其中QM2m2Ir2QM2m\frac{2I}{r^2}QM2mr22I​MMM为车体质量lll为车体质心到车轮轴点的长度mmm为车轮质量rrr为车轮半径III为车轮转动惯量JJJ为车体转动惯量TTT为电机输出扭矩和θ\thetaθ为车体倾斜角度为了简化分析将小车模型改写为以下形式Pθ(s)−ks2−a2P_\theta(s)\frac{-k}{s^2-a^2}Pθ​(s)s2−a2−k​,其中k,ak,ak,a为正常数。实验装置如下所示略当给出恒定PWM信号即Tp2000{\rm T}_p2000Tp​2000时小车倾角如下图所示采样周期10ms。其中黑线为角度测量值红虚线为当k0.4,a3k0.4,a3k0.4,a3时PθP_\thetaPθ​的模型仿真响应。所以小车PWM-倾角模型为Pθ−0.4s2−9P_\theta\frac{-0.4}{s^2-9}Pθ​s2−9−0.4​。3.2 PWM-速度模型实验装置如下所示略当给出恒定PWM信号即Tp2000{\rm T}_p2000Tp​2000时电机平均转速如下图所示采样周期10ms。图中黑线为速度测量值红虚线为令v0.02Tpsv\frac{0.02{\rm T}_p}{s}vs0.02Tp​​即Pv0.02s{\rm P}_v\frac{0.02}{s}Pv​s0.02​时的模型仿真输出。可以看出在最初一段时间200ms内施加恒定PWM信号下速度可视为匀加速变化故可视Pv{\rm P}_vPv​为一纯比例积分环节。虽然车轮实际扭矩无法测量但车轮扭矩与车轮线速度理论关系为vrTIsv\frac{r{\rm T}}{Is}vIsrT​与识别出的Pv{\rm P}_vPv​结构一致。所以我们可以认为在电机初始阶段也就是大负载或堵转情况下PWM信号Tp{\rm T}_pTp​和车轮扭矩为比例关系。由于自平衡小车电机几乎都工作在大负载工况下所以在上一篇文章双轮平衡车建模及控制1中我们认为小车模型的输入即给电机的PWM信号代表扭矩。综上所述小车PWM-速度模型为Pv0.02s{\rm P}_v\frac{0.02}{s}Pv​s0.02​。4. 控制器调参CθCv{\rm C}_\theta {\rm C}_vCθ​Cv​调参首先参考《2.WHEELTEC B570 平衡小车开发手册》P46:使k2kikdk_2 k_ik_dk2​ki​kd​为0。从0逐渐增大k1k_1k1​直至小车出现低频抖动。保留此时的k1k_1k1​然后从0逐渐增大kdk_dkd​直至出现高频抖动保留此时的kdk_dkd​。将记录的k1kdk_1k_dk1​kd​乘以 0.6 作为Cθ{\rm C}_\thetaCθ​最终参数。保留上一步识别出的Cθ{\rm C}_\thetaCθ​参数从0逐渐增大k2k_2k2​kik_iki​值设定为k2k_2k2​的 1/200 观察小车是否能立在原地。 若小车出现抖动 而且用手推动小车会发生大幅回摆 说明k2k_2k2​、kik_iki​过高 应适量减少。后续通过仿真了解各参数对控制效果的影响当只保留角度环且k_d为0时系统灵敏度函数为S1/(1Ct*Pt)当k1逐渐增加时其冲击响应如下所示当k1从0增加时首先根据稳定判据当闭环系统特征方程解都在负半轴时系统稳定。针对本文情况当k1ba^2即k122.5时系统稳定。从上图可看出当k120时系统不稳定。那么当k122.5后系统就能稳定了吗这要参考系统输入灵敏度函数即UPt/(1CtPt)当k1逐渐增加时其冲击响应如下所示从上图可看出当k1较小时例如为420时响应产生的PWM信号较小当使用配减速器的有刷电机时较小的PWM信号产生的电机扭矩被减速器衰减过大无法在车轮产生所需扭矩。同理当k1过大时产生的PWM超过了100%对应值即8192也不会产生仿真中的扭矩。保证PWM响应处于适宜区间内是控制器设计的重要考虑因素。对于kd理论上能抑制超调增加响应速度但是kd也不是越大越好。kd逐渐增加时输入灵敏度的波特图如下所示可以看到当kd过大时对系统高频噪音有放大作用。5. 控制效果待后续

更多文章