1 引言
高效简便的软件程序是电磁平衡智能车沿赛道快速稳定运行的基础和保障。电磁平衡智能车系统软件部分主要包括角度滤波融合处理算法、小车的平衡控制PD算法、小车的速度控制PID算法、小车的方向控制PD算法。结合理论分析和实际测试,选择合理参数,使电磁平衡智能车稳定快速地沿着指定赛道行驶。
2 电磁平衡智能车系统软件设计
电磁平衡智能车系统软件的主要功能是首先实现小车的平衡控制,然后实现小车的速度控制,最后实现小车的方向控制。小车的平衡控制是加速度计MMA7361测得的角度经过滑动滤波处理得到的角度和数字陀螺仪L3G4200D测得的角速度经过积分运算得到的角度分别进行一个比例因子运算,求和得到一个平滑角度,所得的平滑角度再与陀螺仪L3G4200D测得的角速度经过PD算法处理实现小车加速运行,从而运用倒立摆原理实现小车平衡控制。小车的速度控制是控制器、电机驱动、电机、编码器、拨码开关构成了一个闭环控制系统。通过给定脉冲数,合理调节P、I、D参数,使给定时间内闭环控制系统的输出脉冲数与给定的脉冲数一致。通过单位时间左右编码器计数的脉冲个数求和平均值与小车速度之间关系来测得小车实时速度。小车的方向控制是左右传感器测量值与它们分别对应的零点值所得的差值分别进行求和与求差运算,求差值与求和值进行相除,所得的差和比与Y轴方向陀螺仪所得的角速度分别进行P、D运算,所得PWM信号与左右电机进行差速控制,控制小车转向。电磁平衡智能车系统的软件算法包括:角度滤波融合算法、平衡控制PD算法、速度控制PID算法、方向控制PD算法。电磁平衡智能车系统整体控制软件流程图如图1所示:
2.1 角度滤波融合处理算法
车模倾角和倾角速度的测量是控制车模平衡的关键。加速度计MMA7361测量倾角是利用了其Z轴上的重力加速度大小间接测得车体倾角,对倾角进行微分可以获得角速度。虽然仅需要加速度计就可以获得车模的倾角和角速度,但是在车模运动过程中车体本身也会产生加速度,这个加速度会对加速度计测量倾角造成很严重的干扰,使得加速度计测得的倾角数据根本不能直接使用,从而无法获得车模的角速度。所以测量车模倾角和倾角速度不能仅仅使用加速度计MMA7361进行测量。
数字陀螺仪L3G4200D是用来测量车模倾角速度,可以利用程序积分得到车模倾角。从陀螺仪角速度获得角度信息,需要经过积分运算,如果角速度信号存在微小的偏差和漂移,经过积分运算之后,变化形成积累误差,这个误差会随着时间延长逐步增加,最终导致电路饱和,无法形成正确的角度信号。所以测量车模倾角和倾角速度不能仅仅使用陀螺仪L3G4200D进行测量。
为了避免上述的缺陷,采用加速度计MMA7361和数字陀螺仪L3G4200D共同作用,分别测量车模的倾角和倾角速度。然后对测得的车模倾角和倾角速度进行角度融合算法处理获得平滑角度。
角度滤波融合是电磁平衡智能车软件控制的基础,后面所有算法只有在角度滤波融合得到较为准确平滑的角度值时才能正常的运行。
角度滤波融合是为了得到一个较为平滑准确的车体倾角θ3。角度滤波融合处理算法思想:加速度计测得的角度通过取平均值得到角度θ1,数字陀螺仪测得的角速度经过积分运算得到一个角度θ2,角度θ1与角度θ2分别乘以一个比例因子后相加得到一个角度θ3。角度滤波融合处理算法具体流程图如图2所示:
2.2 直立控制PD算法
电磁平衡智能车平衡控制是一个较为快速的控制过程,平衡控制算法使用PD控制算法,实际测试使用PD算法能达到很好的效果,能使车模很稳定的直立。平衡控制PD算法中P控制即直接使用角度滤波融合所得到的角度值进行比例放大,D控制则是直接使用陀螺仪所测得的角速度值经过比例放大,然后将角度滤波融合所得的角度值P控制和陀螺仪所测得的角速度值D控制综合控制电机,从而小车加速运行,运用倒立摆的原理实现小车的平衡控制。平衡控制算法流程图如图3所示:
对直立控制算法P、D参数进行调节时,先把两参数都置零,然后逐渐增大比例参数P,直至车模由逐步直立到车模刚开始震荡,记下此时的比例参数P,接着调节此时的微分参数D,会看到车模震荡的现象会消失,在此基础上可以再适当的调节两参数,所调参数P=150、D=5,车模能够很好的直立。
2.3 速度控制PID算法
电磁平衡智能车速度控制算法是使用增量式PID控制算法。控制器、电机驱动、电机、编码器、拨码开关构成了一个闭环控制系统,闭环控制系统框图如图4所示:
小车速度通过左右编码器所计脉冲个数的平均值进行反馈,E6A2-CW3C型光电编码器每转一圈会输出500个脉冲,给定时间内,单片机脉冲累加器所计左编码器脉冲个数和内部计数器所计右编码器脉冲个数的求和平均值与给定脉冲个数构成偏差,输入给单片机控制器,单片机控制器经过PID控制算法,得到输出分别控制左右电机,电机控制左右编码器,整个系统形成一个闭环系统。通过调节合适的P、I、D参数,使在给定时间内左右编码器的计数脉冲个数求和平均值与给定的脉冲个数一致。
为使小车在赛道上稳定快速行驶,对速度控制采用增量式PID控制,增量式PID算法程序流程图如图5所示,电机PID控制的关键在于调整P、I、D三个系数,即参数整定。
对于电磁平衡智能车的速度PID整定先是把给定的期望速度置零,调节三个参数、基本顺序是先调P参数,由小到大增大P的值,直到车体出现抖动时为止,接着再增大积分常数I的值,会看到车在抖动但I参数过大会出现平衡车向一个方向加速运行的现象,接着增大D参数直到车体能够在期望速度为零的条件下静止在某一点。接着增大期望速度会发现车大概能按自己期望的车速运行,表明此时的参数基本合适,该车所调参数P=1.5、I=0.003、D=0.02。
2.4 方向控制算法
电磁平衡智能车的方向控制算法是采用的PD算法。方向控制PD算法的框图如图6所示:
系统先是对左右两电感的AD进行读取,然后减去电感本身存在的零点值,对相减后的零点值分别进行相加和相减,得到D_sub和D_add,再将D_sub和D_add进行差比和,得到D_sub/D_add,接着让D_sub/D_add乘以比例因子DIR_P,接着与陀螺仪Y轴方向的角速度输出值乘以微分因子D后进行相加,完成方向控制的PD运算。
对于电磁直立平衡车的转向参数P、D的整定时,要保证20KHZ电磁电源是打开的,并同时使磁导线处于车的电感头水平两端的正中间,把P、D两参数都置零,然后逐渐增大参数P的值,用手左右摇摆车体时会发现,要使车偏离中心线的力度越来越大,直到最后车体在中心线处抖动厉害,此时逐渐增大D值会发现抖动基本上停止,且车能沿着磁导线很好的前行,此时P=2250、D=-2.5参数基本上合适。
3 系统部分软件调试
3.1 直立的测试
加速度计所测得的角度与经过滑动滤波所测得的角度θ1,数字陀螺仪测得的角速度经过积分运算得到一个角度θ2,角度θ1与角度θ2分别乘以一个比例因子得到一个角度θ3,且角度θ1与融合后的角度θ3接近程度将决定着直立效果的好坏,融合的波形如图7所示。图7中蓝线表示角度θ3,红线表示角度θ1。
4 小结
本文介绍了基于电磁技术的直立智能车系统的软件设计,实现了直立小车直立平衡控制程序设计、速度控制程序设计、方向控制程序设计。通过选择合适的参数,小车最终能在复杂的赛道上快速稳定的直立行驶。
参考文献
[1]竞赛秘书处.电磁组直立行车参考设计方案[J]. 第七届全国大学生智能车竞赛,2011.
[2]梁业宗,李波,赵磊.基于路径识别算法的智能车控制系统的设计[J].自动化技术与应用,2009,(1),121-123.
[3]唐建文,刘建群.PD控制在智能小车方向控制中的应用[J].2008,(12),40-45.
[4]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2012,6.
作者简介
叶梦君 (1983-) 女 讲师、工学硕士 现为湖北师范大学机电与控制工程学院教师,主要研究方向为智能控制、检测技术
共0条 [查看全部] 网友评论