APP下载

两轮自平衡小车的设计

2012-03-27李荣伟李鑫孙传开张冬林江振峰

常熟理工学院学报 2012年10期
关键词:车模陀螺仪卡尔曼滤波

李荣伟,李鑫,孙传开,张冬林,江振峰

(常熟理工学院电气与自动化工程学院,江苏常熟 215500)

两轮自平衡小车的设计

李荣伟,李鑫,孙传开,张冬林,江振峰

(常熟理工学院电气与自动化工程学院,江苏常熟 215500)

设计了以陀螺仪ENC-03以及MEMS加速度计MMA7260为传感器的姿态感知系统,选用16位单片机MC9S12XS128为控制核心处理器,完成对传感器信号的采集处理、车身控制以及人机交互的设计,实现小车自主控制平衡状态、运行速度以及转向角度大小等功能.实验结果表明该系统的性能满足设计要求.

两轮自平衡;姿态检测;卡尔曼滤波;数据融合;PID控制器

近年来,随着电子技术的发展与进步,移动机器人的研究已成为目前科学研究最活跃的领域之一,移动机器人经常会遇到在较为狭窄复杂的环境中如何灵活快捷地执行任务的问题.两轮自平衡机器人的概念就是在此背景下提出来的,这种机器人区别于其他移动机器人最显著的特点是:采用了两轮共轴、各自独立驱动的工作方式(又称差分式驱动),车身的重心位于车轮轴的上方,通过轮子的前后移动保持车身的平衡、行驶[1].因为具有体积小、运动灵活、零转弯半径等特点,所以在军用和民用领域有着广泛的应用前景,更重要的是系统具有多变量、非线性、强耦合、不稳定性的特性,使其成为很好地验证控制理论及方法的平台,具有很高的研究价值.

图1 系统设计总体结构框图

1 系统整体设计

本文设计的自平衡车采用姿态传感器(加速度计和陀螺仪)监测车身所处的俯仰状态和状态变化率,通过高速微控制器(MC9S12XS128)完成数据融合处理,得到平滑而稳定车体姿态信息,然后驱动电动机产生前进或后退的加速度来控制车体保持平衡,同时系统还要根据速度的反馈量来完成对车体速度和方向的控制,微控制器还需构建相关输入输出模块和人机交互设备.系统设计总体结构框图如图1所示.

已知自平衡车高度为l,质量为m,将其抽象为一级倒立摆,并将倒立摆置于可水平移动的小车上.假设其受外力干扰引起的车体角加速度为x(t),沿垂直于车体方向进行受力分析(见图2),可以得到自平衡车倾角与车轮移动加速度为a(t)以及外力干扰带来的加速度x(t)之间的运动方程[2-3].

小车运动微分方程表达式为

图2 外力干扰条件下的小车受力分析

当倾角θ很小的时候,可以进行线性化处理:cos(θ)≈1、sin(θ)≈θ,运动微分方程可简化为

自平衡车静止时a()

t=0,其运动微分方程为

由小车静止时的运动方程可得到系统的传递函数:

加入比例微分反馈后的系统传递函数为

图3 加入比例微分环节后的控制系统结构图

2 硬件模块设计

系统硬件主要由以下几个模块组成:MC9S12XS128单片机最小系统、电源模块、姿态检测模块、电机驱动电路和速度检测电路.

本设计采用Freescale公司16位单片机MC9S12XS128为控制器,工作电压为5 V.其丰富的内置模块资源可以为姿态检测系统提供12位精度的A/D转换,为速度检测模块提供脉冲计数,同时拥有独立的PWM输出模块可以控制电机输出.

姿态检测模块能够精确并稳定地检测出当前的车身姿态,这是实现有效控制的关键,本设计选用惯性传感器MEMS陀螺仪ENC-03和加速度计MMA7260作为姿态检测传感器.加速度MMA7260传感器是一种低g值的传感器,根据物件运动改变各轴的信号输出.各轴的信号在不运动或不受重力作用的状态下(0 g),其输出为1.65 V.MMA7260的灵敏度可通过gs_1和gs_2的引脚电平来设定.分别为800 mv/g、600 mv/g、300 mv/g、200 mv/g,为了很好地检测车体微小变化,本电路通过gs_1和gs_2脚同时接地,将其灵敏度设定为800 mv/g.本系统采用的陀螺仪为村田公司生产的ENC-03[4],其输出为0.67 mv/deg/sec.采用LM358构成负反馈同相放大电路,增益为R3 R4+1,即放大10倍左右.由于陀螺仪静态输出会随温度等因素变化,影响系统倾角检测,为此在放大电路中利用LM358设计了零点偏置电压校正电路,并将陀螺仪静态输出电压调整为模拟电压的一半(此处为1.65 V).姿态检测模块电路原理如图4和图5所示.

图4 MMA7260三轴加速度计电路原理图

图5 ENC-03放大电路设计原理图

电源管理模块是整个硬件电路稳定可靠运行的基础,整个系统需要3种电源:为驱动电机供电的7.2 V电源,为单片机及相关外设供电的+5 V数字电源,为姿态传感器和A/D基准电压供电的3.3 V模拟电源.整个系统电源来源为7.2 V镍氢电池,5 V电源由LM2940提供.LM2940是一种线性低压差三端稳压器件,其输出纹波较小,适合单片机供电.3.3 V电源采用AMS1117转换而得.电机驱动采用全桥式驱动电路实现电机的正反转,系统采用两片专用半桥驱动芯片BTS7960构成全桥式驱动电路.速度检测模块采用欧姆龙公司500线增量式旋转编码器,通过单片机的PACNT模块对输入脉冲进行计数,从而为处理器提供速度反馈量.辅助调试模块由按键、RS-232串口通信模块、电脑等组成.

3 系统软件设计

图6 软件流程设计

3.1 软件设计框架

系统软件设计框架主要包括:资源模块初始化、姿态信息采集、数据融合、速度检测、直流电机PID控制.系统软件流程如图6所示.

3.2 资源模块初始化

单片机系统初始化主要完成以下工作:通过锁相环模块(PLL),设定单片机的工作频率为64 MHz;将模数转换模块(ATD)设置为12位精度、4通道连续采样、采样时间4 MHz、非中断触发;串行通信模块(SCI)设置为波特率9600、8个数据位、1个停止位、允许收发;ECT中断使能8路输入捕捉(IC)/输出比较(OC)通道、下降沿捕捉、使能捕捉中断;定时器(PIT)产生10 ms的定时中断;PWM模块使用0通道和1通道级联、2通道和3通道级联产生两路10 kHz、左对齐的PWM等.

3.3 车模姿态信息检测

3.3.1 卡尔曼滤波器

卡尔曼滤波的程序实现是先利用angle+=(gyro m-q bias)dt计算出陀螺仪积分出的角度,其中q bias是陀螺仪偏差.此时利用陀螺仪积分求出的angle作为系统的估计值,得到系统的观测方程;而加速度计检测的角度angle m当作于系统中的测量值,得到系统状态方程.在程序中Q angle和Q gyro分别表示系统对加速度计及陀螺仪的信任度.根据Pdot=AP+PA′+Q angle计算出先验估计协方差的微分,用于将当前估计值进行线性化处理.其中A为雅克比矩阵[5-7].本系统中雅克比矩阵为

随后计算系统预测角度的协方差矩阵P.计算估计值angle m与预测值angle间的误差angle err.计算卡尔曼增益K_0,K_1,K_0用于最优估计值,K_1用于计算最优估计值的偏差并更新协方差矩阵P.通过卡尔曼增益计算出最优估计值angle及预测值偏差q bias,此时得到最优角度值angle及角速度值.

3.3.2 姿态检测的参数整定

姿态调试采用串口波形显示的方式进行.XS128通过串口通讯向PC机发送滤波前与滤波后的姿态倾角数据,通过上位机波形显示软件(数据被放大了十倍),将离散的数据点描绘为动态波形,参数的不同可以通过前后对比直观地看出.图7和图8截取了两张相对良好且不同运动状态的调试效果图.

图7 车体平滑振动图

图8 车体剧烈振荡图

由以上两幅图可以直观地看出:加速度计传感器计算出的角度一定情况下可以反应出车体的倾角,但是毛刺太多、震荡太大不适合直接利用.卡尔曼滤波器不仅抑制了陀螺仪的零点漂移问题,还使计算的最优角度平滑、稳定,并能反映出车体的状态,满足设计需求.

3.4 直流电机PID控制

分析系统要求可知,保持小车直立和运动的动力都来自于小车的两个车轮,车轮由两个直流电机驱动.因此,从控制角度来看,可以将小车作为一个控制对象,控制输入量是两个车轮的驱动电压.整个控制系统可以分为三个子系统.

(1)小车平衡控制:以小车倾角为输入量,通过控制两个电机的正反转保持小车平衡.PID控制器的程序实现为:OUT Motor=Kp*Angle+Kd*Angle dot;式中OUT Motor为平衡控制输出量,Angle为卡尔曼滤波后的倾角偏差值,Angle dot为卡尔曼滤波后的角速度值,Kp和Kd分别为比例系数及微分系数.在次采用是试凑法来整定Kp和Kd的,并用满占空比的百分比进行描述.先设定Kd=0,根据上述小车的数学模型可知,Kp需要大于重力加速度所产生的效果才能使车模保持直立.将Kp从零逐渐增大到5%左右时,车模开始有直立的趋势.进一步加大Kp到11%左右,使得车模保持直立并开始来回摆动.说明此时车模比例参数已经可以克服重力的影响,然后逐步增加微分参数使车模摆动减小.适当微调Kp、Kd参数使车模可以保持稳定直立,车模保持上述情况的比例和微分参数有一个相当大的空间.由于受车模重心尺寸的影响,Kp、Kd的参数不唯一,此处Kp为12.4%,Kd为0.3%.实际处理时在车模动力传动系统中,各个环节都存在着静摩擦力,它会降低车模静态稳定性.所以程序中增加一个死区电压(满占空比的4%).

(2)小车速度控制:在保持平衡的基础上,通过调节小车倾角实现对速度的控制,实际上还是演变为对电机的控制实现小车的速度控制.本系统以编码器所测得脉冲数作为速度反馈环节,形成了速度的闭环控制.速度控制的函数参数为车速的偏差,返回值为倾角,通过平衡控制达到控制车速的目的.在实际速度控制中,采用了带死区的PID算法,防止调节过于频繁,导致系统振荡.设定系统平衡控制周期为10 ms,为减少干扰并且提高速度控制的力度,系统速度控制周期设定为50 ms.速度程序计算代码为:angle speed= Speed Kp*Speed error+Speed Ki*Speed diff;式中angle speed为速度控制输出量,Speed erro为速度脉冲的偏差,Speed Kp、Speed Ki为比例、积分项的系数.设定速度值为0,调整这些系数并观察车模在受到外力作用时能否迅速恢复直立静止状态.逐步增大比例参数会发现车模能在平衡点附近来回运动,然后增加微分参数使车模能够很快趋于静止,微调参数后使车模抵抗外部干扰冲击的能力逐步增强,此处取Speed Kp为满占空比的1.22%,Speed Ki为满占空比的0.23%.

(3)小车方向控制:通过控制两个电机间的电压不同实现转向.本系统是在速度控制周期内,对两个电机实现差速输出,则可在保持平衡的基础上实现转弯.系统调试时,由其自动采集道路中的电磁场信息(由通有100 mA交变电流的导线所产生),并对路径参数进行识别与路径优化后,完成前进、转弯等动作.

4 总结

图9 系统实物

本设计主要研究两轮自平衡小车的设计与实现.通过相应硬件与软件的设计,实现了两轮自平衡小车的动态平衡与运动控制.系统实物如图9所示.

系统硬件以飞思卡尔公司16位单片机MC9S12XS128为控制核心,采用压电陀螺仪ENC-03及MEMS加速度计MMA7260构成了惯性姿态检测系统,通过H桥电机驱动及旋转编码器实现了直流电机的闭环调速.本系统结合硬件构架设计了以卡尔曼滤波器为核心的数据融合算法.通过卡尔曼滤波器将陀螺仪与加速度计的输出融合为准确的倾角与角速度输出,为系统的控制提供了有力保障.本设计的控制策略采用PID控制算法.通过对小车的运动建模,构建了小车运动控制的PD控制算法,并对PID参数进行了整定.本设计最终实现了两轮自平衡小车的平衡控制及运动控制.小车在保持两轮平衡的基础上可以实现前进、后退、转弯等基本动作.

[1]He Kezhong,Sun Haihang,Guo Mtthe.Research of intelligent mobile robot key techniques[J].IEEE International Conference on IndusIrial Technology,1996(7):503-507.

[2]屠运武,徐俊艳,张培仁.自平衡控制系统的建模与仿真[J].系统仿真学报,2004(04).

[3]霍亮.两轮自平衡电动车的关键技术研究[D].哈尔滨:哈尔滨工程大学,2010.

[4]邹学锋,卢新艳.基于Allan方差的MEMS陀螺仪性能评价方法[J].微纳电子技术,2010,47(8):490-493.

[5]赵杰,王晓宇,秦勇,等.基于UKF的两轮自平衡机器人姿态最优估计研究[J].机器人,2006(11):605-609.

[6]王晓宇,闫继宏,臧希喆,等.两轮自平衡机器人多传感器数据融合方法研究[J].传感器技术学报,2007(3):668-672

[7]耿延睿,崔中兴.组合导航系统卡尔曼滤波衰减因子自适应估计算法研究[J].中国惯性技术学报,2001(04).

A Design of Two-Wheel Self-Balance Vehicle

LI Rong-wei,LI Xin,SUN Chuan-kai,ZHANG Dong-lin,JIANG Zhen-feng
(School of Electrical and Automation Engineering,Changshu Institute of Technology,Changshu 215500,China)

A two-wheel self-balancing electric vehicle is an important branch of moving robots,because of its dynamic system with multi-variables,nonlinear,strong coupling,time-varying,with parametric uncertainties, and other characteristics,and the complex research can make the experiment device of a control theory become an ideal platform.This paper summarizes the current situation of research on a two-wheel self-balancing robot. And gyroscope ENC-03,MMA7260 for attitude sensing sensors and MEMS accelerometer system are designed in the paper.By means of Freescale 16-bit single-chip Microcomputer Mc9s12xs128 for the control of core processor,the paper completes the acquisition of sensor signal processing,body control,as well as features such as human-computer interaction.Besides,the paper realizes the independent control balance of the car features such as size,speed and steering angle.Experimental results show that performance meets the design requirements of the system.

two-wheel self-balance;gesture detection;Kalman filter;data fusion;PID controller

TP242.6

A

1008-2794(2012)10-0070-06

2012-09-07

江苏省大学生实践创新训练计划项目“两轮自平衡机器小车的设计”(jx110152011)

李荣伟(1989—),男,江苏东海人,常熟理工学院电气与自动化工程学院测控技术与仪器专业2009级学生.

李鑫(1983—),男,安徽亳州人,实验师,硕士,研究方向:智能控制技术与现代检测技术,E-mail:lixin_yy@yahoo.com.cn.

猜你喜欢

车模陀螺仪卡尔曼滤波
基于EMD的MEMS陀螺仪随机漂移分析方法
潮玩车模精准吸引“Z世代”
我国著名陀螺仪专家——林士谔
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
车展,没有车模看什么
微机械陀螺仪概述和发展
MEMS三轴陀螺仪中不匹配干扰抑制方法
基于模糊卡尔曼滤波算法的动力电池SOC估计
基于扩展卡尔曼滤波的PMSM无位置传感器控制
基于自适应卡尔曼滤波的新船舶试航系统