第三届智能汽车竞赛技术报告大连理工大学hypereye.docx
- 文档编号:26980005
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:50
- 大小:712.03KB
第三届智能汽车竞赛技术报告大连理工大学hypereye.docx
《第三届智能汽车竞赛技术报告大连理工大学hypereye.docx》由会员分享,可在线阅读,更多相关《第三届智能汽车竞赛技术报告大连理工大学hypereye.docx(50页珍藏版)》请在冰豆网上搜索。
第三届智能汽车竞赛技术报告大连理工大学hypereye
第一章引言1
第二章小车模型的改造和安装3
第三章各模块电路的方案选择和具体设计4
3.1中央控制电路的设计4
3.2主电机驱动电路的选择和设计6
3.3速度检测元件的选择6
3.4赛道检测传感器的选择和电路设计7
3.6系统电源的设计9
3.7人机接口模块的设计10
第四章控制软件的设计11
4.1驱动层软件设计11
4.1.1.系统时钟设置11
4.1.2.主电机和舵机驱动11
4.1.3速度检测的计数和处理12
4.1.4赛道检测的数据采集和处理13
4.2决策层软件计算法设计13
4.2.1上层传感器决策14
4.2.2上下层传感器的联合应用15
4.2.3速度闭环控制16
第五章调试说明17
5.2硬件电路设计调试17
5.3软件算法效率的测试17
第六章小车模型改造后的主要技术参数18
小车模型改造后的主要技术参数见表6.1和表6.2。
18
第七章结论19
参考文献I
附录A迟滞比较器门限电压估算公式的推导II
附录BMCU程序源代码III
第一章引言
本设计采用MC9S12DG128单片机作为智能小车的检测和控制核心。
测速装置使用霍尔式编码器对电机转速进行检测,通过对速度的检测,使整个系统闭环控速,系统稳定性增强。
电机控制模块使用集成电动机控制芯片TD340外加N沟道MOSFET管IRF3205驱动控制,主控制器按预定的程序来决定运行规则,通过发送控制信号给电机控制芯片,从而对主电机的转速与转向进行调节,进而控制小车的加速和制动。
赛道检测模块采用双排红外反射传感器,通过样条算法,将赛道的走向和转弯的趋势比较精确地计算出来,然后由主控制器将赛道信息转化为转角信号送给舵机,从而实现小车的巡线功能。
在调试的过程中采用友好的人机接口界面,清楚地显示小车运行的各项参数。
本设计方案的主要特色有以下几方面:
采用了双层红外反射式的传感器对赛道检测,其中顶层采用大功率的红外发射管并加以聚焦透镜以提高前瞻距离,顶层红外接收管采用安装黑色套管来消除红外发射和接收管相邻之间的干扰,采用脉冲发射红外线的方法可以预测较远距离的赛道情况,低层采用红外发射接收一体管并通过三次样条函数对顶层传感器进行计算与校验,算出赛道中黑线的具体方位,由此对舵机进行控制,实现了较精确的转向控制。
为使控制电路达到最简和适合车体,专门设计了主控板(包括最小系统、电机驱动、人机接口以及传感器接口),大大简化了外围接口电路的设计,使主控系统达到最优。
采用霍尔式编码器对电机进行转速检测,由此经过计算得到车体速度,保证了速度测量的准确性与实时性,经合理安装,也简化了机械结构提升了机械性能。
为了在调试时监控小车的各项参数并提高小车对赛道的适应性,采用了84*48的Nokia5110点阵型手机液晶显示,显示信息丰富而且小巧友好,并可通过拨码开关对程序状态进行设置,此外还有发光二极管显示小车的一些状态。
整个系统的结构框图如图1.1。
第二章小车模型的改造和安装
根据比赛要求,舵机、主电机和电池部分未作任何改动,主电机和电池仍然固定在原位置,小车的改造主要侧重于印刷电路板和传感器的固定。
安装舵机时,考虑到如果按照标准方式安装,舵机左右转角的控制量是不均衡的。
很难找到一个函数,使两侧控制量和转角成为平衡的线性关系。
因此,我们将舵机倒立安装,两侧使用等长传动杆。
这样,不但两侧的控制量变得均衡、易于控制,而且,传动力臂的长度也可以很方便的按照需要进行调整。
具体安装方法见图2.1
基于电路的简化和小车重心的考虑,依据车体结构将所有控制电路做在一块板子上并在小车中间靠前的位置,这样在避免主电机转动干扰的同时还将外围接口放在控制板的边缘或两侧以接线简洁方便,并最大限度的减少了连接线的长度和复杂度。
速度检测传感器(霍尔式编码器)固定在电机旁边的变速齿轮处,重心下调并方便的将转速转换成电平的频率信号,然后通过接线接到主控板上(具体原理见第三章)。
赛道检测传感器为双层红外反射传感器。
顶层用于预测并判断赛道信息,底层用于定位并对上层传感器所得到的位置信息进行校验。
为了使预测的赛道尽可能远,我们采用了大功率的红外发射管并加以聚焦透镜并用铝制的支架架起,与水平面成一定角度;而低层传感器则靠近车体并安装了滚轮,这样行驶弯道和上坡时可以起到很好的调节作用。
图2.1舵机的直立安装
第三章各模块电路的方案选择和具体设计
3.1中央控制电路的设计
中央控制电路是整个系统的核心,控制器完成主电机控制、赛道信息采集、舵机转动控制、速度获取以及人机接口等功能。
其中对主电机和舵机的控制是相对重要的任务。
通常采用PWM信号来调节电机转速和舵机转角。
Freescale公司推出的MC9S12DG128单片机具有PWM输出功能,而且其片上的PWM功能具有独立的定时计数模块,简化了硬件系统的设计。
MC9S12DG128单片机有QFP-80和LQFP-112两种封装,考虑到系统的复杂性和适应性,决定选用资源相对较丰富的LQFP-112封装的单片机作为主控制器。
在电路板设计上,采取了模块设计的设计思想并整合在一块印刷板以使整个硬件部分简洁,整个电路由控制器系统、主电机驱动及接口、电源管理、人机接口和各传感器接口(包括两层红外传感器、舵机、霍尔式编码器)构成。
控制器系统囊括了MC9S12DG128单片机系统的必要组成部分,包括时钟电路、复位电路、锁相环滤波电路、A/D转换器滤波电路、各I/O口接口和BDM调试器接口等;主电机驱动电路包括控制接口和输出驱动接口;电源管理部分包括:
单片机系统、主电机、舵机、传感器以及调试接口等(其中为避免各模块之间供电的相互影响以及传感器功耗大的缘故,对各模块电源进行了隔离处理);人机接口电路包括发光二级管、Nokia5110点阵型手机液晶屏、按键、拨码开关、短路帽。
控制器(MC9S12DG128单片机)系统如图3.1和部分外围电路如图3.2。
图3.1单片机最小系统图
图3.2部分外围电路
3.2主电机驱动电路的选择和设计
主电机为永磁式微型直流电动机。
它的驱动方案采用直流电机的控制芯片驱动N沟道MOSFET管控制。
图3.3电机驱动电路
直流电机的控制芯片选用ST微电子公司的TD340芯片,MOSFET管采用IRF3205,IRF3205的优点是开关速度快,通路电阻低(最低8毫欧)和电压门信号低(5V可驱动),适合于大电流和低电压运行。
具体的电路设计如图3.3。
该电路由信号输入电路、TD340和H桥电路组成。
其中控制信号由单片机输入,TD340用于构成PWM发生器,功率放大电路是由4个MOSFET管组成的H桥电路。
3.3速度检测元件的选择
速度的检测采用霍尔式编码器。
码盘固定在主电机附近并尽可能的装底,当主电机转动时,会在码盘上产生脉冲信号。
通过检测脉冲信号的频率或周期,就可以得到一个与小车速度成正比的数值,这个数值经过量纲换算,就可以得到小车的速度。
由于码盘与电机的相对位置固定,基本不受外界干扰,而且有精度高等优点。
固定方案如图3.6:
图3.6霍尔式编码器的固定与安装
3.4赛道检测传感器的选择和电路设计
检测赛道采用红外线反射传感器。
设计中采用模拟与数字结合的方式,即上层采用模拟方案对跑道进行预测,下层采用数字开关量检测方案,对跑道进行精准检测,同时消除掉上层传感器由于检测距离较远而产生的误差。
具体的机械结构设计见图3.7。
图3.7赛道检测传感器的固定
上层模拟方案电路设计如图3.8。
图3.8上层电路设计
由于多数半导体元件瞬间通过电流的能力要远大于其持续工作使得最大功率。
因此对红外发射部分,采用MOSFET对发射管进行逐个开关控制,同时控制接收管只在发射管开通期间采集。
这样既降低了整个系统的功耗,又可以适当地增大发射管的发射功率。
实验表明,即使使发射管的发射功率达到其额定值的三倍,其电压平均值仍不到额定值的一半,可以持续稳定工作。
此电路利用接收管接收到不同强度红外线而导通电阻不同的特性,由A/D转换电路对其进行检测,这使得在距离黑线较近的红外接收管电平会相应升高。
利用这一性质,经三次样条算法对其进行计算,找出其最大点,即黑线的所在位置。
下层数字量方案设计如图3.9:
下层传感器电路主体是由LM393构成的迟滞比较器,而传感器的检测原理与上层相同。
使用比较器,可以很容易地把传感器的电压变化转化成数字电平。
如图3.7所示,反相输入端为基准调整端,用电位器R10对电源电压分压,分压结果送入比较器作基准电压。
传感器得到的电压送到比较器的同相输入端,与反相输入端的电压比较,高则比较器输出高电平,低则输出低电平。
最后,把得到的电平送入单片机,判断传感器检测到的颜色。
采用双层传感器进行计算的优点是,在运动过程中,由于传感器探测范围小,分辨率低,所以要增加车体的前瞻性,必须抬高检测传感器,使其与地面成一定角度,而且如果功率有限,即使抬高也不能有很好的接收效果,所以我们使用了大功率红外发射管并加以聚焦透镜使发射距离更远。
车体在运动过程中需要精准调节与跑道的相对位置,而红外传感器探测范围较小并会有一定的误差,导致了根据上层传感器计算出来的黑线位置会发生跳变(即有些传感器失效,取值出现盲点)。
为了解决这一缺点,设计增加下层传感器对上层传感器进行校验与纠正,下层的数字量设计方案保证了下层检测的准确性,这样就既保证了赛道检测的前瞻性,同时也消除了不必要的干扰。
3.6系统电源的设计
可靠的供电是系统稳定运行的保障。
尤其是本系统中使用了大功率器件,其工作稳定与否直接决定传感器检测的准确程度。
在本系统中,采用了根据需要为各模块分别供电的思想。
传感器部分由于发射功率瞬间值很大,而且需要电压稳定。
因此,要使用瞬间输出能力强的稳压器件。
经多次试验,我们最终采用了航模专用的开关电源模块,它最大的有点是能够在负载和输入端变化很大时仍能保持输出稳定。
单片机供电我们采用了5V低压差线性稳压器LT1085-5。
经实测,LT1085在压差低于1V的情况下仍能输出稳定的5V直流电压,且线性稳压器纹波极小,为单片机稳定工作和AD参考源精确性提供了保障。
本次大赛指定的舵机S3010额定工作电压是4-6V。
尽管适当提高电压可以加快舵机响应速度,但为使其工作稳定,我们仍使用了6V直流稳压器7806为其提供稳定的直流电压。
主电机由于采用闭环控制,则直接采用镍镉电池输出7.2V直流电为其供电。
具体电源
部分设计框图如图3.11:
图3.11:
供电系统框图
3.7人机接口模块的设计
为了调试时监控小车的各项参数,同时提高小车对赛道的适应性,特设计了人机接口电路。
输入部分采用按键、拨码开关和发光二极管,输出部分采用了84
48的Nokia5110点阵型手机液晶显示。
调试的过程中,可以显示主要参数,监控小车的运行。
同时,可以通过按键和拨码开关对程序状态进行设置,使小车根据不同的情况采取不同的决策方法,使调试更加具有针对性。
本模块电路如图3.12。
图3.12人机接口电路设计
第四章控制软件的设计
4.1驱动层软件设计
4.1.1.系统时钟设置
为了加快系统响应速度,使用单片机内部的锁相环电路将外部的16MHz时钟倍频到48MHz,总线时钟24MHz,以提高运算速度和系统响应速度。
具体的设置如下:
REFDV=0x01;
SYNR=0x02;//设置系统时钟为48MHz
靠锁相环产生的时钟频率由下面的公式得到:
公式3
显然,采用16MHz的外部晶体振荡器,可以得到48MHz的系统频率、24MHz的总线频率[4]。
4.1.2.主电机和舵机驱动
考虑舵机对PWM信号的要求较高,为了提高精度,将单片机的8路8位的PWM输出调整为4路16位的PWM输出。
主电机驱动采用PWM输出控制,利用MC9S12DG128的PWM输出,将调制信号送到TD340的IN1信号输入端,通过调整占空比调整电机转速,IN2输入端接另一单片机端口以控制转向。
舵机的控制同样采用PWM输出控制,舵机的转角是通过调整高电平的宽度来控制的。
根据要求,HS-925型舵机的PWM周期为18ms~20ms,两侧的极限位置的高电平宽度为1ms和2ms。
在控制的过程当中,根据小车前轮的实际转角,对上面的值稍做了些补偿。
对PWM模块的具体设置如下:
PWMPOL=0xff;//设置极性为高电平
PWMCLK=0;//选择时钟为ClockA和B
PWMCTL=0xf0;
PWMPRCLK=0x31;//ClockA=BusClock/2;
//ClockB=BusClock/8
PWMPER23=PERIOD23;//PERIOD23为23通道的周期
PWMPER45=PERIOD45;//PERIOD45为45通道的周期
PWMDTY23=0;
PWMDTY45=0;
4.1.3速度检测的计数和处理
速度检测电路的输出是频率变化的矩形波。
要测量小车的速度,主要方法有两种:
测周法和测频法。
测频方案是使用增强型定时器溢出中断功能产生一个43ms的定时中断,在这个设定时间内,用单片机的脉冲累加器对霍尔编码器产生的脉冲进行计数,定时溢出时,记录霍尔编码器产生的脉冲数。
因为电机的转速和红外传感器产生的矩形波频率成正比,通过测频,就可以间接地得到电动机的转速,进而得到小车的整体速度,对小车采取闭环控制。
但这个方案对速度测量周期较长。
43ms的中断周期直接影响算法对实时速度变化的响应(算法周期为9ms),对加速和减速极为不利。
因此决定采用测周方案。
测周方案是使用单片机的实时中断,设定一个47us的中断,同时启用输入捕捉功能,对测速传感器传回的脉冲信号的上升沿进行捕捉。
使用实时中断对上升沿信号之间的时间间隔进行计数,以T=N
47(N为记得的实时中断数量)
来计算电机转速。
测周的响应周期由电机的转速决定,一般不超过10ms,所以响应速度大大提高。
4.1.4赛道检测的数据采集和处理
上层的红外传感器采集赛道的模拟电压,如果检测到黑线,该路的传感器模拟电压应偏高。
将其送到A/D的输入端,采集输入的电压。
A/D转换器用软件将其设为10位转换,每个序列8个通道,从通道0开始进行连续转换。
具体的设置如下:
ATD0CTL2_ADPU=1;
ATD0CTL2_AFFC=1;//正常上电标志位快速清零
ATD0CTL3=0x00;//八路转换通道组成序列
ATD0CTL4_SMP0=1;
ATD0CTL4_PRS2=1;
ATD0CTL4_PRS0=1;//十位转换精度十二分频
ATD0CTL5_DJM=1;
ATD0CTL5_SCAN=1;
ATD0CTL5_MULT=1;//右端对齐无符号数序列转换多通道转换
ATD0DIEN=0x00;//禁止数字量输入
下层的传感器输出量为数字量,将其输入到PTS口。
将PTS口设置为输入,读取端口寄存器里的值即可。
4.2决策层软件计算法设计
系统软件流程图,如图4.1。
4.2.1上层传感器决策
对于上层传感器的模拟电压量,由A/D转换后,由于其相对连续的变化量,采用样条函数对其进行计算,由5个传感器,模拟出前方跑道的黑白曲线,求出曲线的最大点,此最大点即为黑线中心点所在的位置。
计算公式如下:
fi+1(t)=at3+bt2+ct+d0≤t≤0.5公式4
其中:
a=-4Pi+12Pi+1-12Pi+2-4Pi+3
b=4Pi-10Pi+1+8Pi+2-2Pi+3
c=-Pi+Pi+2
d=Pi+1
该式的实质是每四个相邻的数据点可以确定中间一段抛物样条曲线。
曲线图,如图4.2。
图4.2抛物样条曲线
样条曲线是用抛物线作为基本曲线,通过一定的数学方法,把一组离散的数据点用一条复合的曲线光滑地连接起来。
在这里,每四个相邻的数据点可以确定中间一段三次抛物样条曲线,上层5个传感器可以构造出4段连续曲线,其具体构造方法如下:
中间两段采用三次抛物样条构造。
对于两个边界样条,采用一种特殊的处理方式,将三次样条降为二次样条。
对于二次样条,由于已知样条端点值和一侧的一阶导数,使得此二次样条可解,从而使构造的样条函数整体为一阶光滑可导,充分利用了传感器的所有信息。
因为该方法构造的函数有较好的可导性和连续性,所以可以通过解析法精确求解该函数的极大点,此极大点正为黑线所在的位置。
同时由于该函数利用的是5个传感器返回的相对信息,具有较强的抗干扰能力。
这种方法弥补了红外传感器赛道空间分辨率低的缺点,并充分利用了单片机A/D采集的功能。
4.2.2上下层传感器的联合应用
通过样条地方法已经可以准确的得到前方赛道黑线的准确位置。
而下层传感器就其检测准确性而言是相对稳定的。
因此,使用上下层传感器联合应用对整个车模的速度、转角进行控制是很有效的。
具体而言,我们的控制算法中应用到了赛道两方面的信息。
一方面是前方赛道的变化趋势,另一方面则是目前车体相对赛道的偏离程度。
有了这两方面信息,车模就可以具备既能充分考虑前方走向,又可以迅速矫正偏差追踪赛道变化的能力。
而在上下两层传感器准确检测的前提下,获取这两方面信息是很容易的。
简单来说,上下层传感器检测到黑线位置的偏差即可反映前方赛道的斜率,也即变化趋势,下层传感器由于其安装位置紧靠车头,故其能准确反映车模相对赛道位置偏差。
而在实际应用中,还应考虑一些细节问题,如上层传感器进入盲区时怎样保持正确决策,高速运行时怎样应对急弯等等。
这就要求我们在使用这两方面信息时仍要具体情况具体分析,根据不同的状态应用两种信息的权重也应是不同的。
比如在连续的弯道中,为了避免车模跟踪赛道不利冲出赛道,就应加大车体相对赛道偏差所占决策的比重;而在长直道上为了防止赛道形态突变不能及时调整,就应加大赛道变化趋势所占决策的比重等等。
4.2.3速度闭环控制
速度控制采用数字PID算法,通过整定参数,使电动机的响应达到满意的速度和精度。
PID控制的基本思想是对误差进行比例积分微分运算,实现对系统的基本控制。
离散后的PID用误差的累积加和代替积分,用两次误差的差分代替微分。
当采样周期很小时,可以近似地认为系统为连续系统。
通过整定三种运算的增益来调整电机系统的响应速度和超调量的大小。
第五章调试说明
以下的几个问题是调试中遇到的难点:
5.2硬件电路设计调试
因为上层传感器的位置较高,容易受到外界光线的干扰。
调试时,由于各个红外传感器光学和电学特性的差异,上层传感器有时出现状态跳变的情况,导致小车的自适应性较差。
为了增强小车的自适应性,在软件中加入了对小车的训练。
通过训练,控制器记录下小车上层各传感器感受到的最大值和最小值,然后对其进行线性补偿。
这样就可以把小车上层各传感器的特异性消除,解决各传感器光学和电学特性不一致的问题。
加入训练之后,小车的运行效果有了很大改善。
5.3软件算法效率的测试
为了测试软件的算法效率,考虑采用实时时钟进行计时。
但是如果在调试的过程中采用单步或设置断点调试,实时时钟会对调试造成麻烦。
在实际的调试中,采用了固定端口取反的办法测试算法效率。
在每一次算法循环结束之后,对一个端口(例如PORTK)进行取反操作。
随着算法的不断循环,在测试端口上会产生一定频率的方波。
用示波器观察方波的半周期,就可以得到算法执行一次的准确时间。
实践证明,这种方法非常有效。
第六章小车模型改造后的主要技术参数
小车模型改造后的主要技术参数见表6.1和表6.2。
表6.1小车外形参数表①
l/cm
w/cm
h/cm
m/g
39.5
24
28
1232
①l:
长w:
宽h:
高m:
质量
表6.2小车电路参数表①
P/W
N
s/cm
T/ms
Cs/μF
7.6
16
0.85
0.90
1769
①P:
电路功耗N:
传感器个数s:
赛道信息检测精度T:
代码运行周期Cs:
电容总容量
第七章结论
通过这次设计,小车实现了按黑线规定的赛道较高速行进上下坡并对起跑线识别,能较好的完成各项技术指标。
文章都对其所涉及方案论证、系统设计,以及单片机程序代码设计以及软件流程进行了较详细的阐述。
值得一提的是,在舵机安装、传感器的布局和上层红外传感器的设计以及检测的算法设计上进行了创新性的设计,使其大大增加了车体的前瞻性和对赛道的检测精度。
但系统在整体控制上还可以再进一步优化,希望在接下来的时间内得以完善。
参考文献
[1]卓晴,黄开胜,邵贝贝.学做智能车北京航空航天大学出版社.2007
[2]康华光.电子技术基础模拟部分(第四版)[M].北京:
高等教育出版社,1999
[3]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:
清华大学出版社,2004
附录A迟滞比较器门限电压估算公式的推导
一般情况下,输出电压vO与输入电压vI不成线性关系,输出电压转换的临界条件是vP≈vD=vI,显然这里的vP就是门限电压。
根据图A-1,利用叠加原理有:
公式A-1
根据输出电压vO的不同值(VOH或VOL),可分别求出上门限电压VT+和下门限电压VT-分别为:
公式A-2
公式A-3
那么,门限宽度为:
公式A-4
附录BMCU程序源代码
/***************************************************************/
/*main.c*/
/**/
/***************************************************************/
#include"define.h"
#include
#include
#include
#include
#include"PWM.h"
#include"AD.h"
#pragmaLINK_INFODERIVATIVE"mc9s12dg128b"
#defineDISABLE_STEERPWME_PWME3=0
#defineLEFT2
#defineRIGHT1
#defineAHEAD0
///////////////////////////////速度表///////////////////////////////////
//0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
constintstrRate[21]={0,1,2,2,4,4,6,6,8,8,9,10,10,12,14,14,14,16,16,16,16};
constintTableV[46]={20,20,20,21,21,22,22,23,23,23,23,23,23,24,24,24,24,24,24,25,25,25,25,25
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三届智能汽车竞赛技术报告 大连理工大学hypereye 第三 智能 汽车 竞赛 技术 报告 大连理工大学 hypereye