两轮自平衡智能车系统设计

时间:2016-10-15来源:网络

摘要:针对智能汽车竞赛中的电磁组参赛要求,提出了两轮自平衡智能车系统的设计方案。主控芯片采用飞思卡尔公司的MC9S12XS128,选用加速度传感器检测车模的倾角,陀螺仪检测车模的角加速度;通过控制两个电机的加减速实现车模的自平衡控制。阐述了卡尔曼滤波法在陀螺仪和加速度传感器信号融合方面的应用,提出了针对闭环速度控制的PI算法。实验表明:该处理方法实现简单,能够准确、快速地实现车模的自平衡控制。
关键词:自平衡;智能车;卡尔曼滤波;PI算法

引言
两轮自平衡智能车控制技术在诸如航空、航海、安保等许多领域有着广泛的应用,各种类型的倾角传感器和数据处理方法应运而生。随着现代科技的发展,对于自平衡的响应速度和精确度提出了更高的要求,以此为背景,第七届全国大学生智能车竞赛电磁组参赛要求设计的智能车为两轮直立行走的自平衡循迹智能车。
针对该问题,本文选用MMA7260加速度传感器和NEC-03陀螺仪共同检测车模的角度信息,通过卡尔曼滤波器得到车模准确的实时角度信息,以在主控芯片MC9S12XS128中实现的PI控制算法和两个直流电机为智能车的控制核心,实现了两轮智能车的自平衡控制。该系统的优点是适应性强、响应迅速并有很强的抗干扰能力。

1 设计原理
控制直立车模平衡的直观经验来自于人们日常生活经验。一般人通过简单练习就可以让一个直木棒在手指尖上保持直立。这需要两个条件:一个是托着木棒的手掌可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角度和角速度)。通过手掌移动抵消木棒的倾斜角度和趋势,从而保持木棒的直立。这两个条件缺一不可,实际上就是控制中的负反馈机制。
车模的平衡控制也是通过负反馈来实现的,与上面保持木棒直立比较相对简单。因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了,如图1所示。

f.JPG


由图1可知,为了保持车模的直立自平衡状态,需要满足以下两个条件:
①能够准确测量车模的倾角和角加速度的大小,以得到车模的状态和趋势;
②可以控制车轮的速度和加速度,使车模保持直立状态。

2 自平衡智能车系统结构
自平衡智能车系统主要包括主控模块、角度信息采集模块、电机驱动模块和电源模块等,自平衡智能车系统结构框图如图2所示。

a.JPG


主控模块选用Freescale公司16位主控芯片Mc9S12XS128具有高精度高采样频率的内部A/D转换器,同时具有内部定时器模块和输入捕捉功能,能够很好地实现对车模电机的测速;对车模角度信息的处理,主控芯片的时钟频率最高可达80 MHz,可以迅速响应车模角度的变化,控制车模的自平衡。

3 自平衡智能车硬件设计
控制车模自平衡所需的位置信息(即角度和角速度信息),可以通过加速度传感器和陀螺仪获得;由于主控模块I/O口驱动能力有限,智能车需要使用全桥驱动来驱动电机;为了实现对车速精准的闭环控制,需要测速模块。
3.1 加速度传感器
加速度传感器可以测量由地球引力作用或者物体运动所产生的加速度。自平衡智能车系统所采用的是Freescale系列的加速度传感器MMA7260。该系列的传感器采用了半导体表面微机械加工和集成电路技术,体积小、重量轻。MMA7260是一款三轴低g半导体加速度计,可以同时输出3个方向上的加速度模拟信号,同时电路实现简单,角度输出精度高。
3.2 陀螺仪
自平衡智能车系统的角速度传感器采用的是陀螺仪,陀螺仪可以用来测量物体的旋转角速度。根据精度需要选用了村田公司出品的ENC-03系列的加速度传感器。它利用了旋转坐标系中的物体会受到科里奥利力的原理,在器件中利用压电陶瓷做成振动单元。当旋转器件时会改变振动频率从而反映出物体旋转的角速度。
3.3 电机驱动
自平衡智能车系统选用了电机驱动芯片BTS7960作为电机驱动。该芯片在工作时,阻抗典型值为16 mΩ(IOUT=9 A,Ti=25℃),可提供的最大驱动电流为43 A。当芯片过热时可自动关闭或锁定;在过电流的情况下,开关模式可限制电流,可降低功耗;欠压时会自动关闭,过压时会锁定。驱动电路图如图3所示。

b.JPG


3.4 测速模块
本系统采用固定在电机输出轴上的光码盘以及相互配合的光电对管器件实现对车轮的测速,如图4所示。

c.JPG


由于智能车所采用的主控芯片MC9S12XS128只有一个脉冲累加器端口,故需要采用数据选择器控制其在同一时间只测量一个电机的速度而在下一时刻测量另一轮子的速度。同时,程序根据选通信号和测得的速度分别计算两轮的速度,以便给出精准的控制信号,使车模保持良好的直立状态,以及完成加减速和转向。

4 车模信息采集与处理
4.1 位置信息的处理
自平衡智能车位置信息主要是通过加速度传感器和陀螺仪获得的。加速度传感器MMA7260是一款三轴低g半导体加速度计,可以同时输出3个方向上的加速度模拟信号。通过软硬件设置可以使得MMA7260各轴信号最大输出灵敏度为800 mV/g,这个信号无需再进行放大,可以直接送到单片机进行A/D转换。
实际应用中,只需要测量其中一个方向上的加速度值,就可以计算出车模倾角,比如使用Z轴方向上的加速度信号。车模直立时,固定加速度器在Z轴水平方向,此时输出信号为零偏电压信号。当车模发生倾斜时,重力加速度g便会在Z轴方向形成加速度分量,从而引起该轴输出电压变化。变化的规律为:
△u=k·g·sinθ≈k·g·θ (1)
式中,g为重力加速度,θ为车模倾角,k为加速度传感器灵敏度系数。当倾角θ比较小的时候,输出电压的变化可以近似与倾角成正比。
理论上只需要加速度传感器就可以获得车模的倾角,再对此信号进行微分便可以获得倾角速度。但在实际车模运行过程中,由于车模本身的摆动所产生的加速度会产生很大的干扰信号,它叠加在上述测量信号上,使得输出信号无法准确反映车模的倾角。
下面分析一下运动所产生的干扰信号。加速度传感器安装在车模上,距离车轴高度为h。车模转动具有角加速度α,运动加速度a。那么,在加速度传感器Z轴上出现由于车模运动引起的加速度为h·α+a,如图5所示。为了减小运动引起的干扰,加速度传感器安装的高度越低越好,但是无法彻底消除车模运动的影响。

g.JPG


车模运动产生的加速度使得输出电压在实际倾角电压附近波动,这些波动噪声可以通过数据平滑滤波将其滤除。但是,平滑滤波一方面会使得信号无法实时反映车模倾角变化,从而减缓对于车模车轮的控制,另一方面也会将车模角速度变化信息滤掉。上述两方面的滤波效果使得车模无法保持平衡,因此,对于车模直立控制所需要的倾角信息需要通过另外一种器件获得,那就是角速度传感器——陀螺仪。
由于陀螺仪输出的是车模的角速度,将角速度信号进行积分便可以得到车模的倾角,且不会受到车体运动的影响,因此,该信号中噪声很小。此外,车模的角度又是通过对角速度积分得到,可进一步平滑信号,从而使得角度信号更加稳定。因此,车模控制所需要的角度和角速度可以使用陀螺仪所得到的信号。由于这个角度信号是通过积分获得的,如果角速度信号存在微小的偏差和漂移,经过积分运算之后,变化会形成积累误差。这个误差会随着时间延长逐步增加,最终导致电路饱和,无法形成正确的角度信号。
为了消除这个累积误差,所采用的方法是通过上面的加速度传感器获得的角度信息对此进行校正,通过对比积分所得到的角度与重力加速度所得到的角度,使用它们之间的偏差来改变陀螺仪的输出,从而使积分的角度逐步跟踪到加速度传感器所得到的角度。
利用加速度计所获得的角度信息θg与陀螺仪积分后的角度θ进行比较,将比较的误差信号经过1/Tg比例放大,再与陀螺仪输出的角速度信号叠加之后进行积分。对于加速度计给定的角度θg,经过比例、积分环节之后产生的角度θ必然最终等于θg。
为了避免输出角度θ跟踪时间过长,可以采取以下两个方面的措施:
①仔细调整陀螺仪的放大电路,使得它的零点偏置尽量接近于设定值,并且稳定。
②在控制电路和程序运行的开始,尽量保持车模处于直立状态,这样一开始就能使输出角度θ与θg相等,此后,加速度计的输出只是消除积分的偏移,输出角度不会出现太大的偏差。

j.JPG


卡尔曼滤波模型如图6所示,以陀螺仪测量的角速度作为预测值的控制量,加速度传感器测量的角度作为观测值。公式如下,Z(k)为k时刻加速度积分得到的角度,U(k)为k时刻的角速度,X(k|k)为k时刻经卡尔曼滤波后的角度,X(k|k-1)为系统利用k-1时刻的状态得到的k时刻的预测值,Kg(k)为k时刻的卡尔曼增益。
i.JPG
由于自平衡智能车系统为单输入单输出系统,因此令A、B、H、K不为矩阵,且值都为1。自平衡智能车系统卡尔曼滤波参数有3个,P是卡尔曼系统参数A的协方差,P的初值P(0)的设定需要根据系统效果来调试确定,初值一般在1附近。Q是预测值Z(k)的协方差,R是测量值U(k)的协方差。对Q和R的设定原则是,Q/(Q+R)的值就是卡尔曼增益的收敛值。例如其值为0.2,那么卡尔曼滤波后的增益会向0.2收敛,即如果预测角度值是5°,角度测量值是10°,那么最优化角度为:5+0.2*(10-5)=6°。因此,卡尔曼增益越小,说明预测值越可靠,最优化角度越接近预测值;相反,卡尔曼增益越大,说明测量值越可靠,最优化角度越接近测量值。P/(Q+R)反映收敛的快慢程度,该值设定越小,收敛越快,该值越大,收敛越慢。由于卡尔曼增益收敛总的来说是很快的,因此该值的设置影响较小。

d.JPG


卡尔曼滤波后的波形图7所示,包括加速度计输出的信号、陀螺仪输出的信号和卡尔曼滤波后的波形。实验表明,卡尔曼滤波可以很好地还原信号,并可以克服加速度计及陀螺仪的温漂,能够准确地提供车模的角度信息。
4.2 速度信息的处理
本系统的处理方法是根据光电码盘的脉冲信息,通过单片机的输入捕捉功能实现测速。速度闭环控制方面,采用的则是增量型的PID控制算法。所需公式为:
k.JPG
Kp——起比例调节作用,系统一旦出现了偏差,比例调节立即产生调节作用以减少偏差。
Ki——使系统消除稳态误差,提高误差度,积分调节的引入会使系统稳定性下降,动态响应变慢。
Kd——反映了系统偏差信号的变化速率,可以预见偏差的变化趋势,能提前对偏差进行控制。
针对车模的电机,结合实际的调试经验,本车模的电机调速采用的方案是PI控制,将对目标速度和当前速度再次进行PI运算,得到电机控制信息并交给外部设备控制模块处理,以达到控制速度的目的。
4.3 软件设计
系统中主要利用主控芯片的A/D转换模块读取陀螺仪和加速度传感器的值,从而通过卡尔曼滤波得到车模的角度信息。由于控制目标是保持车模直立,因此,以直立时车模的角度为控制目标,以所测量的车模角度信息为当前反馈,通过PID控制算法,计算出需要给出的电机速度,通过电机闭环控制使车模产生相应的运动状态以保持车模的直立平衡状态。车模的系统流程图如图8所示。

e.JPG



结语
实验结果表明,本系统方法简单实用,可以很好地实现预期的功能,即实现小车的动态自平衡,采用该自平衡方法的磁导航智能车在第七届“飞思卡尔”杯全国大学生智能车比赛中取得了非常优异的成绩。该方法卡尔曼滤波的应用上,公式(2)~(6)可以进一步简化,同时也可以通过优化各个参数更好地实现车模自平衡,进一步提高车模的稳定性。

关键词: 自平衡 智能车 卡尔曼滤波

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版