第五届“飞思卡尔”杯全国大学生
智能汽车竞赛
技 术 报 告
学 校:成都信息工程学院 队伍名称:电气072队 参赛队员:安俊洁 周飞 杨建 指导教师:王国江 刘鹏
关于技术报告和研究论文使用授权的说明
本人完全了解第五届全国大学生“飞思卡尔”杯智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
带队教师签名:
日 期:
-2-
目录
第一章 引言 ..........................................................................................................1
1.1背景介绍 ..................................................................................................1 1.2文献综述 ..................................................................................................1 1.3论文结构 ..................................................................................................1 第二章 智能车的总体设计方案 ..........................................................................2
2.1 电磁组的介绍 .........................................................................................2 2.2 方案的选择 .............................................................................................2 第三章 硬件电路的实现 ....................................................................................4
3.1 电源模块 .................................................................................................4 3.2 电机驱动电路 .........................................................................................5 3.3 测速模块 .................................................................................................5 3.4 HC9S12XS128MAA电路.......................................................................6 第四章 道路信号的采集与传感器的布局 ..........................................................7
4.1 赛道磁场的分析 .....................................................................................7 4.2 传感器的选型 .........................................................................................7 4.3 磁场信号的检测 .....................................................................................8 4.4 传感器的布局 .........................................................................................8 第五章 软件的实现 ............................................................................................10
5.1 赛道信息的采集与数据分析 ...............................................................10 5.2 转向控制 ...............................................................................................12 5.3 速度控制 ...............................................................................................16 第六章 系统的调试 ............................................................................................19 第七章 车模的改装 ............................................................................................20
7.1 轮距的调节 ...........................................................................................20 7.2 舵机的调节 ...........................................................................................20 7.3 小车改装过后的各种参数 ...................................................................21 第八章 总结 ........................................................................................................22
8.1 制作过程的总结 ...................................................................................22 8.2 不足与改进 ...........................................................................................22 参考文献 ..............................................................................................................23 附件A 源代码 ....................................................................................................24
-3-
第一章 引言
1.1背景介绍
全国大学生智能汽车比赛是经全国高等教育司研究,委托高等学校自动化专业教学指导分委会主办的,旨在培养创新精神、协作精神,提高工程实践能力的科技活动。
比赛要求在组委会提供统一智能车竞赛车模、单片机HCS12开发板、开发软件Code Warrior和在线调试工具的基础上制作一个能够自主识别路线的智能车,它将在专门设计的跑道上自动识别道路行驶。中心目标是不违反大赛规则的情况下以最短时间完成单圈赛道。
1.2文献综述
智能车大赛主要解决的问题就是如何把黑线从赛道中提取出来,提取出赛道后采用什么控制策略在规则允许的条件下以最快的时间跑完赛道。根据规则 我们参阅了许多论文资料,如李仕伯、马旭、卓晴的基于磁场检测的寻线小车传感器布局研究,张昊飏、马旭、卓晴的基于电磁场检测的寻线智能车设计,卓晴的智能汽车自动控制器方案设计等等。还着重学习了有关S12 和控制策略方面的书籍,如邵贝贝的单片机嵌入式应用的在线开发方法、胡寿松的自动控制原理以及运动控制等书籍来完善自己的理论水平以提高工作效率。
1.3论文结构
报告从硬件模块与软件模块两个方面论述整个车模制作过程及技术功能,整个智能车系统被分为上层算法,数据处理算法,接口程序,硬件电路。第一章引言主要介绍了大赛背景、论文结构。第二章主要介绍了总体设计方案。第三章硬件电路的实现。第四章道路信号的采集与传感器的布局。第五章软件的实现。第六章系统调试主要介绍了对车模的整体调试过程。第七章车模改装。第八章总结了调试的心得体会。
-1-
第二章 智能车的总体设计方案
本次比赛要求制作一个能自主识别线路的智能车,共有三个组别,分别为光电组、电磁组、摄像头组。
2.1 电磁组的介绍
电磁组是第五届新增加的一个比赛,竞赛车模需要能够通过自动识别赛道中心线位置处由通有100mA 交变电流的导线所产生的电磁场进行路径检测。除此之外在赛道的起跑线处还有永磁铁标志起跑线的位置。
2.2 方案的选择
我们选择了电磁组,在传感器的选择上,经过我们对各种传感器检测磁场的精度,还有其频率响应、尺寸、价格、功耗以及实现的难易程度进行考虑,最终我们选择了电磁感应线圈的方案,它具有原理简单、价格便宜、体积小(相对小)、频率响应快、电路实现简单等特点。
感应线圈检测的信号经过谐振、放大、检波过后测量其输出电压,线圈在赛道线不同的位置输出的电压不同,这样就可以判断出车模处于赛道的位置,然后控制车模的转向以及加减速。
此次比赛的最终目的就是在规则允许下一最短时间跑完规定赛道路程,然而小车限制了长度,使得电磁组的前瞻变得很小(相对于光电组和摄像头组),这样电磁小车就不能很明显的切内道过弯,所以我们从开始做车的思想就是让小车能在高速运行中巡线跑,以最短的时间完成比赛。为了使小车很稳定的加减速,于是我们采用了速度闭环控制。下图为系统方框图:
-2-
感应线圈 谐振、放大、检波 AD 测速脉冲 参数设置 光栅测速 HC9S12XS128MAA PWM PWM 拨码开关 电机 电机驱动 舵机 图2.2 系统方框图
可以每一节都加一些小结
介绍本章节都讲了写什么比如
你这节就讲了方案的去确定 最后的方案
-3-
2453第三章 硬件电路的实现 463.1 电源模块 本次比赛使用的电源是7.2V的电池供电,而我们使用的单片机供电电压为5V,舵机的额定电压为6V。因此需要我们将7.2V的电压转换成5V和6V的电压。 由于电机频繁的加减速,可能使得电池的电压变化很大或降低,如果不选用性能很好的稳压芯片,可能使稳定的电压低于5V,从而使得单片机重启,而且单片机需要的电流也不是很大,所以我们采用了LM2940-5V稳压芯片为单片机供电,LM2940是线性稳压器件,能在较低压差下稳定的工作。该芯片的典型应用电路如图3.1所示: J1LM2940-5INPUTPortC1 0.47u1VinVout3OUTPUT-5V C2 22uGND图3.1 LM2940应用 由于舵机要不停的转动,所以需要的电流比较大,因此我们采用了LM2576-ADJ芯片稳压,该芯片为开关型稳压,输出电压可调,最大电流为3A,具有热关闭和限流保护作用,工作效率高,完全满足了舵机的要求,该芯片的典型应用电路如图3.2所示; LLM2576-ADJOOFFGN/DINPUT1FEEDBACKOUTPUT42L1OUTPUT-6V100uHC21000uFR1+VINC1100uF35D1图3.1 LM2940应用图 DIODE SCHOTTKY103图3.2 LM2576应用图 2Title-4- SizeBDate:File:9-Aug-2010 Sheet of E:\\学习\\飞思卡尔\\飞思卡尔\\我们制作\\dianqi072.ddbDrawn By:4NumberRe23
33.2 电机驱动电路 加上一些选择理由 45 电机驱动原理图如图3.3所示 由单片机PWM模块输出的两路PWM信号与HEF4011相连接。我们使用HEF4011来作为MOS管驱动芯片,用于电平转换。四只大功率MOS管构成H桥, PWM占空比大,则转速高;PWM占空比小,则转速低。电路中MOS驱动芯片和MOS管都工作在开关状态,开关损耗小。当PWM1为高电平、PWM2为低电平时,Q1导通、Q3截止、Q2截止、Q4导通,电机正转 ;当PWM1为低电平、PWM2为高电平时,Q1截止、Q3导通、Q2导通、Q4截止,电机反转。当PWM0和PWM1同时为高电平或低电平时无电流,电机不转。 7.2VCCR1R247K47K312U?AAYBHEF401112313U?DAYBHEF4011Q211Q1MOSFET PMOSFET P1U?BAYBHEF4011U?CAYBHEF40111224PWM15PWM2684910MOTOR ACQ3MOSFET NQ4MOSFET N图3.3 电机驱动电路 3.3 测速模块 测速模块主要是由红外对管和光栅组成,由于红外对管输出的电压只有2V-3V不符合单片机检测的要求,所以我们使用了比较器,将红外对管输出的波形整形,于是我们选用了LM393做了一个比较器。如图3.4所示: 5VPT7R1300R21MR31234321CON3103R410KJ1OUT1IN1-IN1+GNDLM393VccOUT2IN2-IN2+8765J2 Title SizeBDate:File:-5- Number7-Aug-2010 SheeE:\\学习\\飞思卡尔\\飞思卡尔\\我们制作\\电机驱动电路Dra\\MO
图3.4 测速电路
3.4 HC9S12XS128MAA电路
因为在电路设计过程中发现xs128单片机(144引脚)的所有的引脚不是都会被用到,所以使用了汽车及芯片MAA(80引脚),而且这块板子的大小可以减小很多,所以质量更为轻便。
图3.5 HC9S12XS128MAA实物图
图3.7 HC9S12XS128MAA 原理图
-6-
第四章 道路信号的采集与传感器的布局
4.1 赛道磁场的分析
根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。智能汽车竞赛使用路径导航的交流电流频率为20kHz,产生的电磁波属于甚低频(VLF)电磁波。甚低频频率范围处于工频和低频电磁破中间,为3kHz~30kHz,波长为100km~10km。如下图4.1所示:
图4.1 直线磁场分布
而在十字交叉上时磁场会发生叠加,如下图4.2所示:
图4.2 十字交叉磁场分布
4.2 传感器的选型
现在我们有很多测量磁场的方法,磁场传感器利用了物质与磁场之间的各种物理效应:磁电效应(电磁感应、霍尔效应、磁致电阻效应)、磁机械效应、磁光效应、核磁共振、超导体与电子自旋量子力学效应。下面列出了一些测量原理以及相应的传感器:
(1) 电磁感应磁场测量方法:电磁线磁场传感器,磁通门磁场传感器,磁阻抗磁场传感器。
(2) 霍尔效应磁场测量方法:半导体霍尔传感器、磁敏二极管,磁敏三极管。 (3) 各向异性电阻效应(AMR)磁场测量方法。
(4) 载流子自旋相互作用磁场测量方法:自旋阀巨磁效应磁敏电阻、自旋阀三极管磁场传感器、隧道磁致电阻效应磁敏电阻。
(5) 超导量子干涉(SQUID)磁场测量方法:SQUID 薄膜磁敏元件。
-7-
(6) 光泵磁场测量方法:光泵磁场传感器。 (7) 质子磁进动磁场测量方法。 (8) 光导纤维磁场测量方法。
以上各种磁场测量方法所依据的原理各不相同,测量的磁场精度和范围相差也很大1011107G。我们从各个传感器检测磁场的精度,传感器的频率响应、尺寸、价格、功耗以及实现的难易程度进行考虑。最终选择了电磁感应线圈(电感量10mH 内阻10Ω),它具有原理简单、价格便宜、体积小(相对小)、频率响应快、电路实现简单等特点。
4.3 磁场信号的检测
由于感应线圈测得的信号非常的小,不能满足单片机的要求。而且在空间中12存在多种频率的磁场,所以需要对感应线圈测得的信号进行处理,于是我们将感应线圈测得的信号进行谐振,放大。为了使单片机读取数据的方便,我们还将放大后的信号进行检波,然后直接用单片机的AD模块读取信号。电路图如图4.3所示: 5VDR25.1KC3R1510k0.1ufdiangan 21CON2C2Q180501D2212ADC41ufD1DIODER551kDIODE0.1ufC16.8nf 图4.3 信号处理电路 C4.4 传感器的布局 为了使小车满足爬坡的要求,综合传感器检测的距离,以及4.1所讲的赛道磁场的分布,我们最终确定了传感器水平多排的布局方式,如下图4.4所示: -8- B
图4.4 传感器的布局
说明:传感器为两排水平布局(如上图),由于电磁小车前瞻距离只有十几厘米,所以我们必须准确的判断赛车现在所处的位置,使小车能有较高的速度,因此前面三个传感器是用于判断转向,后面两个是用于判断小车处于赛道的位置。
-9-
第五章 软件的实现
赛车控制系统的设计主要由赛道信息的采集与数据分析、方向控制、速度控制着三个部分组成。框图如下:
赛道信息的采集与数据分析 转向控制 HC9S12XS128 速度控制 图 5.1 系统框图
由上图,我们就可以将系统细分为:AD采集赛道信息、数据分析、舵机PWM控制、定时测速、电机PWM控制、起跑线检测这六个部分。将系统细分可以让软件与底层硬件模块接口的配合更紧密,同时也是把软件系统的实现从具体的硬件中尽量抽象出来,使控制更方便,程序更易读,也是把团队分工整合起来的有效途径。
5.1 赛道信息的采集与数据分析
赛道信息的采集分为路况信息的采集和起跑线的采集这两个部分。
路况信息的采集主要是由安装在赛车前面的多排感应线圈来完成。感应线圈通过检测赛道上方的磁场,采集到的信号经过谐振、放大、检波,然后直接送到单片机的AD口。单片机通过AD采样模块直接就可以得到感应线圈感应到磁场信号的大小。另外,赛车安装完成后,感应线圈之间的距离以及对地的高度都是恒定的,因此通过多次对比采集得到的感应线圈信号的大小即可得到赛道中心相对于感应线圈的位置,为赛车的转向控制提供依据。
起跑线的采集主要是由安装在车头上的一排干簧管来完成。由于干簧管是连接在单片机的T3口上的,当采集到起跑线时触发单片机的中断,然后使赛车停止。 数据处理方面要分别对采集的两部分信息进行处理。赛道信息的处理,主要是对AD采样得到的数据进行归一化,以消除不同的感应线圈之间的差异。而起跑线信号则主要是去抖动,防止因抖动而误动作。
赛道信息的采集与数据分析的程序流程如下图所示:
-10-
程序开始 初始化 AD采样 Y 数据有错? N 归一化 结束 5.2 赛道信息的采集以及数据处理程序的流程图
程序开始 初始化 延时 等待中断 Y 判断抖动 N 停车 程序开始 图5.3 起跑线检测程序的流程图:
-11-
图
部分程序代码:
/******************************************* AD转换初始化;
*******************************************/
void AD_Init(void)//AD初始化一个通道一个通道的转换 {
ATD0CTL1=0x00; //7:1-外部触发,65:00-8位精度,4:放电,3210:ch ATD0CTL2=0x40; //禁止外部触发, 中断禁止
ATD0CTL3=0xA0; //右对齐无符号,每次转换13个序列, No FIFO, Freeze模式下继续转 1110 1000
ATD0CTL4=0x0F; //765:采样时间为4个AD时钟周期,ATDClock=[64M*0.5]/[PRS+1]
ATD0CTL5=0x30; //6:0特殊通道禁止, 0000 0000 ATD0DIEN=0x00; //禁止数字输入 }
/**************************************
定时测速PT7口输入;每10ms读取一次速度值;存在V[2]中 PT3输入捕捉
***************************************/ void ECT_Init(void)//ECT初始化PT7引脚 {
PACTL = 0x50;//PT7 PIN,PACN32 16BIT,FALLing edge,NOT INTERRUPT
TSCR2 = 0X06;
TCTL3 = 0xc0;//c-输入捕捉7任何沿有效, TCTL4 = 0X80;
TIE = 0x08;//每一位对应相应通道中断允许,0表示禁止中断 TIOS = 0x00;//每一位对应通道的: 0输入捕捉,1输出比较 PACNT = 0x00; TSCR1 = 0X80;
PITCFLMT_PITE=0; //disable PIT
PITCE_PCE0=1; //enable timer channel 0
PITMTLD0=256-1; //time base 240 clock cycles ,it's 0.1M Hz PITMUX=0x00; // ch0 connected to micro timer 0 PITLD0=1250-1; //INTVERAL micro time bases time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS.
PITINTE_PINTE0=1; //enable interupt channel 0 PITCFLMT_PITE=1; //enable PIT }
/******************************************* 读取AD转换值的函数D一个通道一个通道的转换 *******************************************/
void ReadAD2(unsigned int *Data,unsigned char channel) //读AD一个通道一个通道的转换 {
-12-
}
byte i=0;
for(i=channel;i 5.2 转向控制 赛车的转向主要是由舵机来完成的。赛车的转向控制就是对舵机的控制,并考虑速度对于转向的影响。 舵机的角度分配一般有两种方式:查表方式、PID方式。分析比赛的要求,不难看出精确的转向控制是完成比赛的关键,而我们采样得到的电压值也是连续变化的,如果采用查表方式的话,还需要对数据进行模糊化的处理,很难完成精控制的要求。实践也发现,采用查表方式时,舵机的转角会出现不连续的状况,影响赛车的稳定性。而使用PID调节方式对舵机进行控制,该方式在不论是反应速度,还是舵机转向连续以及转角预测上都优于查表方式,因此,在实际过程中,我们使用的是PID方式。 方向的控制主要是根据预瞄区赛道中心的位置,初步确定舵机转角,并根据赛道变化的趋势对舵机转角进行修正。 在模拟系统中,PID算法的表达式为 p ( Kp[e(t)t) p(t)----调节输出信号; e(t)----调节器偏差信号,为测量值与给定值之差; Kp1TIe(t)dtTDde(t)dt](公式5-1) ----调节器比例系数; TI ----调节器积分时间; TD ----调节器微分时间。 由于单片机控制是一种采样控制,它只能根据采样时刻的偏差值来计算控制量。因此必须将公式(5-1)离散化处理,用数字形式的差分方程代替连续系统的微分方程,此时积分项和微分项可用求和及增量式表示: (公 dtnnn0e(t)dtE(j)tTE(j)0j0式5-2) de(t)E(k)E(k1)tE(k)E(k1)T(公式5-3) 将公式(5-1)和公式(5-2)代入公式(5-3),可得到离散的PID表达式: -13- p(k)Kp{E(k) E(k)----第 TTIkj0E(j)TDT[E(k)E(k1)]}(公式5-4) 式中,t=T----采样周期,必须使T足够小,才能保证系统有一定的精度; k次采样时的偏差值; E(k1)----第(k-1)次采样时的偏差值; k ---- 采样序号,k=0,1,2,3··· ; 第k次采样时调节器的输出。 kp(k)---- 要想计算p(k),不仅需要本次与上次的偏差信号E(k)和E(k-1),而且还要在积分项把历次的偏差信号E(j)进行相加,即E(j)。 根据推理原理,可写出(k-1)次的PID输出表达式: p(k1)Kp{E(k1)TTIk1j0j0E(j)TDT[E(k1)E(k2)]} (公式5-5) 用公式(5-4)减去公式(5-5),可得: P(k)P(k1)Kp[E(k)E(k1)]KIE(k)KD[E(k)2E(k1)E(k2)] (公式5-6) 式中, KI=Kp KDKTTlTp ------积分系数; D由公式(5-6)可知,要计算第k次输出值P(k),只需知道P(k-1),E(k),E(k-1),E(k-2)即可。 把公式(5-4)和公式(5-5)相减,得到: P(k)P(k)P(k1) T ------微分系数。 KP[E(k)E(k1)]KIE(k)KD[E(k)2E(k1)E(k2)] ( 公式5-7) 公式(5-7)表示第k次输出的增量P(k),等于第k次与第(k-1)次调节器输出的差值,即在第(k-1)次的基础上增加(或减少的)量,所以公式(5-7)叫做增量型PID控制算式。 图5.4 单位反馈的PID控制原理框图 -14- 其中e表示理想输入与实际输出的偏差,再将此偏差送入控制器,经控制器计算可得到偏差值的比例、积分和微分值的线性组合u。 其中, K p 、K i 、K d 分别称为比例系数、积分系数、微分系数。u 接着被送到了执行机构获得新的输出信号Y。Y被再次送到感应器以产生新的偏差信号,这个过程就反复地进行。 运用PID 控制的关键是调整三个比例系数,即参数整定。PID 控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行。 一般来说,增大比例系数能够减小上升时间,并减小稳态误差,但不能消除。增大积分系数能够消除稳态误差,但会使瞬时响应变差。增大微分系数能够增强系统的稳定特性,减小超调,并且改善瞬时响应。 由实验获知,当I为零,D比P较小时系统相对较稳定。对于直道而言,P应该适中,如果太大,极易出现超调振荡,如果太小,由弯道进直道时车模不能及时摆正,不利于直道的加速。且由直道入弯时,舵机会因响应不及时而冲出跑道。对于弯道而言,P应该稍大,这样有利于弯道走内线,同时也提高了舵机的响应速度和幅度,拐弯更顺畅,大大降低了冲出跑道的可能性。对于蛇形道而言,P要稍小,P小,舵机响应稍小,有利于走蛇形道。若P太大,舵机响应变大,蛇形道极易按照弯道行驶策略行驶,这样就大大的增加了车模行驶的路程,行驶时间也必然长得多。另外,还考虑到舵机具有良好的线性响应,所以我们实际使用的PD控制器来控制舵机的转向,而且为了调试的方便还是用了拨码开关调节PD控制器的系数。 在这可以列表说明你们的实验过程比如Kp为多大时后面的Ki等怎么调整的过程 Kp Ki 最终跑的情况(或者一个说明误差等等) uKpeKIedtKDdedt(公式5-8) -15- 程序开始 PID 初始化 舵机 等待数据处理完成 N 数据有效? 程序开始 Y 图5.5转向控制的程序流程图 部分程序代码: /******************************************* 设置舵机转角的函数 以电压的偏差判断舵机的转向和转量 *******************************************/