基于TMS320F28069的自平衡机器人控制系统设计※

2012-09-21 10:43吕红涛王国胜吕强刘峰
单片机与嵌入式系统应用 2012年9期
关键词:编码器驱动控制器

吕红涛,王国胜,吕强,刘峰

(装甲兵工程学院 控制工程系,北京 100072)

引 言

两轮自平衡机器人系统是一个高阶次、不稳定、多变量、非线性、强耦合的系统,它实际上是一个可以行走的一级倒立摆[1-3]。国内外的一些研究成果见参考文献[4]。

本文设计的自平衡机器人是以TMS320F28069微处理器为主控制器,采用ENC-03R传感器、XBEE无线传模块采集数据,来控制实现机器人的自平衡。

1 自平衡机器人的平衡原理

自平衡机器人的样机如图1所示,为了建立其运动学模型,用Pro/ENGINEER3.0建立三维模型,如图2所示。左右两电机水平放置,车体可以以电机轴线为中心前后运动,通过控制两轮的速度可以实现小车向前、向后、转弯等运动。

自平衡机器人的基本控制思想是:当测量倾斜角度的传感器检测到机器人本体产生倾斜时,控制系统根据测得的倾角产生一个相应的力矩,通过控制电机驱动两个车轮朝机器人要倒下的方向运动,保持机器人自身的动态平衡[5]。当未加控制时,不论车体向前或向后倾斜,左右轮都处于静止状态,车体前后倾斜和车轮转动是相互独立的。当开始控制时,车身在竖直状态下释放,小车有静止、前进、后退3种运动方式,在正确的控制策略下,机器人可以保持自身的平衡。

图1 两轮自平衡机器人样机

图2 两轮自平衡机器人三维模型

2 自平衡机器人控制系统总体设计

自平衡机器人的控制系统总体设计如图3所示。为了使其能够保持平衡,并且完成前进、后退和转弯等动作,机器人的硬件结构包括以下各功能模块:主控制器TMS320F28069控制整个系统的运行;左右驱动模块控制电机的正反转;姿态检测模块测量车体倾斜的角速度;电流检测模块测量电机的转矩大小;左右编码器测量左右轮的旋转角速度;无线传输模块XBEE用于接收地面控制台的命令,也用于将车体的状态值,尤其是各个传感器的返回值传给PC机,在PC机上进行仿真,验证控制算法的优劣。

图3 自平衡机器人控制系统框图

在自平衡机器人的工作过程中,传感器采集的车体倾角加速度、电机转矩大小和左右轮的速度信息等信号经过滤波,传给主控制器TMS320F28069的A/D采集模块。主控制器根据传感器的信息输出相应占空比的方波,经VNH3SP30电机驱动控制电机的正转、反转、加速、减速等动作,使得自平衡机器人能够保持动态的平衡,并能完成相应的动作。

3 控制系统硬件设计

3.1 主控制器

系统采用TI公司生产的32位微处理器TMS320F28069(以下简称F28069)作为主控制器,它强大的数据处理能力和控制能力可大幅提高应用效率和降低功耗。F2806x系列的微处理器是在C2000Piccolo MCU系列处理器的基础上,增加浮点处理能力的高性能微处理器,工作频率可以达到80MHz,并针对实时控制的复杂算法操作增加了控制律加速器(CLA)和新的VCU单元。

3.2 驱动电路

驱动电路以意法半导体公司专用于电机驱动的大功率集成芯片VNH3SP30为核心,配合简单的外围电路实现电机的驱动。其具体性能指标如下:

① 最大电流为30A,电源电压高达40V;

② 功率MOS管的导通电阻为0.034Ω;

③ 含有5V兼容的逻辑电平控制信号输入;

④ 内含欠压、过压保护电路;

⑤ 具有芯片过热报警输出和自动关断功能。

VCC端口是电机驱动的电源引脚,当被施加一个反向电压时,可能会击穿内置二极管,破坏电源开关。因此,给电源主线串联一个肖特基二极管,进行电源反向保护[6]。为了实时检测电机的驱动电流,在驱动器的输出端连接大功率的检测电阻,设计中选用0.1Ω/0.5W的电阻,通过采集电压值传送到电流检测单元,放大输出到F28069中。

另外,由于电机的控制信号直接由F28069产生,而直流电机驱动直接引入12V的电压,如果驱动电机出现了故障,电流可能会串入F28069,对F28069造成损害,所以要对所有的控制信号以及反馈信号进行隔离。电机驱动电路同控制电路完全隔离,这样,即使电路出现问题,也不会对整个系统造成很大的损害。综合考虑,设计其驱动电路如图4所示。

3.3 电流检测电路

图4 电机驱动电路

电流检测电路用来实时反馈电机的电枢电流的大小(即电机扭矩大小)。在驱动器输出端串接大功率检测电阻,测量电阻两端的电压大小,然后通过电流检测电路放大输出到F28069的A/D转换模块端口,进而将模拟信号转换成数字信号,由F28069对信号进行处理,实现电机控制的双闭环,提高电机的控制精度。自平衡机器人的电流检测电路如图5所示。

图5 电流检测电路

其中,HZU3BLL是3V的稳压管,NJM2734V是电压跟随运算放大器,NJM2747V是单电源低电压4路运算放大器,M_OFFSET是电路提供的1.5V基准电压,输出电压为:

M_R=6.25×2×(M_PLUS-M_MINUS)+M_OFFSET

M_R用来表征电机扭矩的大小,M_PLUS表示检测电阻输入端的电压,M_MINUS表示检测电阻输出端电压。

3.4 姿态检测电路

车体在运动过程中,会向前或向后倾斜产生动态加速度,对系统来说是一种干扰,为了能够有效地去除干扰,系统中需要测量车体的角速度信号,这样才能在动态的条件下实时地解算出车体的倾角信息,然后采取相应的控制策略。

选择村田公司型号为ENC-03R的角速度传感器。其参数如下:工作电压为2.7~5.25V;输出范围:±300 deg./sec.;静态信号电压为1.35V;信号刻度为0.67 mV/deg./sec.;带宽响应为50Hz。

由于ENC-03R的信号过小,需要外加运放才能较好的工作,姿态检测电路如图6所示。

选取的D/A转换芯片型号为AD5620,内部产生一个1.25V的基准电压,传输的数据为12位,输出电压,姿态检测反馈电压V_GYRO=15×(V_OUT_GYRO-V_REF_GYRO)+V_OFFSET。

3.5 电机转速检测模块

自平衡机器人采用的是德国冯哈勃2342L012CR直流减速电机,为保证控制系统的精度,需要对电机转速进行实时测量。转速的测量实质是对脉冲宽度进行测量,使用F28069的eQEP模块对单个周期内的脉冲信号进行计数,然后转换成车轮的速度,为速度闭环控制提供依据[7]。两轮自平衡机器人中,直流电机测速时使用的是光电正交编码器。

光电编码器精度高、抗磁干扰性能好、响应速度快,其设计流程如图7所示。电机旋转带动码盘动作,间断地阻挡光电对射管的光线,产生不同的电平,从而形成方波信号。为尽量避免干扰,需要将编码器的地线可靠接地,同时还要加入滤波电路,滤除高频和超高频信号。

3.6 无线传输模块

设计中采用XBEE无线传输模块,它主要用于接收地面控制台的指令,同时也用于调试过程中向PC机传送数据。它工作在2.4GHz ISM频段,室内传输距离40m,室外传输距离120m,功耗比较低;串口速率为1200~230 400bps,可以通过软件进行设置;支持工作电压2.1~3.6V;外形尺寸比较小,支持点对点、对等网络、网状网络的网络拓扑,组网简单、应用领域广。

图6 姿态检测电路

图7 编码器的设计流程图

3.7 电源模块

电源模块主要为主控制器和各传感器供电,为减少各部分之间的干扰,系统采用两块锂电池进行供电。其中一块锂电池提供的7.4V电压经LM2577-12转换成12V电压给电机驱动和NJM2747V供电;另一块锂电池电压经过AMS117-5芯片转换成5V电压给F28069和串口供电,再经 AMS1117-3.3转换成3.3V电压给 XBEE、编码器、NJM2734V供电。其电路设计如图8所示。

图8 电压转换电路

4 系统软件设计

自平衡机器人控制系统软件设计流程如图9所示。主函数负责初始化控制器的I/O口、初始化定时器、开中断等。系统上电初始化完成后,等待定时器时间到,将倾角传感器采集的姿态信息,以及编码器采集的速度信息传给F28069的A/D端口进行转换,得到计算机器人的姿态信息和左右轮子的转速。当电机控制中断到来,根据得到的信息进行PID控制,输出合适占空比的PWM给电机驱动,控制电机转动,保持机器人的平衡。姿态检测是控制器设计的核心,关系到控制性能的好坏。自平衡机器人当前状态检测程序如下:

图9 控制系统软件流程

结 语

本文对两轮自平衡机器人的工作原理进行了分析,提出了控制系统的总体设计方案。采用TMS320F28069微处理器作为主控制器,设计了电机驱动器、姿态检测、电机转速和电机力矩检测等硬件控制电路。该电路具有模块化、动态性能好、适应性强、速度快、精度高、性能稳定的优点,为下一步优化控制算法提供了一个良好的平台。

编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。

[1] 阮晓刚,任红格.两轮自平衡机器人动力学建模及其平衡控制[J].计算机应用研究,2009,26(1):99-100.

[2] 吕强,王珂珂,王国胜.基于两轮自平衡机器人的LQR控制器设计与实现[C]//2009中国控制与决策会议论文集(2),上海,2009:2343-2347.

[3] 陈伟,延文杰,周超英,等.两轮自平衡机器人控制系统的设计[J].传感器与微系统,2008,27(4):117-120.

[4] 王珂珂.多功能移动教学机器人的设计与开发[D].北京:装甲兵工程学院,2008:1-6.

[5] 孔祥宣.自主式双轮动态平衡移动机器人的控制系统研究[D].上海:上海交通大学,2007:21-22.

[6] 侯清锋,罗海波,王洪福.基于VNH3SP30的大电流直流电机驱动器的设计[J].微计算机信息,2007,23(10-1):92-93.

[7] 王国胜,刘峰,陆明,等.基于 MC9S12DG128单片机的迷宫机器人设计[J].微电机,2011,44(12):56-59.

猜你喜欢
编码器驱动控制器
基于模糊PI控制的驱动防滑仿真系统分析
屈宏斌:未来五年,双轮驱动,砥砺前行
轨旁ATC系统门控柜接收/驱动板改造
基于FPGA的同步机轴角编码器
应用旋转磁场编码器实现角度测量
基于S3C6410的Wi-Fi驱动移植实现
JESD204B接口协议中的8B10B编码器设计
多总线式光电编码器的设计与应用
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列