第四届飞思卡尔华德学院扬帆队报告 - 图文

更新时间:2024-06-01 06:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第四届“飞思卡尔”杯全国大学生

智能汽车邀请赛

技 术 报 告

学 校:哈工大华德学院 队伍名称:扬帆车队

参赛队员:赵宝忠 洪竞志姓名:赵宝忠 班级:0691202 学号:1069120209 带队教师:孙平

王海鹏 关于技术报告和研究论文使用授权的说明

本人完全了解第届届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、

使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:赵宝忠

洪竞志 王海鹏

带队教师签名:孙平 日 期:2009.7.8

I

摘 要

本文介绍了华德学院扬帆车队队员们在准备第届届Freescale智能车大赛过程中的工作成果。智能车的硬件平台采用带MC9S12XS128处理器的S12环境,软件平台为CodeWarrior IDE version 5.9.0开发环境,车模采用大赛组委会统一提供的1:10 的仿真车模。

文中介绍了智能小车控制系统的软硬件结构和开发流程。整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略优化等多个方面。为了提高智能赛车的行驶速度和可靠性,试验了多套方案,并进行升级,历经三个月的调试与测试,最终确定了现有的系统结构和各项控制参数。

关键字:飞思卡尔 智能车 PID控制

II

第四届全国大学生智能汽车邀请赛技术报告

目 录

第一章 引言 ........................................................................................................................... 1 1.1 赛事介绍 .................................................................................................................. 1 1.2 方案介绍 .................................................................................................................. 1 1.3 技术报告内容安排 .................................................................................................. 2 第二章 技术方案概要说明 ..................................................................................................... 3 第三章 系统设计 ..................................................................................................................... 4 3.1 系统总体结构 ............................................................................................................ 4 3.2 电路板的安装 ............................................................................................................ 5 3.3 前轮参数调整 ............................................................................................................ 6 3.4 舵机的升高方案 ........................................................................................................ 7 3.5 齿轮传动机构调整 .................................................................................................... 8 3.6 速度传感器的安装固定 ............................................................................................ 8 3.7 后轮差速机构调整 .................................................................................................... 8 第四章 硬件电路设计 ........................................................................................................... 10 4.1 电源模块设计 ........................................................................................................... 10 4.2 电机驱动模块设计 ................................................................................................... 11 4.3 舵机驱动模块 ........................................................................................................... 12 4.4 速度检测模块 ........................................................................................................... 13 4.5 现场调试模块 ........................................................................................................... 14 第五章 软件设计 ................................................................................................................. 15 5.1 主程序设计 ............................................................................................................... 15 5.2 软件系统总体设计 ................................................................................................... 15 5.3 软件各功能模块设计 ................................................................................................. 18 5.3.1 时钟模块 ............................................................................................................. 18 5.3.2 PWM输出模块 ...................................................................................................... 18 5.3.3 ECT模块 .............................................................................................................. 20 5.3.4 AD转换模块 ........................................................................................................ 20 5.4 路径识别与算法 ......................................................................................................... 21 5.4.1起跑线检测 .......................................................................................................... 21 5.5 系统控制 ..................................................................................................................... 22 5.5.1 小车转向角控制 ................................................................................................. 23 5.5.2 小车速度控制 ..................................................................................................... 23 5.6 系统控制策略 ............................................................................................................. 24 5.6.1 提前转向 ............................................................................................................. 24 5.6.2 弯道刹车 ............................................................................................................. 25 5.5.3 直道限速 ............................................................................................................. 25 5.5.4 软件滤波 ............................................................................................................. 25

III

第四届全国大学生智能汽车邀请赛技术报告

5.7 PID控制 ...................................................................................................................... 26 第六章 开发制作与调试 ....................................................................................................... 27 6.1 开发工具 ..................................................................................................................... 27 6.1.1 软件开发平台 ..................................................................................................... 27 6.2 系统调试 ...................................................................................................................... 28 6.2.1 硬件调试 ........................................................................................................... 29 6.2.2 软件调试 ........................................................................................................... 29 第七章 结论 ......................................................................................................................... 31 7.1 模型车主要技术参数说明 ........................................................................................ 31 7.2 总结 ............................................................................................................................. 31 7.2.1 智能车的制作 ..................................................................................................... 32 7.2.2 开发所遇到的问题和解决方案 ......................................................................... 32 7.2.3 存在问题 ............................................................................................................. 32 7.2.4 心得体会 ............................................................................................................. 33 参考文献 ................................................................................................................................. 35 鸣 谢 ........................................................................................................................ XXXVI 附件:程序源代码 ................................................................................. 错误!未定义书签。

IV

第四届全国大学生智能汽车邀请赛技术报告

第一章 引言

1.1 赛事介绍

受教育部高等教育司委托,高等学校自动化专业教学指导分委员负责主办全国大学生智能车竞赛。该项比赛已列入教育部主办的全国五大竞赛之一。2009年8月26日,在北京科技大学举行第四届全国大学生智能车竞赛。本届的比赛,首先是在全国五大赛区进行预选赛,之后将有104只赛车到北京进行总决赛。在比赛中,参赛选手须使用大赛组委会统一提供的竞赛车模,推荐采用飞思卡尔16控制器MC9S12XS128作为核心控制单元,自主构思控传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等,完成智能车工程制作及调试,于指定日期与地点参加场地比赛。参赛队伍之名次(成绩)由赛车现场成功完成赛道比赛时间为主,技术方案及制作工程质量评分为辅来决定,车模改装完毕后,尺寸不能超过:250mm 宽和400mm长,高度无限制,跑道宽度不小于600mm,跑道表面为白色,中心有连续黑线作为引导线,黑线宽25mm,并且跑道有坡道,进入窄道区由黑色三角标识。

1.2 方案介绍

在方案设计的过程中,我们参阅了很多院校的往届大赛技术报告,如清华大学、北京科技大学、东北大学等等。在国内,他们对智能车研究起步的比较早,例如清华大学首创记忆算法、北京科技大学创先使用激光管。但是,基于本次大赛的比赛要求,即车跑一圈结束后停车便算入成绩,如果不停车则在原有成绩上多加1秒,所以我们采取跑一圈停车的策略。由车手根据跑道的情况,通过拨码开关,适当改变参数。这样有利于更稳定的完成比赛。对于LED组来说,提高小车的速度和稳定性,其实际问题是如何更早且更好的提取到赛道信息。所以我们采取的策略是传感器尽量远的检测跑道信息,急时的作出处理,来实现我们的目标。这样不仅可以提高赛车的前瞻性,使赛车的稳定性提高。对赛车状态进行人工校正,提高成绩。

1

第四届大学生智能汽车邀请赛技术报告

1.3 技术报告内容安排

本技术报告的正文分为四个部分。第一部分是对整个系统实现方法的一

个概要说明,主要内容是对整个技术方案的概述;第二部分是对系统机械结构的说明,主要介绍系电路板的固定和安装、前轮参数调整和舵机的升高等;第三部分是对硬件电路设计的说明,主要介绍系统传感器的设计及其他硬件电路的设计原理、创新点和实现过程等;第四部分是对系统软件设计部分的说明,主要内容是智能模型车设计中主要用到的控制理论、算法说明及代码设计介绍等。

2

第四届全国大学生智能汽车邀请赛技术报告

第二章 技术方案概要说明

本模型车的制作的主要思路是利用光电传感器来判别前方的跑道轨迹,并将信息采集到9S12单片机中。在9S12单片机中利用一定的算法来控制模型车的运行状态。

模型车的控制系统包括电源管理模块、MCU模块、路径识别模块、电机驱动模块、舵机控制模块、转速测量模块、按键控制模块等。在整个系统中,由电源管理模块实现对其他各模块的电源管理。其中,对单片机、光电管、测速电路、按键电路提供5V电压,对舵机提供6V电压。

本模型车是由后轮驱动的,路径识别模块则采用光电传感器寻迹方案。即路径识别电路由14对光电发送与接收管组成。由于赛道中存在轨迹指示黑线,落在黑线区域内的光电接收管接收到反射的光线的强度与白色的赛道不同,进而在光电接收管两端产生不同的电压值,由此判断行车的方向。路径识别模块会将当前采集到的一组电压值传递给MCU模块。转速测量模块则安装在车尾部,它会测量出模型车行驶过程中的瞬时速度。按键控制模块会设定模型车在行驶过程中一些较重要的参数,如:直道速度、弯道速度等。测量出的瞬时速度将输入到单片机中,以帮助分析确定模型车下一步的速度、转角等。MCU模块会根据按键的设定值,路径识别模块采集到的电压值以及转速测量模块反馈回的瞬时速度值等综合分析,采用一定的算法对舵机和直流电机进行控制。以上即是技术方案的概要说明。

3

第四届全国大学生智能汽车邀请赛技术报告

第三章 系统设计

本模型车系统设计的部分主要包括,、电路板的固定与安装、前轮参数调整和舵机的升高。

3.1 系统总体结构

系统总体结构如图 2.2.1 道路识别 光电传感器

MCU

MC9S12XS128

速度检测

电源模块

舵机驱动

直流电机驱动

图 2.2.1 系统总体结构框图

从系统总体结构框图可以知道系统由以下几个部分组成。 (1)中央处理器单元

此次使用的 MC9S12XS128 单片机属于 MOTOROLA 公司的 MC9S12 系列之一。 它是以运算速度很快的 CPU12 内核为核心的单片机,经过锁相环后,时钟频率可达到 64MHz,内部 Flash 高至 128KB,拥有 2 组各 8 路 10 位 A/D、16 路 I/O口,有功能强大的8位 PWM 输出共8 路,以及8路 16 位增强型定时器(ECT)。 该单片机功能强大,完全能够胜任小车的检测和控制功能。

(2)道路识别模块

用于完成对于赛道中心引导线的检测,判断道路信息,通过连接线把信息传送给中央控制单元,使智能车沿着跑道轨迹稳定前行。

(3)电源模块 为各个电路模块提供稳定电源,保证各模块正常工作。 (4)舵机驱动模块 对模型车上的舵机进行驱动,达到快速准确控制赛车方向。

4

第四届全国大学生智能汽车邀请赛技术报告

(5)电机驱动模块 对模型车上的电机进行驱动,控制赛车的速度。 (6)速度检测模块

对模型车的速度进行检测,实现闭环控制,以便调整弯道和直道的速度, 从而提高平均速度,使小车更快跑完全程。

3.2 电路板的安装

对本模型车的信号采集电路,我们设计了一块电路板。安装在模型车的前方。综合考虑光电管的探测距离、模型车的行驶速度以及更好的配合软件的控制算法,我们将电路板支在离地面5cm的位置。电路板上均匀分布了14对光电发射管和接收管。

此外,我们还设计了一块电源模块的PCB板。将它放置在车底盘靠前的位置。在组装过程中,我们利用原有的模型车后部原有的两个支架和两个承接螺钉将电机的驱动电路板和测速的光电编码器固定在车模的后部。其固定的位置离地的高度为5.5cm。在其下方,放置着模型车的电池。在电池的上方,则固定着S12核心开发板模块。

图3.1 整车电路板安装实图

5

第四届全国大学生智能汽车邀请赛技术报告

3.3 前轮参数调整

调试中发现,在赛车过弯时,转向舵机的负载会因为车轮转向角度增大而增大。为了尽可能降低转向舵机负载,对前轮的安装角度,即前轮定位进行了调整。

前轮定位的作用是保障汽车直线行驶的稳定性,转向轻便和减少轮胎的磨损。前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等4 个项目决定,反映了转向轮、主销和前轴等三者在车架上的位置关系。

1)主销内倾是指主销装在前轴略向内倾斜的角度,它的作用是使前轮自动回正。角度越大前轮自动回正的作用就越强烈,但转向时也越费力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。

2)主销后倾是指主销装在前轴,上端略向后倾斜的角度。它使车辆转弯时产生的离心力所形成的力矩方向与车轮偏转方向相反,迫使车轮偏转后自动恢复到原来的中间位置上。由此,主销后倾角越大,车速越高,前轮稳定性也愈好。

3)主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时后倾的回正作用大,低速时内倾的回正作用大。

4)前轮外倾角对汽车的转弯性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。前轮外倾角俗称“外八字”,如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。所以事先将车轮校偏一个外八字角度,这个角度约在1°左右。

5)所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时,其惯性力会自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。

经过与赛道的磨合,本队智能车前轮角度调整为前轮外倾角为-3°,其他皆为0°。

6

第四届全国大学生智能汽车邀请赛技术报告

3.4 舵机的升高方案

为了提高舵机的响应速度,可以考虑延长舵机的摆臂。在正常情况下,车轮从最左侧转到最右侧,舵机需要转动50。而将摆臂伸长之后,车轮从最左侧转到最右侧,舵机只需要转动30。从理论上讲,这样可以在舵机性能一定的情况下,提高车轮转向的响应速度。本队摆臂长为4cm。

舵机升高之后,直线行驶状态下的车轮定位参数尤其是前束值会发生变化,这时需要稍微调整两根转向拉杆的长度,将前束值调整至合理的范围内。摆臂加长后,舵机空程会明显,但是差别不大,通过程序微调舵机最大转角能够休整,所以可以忽略。

图3.2 舵机安装实图

7

第四届全国大学生智能汽车邀请赛技术报告

3.5 齿轮传动机构调整

赛车后轮采用两片并联MC33886 电机驱动,由竞赛主办方提供。电机轴与后轮轴之间的传动比为 9:38(电机轴齿轮齿数为18,后轮轴传动轮齿数为76)。齿轮传动机构对赛车的驱动能力有很大的影响。齿轮传动部分安装位置的不恰当,会大大增加电机驱动后轮的负载,从而影响到最终成绩。调整的原则是:两传动齿轮轴保持平行, 齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力,白白浪费动力;传动部分要轻松、顺畅,容易转动,不能有卡住或迟滞现象.判断齿轮传动是否调整好的一个依据是,听一下电机带动后轮空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞齿现象;声音闷而且有迟滞,则说明齿轮间的配合间隙过小,或者两齿轮轴不平行,电机负载加大。调整好的齿轮传动噪音小,并且不会有碰撞类的杂音。

3.6 速度传感器的安装固定

将一个光电编码器的齿轮卡在电机齿轮上,随电机一起转动。同时,将光电编码器固定于后轮电机的支架上,能够使光电编码器齿轮轻松的随着电机的齿轮转动。这样,车轮转动后,编码器就会检测到脉冲,一圈200个脉冲。向MCU输出脉冲一次。安装过程中,我们用了两颗螺钉将其固定在了模型车尾部的底架上。

随着齿轮转动时,光电编码器每转一圈会向MCU发送200个高低电脉冲。设置S12 的ECT 模块,同时捕捉光电编码器输出的电脉冲的上升沿和下降沿。通过累计一定时间内的脉冲数,或者记录相邻脉冲的间隔时间,可以得到和速度等价的参数值。我们已知:轮胎一圈周长为16.7cm。大齿轮转动一圈,则编码器齿轮转动5.2圈,可以按时间算出车轮行驶一圈所得到的脉冲数,然后进行相应的加速或减速。

3.7 后轮差速机构调整

差速机构的作用是在赛车转弯的时候,降低后轮与地面之间的滑动;并且还

8

第四届全国大学生智能汽车邀请赛技术报告

可以保证在轮胎抱死的情况下不会损害到电机。当车辆在正常的过弯行进中 (假设:无转向不足亦无转向过度),此时4 个轮子的转速(轮速)皆不相同,依序为:外侧前轮>外侧后轮>内侧前轮>内侧后轮。

此次所使用赛车配备的是后轮差速机构。差速器的特性是:阻力越大的一侧,驱动齿轮的转速越低;而阻力越小的一侧,驱动齿轮的转速越高?以此次使用的后轮差速器为例,在过弯时,因外侧前轮轮胎所遇的阻力较小,轮速便较高;而内侧前轮轮胎所遇的阻力较大,轮速便较低。差速器的调整中要注意滚珠轮盘间的间隙,过松过紧都会使差速器性能降低,转弯时阻力小的车轮会打滑,从而影响赛车的过弯性能。好的差速机构,在电机不转的情况下,右轮向前转过的角度与左轮向后转过的角度之间误差很小,不会有迟滞或者过转动情况发生。

9

第四届全国大学生智能汽车邀请赛技术报告

第四章 硬件电路设计

本方案的电路设计采用模块化的设计思想。这种情况下可以有效地防止

因为某一种电路的损坏而使得整个电路板无法使用的结果,同时还可以有计划的排列各个模块板子的位置,使得小车的重心更加的合适,更加的优化。

硬件电路设计是自动控制器的基础。图 2.2.1 给出了硬件系统框图。硬件 设计应在可靠的基础上尽量简单化,使其满足稳定工作的基本要求。

4.1 电源模块设计

这次比赛所使用的电源是由 6 节相同型号的电池串联起来从而得到 7.2V、2A/h 可充电电池组提供。由于电路中的不同电路模块所需要的工作电压和电流 容量不相同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各 个模块所需要的电压。我们经过以下途径对其他几个模块进行供电。

经过两片稳压芯片 LM2940 稳压后,输出 5V 电压,分别对单片机、传感器 和速度检测供电。其原理图如图 4.1.1 所示,PCB图如图4.1.2所示。电机驱动模块的电源直接取自电池。

图4.1.1 电源模块原理图

10

第四届全国大学生智能汽车邀请赛技术报告

图4.1.2 电源模块PCB图

4.2 电机驱动模块设计

通过电机驱动模块,控制驱动电机两端电压来对模型车加速运行,或对其 进行制动。电机驱动采用 MC33886 做为驱动芯片,电路如图 4.2.1 所示。为了 增大驱动能力,减少单片机发热量,电路采用两片 MC33886 并联的方案。系统 使用 PWM 控制电机转速,充分利用单片机的 PMW 模块资源。电机 PWM 频率设定为 600Hz。

MC33886 芯片的工作电压为 5-40V,导通电阻为 140 毫欧姆,PWM 频率小于10KHz,具有短路保护、欠压保护、过温保护等功能。

从图 4.2.1 中可以看到,我们使用 PWM1 和 PWM2 作为电机驱动 PWM 信号, 在实际中,我们利用单片机的 PWM45 控制电机的正转,PMM01 控制电机的反转, 两个 PWM 通道级联可以使其输出更加精确。

11

第四届全国大学生智能汽车邀请赛技术报告

图4.2.1 电机驱动电路

4.3 舵机驱动模块

在模型车上,舵机的输出转角通过连杆传动控制前轮转向。车模采用大赛 统一提供的S3010 型舵机,工作电源为 6V。影响舵机控制特性的一个主要参数是舵机的响应速度即舵机输出轴转动角速度,S3010 型舵机响应速度为0.16S/60 度。

控制舵机的脉冲可以使用 MC9S12XS128 的 1 路 PWM 产生。单片机中有 8 路 独立的 PWM 输出端口,可以将其中相邻的 2 路 PWM 输出级联成一个 16 位 PWM 输 出。在单片机总线频率为 64MHz 的时候,改变 PWM 占空比常数可以改变输出脉 冲的宽度。而脉冲信号的宽度决定舵机输出舵盘的角度。

12

第四届全国大学生智能汽车邀请赛技术报告

4.4 速度检测模块

经过多次试验,初期速度传感器选用了光电对射型的GK122,使用光电码盘进行速度检测。这种检测方式安装简单,电路轻便,使用电源为5V,非常适合在类似的模型上使用,但缺点为检测精度不高,稳定性不好,容易出现丢齿漏齿现象,大大影响了整个系统的调速平滑性:

图4.4.1 光电对射型速度传感器

后期经过修改测试,为了提高检测精度,最后确定为使用精度较高的光电编码器,光电编码器使用5V-24V电源,输出5%-85%VCC的方波信号。这种测试方式电路较为复杂,需要增加外围电路,但相对于其带来的,测量精度的提高和测量稳定性的提高而言,终究利大于弊:

13

第四届全国大学生智能汽车邀请赛技术报告

图4.6.2 光电编码器

4.5 现场调试模块

由于赛道情况各有不同,弯道、直道数量个不相等,所以必须能在不改变程序的前提下进行参数的调试,调试的方式界面可以有数字按键,拨盘开关等,经过多种情况考虑,我们最后选择了拨盘开关,由8位开关分别进行参数选择和速度控制:

图4.7 拨码开关

14

第四届全国大学生智能汽车邀请赛技术报告

第五章 软件设计

5.1 主程序设计

程序主要用到S12芯片中的PWM模块、A/D模块、ECT模块、I/O模块等模块化设计。PWM模块主要用来控制舵机和电机的运转;ECT模块主要是用在了测速模块和数据采集,捕捉中断并计算瞬时速度;I/O模块主要是用来分配给按键,A/D模块主要采光电管的电压值变换。

5.2 软件系统总体设计

在整个系统设计中,用到了 4 个单片机基本功能模块:时钟模块、PWM 输出 模块、ECT 模块、AD 转换模块、。通过编写程序先对所用到的模块进行初始化, 并通过对相应数据寄存器或状态寄存器的读写,实现期望的功能。为实现所期 望的功能所需芯片资源如表 5.2.1 所示。

表 5.2.1 系统所用到的芯片资源 AD 模块 ECT 模块 PWM 模块 I/O模块 PAD0~PAD13 PT0 PWM23 PWM45,PWM01 PB0~PB7 光电传感器 速度检测脉冲计数 舵机控制 电机驱动电路 拨码开关 系统通过在主程序内循环调用信号检测、信号处理、路径计算和赛车控制等功能子模块,程序的执行为先对各个模块进行初始化,然后在主程序中完成 相应的功能。首先对各功能模块进行初始化,初始化流程图如图 5.2.1 所示。

15

第四届全国大学生智能汽车邀请赛技术报告

初始化完成以后,就在主程序中编写程序,完成智能车沿着跑道快速行驶的任务,其主程序的流程图如图5.2.2所示。

16

第四届全国大学生智能汽车邀请赛技术报告

图5.2.2 主程序流程图

17

第四届全国大学生智能汽车邀请赛技术报告

5.3 软件各功能模块设计

5.3.1 时钟模块

时钟基本脉冲是CPU工作的基础。MC9S12XS128微控制器的系统时钟信号,由时钟振荡电路或专用时序脉冲信号提供。MCU内部的所有时钟信号都来源于EXTAL引脚,也为MUC与其他外接芯片之间的通信提供了可靠的同步时钟信号。

S12的总线时钟是整个MCU系统的定时基准和工作同步脉冲,其频率固定为晶体频率的1/2。对于S12,可以利用寄存器SYNR、REFDV来改变晶振频率fOSCCLK,可以选用8MHz或16MHz外部晶体振荡器作外时钟。将SYNR设为3,REFDV设为1,可以得到64MHz的总线频率。

而锁相环产生的时钟频率fPLLCLK=2*fOSCCLK*(SYNR+1)/(REFDV+1),设计中我们将SYNR设为3,REFDV设为1,因此,总线时钟为16MHz,CPU工作频率为64MHz。

5.3.2 PWM输出模块

MC9S12XS128集成了8路8位独立PWM通道,通过相应设置可变成4个16位PWM通道,每个通道都有专用的计数器,PWM输出极性和对齐方式可选择,8个通道分成两组,共有4个时钟源控制。PWM0、PWM1、PWM4、PWM5为一组,使用时钟源ClockA和ClockSA;PWM2、PWM3、PWM6、PWM7构成另一组,使用时钟源ClockB和ClockSB。ClockA和ClockB均是由总线时钟经过分频后得到,分频范围1~128,通过寄存器PWMPRCLK来设置,ClockSA和ClockSB是分别通过ClockA和ClockB进一步分频后得到的,分频范围为1~512,分别通过寄存器PWMSCLA和PWMSCLB来设置,计算公式为:

ClockSA=ClockA/(2*PWMSCLA) ClockSB=ClockB/(2*PWMSCLB)

通过寄存器PWME来控制PWM0~PWM7的启动或关闭。

为了提高精度,我们将PWM0和PWM1,PWM2和PWM3,PWM4和PWM5级联,构成16

18

第四届全国大学生智能汽车邀请赛技术报告

位的PWM通道,级联时,2个通道的常数寄存器和计数器均连接成16位的寄存器, 3个16位通道的输出分别使用通道5、3、1的输出引脚,时钟源分别由通道5、3、1的时钟选择控制位决定。级联时,通道5、3、1的引脚变成PWM输出引脚,通道4、2、0的时钟选择没有意义。 通过寄存器PWMPRCLK、PWMSCLA、PWMSCLB、PWMCLK对各通道的时钟源进行设置。

PWM模块的初始化设置过程如下所示:

void PWM_init(void) {

PWME=0x00; PWMPRCLK=0x00; //舵机 PWMSCLB=40; PWMCLK_PCLK3=1; PWMPOL=0x08; PWMCAE_CAE3=0; PWMCTL_CON23=1; PWMPER23=8000; PWMDTY23=600;

PWME_PWME3=1; //反转 PWMSCLA=0x03; PWMCLK_PCLK1=1; PWMCAE_CAE1=0; PWMCTL_CON01=1;

PWMPER01=8888; //=600HZ PWMDTY01=0; //(PWMPERx+1) PWME_PWME1=0; //正转 PWMCLK_PCLK5=1; PWMCAE_CAE5=0; PWMCTL_CON45=1; PWMPER45=8888; PWMDTY45=8000; PWME_PWME5=1;

19

第四届全国大学生智能汽车邀请赛技术报告

}

5.3.3 ECT模块

S12得ECT具有8个输入(IC)/输出(OC)比较通道,可以通过设置TIOS寄存器选择输入或输出比较功能。ECT既可以作为一个时基定时产生中断,也可以用来产生控制信号。

模数递减计数器(MDC)是S12微控制器ECT特有,它是一个16位计数器,其外围配备了常数寄存器MCCNT和控制寄存器MCCTL,分别为MDC提供定时常数和时钟信号。通过寄存器TCTL4设定各个引脚的各种动作,初始化设置过程如下所示:

void ECT_Init(void) {

TCTL3=0x80; PACTL=0x40; PACNT=0;

RTICTL=0x1f; //8x2^12 =1ms CRGINT=0x80; //enable RTI Interrupt }

通过ECT模块,我们实现了对脉冲进行计数,检测智能车的速度,对速度进行闭环控制。

5.3.4 AD转换模块

AD转换模块由模拟量前端的8选1多路转换开关,采样缓冲器及放大器,逐次逼近式模拟量转换、控制部分及转换结果存储部分等组成。

AD转换所需要的时间周期是固定不变的,但采样时间和时钟频率可以通过寄存器ATDxCTL4(x为0或1)在一定范围内选择,其公式为:

ATDClock=BusClock*0.5/(PRS+1)

从公式和总线频率的取值范围可以得出A/D时钟频率范围满足:

500kHz≦ATDClock≦2MHz 通过寄存器ATDxCTL2(x为0或1)控制ATDx的启动、状态标志以及上电模式;寄存器ATDxCTL3(x为0或1)用于控制结果寄存器的影射,设置转换长度;寄存器ATDxCTL5(x为0或1)用于选择转换方式,选择转换

20

第四届全国大学生智能汽车邀请赛技术报告

通道,设置单/多通道转换和单次/连续转换模式以及选择对齐方式,写寄存器ATDxCTL5将会启动一次新的转换,如果写该寄存器时ATD正在进行转换,则转换操作将被中止。AD转换模块的初始化程序如下所示:

ATD0CTL1=0x00; //7:1-外部触发,65:00-8位精度,4:放电,3210:ch ATD0CTL2=0x40; //禁止外部触发, 中断禁止

ATD0CTL3=0xf0; //右对齐无符号,每次转换8个序列,NoFIFO,Freeze模式下继续转 ATD0CTL4=0x02; //采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1] ATD0CTL5=0x30; //6:0特殊通道禁止,5:1连续转换 ,4:1多通道轮流采样 ATD0DIEN=0x00; //禁止数字输入

AD转换结果存放在寄存器ATD0DRxL和ATD1DRxL,通过这些寄存器将结果传送到数组,用来检测道路信息。

5.4 路径识别与算法

路径识别为控制算法的核心内容,通过模型车前面的14个传感器检测路径,为了得到可靠的信号识别,我们对其进行了重复的实验,从实验我们得出,传感器检测到黑线时输出的平均电压为1V,检测到白线时输出的平均电压为0.3V。

系统通过8位A/D转换器采集光电传感器的信号,为了保证检测信号的稳定性,系统每100us对光电传感器扫描1次,连续扫描10次后,再对舵机进行控制。并把转换后的值暂时存储在内存中。采集到信号后,单片机要做出处理,我们采用了黑线中心检测算法。

5.4.1起跑线检测

赛道有一个长为1m的出发区, 如图5.4.1所示。

图5.4.1 起跑线示意图

21

第四届全国大学生智能汽车邀请赛技术报告

本次比赛中的一个规则:在模型车跑完了以后,要能在3米范围内停下来,这标志对起跑线的判断显得很重要,刚开始我们把十字交叉也当作起跑线来算,如果跑道出现十字交叉必然要经历两次。这样的话如果赛道有N个十字交叉,则智能车跑完一圈有多个传感器检测到黑线的次数为2N+1。不过比赛要求我们在比赛赛道出来之后,不能改变智能车,而我们事先无法得知比赛赛道,这样我们就无法得知有几个十字交叉,N的值就无法确定,要是采用这种方法只能加个拨码盘。经过反复实验,最终我们采用了只检测起跑线的方法,其思路为:当14个传感器任何相邻的两个传感器出现黑白跳变的次数大于4次,并且是如表5.4.5所表示的情况中的一种就表示经过一次起跑线。 表5.4.5 传感器经过起跑线可能出现的情况 1 2 3 4 5 6 7 8 9 10 11 1 x 0 0 1 0 0 x x 1 x 1 x 0 0 1 1 0 0 x 1 x 1 x x 0 0 1 0 0 x x 1 x 1 x 0 0 1 1 0 0 x 1 x 1 x x 0 0 1 0 0 x x x x 1 x 0 0 1 1 0 0 x x x 1 x x 0 0 1 0 0 x x x x x 1 0 0 1 1 0 0 x x x 1 x x 0 0 1 0 0 说明: 12 x x x x 1 x x x x 13 x x x x x 1 1 1 1 14 1 1 1 x x x x x x 第一行的114表示14个传感器,且是从左到右来表示的。

1表示传感器检测到黑线,0表示传感器没检测到黑线,x表示即可以取0也可以取1。

由于单片机的执行速度很快,本设计中,我们还用了一个变量start_count来统计经过起跑线时的连续检测到的次数,当start_count=10时,说明已经连续检测到起跑线10次,这时说明小车通过起跑线一次。

5.5 系统控制

系统的控制分为小车转向角控制和速度控制两部分。其控制部分的程序流程图如图5.5.1所示。

22

第四届全国大学生智能汽车邀请赛技术报告

5.5.1 小车转向角控制

小车转向角的控制通过输入PWM信号进行开环控制。根据检测的不同路径,判断出小车所在位置,按不同得区间给出不同得舵机PWM控制信号,小车转过相应得角度。考虑到实际舵机的转向角与所给PWM信号得占空比基本成线性关系,所以舵机控制方案采用查表法。在程序中预先创建控制表,路径识别单元检测当前的路况,单片机通过查表可知当前的赛道,然后给出相应的PWM信号控制舵机转向。

5.5.2 小车速度控制

本设计中采用了一种参数自整定的PID模糊控制算法对小车速度进行闭环控制。小车在前进过程中,根据不同的路况给出不同的速度给定值,通过模糊控制器进行速度调节,以缩短小车的速度控制响应时问,减小稳态误差。系统将小车的角度变化率反馈给模糊控制器,通过修正规则进行模糊参数的自整定。其程序流程图如图5.5.2所示。

23

第四届全国大学生智能汽车邀请赛技术报告

图5.5.2 速度控制流程图

5.6 系统控制策略

5.6.1 提前转向

要克服滞后,需要提前判断弯道,早打方向。一种办法是根据传感器的数据计算出的几何参数来判断转弯半径,但由于受车的入弯角度的分辨率及传感器

24

第四届全国大学生智能汽车邀请赛技术报告

的分辨率等不确定因素,以及入弯距离的限制,计算出的弯道半径并不准确。另一办法是根据黑线位置变化的时间,选择不同的angle_data。因为速度越快转弯半径越小,黑线由中间传感器变化到相邻传感器所需时间就越短,由此选择的转向Map转角也越大,提前给出大转向。

5.6.2 弯道刹车

想要增加赛车的直道速度,并且保证模型车进弯道的稳定性以及可靠性,必须在模型车进弯时把车速降低到可以顺利转弯的速度,因此要采用弯道刹车。根据弯道半径越小,车速越快,传感器信号变化就越快,我们就根据传感器信号变化的快慢来确定刹车的力度。程序流程图如图5.5.2所示。

5.5.3 直道限速

虽然在弯道处,短暂的减速可以降低智能车的速度,但是其也是有局限性的。当智能车的速度过大时,即使有短暂的刹车,但由于惯性的作用智能车还是会以很高的速度冲出跑道,尤其是从较长的直道进入弯道时。对此,在智能车直线行驶的过程中也对智能车进行了适当的限速。

5.5.4 软件滤波

由于传感器容易受到太阳光,日光灯等外界因素的影响,因此必须对其增加抗干扰措施,滤波可以采用软件或硬件两种办法,通过测试,我们发现硬件滤波的效果不好,而且还要单独做一个电路板,这样增加了车身的重量,减小了智能车的灵活性。所以,我们最终采用软件滤波。

软件滤波的思路为:连续采集10次数据,采集的周期为50us,那么采集10次数据所用的时间为500us,这样舵机也是响应不过来,因此不会影响小车的正常行驶,接着我们对这10个数进行从小到大的排序,然后去掉三个最小值和三个最大值,在把剩下的四个值求平均值,最后把值传给赛车当前位置参数car_positn,这样就达到了软件滤波的作用。

25

第四届全国大学生智能汽车邀请赛技术报告

5.6 PID控制

图5.2 PID控制器工作原理

PID控制策略其结构简单,稳定性好,可靠性高,并且易于实现。其缺点在于控制器的参数整定相当繁琐,需要很强的工程经验。相对于其他的控制方式,在成熟性和可操作性上都有着很大的优势。所以最后我们选择了PID的控制方式。

在小车跑动中,因为不需要考虑小车之前走过的路线,所以,我们舍弃了I控制,将小车舵机的PID控制简化成PD控制。

本方案中舵机转角控制采用位置式的PD控制,速度闭环控制采用了增量式PID控制。在本方案中,使用试凑法来确定控制器的比例、积分和微分参数。

比例调节(P)作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。 积分调节(I)作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

微分调节(D)作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而

26

第四届全国大学生智能汽车邀请赛技术报告

当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。

第六章 开发制作与调试

6.1 开发工具

S12系列微控制器具有一个由片内仿真、触发和跟踪硬件构成的单线背景调试模式(BDM),因此它可以通过使用两种开发工具:简单串行电缆或低成本的BDM,来完成调试功能。在本次比赛中,我们所采用的赛车软件开发工具为清华大学开发的专门面向于Motorola S12系列微控制器的BDM调试工具以及由Metrowerk公司开发的CodeWarrior编译器。

赛车的硬件开发工具主要为Protel 99SE,通过该软件来完成电路原理图的绘制以及PCB板制作。

6.1.1 软件开发平台

此次智能车大赛的软件开发平台为Code Warrior开发软件。其使用界面如图6.1.1所示。

图6.1.1 CodeWarrior使用界面

27

第四届全国大学生智能汽车邀请赛技术报告

Code Warrior是面向以HC12和S12为CPU的单片机嵌入式应用开发的软件包,包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器等。在CodeWarrior软件中可以使用汇编语言或C语言,以及两种语言的混合编程。

用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。

如图6.1.2所示,利用BDM和CodeWarrior自带的hiwave.exe用户可以进行一系列的调试工作,如监视寄存器状态、修改PC指针、设置断点等,这样能快速地帮助我们找到软件和硬件的问题。

图6.1.2 hiwave 程序调试环境

6.2 系统调试

系统的调试和实验是工程设计中一个很重要的环节。在完成系统硬件和软 件设计后,要进行系统的调试,以检查系统设计的完整性和有效性。调试主要包括硬件调试和软件调试两部分。

28

第四届全国大学生智能汽车邀请赛技术报告

6.2.1 硬件调试

首先是对设计的电源电路、电机驱动电路和速度检测电路等硬件电路板进 行调试。再对传感器进行调试。传感器的调试分为机械调试和电路调试。机械调试的主要任务是保证传感器组位于小车的最前端,并与地面保持合适的距离。电路调试的目的是使各个传感器的电压输出值均保持在一定值附近,其操作过程 是将传感器电路放于白纸上一定高度处,调节电位器使传感器的电压输出降为 一定值左右。单步执行程序,观察各个寄存器、变量、数组的变化是否正确。 此处不使用黑纸的原因是由于黑线的吸收能力强,对传感电路的反馈信号影响 大,而白纸的吸收能力弱,电位器阻值对反馈信号的影响明显。

接着调试舵机,可以先不使用直流电机,将小车放于白纸上,用 25mm 宽的 黑线在传感器下移动,看舵机的转向与设置是否一致,然后在跑道上,用手推小车,让车经过符合比赛规则中要求的不同曲率半径的轨迹。对于不同的传感 器会检测到不同的信号。记下针对不同传感器对不同方向检测到信号的情况, 让其中较为理想的舵机转角,作为一组经验值,待软件设计时使用。

接着对直流电机进行调试。舵机和传感电路调试完成后,将直流电机接入 电路,先不将小车放到跑道上,在白纸上稍微将后轮悬空,用黑线在下面移动,

用示波器观测电机两端的 PWM 信号是否按要求改变,确定无误后可以拿到跑道 上进行试车。让小车在一段直道行驶后,进入一曲率半径为最大值的曲线。反复试验,就可得出小车不驶出轨道的最大占空比。

最后对整体进行调试。各部分子电路调试结束后,对小车整体进行调试。 先令小车以某一较低的速度行驶,通过弯道时保证有合适的舵机转角。在舵机 转角调试过程中得到的经验值的基础上进行修改。利用软件对参数进行修改, 提高小车直流电机的转速和修改舵机转角。如此反复进行,直到得到较为合适 的经验值。先让小车行驶稳定,在此基础上逐步提高小车速度。

6.2.2 软件调试

在软件设计中,要用到 ECT 模块、ATD 模块、PWM 模块、电源模块等。在编 写主程序前,要先对各个模块分别进行调试,并编写各部分的子程序。

29

第四届全国大学生智能汽车邀请赛技术报告

根据系统电路板的资源,本设计方案中,使用 PAD3—PAD15 对传感器进行 采样,PWM2 和 PWM3 口级联后控制直流电机正转,PWM6 和 PWM7 级联后控制直流 电机正转,PWM0 和 PWM1 级联后控制舵机转角。

调试 ATD 模块时,先使用 BDM 模块将子程序下载到芯片内,然后分别在 ATD 的输入端利用稳压源产生 0-+5V 的电压,观察 CodeWarrior 的 Memory 窗口中各 个输入的电压值在误差允许范围内相等,说明该子程序正确。

调试 ECT 模块时,可以通过系统电路板上 PT0 口外接不同频率的固定脉冲 信号,利用软件产生一定时间,在该时间段内读取脉冲数,将 PT0 口在该段时 间内读取的脉冲数送到 B 口显示,通过读取 B 口显示的状态,来检测定时器和 脉冲累加器的设置是否正确。

为检验 PWM 模块子程序,可以编写输出一定占空比的 PWM 波形子程序,从 PWM 端口接入示波器,通过示波器观察输出波形是否与设定值相同,若相同则程序正确。

在每一部分子程序调试通过后,结合外围电路对所有子程序进行整合,根 据小车工作原理,编写出完整的主程序。在 CodeWarrior 界面完成程序编译后, 通过 BDM 工具,将程序下载到 MC9S12XS128 微处理器中,然后进行小车的调试。

30

第四届全国大学生智能汽车邀请赛技术报告

第七章 结论

7.1 模型车主要技术参数说明

改装后的模型车的主要技术参数如表7.1.1所示。 表7.1.1 模型车技术参数统计 项目 路径检测方法(赛题组) 车模几何尺寸(长、宽、高)(毫米) 车模轴距/轮距(毫米) 车模平均电流(匀速行驶)(毫安) 电路电容总量(微法) 传感器种类及个数 新增加伺服电机个数 赛道信息检测空间精度(毫米) 赛道信息检测频率(次/秒) 主要集成电路种类/数量 车模重量(带有电池)(千克) 参数 光电组 长395 宽245 高100 轴距198 轮距前160 后162 1600MA 579 15个 0个 75 1MS S12 33886 2940 1.6kg 7.2 总结

智能车的设计与制作是从2008年3月开始的,经过4个月的努力,本组三个成员在指导老师的耐心指导下完成了整个设计过程。回顾这4个月的情况,我们从以下四个方面进行总结。

31

第四届全国大学生智能汽车邀请赛技术报告

7.2.1 智能车的制作

整部模型车的制作,从最初的方案讨论、传感器的选择,到方案确定,电路设计、控制策略的确定、算法的实现和调试,我们3名队员齐心协力,发挥各自的优点,分工合作,最后完成了整个制作过程。我们模型车的特点如下:

(1)调整车模前轮内倾角,保证车模加速及制动性能。

(2)四块MC33886并联,可正反双向控制电机,提高驱动制动能力。 (3)舵机采用6V电源独立供电,提高其响应速度和稳定性。 (4)起跑线识别、赛道状况识别、转角参数均采用模糊控制策略。 (5)赛道寻迹采用内侧检测方式,加速采用全功率驱动、减速采用PID控制,增强了系统稳定性、最大限度提高绝对车速。

7.2.2 开发所遇到的问题和解决方案

回顾小车制作及调试过程中所遇到的问题,我们进行了总结。

(1)路径检测传感器临近干扰和功率过大,我们选择单独对传感器供电,这个问题得到了比较的解决。

(2)模型车速度和转弯矛盾,速度提高了,转弯就来不急,要顺利的转弯速度就上不去,为了协调这个问题,必须找到哪里是直线,哪里是弯道。模型车在直线上跑的速度要快,而在弯道上跑的速度要慢,我们采用将赛道的信息记忆下来,而且还采用模糊控制算法,这个问题就得到了解决。

(3)MC33886驱动问题,在调试过程中,有时候一片发热,另一片不发热,还有用一段时间后驱动力下降。我们采用把MC33886独立出来,远离单片机的引脚,将四片MC33886并联,使得分布参数均匀,从而使得四片MC33886阻抗匹配,发热一致,大大降低发热量。

7.2.3 存在问题

一个良好的系统仍然需要不断完善和更新,为了保证车子能够稳定达到最高

32

第四届全国大学生智能汽车邀请赛技术报告

平均速度,智能车系统的设计还是在不断的改进的过程。

在道路检测试验所采用的是模拟量输出的光电传感器,在调试时发现检测距离很短,大影响了车的转弯时间。在电源的管理方面,有一些问题,待以后解决。

有部分模块的电路板没有制PCB板,增加了车的重量;部分导线的松动都会影响整个系统的稳定性。

7.2.4 心得体会

自我们组队以来,每个成员都自觉积极地投入到智能车的调试制作过程中来。从问题的提出、分析、解决,到方案的优化、改进、创新,都体现了我们集体的智慧和团队的精神。

在准备比赛的过程中,我们不仅可以把所学的理论知识应用于实际,还自学了大量新学科新知识。智能车的设计涉及了控制、模式识别、传感技术、汽车电子、电子信息、计算机和机械等多个学科,不仅开拓了视野,也提高了动手实践能力。

这部小小的智能车,从整体方案设计到车的成型调试,从传感器排布到机械结构设计,从控制算法研究到模块程序编写,整个过程无不凝聚了队员和老师们的辛勤汗水。

对于这次比赛,取得好成绩固然是每个人的心愿,更为宝贵的是在这个过程中我们所学到的与人合作、协调分工和积极自信的团队精神。这次磨练了我们对知识融合和实践动手能力。

对在模型车的制作中我们得出了一些经验,总结如下:

1、 要多试多跑。在调试程序时,不能仅仅满足于在台架上实验,应该更多地让模型车到赛道上行驶,这样才能比较客观地评价控制策略的优劣,并能及时发现存在的问题隐患。

2、 参数调试很重要。在某些时候会有一些比较新颖的控制策略,但是应用之后实际的行驶效果并不是很好,此时不能轻易就否定策略不佳,而应该将策略中某些参数,做一些研究进行优化。

3、 不要忽视机械因素。当模型车的速度遇到一个新的瓶颈,在尝试了新的控制策略、提高舵机响应等各种方法都没有效果时,就不要忽视了机械方面的

33

第四届全国大学生智能汽车邀请赛技术报告

因素,应及时检查运动部件是否出现松动,两车轮转角是否符合,并作出相应的改进。

34

本文来源:https://www.bwwdw.com/article/h4k6.html

微信扫码分享

《第四届飞思卡尔华德学院扬帆队报告 - 图文.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文
范文搜索
下载文档
Top