张凯杰
【摘要】本文以高性能DSP处理器TMS320F2812为核心设计系统,其目的在于为机器人提供一个可靠、开放性强的控制系统。首先,硬件部分使用Altium Designer软件绘画电路图和PCB板,共设计电源模块、传感器模块、电机舵机模块等。其次,软件部分主要研究经典PID控制、模糊控制等控制算法在机器人速度及转向控制中的应用,使控制系统可以满足实时、高速、高精度控制的要求。最后利用单片机处理由外部硬件采集得到的数据,实现对图像的压缩、简化,最终实现对机器人的控制。
【关键词】TMS320F2818DSP;机器人;软硬件设计
1.前言
机器人是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则行动。它的任务是协助或取代人类的工作。
如今,机器人发展的特点可概括为:横向上,应用面越来越宽。由95%的工业应用扩展到更多领域的非工业应用。像手术、侦查,还有空间机器人、潜水机器人。纵向上,机器人的种类会越来越多,像进入人体的微型机器人,已成为一个新方向。本论文是基于TMS320F2812DSP的机器人设计,主要对机器人的自动循迹,运动控制进行了研究,与实际联系紧密,具有重要的现实意义。
2.硬件设计
2.1 TMS320F2812的最小系统
本文使用的是Altium Designer10绘制电路图,模拟硬件设计。
2.2 电源转换
由于DSP的核心电压为1.8V,I/O电压3.3V,所以在设计电路时,需要将5V电源转换再供电。因此使用了TI公司的TPS767D301高性能稳压芯片,此芯片是一款双路低压差电压调整器,非常适合DSP应用系统的电源设计。TPS767D301中的可调电压调整器输出可以1.5-5.5V范围内进行调节,这种。调整主要是通过外接一个电阻取样网络来实现的,加入了30.1K和16.9K的电阻达到输出1.8V电压的要求。
2.3 时钟与复位电路
TMS320F2812 DSP的时钟可以有两种连接方式,即外部振荡器方式和谐振器方式。本文采用的是外部有源时钟方式,直接选择一个3.3V供电的30MHz有源晶振实现。复位使用按键复位如图1所示。
图1 复位使用按键复位图
图2 电路图
2.4 JTAG仿真接口电路
几乎所有的高速控制器和可编程器件都配有标准仿真接口JTAG,F2812也不例外。JTAG扫描逻辑电路用于仿真和测试,采用JTAG可实现在线仿真,同时也是调试过程装载数据、代码的唯一通道。通过JTAG接口可将仿真器与目标系统相连接。为了与仿真器通信,DSP控制板必须带有14引脚的双排直插管座。
2.5 AD输入电路
DSP内置16通道12位ADC,可配置为2个独立的8通道模块,分别服务于事件管理器A和B,可接受的AD信号在0-3V。电路如图2所示。
2.6 通信模塊
2.6.1 串行通信电路设计
TMS320F2812芯片内部集成了一个串行通信接口(SCI)模块,该模块是一个标准的通用异步接收/发送(UART)通信接口,通信接口有SCITXD(SCI发送输出引脚)和SCIRXD(SCI接收输入引脚)两个外部引脚,引脚的信号电平为TTL类型。而DSP串口的异步串行通信基于RS232标准,本文使用的MAX232芯片专门为电脑的RS232标准串口的设计电路,使用+5V供电。
其与DSP的接口电路如图3所示。
2.6.2 无线通信电路设计
nRF905无线芯片是有挪威NORDIC公司出品的低于1GHz无线数传芯片,主要工作于433MHz、868MHz和915MHz的ISM频段。芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。非常适合于低功耗、低成本的系统设计。其引脚如图4所示所示。
与DSP连接电路图如图5所示。
2.7 传感器模块
本文采用灰度传感器用来检测机器人自身位置,灰度传感器是模拟传感器,灰度传感器利用光敏电阻对不同颜色的检测面对光的反射程度不同,其阻值变化在的原理进行颜色深浅检测。灰度传感器有一只发光二极管和一只光敏电阻,安装在同一面上。在有效的检测距离内,发光二极管发出白光,照射在检测面上,检测面反射部分光线,光敏电阻检测此光线的强度并将其转换为机器人可以识别的信号。
在灰度传感器背面,有三个开关,分别控制红、白、绿3种颜色的发光二极管。可以根据使用场合,选择使用的颜色,这样就可以使机器人可以识别出不同颜色的寻迹线。引出的三根导线分别是电源线、信号线、与地线。通过对信号线进行AD转换,就可以对灰度传感器面前的颜色进行判断,从而控制机器人的行进。实际的电路中,灰度传感器的电源端实际上是通过一个电位器,调整其工作电压。通过对其工作电压的调整,可以同时调节灰度传感器上发光二极管的亮度。这样,机器人就可以在外界环境光线亮度不同的情况下,正常寻迹。
被光敏电阻接收,电阻减小,输出为高电位,(电压上升)。红外线发射管向表面黑色的物体发射红外线,表面为黑色物体,反射红外线光很弱。则接受不到红外线光。电阻很大,S点当接入时,红外线发射管,向正前方的物体发射红外线光,通过物体表面反射。反射回红外线光为低电位(电压很低)。
图6 开关电路图
图8 电路图
2.8 电源模块
本文采用的4944026-004 ABB型号的机器人电池,输出电压为7.2V的镍氢电池。
各个供电模块的电路绘制:机器人电源设计中要使其具备有集成度高、体积小等结构特点,并且也应有安全、稳定、承载电流大等功能特点。
(1)开关电路(如图6所示)
(2)充电电路(如图7所示)
(3)DSP供电
本文使用的TMS320C2812使用输入VCC为3.3V和1.8V,所以需将7.2V的电源转换为5V,再用TPS767D301这个专为DSP供电的可调电压芯片,转换到3.3V和1.8V为DSP供电。5V转换使用低压差正电压调节器,电路如图8所示。
DSP使用电压3.3V和1.8V的转换电路可参考本文第三章的TMS320F2812最小系统设计中的片外电源设计。
3.软件设计
3.1 控制方法分析
(1)经典控制:经典控制方法最典型的就是PID控制。PID控制器由比例单元P、积分单元I和微分单元D组成。其输入e(t)与输出u(t)的关系为:
u(t)=kp[e(t)+1/TI∫e(t)dt+TD*de(t)/dt]
它的传递函数为:
G(s)=U(s)/E(s)=kp[1+1/(TI*s)+TD*s]
比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。
因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
(2)模糊控制:所谓模糊控制,就是在被控制对象的模糊模型的基础上,运用模糊控制器近似推理手段,实现系统控制的一种方法,模糊模型是用模糊语言和规则描述的一个系统的动态特性及性能指标。
模糊控制的基本思想是用机器去模拟人对系统的控制.它是受这样事实而启发的:对于用传统控制理论无法进行分析和控制的复杂的和无法建立数学模型的系统,有经验的操作者或专家却能取得比较好的控制效果,这是因为他们拥有日积月累的丰富经验,因此人们希望把这种经验指导下的行为过程总结成一些规则,并根据这些规则设计出控制器。然后运用模糊理论,模糊语言变量和模糊逻辑推理的知识,把这些模糊的语言上升为数值运算,从而能够利用计算机来完成对这些规则的具体实现,达到以机器代替人对某些对象进行自动控制的目的[10]。
模糊逻辑用模糊语言描述系统,既可以描述应用系统的定量模型也可以描述其定性模型,模糊逻辑可适用于任意复杂的对象控制。但在实际应用中模糊逻辑实现简单的应用控制比较容易,简单控制是指单输入单输出系统(SISO)或多输入单输出系统(MISO)的控制。因为随着输入输出变量的增加,模糊逻辑的推理将变得非常复杂。
3.1.1 转向控制方案
在道路识别模块给出路况识别后,转向控制算法的优劣决定了机器人能否寻迹前进。本文选择模糊控制来实现对方向舵机的控制,此方法响应快,超调小且能够有较好的鲁棒性。模糊控制算法处理过程分为3个环节:模糊化、模糊推理以及反模糊化。
3.1.2 车速控制方案
考虑到系统设计的复杂性和DSP处理数据的响应速度,由于模糊推理需要进行大量矩阵计算,而运动时需要指令具有快速和实时性,所以仅对方向控制采取模糊控制,而车速控制采用成熟的PID控制。
3.1.3 传感器随动舵机控制方案
传感器随动舵机用来控制装有发射器和接收管的传感器PCB电路板,由于传感器数量较多,所以对其控制精度要求不高,采用开环比例控制即可满足要求。
最终,根据实际情况和简化设计的原则,仅在方向控制上采用了模糊控制,其他模块仍沿用传统PID控制。
3.2 基于模糊控制的智能寻迹控制设计
3.2.1 转向模糊控制
模糊控制器有三个功能模块:模糊化模块、模糊推理模块、反模糊化模块,在对模型车转向的控制中,选取传感器对所测信号的偏移误差E、误差的变化量EC为输入,对方向舵机的控制量u为输出。按照模糊集能较好覆盖论域和提高控制性能的原则,选取E和u的模糊集均为{LB,LM,LS,0,RS,RM,RB},其中LB=left big,表示左转急弯。LM=left middle,表示左转略急彎。LS=left small,表示左转缓弯。0表示直行。选取EC的模糊集为{N,0,P},N=negative,表示负向大偏差。P=positive,表示正向偏差。
(1)编码:将基本变量基本论域映射到对应模糊集论域的过程称为编码
根据转弯时传感器接收信号的实际情况,并在查阅一些相关资料后,确定对E的编码如表1所示。
则论域E为{-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5}。考虑到采样速度快,传感器摇头舵机的响应速度远小于采样速度,所以取EC的论域为{-1,0,+1}。再取输出u论域为{-5,-4,-4,-2,-1,0,1,2,3,4,5}。
(2)确定模糊变量赋值表
模糊变量误差E、误差变化EC及控制量u的模糊集合论域确定后,须对模糊语言变量确定隶属函数,即所谓对模糊变量赋值,就是确定论域内元素对模糊语言变量的隶属度。根据查阅文献资料以及相关论坛资料,确定赋值表如表2所示。
表1
表3 模糊变量E和u的赋值表
-1 0 1
N 1 0 0
0 0 1 0
P 0 0 1
(3)建立模糊规则表
本文系统有两个输入E和EC,参考部分相关文献,初步确定转向控制模糊规则表如表4所示(此规则可根据调试过程做修改):
表4
EC E LB LM LS 0 RS RM RB
N LM LS 0 0 0 RS RM
0 LM LS 0 0 0 RS RM
P LB LM LS 0 RS RM RB
(4)模糊推理
推理方法有很多种,本文使用MAX-MIN法,根据MAX-MIN法的原理,每一条规则的强度等于前件中的最小值并上后件中相应语言值时的隶属度。公式表达为:
其中,表示min。
MAX-MIN法规定,对于相同输入在不同规则下的隶属度,模糊输出取其最大值。最终结论是由综合推理结果,,…得到的,即:
其中,表示max。
根据以上以上推理过程,求得不同输入下的输出U模糊子集共计33个。
1)E=-5,EC=-1,u=0.33/-4+1/3+0.33/-2;
2)E=-5,EC=0,同1);
3)E=-5,EC=1,u=1/-5+0.67/-4;
4)E=-4,EC=-1,u=0.33/-4+0.67/-3+0.33/-2+0.33/-1;
5)E=-4,EC=0,同4);
6)E=-4,EC=1,u=0.67/-5+0.67/-4+0.33/-3+0.33/-2;
7)E=-3,EC=-1,u=0.67/-2+0.67/-1;
8)E=-3,EC=O,同7);
9)E=-3,EC=1,u=0.33/-4+1/-3+0.33/-2;
10)E=-2,EC=-1,u=0.33/-2+0.33/-1+0.67/0;
11)E=-2,EC=0,同10);
12)E=-2,EC=1,u=0.33/-4+0.33/-3+0.67/-2+0.67/-1;
13)E=-1,EC=-1,u=0.33/-1+0.67/0+0.33/1;
14)E=-1,EC=O,同13);
15)E=-1,EC=1,u=0.67/-2+0.67/-1+0.33/0+0.33/1;
16)E=0,EC=-1,u=0.33/-1+1/0+0.33/1;
17)E=0,EC=O,同16);
18)E=0,EC=1,同16);
19)E=1,EC=-1,u=0.33/-1+0.67/0+0.33/1;
20)E=1,EC=0,同19);
21)E=1,EC=1,u=0.33/-1+0.33/0+0.67/1+0.67/2;
22)E=2,EC=-1,u=0.33/-1+0.67/0+0.33/1+0.33/2;
23)E=2,EC=O,同22);
24)E=2,EC=1,u=0.67/1+0.67/2+0.33/3+0.33/4;
25)E=3,EC=-1,u=0.67/1+0.67/2;
26)E=3,EC=0,同25);
27)E=3,EC=1,u=0.33/2+1/3+0.33/4;
28)E=4,EC=-1,u=0.33/1+0.33/2+0.67/3+0.33/4;
29)E=4,EC=0,同28);
30)E=4,EC=1,u=0.33/2+0.33/3+0.67/4+0.67/5;
31)E=5,EC=-1,u=0.33/2+1/3+0.33/4;
32)E=5,EC=0,同31);
33)E=5,EC=1,u=0.67/4+1/5;
(5)反模糊化
反模糊化有多種方法,最常用的是最大隶属度法和重心法。
最大隶属度法简单易行,算法实时性号,这种方法突出了隶属度最大元素的控制作用,对于隶属度较小的控制作用没有考虑,利用信息量少。
在要求较高的系统中,反模糊化一般采用重心法,即求所有模糊输出量的重心。计算公式如下:
针对33种不同输入,由上述公式和所求模糊集,取整后可以将控制输出的精确量制成表格以供查询,称为控制表或查询表(如表5所示)。
对于TMS320F2812DSP,由于C拥有对数组和表格强大的编程能力,所以对转向的模糊控制采用查表法实现。将变量的编码表和输出控制表以数组的形式输入,届时只需使用查表指令便可得出值,再乘以对应的量化因子即可对舵机予以控制。
3.2.2 对车速的PID控制
本文采用增量式PID,增量式算法的优点是:(1)数字调节器只是输出增量,计算机误动作时造成的影响比较小。(2)手动-自动切换冲击小。(3)算式中不需要累加,增量只与最近的几次采样值有关,容易获得较好的控制效果。由于式子中没有累加,消除了当偏差存在时发生饱和的危险。
增量式PID控制算法公式为:
其中:
由上式可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以求出控制量。
增量式PID控制算法与位置式PID算法相比,计算量小得多,因此在实际中得到广泛的应用。
速度控制部分的部分代码如下:
e[2]=expectedspeed-speed;
if(speed>expectedspeed+3&&(yuanpai_state[1]<=3||yuanpai_state[1]>=19))
{DIANJI=0;
//急弯超速较多时,电机最快反转刹车
SHACHE=SHACHE_LIMIT;
}
else if(speed>expectedspeed)
{DIANJI=0;
SHACHE=SHACHE_LIMIT/2;
//超速不多时,反转速度减缓
}
else (speed<=expectedspeed)
{SHACHE=0;
uk=a*e[2]-b*e[1]+c*e[0];
//速度为达到设定时,用PID算法
}
if(uk>400)uk=400;
//速度限幅
if(uk<0)uk=0;
if(SHACHE==0){DIANJI=uk;SHACHE=0;}
e[0]=e[1];
e[1]=e[2];
3.2.3 對传感器随动舵机的开环控制
由于安装有多个传感器,所以其探测范围较大,传感器只需大体上随转弯方向转动,就可以实现道路探测,对于随动舵机的转动精度并没有精确的要求。根据调试情况,在传感器返回不同信号时,给定随动舵机一个增量式输出值,不仅可以防止计算机误操作时发生巨大的偏差,而且很好的满足了舵机输出的要求。随动控制部分代码如下:
switch(yuanpai_state[1]){
case -1:{
SUIDONG+=21;break;}
case 0:{
SUIDONG+=21;break;}
case 1:{
SUIDONG+=18;break;}
case 2:{
SUIDONG+=15;break;}
·
·
·
case 22:{
SUIDONG-=21;break;}
case 23:{
SUIDONG-=21;break;}
default:break;
}
参考文献
[1]张培仁,张志坚,郑旭东,等.基于16/32位DSP机器人控制系统的设计与实现[M].北京:清华大学出版社,2006.
[2]苏奎峰,吕强,耿庆锋,等.TMS320F2812原理与开发[M].北京:电子工业出社,2005.4.
[3]张义和.Altium Designer完全电路设计[M].北京:机械工业出版社,2007.7.
[4]陈继荣.智能电子创新制作:机器人制作入门[M].北京:科学出版社,2007.10.
[5]杨林权.机器人足球竞赛与设计技术[M].武汉:华中科技大学出版社,2009.
[6]何效飞.四轮全向移动足球机器人运动控制系统的研究[D].广州:广东工业大学,2012
[7]TexasInstrument.Dual-Output Low Dropout Voltage Regulators with Power-Up Sequencing for Split Voltage DSP Systems[M].2007.
[8]ISSI.IS61LV51216[J]Datasheet Manual,2005.12.