目录
两轮自平衡式机器人的控制器设计
TMS320F28069 芯片特点
处理器引脚及功能
首先分析模型来确定控制原理
速度控制器
方向控制器
系统控制框架
智能平衡移动机器人PID控制
两轮自平衡式机器人的控制器设计
由于两轮自平衡式机器人的自不稳定性,控制起来可以类比于一级倒立摆系统,因而可以借鉴相关的控制方法,常见的方法有反馈线性化方法,除此之外还有非线性PID控制自适应控制与自抗扰控制. 本文考虑到使用 Matlab/Simulink 模型直接生成控制代码,为减少控制的复杂程度与提高代码的效率,采用较为简单的双闭环PID控制思想来具体实现平衡模型到能够成功运行的嵌入式代码的实验。首先分析系统的平衡控制,整个系统通过陀螺仪加速度计传感器的数据计算到角度,根据编码器信号计算出速度信息,角度和速度作为系统输入量给到控制芯片计算出电机的控制量,最后以PWM信号的方式输出给驱动芯片,驱动执行部件——有刷电机进行运动。基础平衡计算由角度偏差值计算得到,但平衡量不足以维持平衡,加入速度控制量与转向控制量,三者线性叠加得到最终的电机PWM控制量进行输出。
TMS320F28069 芯片特点
处理器引脚及功能
TMS320F28069分为80引脚和100引脚两种,平衡移动机器人控制板采用100引脚形式,由于引脚复用,所有外设不可同时使用,引脚及功能框图见配套资料。
首先分析模型来确定控制原理
简化机械模型如右图所示。 假设整体质量为 M,中心距离车轴高度约为 L,相对垂直面倾斜角度为θ,运动加速度为 a(t),同时车身有个角加速度 F(t),可以分析其受力方程如式所示。
Ld^2θ(t)/dt^2=gsinθ(t)−a(t)cosθ(t)+L∗F(t) (1)
在接近平衡的时候,角度θ可以认为很小,因此可以将𝑠𝑖𝑛 𝜃(𝑡)和 𝑐𝑜𝑠 𝜃(𝑡)简化为式(4.2)。 Ld^2θ(t)/dt^2=g∗θ(t)−a(t)+L∗F(t) (2)
当平台趋于静止平衡的时候,加速度应该为 0,此时:
Ld^2θ(t)/dt^2=g∗sinθ(t)+L∗F(t) (3)
对应可以求出系统传递函数:
H(s)=θ(s)/F(s)=1/s^2−g/L (4)
由上面的公式可以知道该系统一共有两个极点,分别为±√g/L,但是根据奈奎斯特判据,其中一个极点位于s平面的右半面会引起系统的不稳定性,为了消除这种情况,可以采用加入反馈环节的方法,能够有效避免闭环过程中的参数波动所产生的扰乱系统控制效果的影响,同时能够减小系统时间常数和非线性的影响。反馈控制器可以是PI,可以是PD,也可以是PID,这里考虑到角度控制环节中,由于角度信息由陀螺仪加速度计采集,这一类惯性测量仪器容易有信号噪声和零点漂移,为了防止这些误差被积分环节进一步扩大,因而决定引入比例和微分反馈。此时系统如左下图所示。
速度控制器
在保持平衡的前提下做速度控制是一件较为复杂的事,因为改变速度的同时不能影响基本的平衡控制,故不能将速度的控制效果直接加到电机速度的改变中去;因此,为了简化控制量与控制结果之间的关系,我们将速度控制看作是与角度相关的平衡控制的外环控制来看,即将直立控制的目标值看作是速度控制的结果 分析可以得到如图所示的控制原理图。
这里的速度反馈主要是通过编码器信号通过 eQEP功能模块的读取实现,由图可以看出原先直立平衡中的输入量变成了速度控制的输出量,由此形成一个串级控制系统,由于前面平衡控制器采用的是PD控制,这里为了消除系统的静态误差,提高响应速度以及抗扰能力,选定速度控制器为PI控制器。
x=kp∗(θ−x_1)+kd∗θ^′
x_1=kp_1∗e(k)+ki_1∗∑e(k)
方向控制器
当不需要转向时,由于电机性能的差异,导致车子在行进过程中会偏离设定的轨迹,所以需要加入转向环的控制。利用陀螺仪Z轴角速度,来抑制小车绕Z轴的转动。这里,设置Z轴的角速度为0,利用简单的P控制或者PD控制,实现对转向环的控制要求。 当需要转向时,设置Z轴的角速度为某一正值或者负值就能实现车子的正向、反向转弯运动。转向实质就是依靠左右两个车轮的差速进行实现。
系统控制框架
控制流程主要分以下三部分。 (1)系统初始化 进行系统中断的配置,全局中断的开启,I/O口初始化,PWM初始化,QEP 初始化,IIC通信的初始化以及MPU6050的初始化,最后打开Timer0的中断及串口中断。 (2)串口中断程序 设计串口中断程序,可以实现诸如 APP 控制和参数下载、模式切换等拓展功能。 (3)主中断程序 主要中断流程设计如右图所示。
智能平衡移动机器人PID控制
可分解为直立控制、速度控制和方向控制,采用 PID叠加的方法控制驱动电 机转速,实现对小车直立、速度和方向的控制。其控制算法总框图如图所示。