基于飞思卡尔k60芯片控制下的智能汽车 皇甫_图文

学 号_ 1109111015
毕业设计

课程名称 基于飞思卡尔 k60 芯片控制下的智能汽车

学生姓名 院部 专业班级 指导教师

皇甫 趁心 电气工程学院
11 自动化 臧大进

2015 年 5 月

摘要
智能汽车技术是一种在无人干预的情况下自动跟踪预定轨迹,最终实现自 动驾驶的高新技术。智能车辆系统的基本功能是,利用各类传感器感知环境信 息,做出控制决策,使得车辆按照期望路线行驶或到达期望目标点。智能汽车 的设计涉及计算机科学、传感器检测、多元信息融合、信息通讯、人工智能与 模式识别以及自动控制等多个领域的交叉技术。
从第五届的电磁组开始到第九届比赛,电磁小车已经在智能车的赛道上奔 驰了 5 年,从第六届取消了前瞻长度的限制,电磁车速度开始有了质的飞跃, 第七届改成直立状态行走后,虽然对速度有一定的影响,但也以其独特魅力和 新的技术挑战让参赛者向往不已,第八届改回四轮行进方式并采用了 A 车模, 小车的速度再次出现大幅提升,第九届电磁组小车依然从采用四轮行进,不过 组委会为电磁组添加了直角道,增加了电磁组的难度。
本文中,我们小组通过对小车设计制作整体思路、电路、算法、调试、车 辆四轮定位等的介绍,详尽地阐述了我们的创意和思路,具体表现为软件的升 级改进,硬件电路的删减改进以及车辆机械参数的调配,特别是对算法的改进, 我们花了不少的心血,从之前的对算法的似懂非懂,到后来对程序的大打删改, 我们不知道出现过多少错误,也不知道遇到多少挫折,最终写出了一套属于我 们自己适合我们自己小车的程序算法。
从参赛前的校内选拔到比赛的结束,我们程方如意对遇到了很多的困难和 挫折,从刚开始的浮夸到后来的急躁再到最终我们心爱的小车成功的跑起来, 我们查阅了很多的相关资料,涉猎控制、模式识别、传感技术、汽车电子、电 气、计算机、机械等多个学科,通过这次比赛,我们对我们的专业知识有了更 深的认识,学到了我们从书上学习不到的知识,我们学会了团结,学会了注意 细节,只有团结,抓住每一个细节,才能把事情做成功!在这次比赛中我们受 到了许多人的帮助,其中最要感谢的是我们的指导老师臧大进老师,感谢您在 整个比赛中对我们的指导和帮助,其次还有帮助我们的学长,以及各位同仁、 网友,没有你们我们也走不到今天,再次也一一感谢!最后我要特别感谢我的 两位队友,是他们把我带上了飞思卡尔智能汽车这条道路,并一路支持和帮助 我一起解决各类问题,正是我们三个团结一致,精诚合作才有了我们最后的成 功!谢谢你们。

目录
目录
摘要 ............................................................................................................................................. - 1 第一章 方案设计 ..................................................................................................................... - 4 -
1.1 系统总体方案的设计 .................................................................................................. - 4 1.2 系统总体方案设计图 .................................................................................................. - 7 第二章 智能车机械结构调整与优化 ..................................................................................... - 8 2.1 智能车车体机械建模 .................................................................................................. - 8 2.2 智能车前轮定位的调整 .............................................................................................. - 9 -
2.2.1 前轮前束 .......................................................................................................... - 9 2.2.2 主销后倾角 .................................................................................................... - 11 2.2.3 主销内倾角 .................................................................................................... - 11 2.2.4 车轮外倾角 .................................................................................................... - 11 2.3 智能车转向机构调整优化 ........................................................................................ - 12 2.4 智能车后轮减速齿轮机构调整................................................................................. - 13 2.5 编码器的安装 ........................................................................................................... - 14 2.6 智能车重心位置的调整 ........................................................................................... - 14 2.7 其它机械结构的调整 ................................................................................................ - 14 第三章 电路设计说明 ........................................................................................................... - 16 3.1 主控板和驱动板的硬件设计 ................................................................................... - 16 3.1.1 电源管理模块 ............................................................................................... - 16 3.1.2 电机驱动模块 ............................................................................................... - 18 3.1.3 数模信号转换 ............................................................................................... - 19 3.1.4 单片机及其他电路部分设计........................................................................ - 19 3.2 智能车传感器模块设计 ........................................................................................... - 22 3.2.1 电感传感器的原理 ........................................................................................ - 22 3.2.2 磁传感器信号处理电路................................................................................. - 22 3.2.3 传感器的布局原理及改进............................................................................. - 25 第四章 智能车控制软件设计说明 ....................................................................................... - 28 4.1 底层初始化 ................................................................................................................ - 28 4.2 传感器采集处理算法 ................................................................................................ - 29 4.3 寻线行驶算法实现 .................................................................................................... - 30 4.3.1 定位算法 ........................................................................................................ - 30 4.3.2 基于位置式 PID 的方向控制......................................................................... - 32 4.3.3 基于增量式 PID 的速度控制......................................................................... - 34 4.3 弯道策略分析 ............................................................................................................ - 34 4.4 弯道策略制定 ............................................................................................................ - 36 第五章 开发工具、制作、安装、调试过程说明................................................................ - 39 -
-2-

目录 5.1 开发工具 ................................................................................................................... - 39 5.2 调试过程 ................................................................................................................... - 39 -
5.2.1 上位机系统 ................................................................................................... - 39 5.2.2 控制算法的参数整定 ................................................................................... - 41 5.3 整车机械方面的调整 ................................................................................................ - 42 第六章 模型车的主要技术参数说明 ................................................................................... - 43 结论 ........................................................................................................................................... - 44 参考文献 ................................................................................................................................... - 45 -
-3-

第一章 方案设计
第一章 方案设计
本章主要简要地介绍智能车系统总体设计思路,在后面的章节中将整个系 统分为机械结构、控制模块、控制算法等三部分对智能车控制系统进行深入的 介绍分析。 1.1系统总体方案的设计
根据第九届飞思卡尔组委会公布的竞赛规则及相关规定,智能车系统采用 大赛组委会统一提供的C型车模,控制器我们则选择了组委会允许下的32位微控 制器k60作为核心控制器,在IAR开发环境中进行软件开发。赛车的位置信号由 车体前方固定在前瞻上的六路电磁传感器采集,经内部AD进行模数转换后,加 以处理后输入到控制核心,作为处理智能车运动控制的核心信息。通过欧普龙 (500线)编码器(两个)测速模块来检测车速,并采用K60 的输入捕捉功能进 行脉冲计数计算速度及差速控制;电机转速控制采用 PID 控制,通过 PWM 控 制驱动电路调整电机的转速,完成智能车速度的闭环控制。
图 1.1.1 电磁车整体布局 我们使用红树伟业的 BLK-MD-BC04-B 蓝牙模块与上位机通讯,发送小车运行的各项参数, 从而对小车进行调试。
-4-

第一章 方案设计
图 1.1.2 蓝牙模块 产品特征: 1、电源电压 3.3V,未配对时电流约 2-10mA,配对后约 20mA,绝对禁止接反电源! 2、接口电平 3.3V,可以直接连接各种单片机(51,AVR,PIC,ARM,MSP430 等),5V 单片机也可直接连接,无需 MAX232 也不能经过 MAX232! 3、led 引脚指示蓝牙连接状态,输出脉冲表示没有蓝牙连接,输出高表示蓝牙已连接并打 开了端口 状态指示 LED:PIO(1) 用于指示蓝牙模块所处状态,LED 灯闪烁方式与蓝牙模块状态对应见下表: 4、模块与电脑接,接 MAX3232 芯片后接到电脑的串口
5、空旷地有效距离 15 米左右,但不对此距离的连接质量做保证 6、配对以后当全双工串口使用,无需了解任何蓝牙协议,但仅支持 8 位数据位、1 位停 止位、无奇偶校验的通信格式,这也是最常用的通信格式,不支持其他格式。 7、在未建立蓝牙连接时支持通过 AT 指令设置波特率、名称、配对密码,设置的参数掉电 保存。蓝牙连接以后自动切换到透传模式 8、体积小巧(2.7cm*1.3cm),工厂贴片生产,保证贴片质量。
-5-

第一章 方案设计
9、该链接为从机,从机能与各种带蓝牙功能的电脑、蓝牙主机、大部分带蓝牙的手机、 PDA、PSP 等智能终端配对,从机之间不能配对 主从模式设置: 硬件设置: 主模式:1、将 PI0(4)—软/硬件主从设置口:置低(或悬空)为硬件设置主从模式
2、将 PIO(5)—硬件主从设置口:置 3.3V 高电平
从模式:1、将 PI0(4)——软/硬件主从设置口:置低(或悬空)为硬件设置主从模式 2、将 PIO(5)——硬件主从设置口:置地(或悬空)
软件设置: 主模式:1、将 PI0(4)——软/硬件主从设置口:置 3.3V 高电平
2、打开超级终端或其他串口调试工具设置波特率 9600,数据位 8 位,停止位 1 位, 无校验位,无流控制。
3、串口发送字符“AT+ ROLE1 \r\n”,成功返回“+ROLE=1\r\n OK\r\n”,其中\r\n 为回车换行
从模式:1、将 PI0(4)——软/硬件主从设置口:置 3.3V 高电平 2、打开超级终端或其他串口调试工具设置波特率 9600,数据位 8 位,停止位 1 位,
无校验位,无流控制。 3、串口发送字符“AT+ ROLE0 \r\n”,成功返回“+ROLE=0\r\n OK\r\n”,其中\r\n
为回车换行 为简便实用,我们采用了硬件设置方案。
-6-

1.2系统总体方案设计图
干簧管

六路电感传感器

第一章 方案设计

运放模块

上位机

欧普龙 编码 器

K60 微控制器

蓝牙莫款

直流电机

电机驱动模块

舵机转向控制

键盘,拨档开关

图 1.2 系统总体方框图
根据以上系统方案设计,赛车共包括七大模块:四轮定位、K60 主控模块、 传感器模块、电源模块、电机驱动模块、速度检测模块、蓝牙调试模块。各模 块的作用如下:
四轮定位,从机械方面提高智能车的性能指标不容忽视。 K60 主控模块,作为整个智能车的“大脑”,将采集 10mh 电感传感器放大信 号、欧普龙编码器脉冲信号等,根据所编写控制算法做出控制决策,驱动直流 电机和伺服电机运行从而完成对智能车的控制。 电感传感器模块,是智能车的“眼睛”,可以通过一定的前瞻性,提前感知 前方的赛道信息,为智能车的“大脑”做出决策提供必要的依据和充足的反应 时间。 电源模块,为整个电路系统提供稳定电源。 电机驱动模块,驱动直流电机和伺服电机完成智能车的加减速控制和转向 控制。 速度检测模块,检测反馈智能车后轮的转速,用于速度的闭环控制。 蓝牙调试模块主要用于智能车系统的功能调试、赛车状态监控等方面。

-7-

第二章 智能车机械结构调整与优化
第二章 智能车机械结构调整与优化
智能车系统任何的控制都是在一定的机械结构基础上实现的,因此在设计 整个软件架构和算法之前一定要对整个车模的机械结构有一个感性的认识,然 后建立相应的数学模型。从而再针对具体的设计方案来调整赛车的机械结构, 并在实际的调试过程中不断的改进和提高。本章将主要介绍智能车车模的机械 结构和调整方案。
2.1 智能车车体机械建模
此次比赛选用的赛车车模采用 A 型车模。赛车机械结构只使用竞赛提供车 模的底盘部分及转向和驱动部分。控制采用前轮转向,后轮驱动方案。
我们对机械结构的要求是:简单而高效。我们在不断的尝试后确定了以下 的设计方案:
图 2.1 智能车器件布局图
-8-

第二章 智能车机械结构调整与优化
2.2 智能车前轮定位的调整
现代汽车在正常行驶过程中,为了使汽车直线行驶稳定,转向轻便,转向 后能自动回正,减少轮胎和转向系零件的磨损等,在转向轮、转向节和前轴之 间须形成一定的相对安装位置,叫车轮定位,其主要的参数有:主销后倾、主 销内倾、车轮外倾和前束。智能车竞赛模型车的四项参数都可以调整,但是由 于模型车加工和制造精度的问题,在通用的规律中还存在着一些偶然性。
2.2.1 前轮前束
为什么要有前束? 1.首先,为了使司机握的方向盘能够自动保持在中央,不乱转,减轻司机的疲 劳,就要使主轴后倾。这就如同自行车的前叉子后倾一样,可以使双手轻松。 2.但是,主轴后倾之后,前轮会有高速的小摆动,使车身不稳。为了克服前轮 的小摆动,就要失主销外倾,速度越慢,道路越不平,则需要主销外倾的角度 越大,如四轮拖拉机。由于两个前轮外倾的方向相反,互相抵消了前轮的小摆 动,车身更加平稳了。 3.但是,随之而来的是:由于主销外倾,前轮也是外倾的,这样前轮就有一个 向外拐的趋势,也就是左侧的前轮向左拐,右侧的前轮向右拐,前轮又被安装 在车上,拐不了,因此造成轮胎的严重磨损。前束就是为了解决这个磨损问题 的,将两侧的轮子向内侧撇一个角度,正好抵消主销外倾造成的轮胎跑偏,使 轮胎可以沿直线前进,这样就没有干磨的现象了,从而达到了降低轮胎磨损的 目的。
这就是前束的来历,它最初是从减轻司机的劳动强度入手的,一环一环演变 而来的。主轴后倾----主销外倾----前束,一环扣一环。
当车辆使用很长时间后,用户发现方向转向沉重、发抖、跑偏、不正、不归 位或者轮胎单边磨损,波状磨损,块状磨损,偏磨等不正常磨损,以及用户驾 驶时,车感漂浮、颠簸、摇摆等现象出现时,就应该考虑检查一下车轮定位值, 看看是否偏差太多,及时进行修理。
前轮定位包括主销后倾角、主销内倾角、前轮外倾角和前轮前束四个内容。 后轮定位包括车轮外倾角和逐个后轮前束。这样前轮定位和后轮定位总起来说 叫车轮定位,也就是常说的四轮定位。车轮定位的作用是使汽车保持稳定的直 线行驶和转向轻便,并减少汽车在行驶中轮胎和转向机件的磨损。 主销后倾角:
从侧面看车轮,转向主销(车轮转向时的旋转中心)向后倾倒,称为主销后倾 角。设置主销后倾角后,主销中心线的接地点与车轮中心的地面投影点之间产 生距离(称作主销纵倾移距,与自行车的前轮叉梁向后倾斜的原理相同),使车 轮的接地点位于转向主销延长线的后端,车轮就靠行驶中的滚动阻力被向后拉,
-9-

第二章 智能车机械结构调整与优化
使车轮的方向自然朝向行驶方向。设定很大的主销后倾角可提高直线行驶性能, 同时主销纵倾移距也增大。主销纵倾移距过大,会使转向盘沉重,而且由于路 面干扰而加剧车轮的前后颠簸。 主销内倾角:
从车前后方向看轮胎时,主销轴向车身内侧倾斜,该角度称为主销内倾角。 当车轮以主销为中心回转时,车轮的最低点将陷入路面以下,但实际上车轮下 边缘不可能陷入路面以下,而是将转向车轮连同整个汽车前部向上抬起一个相 应的高度,这样汽车本身的重力有使转向车轮回复到原来中间位置的效应,因 而方向盘复位容易。 此外,主销内倾角还使得主销轴线与路面交点到车轮中心平面与地面交线的距 离减小,从而减小转向时驾驶员加在方向盘上的力,使转向操纵轻便,同时也 可减少从转向轮传到方向盘上的冲击力。但主销内倾角也不宜过大,否则加速 了轮胎的磨损。 前轮外倾:
从前后方向看车轮时,轮胎并非垂直安装,而是稍微倾倒呈现“八”字形张 开,称为负外倾,而朝反方向张开时称正外倾。使用斜线轮胎的鼎盛时期,由 于使轮胎倾斜触地便于方向盘的操作,所以外倾角设得比较大。现在汽车一般 将外倾角设定得很小,接近垂直。汽车装用扁平子午线轮胎不断普及,由于子 午线轮胎的特性(轮胎花纹刚性大,外胎面宽),若设定大外倾角会使轮胎磨偏, 降低轮胎摩擦力。还由于助力转向机构的不断使用,也使外倾角不断缩小。尽 管如此,设定少许的外倾角可对车轴上的车轮轴承施加适当的横推力。 前轮前束:
脚尖向内,所谓“内八字脚”的意思,指的是左右前轮分别向内。采用这种 结构目的是修正上述前轮外倾角引起的车轮向外侧转动。如前所述,由于有外 倾,方向盘操作变得容易。另一方面,由于车轮倾斜,左右前轮分别向外侧转 动,为了修正这个问题,如果左右两轮带有向内的角度,则正负为零,左右两 轮可保持直线行进,减少轮胎磨损。
所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线 与纵向中心线的夹角。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨 损。前轮在滚动时,其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动 时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。像内八字那样前端小 后端大的称为“前束”,反之则称为“后束”或“负前束”。
在模型车中,前轮前束是通过调整伺服电机带动的左右横拉杆实现的。主 销在垂直方向的位置确定后,改变左右横拉杆的长度即可以改变前轮前束的大
- 10 -

第二章 智能车机械结构调整与优化
小。在实际的调整过程中,我们发现较小的前束,约束 02mm 可以减小转向阻力, 使模型车转向更为轻便,但实际效果不是十分明显。
虽然模型车的主销后倾角、主销内倾角、车轮外倾角和前束等均可以调整, 但是由于车模加工和制造精度的问题,在通用的规律中还存在着不少的偶然性, 一切是实际调整的效果为准。
2.2.2 主销后倾角
主销后倾角是指在纵向平面内主销轴线与地面垂直线之间的夹角。它在车 辆转弯时会产生与车轮偏转方向相反的回正力矩,使车轮自动恢复到原来的中 间位置上。所以,主销后倾角越大,车速越高,前轮自动回正的能力就越强, 但是过大的回正力矩会使车辆转向沉重。通常主销后倾角值设定在 1°到 3°。
模型车通过增减黄色垫片的数量来改变主销后倾角的,由于竞赛所用的转 向舵机力矩不大,过大的主销后倾角会使转向变得沉重,转弯反应迟滞,所以 设置为 0°,以便增加其转向的灵活性。 2.2.3 主销内倾角 主销内倾角是指在横向平面内主销轴线与地面垂直线之间的夹角,它的作用也 是使前轮自动回正。角度越大前轮自动回正的作用就越强,但转向时也就越费 力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。通常汽车的 主销内倾角不大于 8°。
对于模型车,通过调整前桥的螺杆的长度可以改变主销内倾角的大小,由 于过大的内倾角也会增大转向阻力,增加轮胎磨损,所以在调整时可以近似调 整为 0°3°左右,不宜太大。
主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。不 同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速 时主销后倾的回正作用大,低速时主销内倾的回正作用大。
2.2.4 车轮外倾角
前轮外倾角是指通过车轮中心的汽车横向平面与车轮平面的交线与地面垂 线之间的夹角,对汽车的转向性能有直接影响,它的作用是提高前轮的转向安 全性和转向操纵的轻便性。在汽车的横向平面内,轮胎呈“八”字型时称为“负 外倾”,而呈现“V”字形张开时称为正外倾。如果车轮垂直地面一旦满载就易 产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。所以事先将车 轮校偏一个正外倾角度,一般这个角度约在 1°左右,以减少承载轴承负荷,增
- 11 -

第二章 智能车机械结构调整与优化
加零件使用寿命,提高汽车的安全性能。 模型车提供了专门的外倾角调整配件,近似调节其外倾角。由于竞赛中模
型主要用于竞速,所以要求尽量减轻重量,其底盘和前桥上承受的载荷不大, 所以外倾角调整为 0°即可,并且要与前轮前束匹配。
2.3 智能车转向机构调整优化
理想的转向模型,是指在轮胎不打滑时,忽略左右两侧轮胎由于受力不均 产生的变形,忽略轮胎受重力影响下的变形时车辆的的转向建模。在这种理想 的模型下,车体的转向半径可以计算得到。
图 2.2 智能车转向示意图
如图 2.2,假设智能车系统为理想的转向模型,且其重心位于其几何中心。 车轮满足转向原理,左右轮的轴线与后轮轴线这三条直线必然交于一点。
转向机构在车辆运行过程中有着非常重要的作用。合适的前桥和转向机构 可以保证在车辆直线行驶过程中不会跑偏,能保证车辆行驶的方向稳定性;而 在车辆转向时,合适的转向机构可以使车辆自行回到直线行驶状态,具有好的 回正性。正是由于这些原因,转向系统优化设计成为智能车设计中机械结构部 分的重点,直接关系到赛车能否顺利地完成比赛。在实际操作中,我们通过理 论计算的方案进行优化,然后做出实际结构以验证理论数据,并在实际调试过 程中不断改进。
在模型车制做过程中,赛车的转向是通过舵机带动左右横拉杆来实现的。
- 12 -

第二章 智能车机械结构调整与优化
转向舵机的转动速度和功率是一定,要想加快转向机构响应的速度,唯一的办 法就是优化舵机的安装位置和其力矩延长杆的长度。由于功率是速度与力矩乘 积的函数,过分追求速度,必然要损失力矩,力矩太小也会造成转向迟钝,因 此设计时就要综合考虑转向机构响应速度与舵机力矩之间的关系,通过优化得 到一个最佳的转向效果。经过最后的实际的参数设计计算,最后得出一套可以 稳定、高效工作的参数及机构。
如图 2.3,我们最终设计的这套转向拉杆,我们综合考虑了速度与扭矩间的 关系,并根据模型车底盘的具体结构,简化了安装方式,实现了预期目标。
图 2.3 转向拉杆图
2.4 智能车后轮减速齿轮机构调整
模型车后轮采用 RS-380SH 双电机驱动,电机轴与后轮轴之间的传动比为 18:76(电机轴齿轮齿数为 18,后轴传动齿数为 76)。齿轮传动机构对车模的 驱动能力有很大的影响。齿轮传动部分安装位置的不恰当,会大大增加电机驱 动后轮的负载,会严重影响最终成绩。调整的原则是:两传动齿轮轴尽量保持 平行, 齿轮间的配合间隙要合适,过松容易打坏齿轮,造成不必要的麻烦,过 紧又会增加传动阻力,影响速度及增大功耗;传动部分要轻松、顺畅,不能有 迟滞或周期性振动的现象。判断齿轮传动是否良好的依据是,听一下电机带动 后轮空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞 齿现象;声音闷而且有迟滞,则说明齿轮间的配合间隙过小,或者两齿轮轴不 平行,电机负载变大。调整好的齿轮传动噪音很小,并且不会有明显碰撞类的
- 13 -

第二章 智能车机械结构调整与优化
杂音,后轮减速齿轮机构就基本上调整好了,动力传递十分流畅。
2.5 编码器的安装
为了提高精度,本车使用了日本欧普龙公司生产的欧普龙 500 线编码器。 使用红树伟业公司生产的编码器支架很好的固定了两个编码器。
图 2.4 编码器安装
2.6 智能车重心位置的调整
为了达到较远前瞻,必须把电感架到较远的位置,会引起车重心特别靠前, 后轮正压力不足导致甩尾。为了使重心后移,我们尝试了很多传感器支架的搭 建方式,使得保证结构稳定的前提下尽量减轻重量。同时,我们把舵机和电池 均往后移,达到了预期的效果。
2.7 其它机械结构的调整
另外,在模型车的机械结构方面还有很多可以改进的地方,比如说车轮、 悬架、底盘、车身高度等。
模型车在高速的条件下(2.3m/s3.5m/s),由于快速变化的加减速过程,使 得模型车的轮胎与轮辋之间很容易发生相对位移,可能导致在加速时会损失部 分驱动力。在实验中调试表明,赛车在高速下每跑完一圈,轮胎与轮辋之间通 常会产生几个厘米的相对位移,严重影响了赛车的加速过程。为了解决这个问
- 14 -

第二章 智能车机械结构调整与优化
题,我们在实际调试过程中对车轮进行了粘胎处理,可以有效地防止由于轮胎 与轮辋错位而引起的驱动力损失的情况。
此外,我们还对车身高度,以及底盘的形状和质量等,都进行了相应的改 进和调整,均取得了不错效果。
- 15 -

第三章 电路设计说明
第三章 电路设计说明
3.1 主控板和驱动板的硬件设计
3.1.1 电源管理模块 为满足需要,本车模上存在 4 种供电电压: 1)智能车使用镍镉充电电池,充满时电压在 7.2~8.2V。直接用于电机
供电。 2)欧普龙编码器及蓝牙(也可 3.3V)使用 5V 供电,5V 电源选用型稳
压芯片 LM2940CT-5.0 直插封装芯片,。 3)使用 3.3V 为单片机以及运算放大器供电,采用线性稳压芯片
AMS1117-3.3 芯片,输入端接 5V 的 LM2940CT-5.0 芯片输出端。 4)电机驱动模块使用直流 12V,使用一款 5-12V 升压电源模块。 5)舵机驱动我们则创造性的采用了二极管直接降压的手段,效果很好。 该部分电路如图 3.1 所示。
图 3.1 .1 电源管理模块原理图
- 16 -

第三章 电路设计说明
3.1.2 第一次电路板
3.1.3 第二次电路板
- 17 -

第三章 电路设计说明
3.1.4 成型焊接电路板(参赛)
3.1.2 电机驱动模块
电机驱动电路为一个由分立元件制作的直流电动机可逆双极型桥式驱 动器,其功率元件由四支 N 沟道功率 MOSFET 管组成,额定工作电流可以 轻易达到 100A 以上,大大提高了电动机的工作转矩和转速。该驱动器主要 由以下部分组成: PWM 信号输入接口、逻辑换向电路、死区控制电路、电 源电路、上桥臂功率 MOSFET 管栅极驱动电压泵升电路、功率 MOSFET 管栅 极驱动电路、桥式功率驱动电路、缓冲保护电路等。 该部分原理图如图 3.2 所示。
- 18 -

第三章 电路设计说明
图 3.2 电机驱动模块原理图
3.1.3 数模信号转换
K60 的内部有各种精度的 AD 接口,而且使用方便,所以我们则直接使 用 k60 内部 AD,从而也简化了部分电路。我们使用了六路传感器,从而引 出三个 LMV358 双运放六个 AD 接口。其接线方法如图 3.3 所示。
图 3.3 接线图
3.1.4 单片机及其他电路部分设计
核心控制单元:K60(主频 128MHz,FlashRom512KB,具备 SPI,SCI,IIC 等常用接口),根据需要引出适量的管脚。如图 3.4 所示。
- 19 -

第三章 电路设计说明
图 3.4 单片机
测速:在电机侧方通过编码器支架固定欧普龙编码器,当电机转动时带动 编码器转动,从而产生矩形波,再由单片机输入捕捉周期记录脉冲数据此获取 速度信息。用欧普龙编码器(500 线)测速要比光电编码盘精度高很多。测速模 块供给主板的信号要经过整波,使用上拉电阻提高其峰值电压,再使用三态门 将波形整为矩形波(具体使用相见欧普龙编码器使用说明)。测试模块实物如图 3.5 所示。
图 3.5.2 码盘
- 20 -

第三章 电路设计说明
图 3.5.2 测速模块
人机交互:拨档开关用于输入参数,设定车速,策略调整,用蓝牙模块小 车状态便于调试。
该部分整体电路如图 3.6 所示。
图 3.6 拨码开关
- 21 -

第三章 电路设计说明
3.2 智能车传感器模块设计
根据飞思卡尔组委会的出台的相关规定,我们查阅相关资料看,向前辈请 教,最终选择了 10mH 的工字电感作为我们道路识别的电磁传感器,这种电感得 到感应电动势曲线是较为规整的正弦波,频率和赛道电源频率一致,为 20kHz, 幅值较其他型号的大,且随导线距离变化,规律为近大远小。
3.2.1 电感传感器的原理
根据电磁学里的相关原理,我们知道在导线中通入变化的电流(如按正弦 规律变化的电流),则导线周围会产生变化的磁场,且磁场与电流的变化规律具 有一致性。如果在此磁场中置一由线圈组成的电感,则该电感上会产生感应电 动势,且该感应电动势的大小和通过线圈回路的磁通量的变化率成正比。由于 在导线周围不同位置,磁感应强度的大小和方向不同,所以不同位置上的电感 产生的感应电动势也应该是不同。据此,则可以确定电感的大致位置。
3.2.2 磁传感器信号处理电路
确定使用电感作为检测导线的传感器,但是其感应信号较微弱,且混有杂 波,所以要进行信号处理。要进行以下三个步骤才能得到较为理想的信号:信 号的滤波,信号的放大,信号的检波。
1)信号的滤波 比赛选择 20kHz 的交变磁场作为路径导航信号,在频谱上可以有效地避开 周围其它磁场的干扰,因此信号放大需要进行选频放大,使得 20kHz 的信号能 够有效的放大,并且去除其它干扰信号的影响。使用 LC 并联谐振电路来实现选 频电路(带通电路),如图 2.9 所示。
- 22 -

第三章 电路设计说明

图 3.7 LC 并联电路

其中,E 是感应线圈中的感应电动势,L 是感应线圈的电感值,R0 是电感的 内阻,C 是并联谐振电容。电路谐振频率为:

f? 1 2π LC

(2.1)

已知感应电动势的频率 f =20kHz,感应线圈电感为 L=10mH,可以计算出谐

振电容的容量为 C=6.33×10-9 F 。通常在市场上可以购买到的标称电容与上述

容值最为接近的电容为 6.8nF,所以在实际电路中选用 6.8nF 的电容作为谐振

电容。

2)信号的放大

由第一步处理后的电压波形已经是较为规整的 20kHz 正弦波,但是幅值较 小,随着距离衰减很快,不利于电压采样,所以要进行放大,官方给出的如下 参考方案即用三极管进行放大,但是用三极管放大有一个不可避免的缺点就是 温漂较大,而且在实际应用中静电现象严重。

图 3.8 共射三极管放大电路
- 23 -

第三章 电路设计说明
因此我们放弃三极管放大的方案,而是采用集成运放进行信号的放大 处理,集成运放较三极管优势是准确受温度影响很小,可靠性高。集成运放 放大电路有同相比例运算电路和反相比例运算电路,我们在实际中使用反相 比例运算电路。由于运放使用单电源供电,因此在同相端加 vcc/2 的基准电 位,基准电位由电阻分压得到。
3)信号的检波 测量放大后的感应电动势的幅值 E 可以有多种方法。 最简单的方法就是使 用二极管检波电路将交变的电压信号检波形成直流信号,然后再通过单片机的 AD 采集获得正比于感应电压幅值的数值。 我们采用的为竞赛组委会给出的第一种方案即使用两个二极管进行倍压检 波。倍压检波电路可以获得正比于交流电压信号峰峰值的直流信号。为了能够 获得更大的动态范围, 倍压检波电路中的二极管推荐使用肖特基二极管或者锗 二极管。由于这类二极管的开启电压一般在 0.1~0.3V 左右,小于普通的硅二极 管(0.7V),可以增加输出信号的动态范围和增加整体电路的灵敏度。这里选用 常见的的肖特基二极管 1N5817。 最终方案确定如下
图 3.10 最终方案
- 24 -

第三章 电路设计说明
3.2.3 传感器的布局原理及改进
对于直导线,当装有小车的中轴线对称的两个线圈的小车沿其直线行驶, 即两个线圈的位置关于导线对称时,则两个线圈中感应出来的电动势大小应相 同、且方向亦相同。若小车偏离直导线,即两个线圈关于导线不对称时,则通 过两个线圈的磁通量是不一样的。这时,距离导线较近的线圈中感应出的电动 势应大于距离导线较远的那个线圈中的。根据这两个不对称的信号的差值,即 可调整小车的方向,引导其沿直线行驶。
对于弧形导线,即路径的转弯处,由于弧线两侧的磁力线密度不同,则当 载有线圈的小车行驶至此处时,两边的线圈感应出的电动势是不同的。具体的 就是,弧线内侧线圈的感应电动势大于弧线外侧线圈的,据此信号可以引导小 车拐弯。
另外,当小车驶离导线偏远致使两个线圈处于导线的一侧时,两个线圈中 感应电动势也是不平衡的。距离导线较近的线圈中感应出的电动势大于距离导 线较远的线圈。由此,可以引导小车重新回到导线上。
由于磁感线的闭合性和方向性,通过两线圈的磁通量的变化方向具有一致 性,即产生的感应电动势方向相同,所以由以上分析,比较两个线圈中产生的 感应电动势大小即可判断小车相对于导线的位置,进而做出调整,引导小车大 致循线行驶。
采用双水平线圈检测方案,在边缘情况下,其单调性发生变化,这样存在 一个定位不清的区域(如图 3.11 箭头所指)。同一个差值,会对应多个位置, 不利于定位。另外,受单个线圈感应电动势的最大距离限制,两个线圈的检测 广度很有限。
- 25 -

第三章 电路设计说明
图 3.11 双线圈差值法有定位不清区域
现提出一种优化方案:5 个垂直放置的电感按“一”字排布,每个电感相距 约为 5cm(见图 3.12),这样覆盖赛道范围约为 25cm。三个“一”字排布的电感 可以大大提高检测密度和广度,向前有两个电感,最可以提高前瞻,改善小车 入弯状态和路径,两个 45°的电感,可以改善入弯和出弯的姿态。
- 26 -

第三章 电路设计说明
图 3.12 工字电感布局
- 27 -

第四章 智能车控制软件设计说明
第四章 智能车控制软件设计说明
控制程序是比赛过程中的重点,一辆小车的能否跑起来主要看硬件是否稳 定,一辆小车的跑的快慢,成绩好坏则很大程度上决定于控制算法。控制程序 是人的思想在车模体现,程序要体系化,模块化,稳定化,目标是将硬件电路 和机械性能发挥到最大,让车模用最快的速度完成比赛。
4.1 底层初始化
编写初始化函数 void All_Init(void) void All_Init(void) {
uart_init (UART0,9600);
pit_init_ms(PIT0,1); pit_init_ms(PIT1,9); adc_init(ADC1,SE4a);//电感 1 输入,硬件接口 E0 adc_init(ADC1,SE5a);//电感 2 输入,硬件接口 E1 adc_init(ADC1,SE6a);//电感 3 输入,硬件接口 E2 adc_init(ADC1,SE7a);//电感 4 输入,硬件接口 E3 adc_init(ADC0,SE17);//电感 1 输入,硬件接口 PTE24 adc_init(ADC0,SE18);//电感 2 输入,硬件接口 PTE25 gpio_init (PORTD, 8, GPI,1); gpio_init (PORTD, 9, GPI,1); gpio_init (PORTD, 10, GPI,1); //exti_init(PORTB, 3, falling_up); gpio_init (PORTD, 11, GPI,0); gpio_init (PORTD, 12, GPI,0); gpio_init (PORTD, 13, GPI,0); gpio_init (PORTD, 14, GPI,0); gpio_init (PORTD, 15, GPI,0); exti_init(PORTB,3,falling_up); FTM_PWM_init(FTM0,CH4,50, 0);//舵机控制 PWM 波输出,硬件接口 C2 FTM_PWM_init(FTM1,CH0,15000, 0); //电机 PWM 波控制输出,硬件接口 C3 FTM_PWM_init(FTM1,CH1,15000, 0);//FTM_PRECISON 为 10000u FTM_PWM_init(FTM2,CH0,15000, 0); //电机 PWM 波控制输出,硬件接口
- 28 -

第四章 智能车控制软件设计说明
A1 FTM_PWM_init(FTM2,CH1,15000, 0); DMA_count_Init(DMA_CH0, PTA19, 65535, DMA_rising); //DMA_count_Init(DMA_CH1, PTC5, 65535, DMA_rising); //lptmr_counter_init(LPT0_ALT1,65535,2, LPT_Rising);//LPT 测速硬件接口
c5 PTA19 }
4.2 传感器采集处理算法
编写采集滤波函数 void Get_Average(void) ,其功能是 AD 口多次采集某 个通道(对应某个电感)的电压值,然后求其平均值,从而达到滤波的作用, 然后说返回给函数。
多次采集求平均值的原因是由于系统中存在噪声或干扰,进行算法滤波抑 制和防止干扰是必要的措施。在这里选择“加权递推平均滤波法”。定义一个循 环队列,把连续取 N 个采样值入队,假设队列的长度为 N,每次采样到一个新数 据放入队尾,队满后对首数据出队原队首位置成为队尾并入队(即始终保持队 列中的 N 个数据为最新)。越接近现时刻的数据,权取得越大。把队列中的 N 个 数据进行加权平均运算,就可获得新的滤波结果。特点是给予新采样值的权系 数越大,则灵敏度越高,但信号平滑度越差。优点是适合采样周期较短的系统, 改变权重即可调整灵敏度。
该滤波器采集某一通道数据 N 次,然后进行滤波计算,流程图如图 4.1 所 示:
- 29 -

第四章 智能车控制软件设计说明
新采集 6 个通道数据各一次

更新队列,数据入队









将形成的队列进行加权计算平均值,越早的 数据权重越小,越新的数据权重越大

得出新的平均值
图 4.1 加权递推平均滤波流程图
4.3 寻线行驶算法实现 4.3.1 定位算法
图 3.12 所示传感器的寻线原理:某一时刻,采五个“一”字排布的电感的 感应电动势,找出一个感应电动势最大的电感(计为 M),导线必然会离这个电 感最近。然后读出该电感相邻左右两个电感的值(分别计为 L 和 R)。会有以下 三种情况:
当 L 值大于 R 值,说明导线在 L 和 M 之间; 当 L 值小于 R 值,说明导线在 R 和 M 之间; 当 L 值约等于 R 值,说明导线在 M 正上。 对于特殊情况,如 M 在最左或最后,缺相邻的 L 或 R,可直接将导线位置 定位于 M,且由 M 值大小得出远离程度。该情况说明传感器偏离赛道很严重。 以上这种通过找感应电动势最大的电感 M 和相邻电感 L 和 R 在确定电感和
- 30 -

第四章 智能车控制软件设计说明
导线的相对位置的方法,是一种初步的定位方法。这里再次深化讨论,先设立 一个阈值 T,分两种情况:
当|L 值-R 值|<T,即 L 值约等于 R 值,说明导线在 M 正上,得出确切位 置;
当|L 值-R 值|>T,说明导线在 M 和 L 或者 M 和 R 之间。 此定位算法,在直道上的作用比较明显,但在弯道不足以适用所有类型的 弯道。所以,在此基础上,引入在弯道计算偏移比较明显的中间标定差值法, 即:在直道处进行中间电感 M 的标定,取其标定值与实时值作差。用此方法得 到的在弯道处偏移的曲线如图 4.2 所示:
将以上五电感位移算法与中间电感标定差值算法综合计算,即可得到直道和
图 4.3 标定算法计算的偏移拟合曲线
弯道同样灵敏的控制量。程序流程图如 4.3 所示。
- 31 -

第四章 智能车控制软件设计说明
新采集 7 个通道数据各一次

排序得出最大值 M,同时找 出 L 值和 R 值,并判断是否 存在满足要求的 L 和 R

N
x=Xm

Y
判断是否满足|L 值—R 值|>T
Y
x ? Xm、? k D S M

N
x ? ?100

图 4.3 传感器定位五电感算法流程图
4.3.2 基于位置式 PID 的方向控制
PID 控制是工程实际中应用最为广泛的调节器控制方法。问世至今 70 多年 来,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技 术之一。
单位反馈的PID控制原理框图如图4.4:

- 32 -

第四章 智能车控制软件设计说明

R

e

u

Y

Controller

Plant

Controller



图4.4 单位反馈的PID控制原理框图

单位反馈e代表理想输入与实际输出的误差,这个误差信号被送到控制器, 控制器算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组 合,得到输出量u。

? u ? k pe ? ki

edt

? kd

de dt

(4.2)

其中,Kp、Ki 、Kd分别称为比例系数、积分系数、微分系数。u接着被送 到了执行机构,这样就获得了新的输出信号 u ,这个新的输出信号被再次送到 感应器以发现新的误差信号,这个过程就这样周而复始地进行。

数字控制系统中,PID控制器是通过计算机PID控制算法程序实现的。计算 机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信 号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存 器,而在数字计算机中的计算和处理,不论是积分还是微分,只能用数值计算 去逼近。

用矩形数值积分代替上式中的积分项,对导数项用后向差分逼近,得到数

字PID控制器的基本算式(位置算式):

? u n

? k p (en

?1 Ti

n
ekT
k ?1

? Td

en

? en?1 ) T

(4.3)

其中T是采样时间, k p 、 Ti 、 Td 为三个待调参数,在实际代码实现算法

时,处理成以下形式:

loca_PreU = Kp * loca_error + Ki * loca_PreIntegral + Kd * loca_derror(4.4)

根据以往资料和测试,将定位算法解算出的导线位置当作反馈值(Feedbac k),参考值(Ref)设为0,则有:

loca_error = loca_Ref –loca_Feedback

(4.5)

loca_derror = loca_error - loca_PreError 注: PreError 为上次的 error (4.6)

- 33 -

第四章 智能车控制软件设计说明

loca_PreIntegral += loca_error

(4.7)

为了防止频繁调节和意外输出过大,设置调节死区(-LOCA_DEADLINE, L OCA_DEADLINE)。loca_error在死区内,不进行调节,维持上一状态。设置调 节范围(-LOCA_MAX,LOCA_MAX),假如loca_PreU算出结果越界,那么就 赋给边界值 ? LOCA_MAX。
4.3.3 基于增量式 PID 的速度控制
对位置式加以变换,可以得到PID算法的另一种实现形式(增量式):

?un

? un

? un?1

?

k p[(en

?

en

?1

)

?

1 Ti

en

? Td T

(en

? 2en?1

? en?2 )]

(4.8)

在实际代码实现时,处理成 vl_PreU += (Kp * d_error + Ki * error + Kd*dd_error)

(4.9)

将测速模块得到的单位时间脉冲数给vi_FeedBack,vi_Ref为设定速度。

error = vi_Ref - vi_FeedBack

(4.10)

d_error = error - vi_PreError

(4.11)

dd_error = d_error - _PreDerror

(4.12)

这里设计High,Middle,Low作为设定速度值(vi_Ref),分别对应直道, 弯道,最低速度(由传感器状态确定)。位于直道时,设定速度为最大。为提 高稳定性,也设置相应的调节死区和调节范围。
4.3 弯道策略分析

在车辆进弯时,需要对三个参数进行设定:切弯路径、转向角度、入弯速 度。其中,切弯路径主要决定了车辆是选择内道过弯还是外道过弯。切内道, 路经最短,但是如果地面附着系数过小会导致车辆出现侧滑的不稳定行驶状态, 原因是切内道时,曲率半径过小,同时速度又很快,所以模型车需要的向心力 会很大,而赛道本身是平面结构,向心力将全部由来自地面的摩擦力提供,因 此赛道表面的附着系数将对赛车的运行状态有很大影响。切外道,路径会略长, 但是有更多的调整机会,同时曲率半径的增加会使得模型车可以拥有更高的过 弯速度。

- 34 -

第四章 智能车控制软件设计说明
转向角度决定了车辆过弯的稳定性。合适的转向角度会减少车辆在转弯时 的调整,不仅路径可以保证最优,运动状态的稳定也会带来效率的提高,减少 时间。在考虑转向角度设置时需要注意以下几个问题:对于检测赛道偏移量的 传感器而言,在增量较小时的转向灵敏度;检测到较大弯道时的转向灵敏度; 对于类似 S 弯的变向连续弯道的处理。
对于入弯速度的分析,应该综合考虑路径和转向角度的影响。简单而言, 我们会采取入弯减速,出弯加速的方案,这样理论上可以减少过弯时耗费的时 间。然而,在过去几届比赛中,通过观察各参赛车对弯道的处理后,我们发现 并不是所有人都选择了相同的方案。正如前面说到的那样,不联系路径和转向 角度,只是单纯地分析过弯速度,会造成思路的局限甚至错误。例如,在不能 及时判断入弯和出弯的标志点就采取“入弯减速、出弯加速”的方案,会出现 弯道内行驶状态不稳定、路径差,同时出弯加速时机过晚,一样会浪费时间。 所以现在本系统参考实际驾驶时的一些经验,对过弯速度的处理方式确定为: 入弯时急减速,以得到足够的调整时间,获得正确的转向角度;在弯道内适当 提速,并保持角度不变,为出弯时的加速节约时间;出弯时,先准确判断标志, 然后加速,虽然会耗费一些时间,但是面对连续变向弯道可以减少判断出错的 概率,保证行驶状态的稳定性,而且弯道内的有限加速对后面的提速也有很大 的帮助。综合考虑用可以接收的额外时间换回行驶稳定性还是值得的。
下面以常见的几种弯道转角处理方式解释各方案的优缺点,其中,横坐标 表示由传感器采集回来的赛道中心线相对赛车中心线的偏移量,纵坐标表示转 角大小。

偏移量 a

偏移量 b

偏移量 c

偏移量 d

偏移量 e

图 4.5 弯道转角处理方式

a 图表示偏移量与转向角度呈线性关系,在计算及程序编写上都比较简单, 也可以实现控制赛车行驶的目标,但是由于规则制定比较简单,对赛车实际行 驶状态的分析不够全面,所以在实际应用时不能简单套用。

b 图表示的是在赛车略微偏离赛道中心时,不要对行驶方向作太大调整,而

- 35 -

第四章 智能车控制软件设计说明

是在当偏离度大到预定值时急速调整转角以保证过弯的及时,同时在以判断出 是急弯后,也不要进行大的变动,因为此时转角的值已经很大,仅需对舵机进 行微调就可以保证方向的正确性。这种方案的优点是综合考虑了赛车对个弯道 的适应程度,同时保证了在直线行驶时的稳定性,和抗干扰性,但是对急弯的 响应可能不够及时,这是该方案的主要缺点。

c 图表示的对弯道的处理方案与 B 图恰好相反,它提高了相应灵敏度,降低 了抗干扰性,对于多弯道,且弯道曲率半径较小的赛道有比较好的适应性。

d、e 图是两种比较特殊的处理方案,它们不能用于赛车的全程控制,只是 考虑到赛车的实际运行特点对某部分的偏移量有特别要求是使用。对于传统四 轮车辆,转向时前轮有比较严格的角度关系,而它们的得到是由转向系统决定 的。这样两套系统都对某个值做出了限制,必然会有矛盾,在车由 0 度转到最 大转角时,并不是每时每刻都能同时满足两种条件的限制,那么为了赛车行驶 的稳定性,我们可能会在小范围内对转角波动,以得到附近最合适的转角值, 减小矛盾。
4.4 弯道策略制定

在智能车比赛中,我们使用的是通用二输入一输出系统,其中两个输入量 是中心线偏移量,和相邻两次检测的偏移量差值;输出量可以分别选用舵机转 角值和速度输出值做两套系统。

中心线偏移量的隶属度函数表为 9 级:

Lable

1

下底小值 0

下底大值 9

左腰斜率 255

右腰斜率 28

表 4.1 中心线偏移量的隶属度函数表

2

3

4

5

6

7

7

16

24

37

46

55

17

28

40

49

58

71

51

42

32

42

42

32

51

42

32

42

42

32

8

9

68

80

82 65535

36

25

36

255

偏移量差值的隶属度函数表为 3 级(计算时需要先做加 100 运算)。 中间电感标定差值(为方便讨论将差值最大值设定为 100)的隶属度函数表 为 9 级:
表 4.1.1 中间电感标定差值的隶属度函数表

- 36 -

第四章 智能车控制软件设计说明

Lable

1

2

3

4

5

6

7

8

9

模糊界限值 20

30

40

50

60

70

80

90 100

左腰斜率 255

51

42

32

42

42

32

36

25

右腰斜率 28

51

42

32

42

42

32

36 255

由表 4.1 和表 4.2 对转角值进行计算,得到的计算值进行累加,即得到转角 值。这些模糊系数的调试占据了程序调试工作的大部分时间。

此外,加入前向电感进行预测,对转角进行预测累加,使转角提前,对前瞻 的扩展性有很好的作用。

表 4.2 偏移量差值的隶属度函数表

Lable

1

2

3

下底小值

0

89

110

下底大值

90

111

255

左腰斜率 255

23

12

右腰斜率

12

23

255

速度规则表为:

big big 偏移量差值
big big

midbig midbig

表 4.3 速度规则表

中心线偏移量

midbig midbig

mid mid mid mid

lowmid lowmid

low low low low

速度精确值为:

表 4.4 速度精确值

Low

lowmid

mid

midbig

big

26

32

32

28

37

转角规则表为:

表 4.5 转角规则表

- 37 -

第四章 智能车控制软件设计说明

中心线偏移量

偏移 量 差值

tin

tinysmal

smallmiddl

middlelarg

largehug

tiny

small

middle

large

y

l

e

e

e

tin tinysmal

smallmiddl

middlelarg

largehug

small

middle

large

huge

yl

e

e

e

tin

tinysmal

smallmiddl

middlelarg

tiny

small

middle

large huge

y

l

e

e

转角精确值为:

表 4.6 转角精确值

tiny tinysmall small smallmiddle middle middlelarge large largehuge huge

2

25

80

135

170

240

320

410

510

这套控制方案是基于 2014 年第九届“飞思卡尔”全国大学生智能车竞赛的 要求,参考四轮电磁组第六届制定的。它实现了对不同曲率弯道的转角合理分 配,速度精确限制等目标。但是由于大量的模糊控制的应用,导致程序调试极 其繁琐,这是该系统的主要缺点。

- 38 -

第五章 开发工具、制作、安装、调试过程说明
第五章 开发工具、制作、安装、调试过程说明
5.1 开发工具
程序的开发是在 IAR 下进行的,包括源程序的编写、编译和链接,并最终 生成可执行文件。
IAR Embedded Workbench(简称 EW)的 C/C++交叉编译器和调试器是今 天世界最完整的和最容易使用专业嵌入式应用开发工具。EW 对不同的微处理器 提供一样直观用户界面。EW 今天已经支持 35 种以上的 8 位/16 位 32 位 ARM 的 微处理器结构。
EW 包括:嵌入式 C/C++优化编译器,汇编器,连接定位器,库管理员,编 辑器,项目管理器和 C-SPY 调试器中。使用 IAR 的编译器最优化最紧凑的代码, 节省硬件资源,最大限度地降低产品成本,提高产品竞争力
5.2 调试过程
5.2.1 上位机系统
要分析车模在赛道行驶的实时情况,必须采集小车在行驶过程中各个功能 模块的实时数据,我们采用的是用蓝牙传输的方式,和上位机进行直接通讯, 从而实时掌握小车运行的状态。
1)硬件方面 K60 单片机内博具有 UART 传输端口,可直接与蓝牙硬件接口连接。 2)软件方面: 通过上位机协议程序算法,可直接从上位机端得到相应的波形。 上位机虚拟示波器输出*/ /*unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT) {
unsigned short CRC_Temp; unsigned char i,j; CRC_Temp = 0xffff;
for (i=0;i<CRC_CNT; i++){ CRC_Temp ^= Buf[i]; for (j=0;j<8;j++) { if (CRC_Temp & 0x01)
- 39 -

第五章 开发工具、制作、安装、调试过程说明

CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001; else
CRC_Temp = CRC_Temp >> 1; } } return(CRC_Temp); }

void OutPut_Data(void) {
unsigned int temp1[4] = {0}; unsigned char databuf[10] = {0}; unsigned char i; unsigned short CRC16 = 0;

for(i=0;i<4;i++)

{

temp[i] = (int)OutData[i];

temp1[i] = (unsigned int)temp[i];

}*/

/* temp1[0]=(unsigned int)(int)sensorto_one[0]*1000;

temp1[1]=(unsigned int)(int)sensorto_one[1]*1000;

temp1[2]=(unsigned int)(int)1000;

temp1[3]=(unsigned int)(int)0;

for(i=0;i<4;i++) {

databuf[i*2]=(unsigned char)(temp1[i]%256);

databuf[i*2+1]=(unsigned char)(temp1[i]/256);

} CRC16 = CRC_CHECK(databuf,8);

//在此进行数据检验将返回值给

CRC16

databuf[8]=CRC16%256;

databuf[9]=CRC16/256;

// uart_putchar (UART0,3); //

uart_putchar (UART0,databuf[0]);

uart_putchar (UART0,databuf[1]);

uart_putchar (UART0,databuf[2]);

uart_putchar (UART0,databuf[3]);

uart_putchar (UART0,databuf[4]);

- 40 -

第五章 开发工具、制作、安装、调试过程说明
uart_putchar (UART0,databuf[5]); uart_putchar (UART0,databuf[6]); uart_putchar (UART0,databuf[7]); uart_putchar (UART0,databuf[8]); uart_putchar (UART0,databuf[9]); //uart_sendN (UART0,databuf,10);*/ /*return; }*/
图 5.2 上位机程序界面
5.2.2 控制算法的参数整定
运用 PID 控制的关键是调整三个比例系数,即参数整定。PID 整定的方法 有两类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算 确定控制器参数。由于智能车整个系统是机电高耦合的分布参数系统,并且要 考虑赛道具体环境,要建立精确的智能车运动控制数学模型有一定难度,而且 对车身机械结构经常进行不断修正,模型参数变化较频繁,可操作性不强;二 是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方
- 41 -

第五章 开发工具、制作、安装、调试过程说明
法简单,采用了这种方法。 1) 方向控制算法的参数整定
方向控制采用位置式 PID 控制。由于小车循黑线本质上是一个随动系统, 积分项在弯道累积的偏差错误地加在直道的跟踪上,造成在进入直道时转向不 够准确,跑直道时虽然能跟踪黑线,但是转向调整往往超调,导致车身在直道 上左右震荡,这种震荡严重影响了车的整体表现。
将积分项系数 Ki 设为 0,发现车能在直线高速行驶时仍能保持车身非常稳 定,没有震荡,所以没有必要使用 Ki 参数。该控制方案调整为 PD 控制。Kp 和 Kd 参数由工程整定得出,经过多次试验,得到一组稳定快速的参数为 10 和 20。
设置合适的调节范围 LOCA_MAX。在车模中上,边界值由舵机转角的最大 值决定。经试验测量为控制舵机的 PWM 波占空比寄存器变化为 200 时,达到舵 机最大转角。故 LOCA_MAX = 200
调节合适的调节死区,死区太小会造成调节不灵敏,太大则调节过于频繁。 经试验测量设为 2 时较为适合。 2) 速度控制算法的参数整定
速度控制采用增量式 PID 控制,同样采用上一小节的工程整定法。经多次 试验得出,Kp,Ki ,Kd 分别取 30,3,2,调节死区 V_DEADLINE 设置为 1, 调节范围设置为 950(全速时为 1000),车模行驶直道和弯道加减速反映迅速, 整体速度良好。
5.3 整车机械方面的调整
车模的机械也是很重要的一方面,针对电磁组车模,必须有几个特别需要 关注的地方:
1)传感器支架必须结实耐撞,震动尽量小。震动会导致传感器得到感应电 动势“抖动”,导致车模会在赛道上“颤抖”。
2)重心尽可能低,并且分布均匀。把车模地盘降低,车上装配的器件也尽 可能的放低,转弯效果会比较好。分布均匀可以防止车模在赛道甩动。
- 42 -

第六章 模型车的主要技术参数说明
第六章 模型车的主要技术参数说明
6.1 智能车外形参数 车长:85cm 车宽:25cm 车高:18cm 车重:约 850g
6.2 电路部分参数 我们小组所改造的智能车采用一块比赛标准 7.2V 电池供电,电路中共有 49
个电容,容量总计 1765.6μ F。当模型车全功率开动时,功耗约为 30W 。 6.3 传感器个数以及种类
我们改造的智能车共使用 6 个 10mH 的电感,欧普龙编码器 2 个,干簧管 5 个(前面三个 3 个,后面两个)。 6.4 除了车模原有的驱动电机、舵机之外伺服电机数量
除了车模原有的驱动电机、舵机之外没有使用伺服电机。 6.5 赛道信息检测精度、频率
赛道信息检测精度是 2mm,频率是 5us
- 43 -

第五章 开发工具、制作、安装、调试过程说明
结论
自三月初报名参加“飞思卡尔”杯智能汽车竞赛以来,我们小组成员查找 资料,设计机构,组装车模,编写程序,分析问题,最后终于完成了最初目标, 定下了现在这个方案。
在此份技术报告中,我们主要介绍了准备比赛时的基本思路,包括机械, 电路,以及最重要的控制算法的创新思想。
在传感器布局,我们分析了前几届中出现的电感排布方法,综合考虑到程 序的稳定性、简便性,我们最后敲定了现在的电感排布,并通过反复实践决定 了传感器的数量和位置。
在电路方面,我们以模块形式分类,在电源管理,电机驱动,接口,控制, 信号采集,传感器这六个模块分别设计,在查找资料的基础上各准备了几套方 案;然后我们分别实验,最后以报告中所提到的形式决定了我们最终的电路图。
在算法方面,我们使用 C 语言编程,利用比赛推荐的开发工具调试程序, 经过小组成员不断讨论、改进,终于设计出一套比较通用的,稳定的程序。在 这套算法中,我们结合路况调整车速,做到直线加速,弯道减速,保证在最短 时间跑完全程。
在这几个月的备战中,在场地、经费方面都的到了学校和学院的大力支持, 在此特别感谢一直支持和关注智能车比赛的学校和学院领导以及各位老师。同 时也感谢比赛组委会能组织这样一项很有意义的比赛。
现在,面对即将到来的大赛,在历时近五个月的充分准备之后,我们有信 心在比赛中取得优异成绩。也许我们的知识还不够丰富,考虑问题也不够全面, 但是这份技术报告作为我们五个月辛勤汗水来的结晶,凝聚着我们小组每个人 的心血和智慧,随着它的诞生,这份经验将永伴我们一生,成为我们最珍贵的 回忆。
- 44 -

参考文献
参考文献
[1] 邵贝贝. 嵌入式实时操作系统[LC/OS-Ⅱ(第 2 版)[M]. 北京.清华大学出版 社.2004
[2] 邵贝贝. 单片机嵌入式应用的在线开发方法[M].北京.清华大学出版社.2004 [3] 王晓明. 电动机的单片机控制[M].北京. 北京航空航天大学出版社.2002 [4] 臧杰,阎岩. 汽车构造[M]. 北京. 机械工业出版社.2005 [5] 安鹏,马伟.S12 单片机模块应用及程序调试[J]. 电子产品世界. 2006.第 211 期. 162-163 [6] 童诗白,华成英.模拟电子技术基础[M].北京. 高等教育出版社.2000 [9] 沈长生.常用电子元器件使用一读通[M].北京. 人民邮电出版社.2004 [10] 宗光华.机器人的创意设计与实践[M].北京. 北京航空航天大学出版社.2004 [11] 张伟等.Protel DXP 高级应用[M].北京. 人民邮电出版社.2002 [12] 张文春. 汽车理论[M].北京.机械工业出版社.2005
[13]闫琪.智能车设计:"飞思卡尔杯"从入门到精通.北京航空航天大学出版 社
- 45 -


相关文档

基于飞思卡尔k60芯片控制下的智能汽车
基于飞思卡尔k60芯片控制下的智能汽车大学论文
基于飞思卡尔k60芯片控制下的智能汽车doc46
飞思卡尔芯片驱动下一代汽车车身电子应用
基于飞思卡尔芯片的汽车液压ABS系统及仿真
飞思卡尔系统基础芯片可简化并帮助保护汽车网络
飞思卡尔 8 位单片机选型 汽车级芯片
飞思卡尔汽车微控制器提升智能安全性能
基于飞思卡尔K60芯片的CCD感光还原系统的设计与实现
电脑版