两轮平衡机器人控制系统设计与仿真研究
2019-06-06韩竺秦张丽娜
韩竺秦 张丽娜
摘 要:介绍了两轮自平衡机器人研究现状,建立系统动力学模型,并用MATLAB进行仿真验证控制方法的有效性。设计了自平衡机器人控制系统,包括软件和硬件系统。传感器采用陀螺仪以及加速度检测两轮自平衡机器人重力方向的倾斜角度和车轮的旋转加速度。经过STM32控制器处理后,采用LQR最优控制策略控制电机调整车轮状态使机器人保持平衡。通过实验样机验证了自平衡机器人控制策略的可行性。
关键词:STM32;两轮平衡机器人;LQR控制策略;动力学控制;传感器
DOI:10. 11907/rjdk. 181995
中图分类号:TP319文献标识码:A文章编号:1672-7800(2019)003-0086-05
0 引言
针对两轮机器人运动平衡的控制方法研究较多[1-5],如日本的Naoji Shiroma等[6]提出协作行为概念,应用多倒立摆机器人协作搬运物体,人与机器人协作实现物体搬运。机器人由底部的一台伺服电机驱动实现直线运动,平衡控制采用极點配置方法。
瑞士联邦工学院的Grasser等[7]制造了一个名为JOE的两轮机器人。这是一款采用DSP控制的机器人,以陀螺仪作为姿态检测传感器,通过测得的角速度进行积分而获得倾角。
台湾中兴大学Shui-Chun等[8-9]设计的两轮自平衡机器人,姿态测量采用倾角计和陀螺仪实现。控制方法是先采用传统的PID控制,然后在同一平台利用神经网络和自适应滑模控制方法实现控制。
两轮自平衡机器人位置和姿态信息一般选择陀螺仪、加速度计、倾角计、测距仪等传感器获取[10-11],通过数据融合得到准确的位姿信息。采用PID或极点配置法进行平衡控制,也有少数采用模糊控制[12]。
两轮自平衡机器人具有多变量、非线性、强耦合、时变、参数不确定性等特性,其平衡控制研究一直是热点。由于该系统为欠驱动系统,运动学方程不能完整地描述系统行为且系统不可控,因此要解决两轮自平衡机器人系统的平衡问题就必须考虑动力学影响[5]。
本文建立系统的动力学模型并进行仿真,验证控制方法的有效性。两轮自平衡机器人采用姿态检测算法和最优LQR控制策略算法。姿态检测算法通过Kalman滤波器融合姿态传感器测量数据,获得准确的姿态信息[13-14]。利用这些姿态信息,输出控制信号控制电机转动使机器人得以平衡。
1 系统机械模型设计
自平衡机器人结构种类繁多,本设计样机采用图1结构,由上层电池层、中间主控层、底层电机驱动层组成。电池层用于放置12V电池给系统供电,主控层由主控芯片最小系统和传感器模块组成,电机驱动层接受单片机信号并控制电机。每层功能模块的电路板之间用铜柱支撑固定,电机外壳与电机驱动电路板固定,电机转轴与两只轮胎相连。
2 机器人动力学模型
动力学模型用于描述系统特性的数学关系,假设在纯滚动、没有滑动、车体和车轮等部件均为刚性[1]并忽略各种静摩擦力的情况下,两轮平衡机器人瞬时力平衡分析如图2所示。
3 控制器设计
系统采用STM32F103C8T6为主控芯片,通过I2C接口读取传感器L3G4200和ADXL345的数据,陀螺仪和加速度计的数据融合测出平衡机器人的相关姿态,检测机器人平台的运行姿态,最终通过PID输出PWM电机控制信号对电机进行有效控制,调整平台运行姿态和动平衡。系统总体框架设计如图4所示。
3.1 系统硬件设计
3.1.1 电源系统设计
系统电源采用12V电源供电,LM2596开关电压调节器是降压型电源管理单片集成电路,能够输出3A的驱动电流,同时具有很好的线性和负载调节特性[4-16]。STM32F103VET6以及其它外围芯片都是3.3V供电,所以需要用到5V转3.3V的AMS1117-3.3V电源芯片。这个电源芯片属于线性电源芯片,比开关电源芯片噪声要小很多,最大输出1A电流,给主控板供电完全够用。电源供电系统如图5所示。
3.1.2 加速度传感器ADXL345
ADXL345是一款由ANALOG DEVICES 公司生产的3轴加速度计,该加速度传感器电路如图6所示。
ADXL345可以在倾斜检测应用中测量静态重力加速度,还可测量运动或冲击导致的动态加速度,其高分辨率(3.9mg/LSB)能够测量不到1.0°的倾斜角度变化[17]。主控芯片通过I2C即可初始化该芯片并读取三轴的加速度值。单片机可通过此外部中断触发三轴加速度数据的读取,用中断触发的方式降低系统计算周期,提高电机有效控制频率。
从传感器读出的数据通过一定运行求出传感器的各类倾斜角,其中θ是平衡车要消除的角度,车身倾斜角度可通过公式(1)计算。式(1)中,A是各轴输出的加速度分量。
3.1.3 陀螺仪传感器L3G4200
ADXL345主要用来测量静态重力加速度,但系统的动态加速度值是干扰,用L3G4200测量出平衡车的角速度值能在一定程度上消除动态干扰,利用ADXL345和L3G4200能够解算出车的倾角信息。L3G4200提供一个16位数据输出[18],可配置低通和高通滤波器等嵌入式功能。与加速度传感器的数字接口一致,通过SDA和SCL与主控芯片的硬件I2C接口进行通讯,采用3.3V供电。应用电路如图7所示。
3.1.4 电机驱动电路
使用减速比为1∶30 的GB37电机作为两轮自平衡机器人的驱动电机,电机采用H桥驱动方式。电机驱动器件采用TB6612FNG,具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动两个GB37电机,外围驱动电路简单[19]。对于PWM信号输入频率范围,高达100kHz的频率足以满足需求。
3.2 系统软件设计
软件程序设计流程如图8所示。系统上电复位后,先初始化各个功能模块,并进行平衡机器人的姿态检测和PID控制[20]。為查看前期调试数据,使用STM32主控串口,将程序中产生的数据估算出最终角度,通过UART串口上传到上位机,可在串口测试软件看到数据特性。
4 系统仿真
采用LQR控制策略对系统进行控制,建立机器人模型如图9所示。
图10为两轮自平衡机器人的速度控制曲线,反映了两轮机器人的角度、倾角以及倾角角速度变化情况。从图10可以看出,仿真曲线经过大约2s的自调整最终恢复到0值,达到了动态稳定状态,取得了较好效果。
在时间 t = 0时,机器人倾角[θ]角为正,平衡车整体向前倾。要让机器人重新回到平衡状态,在控制的作用下向前运行重新回到直立状态,[θ]角重新回零。在 0.4s时间内,平衡机器人的相关参数均达到其峰值。经过不断调整,大约 2 s后系统最终达到新的动态平衡状态。
系统运行稳定后,在5s时间给平衡机器人突然加一扰动,人为给平衡机器人加一个外力,如图11所示。从图11可以清楚地看出,倾角变化曲线有明显峰值,速度曲线也随之变化,经过0.6s的自我调整,机器人趋于平衡稳定,达到一个新的动态平衡,本文构建的两轮平衡车实现稳定控制和抗干扰目的。
5 结语
两轮自平衡机器人是一个多变量、非线性、强耦合系统。本文分析了自平衡机器人的主要控制原理,对该系统的平衡瞬间动力学进行了分析,建立数学模型,采用最优控制LQR控制策略,使平衡车系统的位移、角度、速度和加速度等变量趋于稳定。用MATLAB进行仿真实验,结果表明本文设计的两轮平衡机器人能实现稳定控制和抗干扰目的,满足设计要求。
参考文献:
[1] 路珺. 独轮自平衡车设计方法研究[D] . 哈尔滨:黑龙江大学,2011.
[2] CHAN R P M,STOL K,HALKYARD R. Review of modeling and control of two-wheeled robots[J]. Annual Re views in Control,2013(37): 89-103.
[3] GRASSER F,D'ARRIGO A,COLOMBI S,et al. A mobile,inverted pendulum[J]. IEEE Trans, Ind Electron (90278-0046),2002,49(1):107-114.
[4] 康冬亮,战玉博,李憬宇. 基于自由摆的平板精确控制与激光追踪系统[J]. 单片机与嵌入式系统应用,2012(10):55-58.
[5] 茅力非. 两轮自平衡移动机器人建模与控制研究[D]. 武汉:华中科技大学, 2013.
[6] FENG T,LIU T,WANG X,et al. Modeling and imple- mentation of two-wheeled self-balancing robot equipped with sup- porting arms[C]. ICIEA,2011: 713-718.
[7] 詹长书,邢博坤,朴光宇,等. 两轮自平衡小车的控制策略设计[J]. 森林工程,2015,31(4):73-76.
[8] LIN S L,TSAI C C,HUANG H C. Nonlinear adaptive sliding-mode control design for two-wheeled human transportation vehicle[C]. In 2009 IEEE International Conference on Systems, Man and Cybernetics, Piscataway, NJ, USA, 2009 :1965-1970.
[9] TSAI C C,HUANG H C,LIN S C. Adaptive neural network control of a self-balancing two-wheeled scooter[J]. IEEE Transactions on Industrial Electronics, Apr,2010, 57(4):1420-1428.
[10] 屠运武. 自平衡控制系统的建模与仿真[J]. 系统仿真学报,2004,16(4):938-841.
[11] 蔡建羡,马洪蕊,程丽娜. 基于仿生策略的机器人自主导航方法研究[J]. 计算机仿真,2014,31( 1) : 333-338.
[12] 何述东. 多层前向神经网络结构的研究进展[J]. 控制理论与应用,1998,15(3):313-319.
[13] KAMEN,DEAN. Segway[EB/OL]. http://www.segway.com/.
[14] 黄永平,闻双云,相文超,等. 卡尔曼滤波在单神经元PID控制中的应用[J]. 吉林大学学报:理学版,2016,54(6):1350-1354.
[15] 李亚文,翟金玲,彭晓邦. 一种位置式PID控制的四旋翼飞行器的设计与实现[J]. 自动化仪器与仪表,2016(7):96-100.
[16] 梁振涛,樊泽明,任永亮. 基于单片机的移动监控系统硬件设计[J]. 微型机与应用,2014,33(2):25-28.
[17] 周明安,郭天天,程小冬,等. 数码手榴弹引信研究与设计[J]. 四川兵工学报,2014(8):8-10.
[18] 王琪,吕雪霜. 基于MSP430F5438A单片机的无线定位装置[J]. 技术与市场,2011(9):163-164.
[19] 王建平,卢杉,武欢欢. TB6612FNG在直流电机控制设计中的应用[J]. 电子设计工程,2010(6):65-67.
[20] 赵智. 基于STM32的二轮自平衡电动车系统研制[D]. 武汉:华中师范大学,2013.
(责任编辑:杜能钢)