温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
黄山
学院
第十一届“恩智浦”杯全国大学生 智能汽车竞赛 技技 术术 报报 告告 学 校:黄山学院 队伍名称:Mouse 参赛队员:于振虎 李 亮 带队教师:胡伟、官骏鸣 引言-1-引言 该竞赛以“立足培养、重在参与、鼓励探索、追求卓越”为指导思想,是以智能汽车为竞赛平台的多学科专业交叉的创意性科技竞赛,是面向全国大学生的一种具有探索性的工程实践活动,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神。竞速赛是在规定的模型汽车平台上,使用恩智浦半导体公司的 8 位、16 位、32 位微控制器作为核心控制模块,通过增加道路传感器、电机驱动电路以及编写相应软件,制作一部能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。本竞赛过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成团队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过程。竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车等多学科专业的创意性比赛。本竞赛规则透明,评价标准客观,坚持公开、公平、公正的原则,保证竞赛向健康、普及,持续的方向发展。电轨组是今年的一个新的赛题,以贴在赛道上的铝膜为引导。我们利用恩智浦公司的 K60 单片机完成对于路况的采集,处理,控制电机和舵机。今年电轨组的车模是 A 车模。本文中,我们小组通过对小车设计制作整体思路、电路、算法、调试、车辆参数的介绍,详尽地阐述了我们的思想和创意,具体表现在电路的创新设计,以及算法方面的独特想法,而对单片机具体参数的调试也让我们付出了艰辛的劳动。这份报告凝聚着我们的心血和智慧,是我们共同努力后的成果。在此要感谢清华大学,感谢他们将这项很有意义的科技竞赛引入中国;也感谢黄山学院对此次比赛的关注,我们的成果离不开学校的大力支持及指导老师悉心的教导;还要感谢的是和我们一起协作的队员们,协助,互促,共勉使我们能够走到今天。第十一届全国大学生智能汽车总决赛赛技术报告-2-目录 引言.-1-目录.-2-第一章 方案设计.-4-1.11.1 设计思路设计思路.-4-1.21.2 具体方案的实现具体方案的实现.-5-第二章 智能车机械结构调整与优化.-6-2.12.1 车模总体布局车模总体布局.-6-2.22.2 智能车前轮定位的调整智能车前轮定位的调整.-7-2.2.12.2.1 主销后倾角主销后倾角.-7-2.2.22.2.2 主销内倾角主销内倾角.-8-2.2.32.2.3 车轮外倾角车轮外倾角.-8-2.2.4 2.2.4 前轮前束前轮前束.-9-2.32.3 智能车转向机构调整优化智能车转向机构调整优化.-10-2.4 2.4 编码器的安装编码器的安装.-11-2.5 2.5 智能车重心位置的调整智能车重心位置的调整.-12-第三章 电路设计说明.-14-3.1 3.1 电源管理模块电源管理模块.-14-3.2 3.2 传感器模块传感器模块.-16-3.2.13.2.1 金属传感器的原理金属传感器的原理.-16-3.3 3.3 电机驱动模块电机驱动模块.-19-3.43.4 单片机电路及接口部分设计单片机电路及接口部分设计.-22-3.5 3.5 系统主板设计系统主板设计.-23-4.1 4.1 软件设计总体框架软件设计总体框架.-24-目录-3-4.2 4.2 采集传感器信息及处理采集传感器信息及处理.-24-4.3 4.3 赛道信息计算赛道信息计算.-26-4.4 4.4 舵机控制算法舵机控制算法.-26-4.5 4.5 速度控制算法速度控制算法.-27-4.5.1 4.5.1 增量式增量式 PIDPID 控制原理控制原理.-27-4.5.2 4.5.2 速度策略分析速度策略分析.-28-4.5.3 4.5.3 差速策略差速策略.-29-结论.-30-参考文献.-31-致谢.-32-附录 A:程序代码.I 附录 B:PCB 电路图.IX -4-第一章 方案设计 本章内容简要地介绍智能车系统总体设计思路,以及一些设计方案的分析,系统分为机械结构、控制模块、控制算法等三部分对智能车控制系统进行深入的介绍分析。1.11.1 设计思路设计思路 任何一个系统都是由三部分组成:传感器、控制器和执行器,智能车系统的基本结构也可分为这三个部分。小车制作的基本思路是通过传感器采集道路信息传给微控制器,微控制器对数据处理后控制执行器的工作。该系统主要结构由 K60 核心控制器,金属传感器,编码器,直流驱动电机,舵机等组成。其系统结构如图 1-1 所示。MK60N512Z 图 1-1 系统结构图 本系统工作流程:通过金属传感器获取道路信息,MCU 对采集到的数据进行处理后,对舵机和电机进行控制,使智能车完成自主循迹运行的功能。编码器用来获取智能车的速度信息。金属传感器 舵机 直流电机 编码器 液晶显示屏 上位机 MK60N512ZVLQ10 拨码开关、按键 第一章 方案设计-5-1.21.2 具体方案的实现具体方案的实现 在本车中,我们的传感器采用根据官方方案原理制作的金属传感器,通过震荡电路产生一个正弦波,当靠近金属时会发生变化。再次通过整波电路变成一个方波。微控制器采用的是恩智浦 MK60N512ZVLQ10 单片机。当金属传感器采集的信号输入到 K60 单片机中,K60 对数据进行相关的处理,得到当前路况的信息,为舵机和电机的控制提供决策。转向舵机采用 PD 控制;驱动电机采用增量PID 和鲁棒控制,通过 PWM 控制调整电机的功率;通过编码器来检测车速,并采用 MK60N512ZVLQ10 的输入捕捉功能进行脉冲计数获得转速,并得到相应的速度,与速度 PID 形成闭环;而车速的目标值由程序给出,具体的控制策略将在下文中详细介绍。-6-第二章 智能车机械结构调整与优化 智能车系统任何的控制都是在一定的机械结构基础上实现的,因此在设计整个软件架构和算法之前一定要对整个车模的机械结构有一个感性的认识,然后建立相应的数学模型。从而再针对具体的设计方案来调整赛车的机械结构,并在实际的调试过程中不断的改进和提高。本章将主要介绍智能车车模的机械结构和调整方案。2.12.1 车模总体布局车模总体布局 此次比赛选用的赛车车模采用 A 型车模。赛车机械结构只使用竞赛提供车模的底盘部分及转向和驱动部分。车模的布局主要考虑两个方面的因素:重量和重心。由于恩智浦智能车竞赛是竞速比赛,更加轻便的车身结构有利于小车的提速,为此我们优先采用轻的材料,例如用轻便坚固的碳纤维管作为金属传感器支架的材料;其次,我们考虑到降低重心、平均分配车身质量有利于增加车身结构的稳定性,因此我们将车模底盘降低,并且简化主板使其贴近底盘来降低重心。控制采用前轮转向,后轮驱动方案。我们对机械结构的要求是:简单而高效。我们在不断的尝试后确定了以下的设计方案:图 2-1 智能车器件布局图 第二章 智能车机械结构调整与优化-7-2.22.2 智能车前轮定位的调整智能车前轮定位的调整 现代汽车在正常行驶过程中,为了使汽车直线行驶稳定,转向轻便,转向后能自动回正,减少轮胎和转向系零件的磨损等,在转向轮、转向节和前轴之间须形成一定的相对安装位置,叫车轮定位,其主要的参数有:主销后倾、主销内倾、车轮外倾和前束。智能车竞赛模型车的四项参数都可以调整,但是由于模型车加工和制造精度的问题,在通用的规律中还存在着一些偶然性。2.2.12.2.1 主销后倾角主销后倾角 主销后倾角是指在纵向平面内主销轴线与地面垂直线之间的夹角。它在车辆转弯时会产生与车轮偏转方向相反的回正力矩,使车轮自动恢复到原来的中间位置上。所以,主销后倾角越大,车速越高,前轮自动回正的能力就越强,但是过大的回正力矩会使车辆转向沉重。通常主销后倾角值设定在 1到 3。模型车通过增减黄色垫片的数量来改变主销后倾角的,由于竞赛所用的转向舵机力矩不大,过大的主销后倾角会使转向变得沉重,转弯反应迟滞,所以设置为 0,以便增加其转向的灵活性。图 2-2 主销后倾角示意图 第十一届全国大学生智能汽车总决赛赛技术报告-8-2.2.22.2.2 主销内倾角主销内倾角 主销内倾角是指在横向平面内主销轴线与地面垂直线之间的夹角,它的作用也是使前轮自动回正。角度越大前轮自动回正的作用就越强,但转向时也就越费力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。通常汽车的主销内倾角不大于 8。对于模型车,通过调整前桥的螺杆的长度可以改变主销内倾角的大小,由于过大的内倾角也会增大转向阻力,增加轮胎磨损,所以在调整时可以近似调整为 0到 3左右,不宜太大。主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时主销后倾的回正作用大,低速时主销内倾的回正作用大。图 2-3 主销内倾角示意图 2.2.32.2.3 车轮外倾角车轮外倾角 前轮外倾角是指通过车轮中心的汽车横向平面与车轮平面的交线与地面垂线之间的夹角,对汽车的转向性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。在汽车的横向平面内,轮胎呈“八”字型时称为“负外倾”,而呈现“V”字形张开时称为正外倾。如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。所以事先将车第二章 智能车机械结构调整与优化-9-轮校偏一个正外倾角度,一般这个角度约在 1左右,以减少承载轴承负荷,增加零件使用寿命,提高汽车的安全性能。模型车提供了专门的外倾角调整配件,近似调节其外倾角。由于竞赛中模型主要用于竞速,所以要求尽量减轻重量,其底盘和前桥上承受的载荷不大,所以外倾角调整为 0即可,并且要与前轮前束匹配。图 2-4 车轮外倾角示意图 2.2.4 2.2.4 前轮前束前轮前束 所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时,其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。像内八字那样前端小后端大的称为“前束”,反之则称为“后束”或“负前束”。在实际的汽车中,一般前束为 012mm。在模型车中,前轮前束是通过调整伺服电机带动的左右横拉杆实现的。主销在垂直方向的位置确定后,改变左右横拉杆的长度即可以改变前轮前束的大小。在实际的调整过程中,我们发现较小的前束,约束 02mm 可以减小转向阻力,使模型车转向更为轻便,但实际效果不是十分明显。虽然模型车的主销后倾角、主销内倾角、车轮外倾角和前束等均可以调整,但是由于车模加工和制造精度的问题,在通用的规律中还存在着不少的偶然性,第十一届全国大学生智能汽车总决赛赛技术报告-10-一切是实际调整的效果为准。2.32.3 智能车转向机构调整优化智能车转向机构调整优化 理想的转向模型,是指在轮胎不打滑时,忽略左右两侧轮胎由于受力不均产生的变形,忽略轮胎受重力影响下的变形时车辆的转向建模。在这种理想的模型下,车体的转向半径可以计算得到。图 2-5 智能车转向示意图 如图 2-5,假设智能车系统为理想的转向模型,且其重心位于其几何中心。车轮满足转向原理,左右轮的轴线与后轮轴线这三条直线必然交于一点。转向机构在车辆运行过程中有着非常重要的作用。合适的前桥和转向机构可以保证在车辆直线行驶过程中不会跑偏,能保证车辆行驶的方向稳定性;而在车辆转向时,合适的转向机构可以使车辆自行回到直线行驶状态,具有好的回正性。正是由于这些原因,转向系统优化设计成为智能车设计中机械结构部分的重点,直接关系到赛车能否顺利地完成比赛。在实际操作中,我们通过理论计算的方案进行优化,然后做出实际结构以验证理论数据,并在实际调试过程中不断改进。在模型车制作过程中,赛车的转向是通过舵机带动左右横拉杆来实现的。转向舵机的转动速度和功率是一定,要想加快转向机构响应的速度,唯一的办法就是优化舵机的安装位置和其力矩延长杆的长度。由于功率是速度与力矩乘第二章 智能车机械结构调整与优化-11-积的函数,过分追求速度,必然要损失力矩,力矩太小也会造成转向迟钝,因此设计时就要综合考虑转向机构响应速度与舵机力矩之间的关系,通过优化得到一个最佳的转向效果。经过最后的比较,最后下图机构。如图 2-6,我们最终使用的这套转向拉杆,综合考虑了速度与扭矩间的关系,并根据模型车底盘的具体结构,简化了安装方式,实现了预期目标。图 2-6 转向拉杆图 2.4 2.4 编码器的编码器的安装安装 为了提高精度,本车使用了编码器。为了便于安装,使用加工件将编码器与后桥进行连接,较好的保证了两啮合齿轮轴的平行度及传动的平顺性。第十一届全国大学生智能汽车总决赛赛技术报告-12-图 2-7 编码器安装 2.52.5 智能智能车车重心重心位置的调整位置的调整 为了达到较远前瞻,必须把线圈架到较远的位置,会引起车重心特别靠前,后轮正压力不足导致甩尾。为了使重心后移,我们尝试了很多传感器支架的搭建方式,使得保证结构稳定的前提下尽量减轻重量。同时,我们把舵机和电池均往后移,达到了预期的效果。图 2-8 重心位置的调整 2.62.6 其它机械结构的调整其它机械结构的调整 另外,在模型车的机械结构方面还有很多可以改进的地方,比如说车轮、悬架、底盘、车身高度等。模型车在高速的条件下,由于快速变化的加减速过程,使得模型车的轮胎与轮辋之间很容易发生相对位移,可能导致在加速时会损失部分驱动力。在实验中调试表明,赛车在高速下每跑完一圈,轮胎与轮辋之间通常会产生几个厘第二章 智能车机械结构调整与优化-13-米的相对位移,严重影响了赛车的加速过程。为了解决这个问题,我们在实际调试过程中对车轮进行了粘胎处理,可以有效地防止由于轮胎与轮辋错位而引起的驱动力损失的情况。此外,我们还对车身高度,以及底盘的形状和质量等,都进行了相应的改进和调整,均取得了不错效果。-14-第三章 电路设计说明 3.13.1 电源管理模块电源管理模块 电源模块为系统其他各个模块提供所需要的电源。设计中,除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方面进行优化。可靠的电源方案是整个硬件电路稳定可靠运行的基础。全部硬件电路的电源由配发的标准车模用 7.2V 2000mAh Ni-cd 镍镉充电提供。由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各个模块所需要的电压。为满足需要,本车模上存在 4 种供电电压:1)智能车使用镍镉充电电池,充满时电压在 7.88.2V。可直接用于电机供电。2)一些数字器件使用直流 5V,5V 电源选用开关型稳压芯片 TPS7350 以及线性稳压芯片 LM2940。3)使用 3.3V 为单片机供电,采用线性稳压芯片 LM1117 3.3。4)电机驱动电路的电源可以直接使用蓄电池两端电压。模型车在启动过程中往往会产生很大的冲击电流,一方面会对其他电路造成电磁干扰;另一方面由于电池内阻造成电池两端的电压下降,甚至会低于稳压电路所需要的最低电压值,产生单片机复位现象。为了克服启动冲击电流的影响,可以在电源中增加电容值较大的电解电容,也可以采用缓启动的方式控制电机。在启动时,驱动电路输出电压有一个渐变过程,使得电机启动速度略为降低从而减小启动冲击电流的幅度。第三章 电路设计说明-15-图 3-1 舵机供电电路 图 3-2 单片机供电电路 第十一届全国大学生智能汽车总决赛赛技术报告-16-图 3-3 其他模块供电电路 3.2 3.2 传感器模块传感器模块 3.2.13.2.1 金属金属传感器的原理传感器的原理 参考智能车竞赛秘书处给出的电轨组路径检测参考方案,我们最终选用第二种检测金属位置的方法即利用金属在交变磁场感应涡流的特性检测金属赛道的位置。第三章 电路设计说明-17-利用金属在交变磁场感应涡流的特性:这种检测方式应用比较广泛。从安检过程中所使用的手持金属探测仪到工业中涡流距离传感器都是使用的类似的原理。当通有交变电流(频率小于一定数值)线圈靠近金属物体的时候,线圈周围的交变磁场会在金属物体中感应出涡流。涡流所产生的二次磁场叠加在原来磁场中则会改变原有线圈中的感应电动势,进而可以等效改变原线圈的电抗。如下所示:图 3-4 扁平线圈在导电板中感应涡流示意图 线圈的电抗改变的大小与线圈的形状、振荡频率、线圈与金属相对位置以及金属的电导率、磁导率有关系。如果在线圈形状、振荡频率以及金属种类都确定的情况下,线圈电抗的变化则能够反映线圈与金属之间的相对位置。检测线圈电抗改变的简单方法是采用谐振电路。将线圈放在正弦波振荡电路的谐振回路中,当线圈的电抗改变,则谐振电路的频率会随之改变。通过震荡信号的频率变化反映出线圈的电抗的变化,进而可以检测线圈与金属之间的相对位置。3.2.3.2.2 2 检测电路检测电路 利用感应涡流的原理,检测线圈电感量的变化,从而获得线圈与铝膜之间的相对位置。实现的电路的方式有很多种。下面给出一种基于电容三点振荡电路形式的检测方式。电路本身既是检测驱动信号源,同时又信号检测电路,所以比较简单。详细电路如下图所示:Alternating CurrentEddy CurrentMagnetizing CoilMetal Plate第十一届全国大学生智能汽车总决赛赛技术报告-18-图 3-5 金属检测电路 上面电路包括两部分。第一部分是以PNP三极管T1为核心的振荡电路;第二部分是利用LM311比较器获得频率脉冲信号。该脉冲信号送入单片机的定时器进行频率测量。电路中0L既为检测线圈。它与12,C C构成振荡电路的谐振回路。通过简化,上面振荡电路的形式可以化成电容三点式标准形式。图 3-6 振荡电路的等效标准形式 标准的电容三点式振荡电路应该在T1的基极对地之间连接一个较大的旁路电容,方便振荡电路起振。通过实验发现,不连接该电容,在T1集电极(图中标志为1处)的输出信号幅度更大,所以上述电路中没有增加该电容。电路中使用PNP晶体管组成振荡电路的目的是能够与后级比较器电路能够直接相连。T T1 1/8 85 55 50 0C1C2CparasiteR1/R2L0.第三章 电路设计说明-19-检测线圈采用的是矩形的线圈。其电感参数经过测量后约为510微亨。在上述电路参数下振荡频率约为290kHz左右。3.3 3.3 电机驱动模块电机驱动模块 常用的电机驱动有两种方式:一、采用集成电机驱动芯片;二、采用 N 沟道 MOSFET 和专用栅极驱动芯片设计。市面上常见的集成 H 桥式电机驱动芯片中,7960 是在比赛中非常常用的驱动芯片,是半桥驱动,所以要实现正反转控制需要两片。单片的驱动能力 43A,7970 单片的驱动能力 68A。采用 2 个半桥智能功率驱动芯片 BTS7960B 组合成一个全桥驱动器,驱动直流电机转动。BTS7960B 是应用于电机驱动的大电流半桥集成芯片,它带有一个P 沟道的高边 MOSFET、一个 N 沟道的低边 MOSFET 和一个驱动 IC。P 沟道高边开关省去了电荷泵的需求,因而减少了电磁干扰(EMI)。集成的驱动 IC 具有逻辑电平输入、电流诊断、斜率调节、死区时间产生和超温、过压、欠压、过流、堵转及短路保护功能。BTS7960B 的通态电阻典型值为 16m,驱动电流可达 43 A,调节 SR 引脚外接电阻的大小可以调节 MOS 管导通和关断时间,具有防电磁干扰功能。IS 引脚是电流检测输出引脚。INH 引脚为使能引脚,IN 引脚用于确定哪个 MOSFET 导通。当 IN=1 且 INH=1 时,高边 MOSFET 导通,输出高电平;当 IN=0且 INH=1 时,低边 MOSFET 导通,输出低电平。通过对下桥臂开关管进行频率为20 kHz 的 PWM 信号控制 BTS7960B 的开关动作,实现对电机的正反向 PWM 驱动、反接制动、能耗制动等控制状态。由于分立的 N 沟道 MOSFET 具有极低的导通电阻,大大减小了电枢回路总电阻。另外,专门设计的栅极驱动电路可以提高 MOSFET 的开关速度,使 PWM 控制方式的调制频率可以得到提高,从而减少电枢电流脉动。并且专用栅极驱动芯片通常具有防同臂导通、硬件死区、欠电压保护等功能,可以提高电路工作的可靠性。但是由于比赛电机内阻仅为几毫欧,使用集成芯片会经常出现发热量大的情况,降低了电机的效率和控速的稳定性。所以我们采用了分立的 N 沟道 MOSFET 具有极低的导通电阻,大大减小了电枢回路总电阻。另外,专门设计的栅极驱第十一届全国大学生智能汽车总决赛赛技术报告-20-动电路可以提高 MOSFET 的开关速度,使 PWM 控制方式的调制频率可以得到提高,从而减少电枢电流脉动。并且专用栅极驱动芯片通常具有防同臂导通、硬件死区、欠电压保护等功能,可以提高电路工作的可靠性 1.专用栅极驱动芯片的选择:IR2104 半桥驱动芯片可以驱动高端和低端两个 N 沟道 MOSFET,能提供较大的栅极驱动电流,并具有硬件死区、硬件防同臂导通等功能。使用两片 IR2104型半桥驱动芯片可以组成完整的直流电机 H 桥式驱动电路。由于其功能完善,价格低廉容易采购,所以我们选择它进行设计,如图 3-7 所示:图 3-7 IR2104 应用图 2.MOSFET 的选择:选择 MOSFET 时主要考虑的因素有:耐压、导通内阻和封装,常用的 MOSFET 封装有 TO-220、TO-252、SO-8 等。于是我们选择了 IR 公司 TO-252 封装的IRLR7843 型 N 沟道 MOSFET,VDSS=30V、RDS(on)=3.3m、ID=110 A。3.控制逻辑电路设计:IR2104 的控制信号有两个管脚:IN 和 SD。IR2184 输入输出信号关系图如图 3-8 所示:第三章 电路设计说明-21-图 3-8 IR2104 输入输出关系图 可以看到 SD 管脚置低的时,输出永远为两个都为低,对于 NMOS,全不导通。当 SD 为 1 的时候是正常工作的时候:此时 IN 为 1,高输出端为高。低输出端为 0。也就是说高端 MOS 管导通(与电源正相连),低端 MOS 管(接地)不导通。IN 为 0,高输出端为 0。低输出端为高。也就是说高端 MOS 管不导通,低端MOS 管导通。以此,我们可以使用两片芯片构成全桥驱动来进行正反转与速度控制。第十一届全国大学生智能汽车总决赛赛技术报告-22-图 3-9 电机驱动模块原理图 3.43.4 单片机电路及接口部分设计单片机电路及接口部分设计 我们采用大赛组委会指定的一款单片机 K60 作为核心控制单元,该型单片机拥有主频 128MHz 主频,FlashRom512KB,具备 SPI,SSI,IIC 等多种实用接口,根据需要留出 IO 管脚。如图 3-10 所示。第三章 电路设计说明-23-图 3-10 单片机与各模块连接图 3.5 3.5 系统主板设计系统主板设计 电路的各个模块设计完成后,各个部分需要连接到系统主板形成完整的系统才能保证电路工作,主板电路上包含有控制器核心板插槽、传感器接入端口、蓝牙无线模块接口、PWM 输出接口、OLED 显示接口、起跑线检测接口、串口接口、舵机接口、编码器接口 -24-第四章第四章 智能车控制软件设计说明智能车控制软件设计说明 4.1 4.1 软件设计总体框架软件设计总体框架 程序使用了 K60 芯片中的 DMA 模块、PIT 模块、I/O 模块、FTM 模块。其中舵机和电机通过 FTMM 模块来控制,舵机频率 50Hz,电机频率 1000Hz。DMA 模块用来读取传感器及编码器采样回来的频率、脉冲信息,用来判断车体相对赛道位置和坡道,I/O 模块主要用来作为人机交互模块使用。PIT 模块作为定时器产生 5ms 的定时中断,用于来完成 DMA 读取,传感器处理,转向控制服务程序,速度控制服务程序等。程序大概流程如下:(1)进行各个模块的初始化。(2)获得各参数设置之后程序进入传感器校准循环,扫描是否有暂停键按下。(3)PIT 中断服务程序,进行传感器数据分析。(4)转向控制,速度控制,输出相应的 PWM 波值控制电机和舵机,使智能小车在赛道上平稳运行。为了方便控制,主函数循环里面除了初始化和起跑线检测的程序,其他所有的核心操作放在定时中断中处理。画出流程图后,从宏观上来看是两条线同时执行。如图 4-1 所示:图 4-1 程序整体流程图 4.2 4.2 采集传感器信息及处理采集传感器信息及处理 初始化 参数设置 传感器处理 舵机控制 速度控制 起跑线检测 检测到起跑线?停车 Y N 第四章 智能车控制软件设计说明-25-图 4-2 电路中关键点的信号波形。左边是线圈俩端的波形;右边是输入单片机的波形 使用该脉冲信号作为计数器的时钟信号,单片机在相同周期内读取计数器数值并对其清零。读取数值正比于脉冲频率。算法流程图如图 4-3 所示:图 4-3 利用计数器测量脉冲频率 由于影响电感的位置因素包括线圈距离铝膜的高度和线圈在铝膜上的重叠面积。为了避免车模运行过程中铝膜高度引起的电感变化产生的干扰以及转弯时因前瞻太长而丢线,可以制作三路检测电路,通过三路脉冲信号的频率差来反映车模偏移量。如图 4-4 所示:计数器清零定时器中断读取计数器 N1清除计数器周期T1中断服务程序第十一届全国大学生智能汽车总决赛赛技术报告-26-图 1 采用三线圈方式检测车模偏移量 当两路检测线圈参数一致的情况下,车模的上下震动所引起的两路频率变化一致。通过这两路的频率差值可以有效减弱线圈到铝箔距离变化所引起的影响。4 4.3.3 赛道信息计算赛道信息计算 检测线圈与金属之间的相对位置参数主要包括距离和重合面积。下图显示的一个矩形线圈与金属平板之间相对位置。如果维持距离d不变,则相对位置主要由线圈与金属平板之间的重合距离l决定了。本文所给出的参考方案就是利用这个特点来测量线圈与金属之间的相对重合距离,进而反映了车模与赛道的偏移量。图 4-5 矩形线圈与金属平板之间测相对位置 4 4.4.4 舵机控制算法舵机控制算法 舵机的控制是根据传感器检测到的信号来实现的,关于线圈的个数和排布,dlMetal PlaneCoilHeightD Di is st ta an nc ce e第四章 智能车控制软件设计说明-27-不同的控制方法有不同的选择,线圈个数减少会带来处理上的方便,但也会使采集到的信息不够丰富,电感个数增加会使得信息处理稍显复杂,但是得到的赛道信息较丰富。我们权衡后选择一排 3 个线圈来进行处理。舵机的控制基本分为方向判断和打角控制。(1)舵机转向判断:我们利用左右两个线圈的差值可以较方便的进行转向判断,值得一提的是为了防止误判,可先判断出小弧度的转向,大弧度的转向继续保持标志位即可。(2)舵机控制我们是根据对线圈的差值和差值变化量进行模糊,得出模糊量后,对模糊量进行 PD 控制,通过修改模糊规则查询表和 PD 项的参数能够使得小车在赛道上实现较好的打角范围。4.54.5 速度控制算法速度控制算法 4 4.5 5.1.1 增量式增量式PIDPID控制原理控制原理 比例-积分-微分(Proportion-Integral-Differential,简称PID)控制器是一个三项控制器,在自动控制领域拥有悠久历史。具有原理简单,结构灵活,适应性强等特点,能够提供一系列令人满意的过程,实际上它在工业中已成为标准控制器。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID 控制技术。PID 解决了自动控制理论所要解决的最基本问题,既系统的稳定性、快速性和准确性。PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID 控制器,原理框图如图4-6。第十一届全国大学生智能汽车总决赛赛技术报告-28-图4-6 感应电动势曲线 在计算机控制系统中采用数字式PID 控制器。数字PID 控制算法通常分为位置式PID 控制算法和增量式PID 控制算法。位置式 PID 公式为:增量式 PID 公式为:增量式PID 具有以下优点:(1)由于计算机输出增量,所以误动作时影响小,必要时可用逻辑判断的方法关掉。(2)手动/自动切换时冲击小,便于实现无扰动切换。此外,当计算机发生故障时,由于输出通道或执行装置具有信号的锁存作用,故能保持原值。(3)算式中不需要累加。控制增量u(k)的确定仅与最近k 次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。但增量式PID 也有其不足之处:积分截断效应大,有静态误差;溢出的影响大。使用时,常选择带死区、积分分离等改进PID 控制算法。4.54.5.2.2 速度策略分析速度策略分析 速度控制部分是智能车除了舵机控制之外最为核心的内容。一个好的速度 控制就是能十分准确的给出目标速度,电机对目标速度响应迅速,系统在干扰 下速度依然稳定。我们采用的速度决策方法是一个简单的分段函数。将赛道分为直道,小半第四章 智能车控制软件设计说明-29-径弯道,大半径弯道,丢失路线。不同的赛道给定不同的速度,并且舵机要很好的进行相应的配合,不过随着速度的提高,会感觉到有舵机响应跟不上的情况。影响电机速度的因素有很多,例如电池电压、赛道摩擦力等,所以针对不同的环境应该制定不同的参数,这就需要多次反复的测验和调试,具备一定经验之后,才能在比赛舞台上发挥出应有的实力。4.5.34.5.3 差速策略差速策略 目前电动车主要的驱动方式有集中驱动式,双电机独立驱动式(前驱式和后驱式)及四电机四轮独立驱动式等形式。不论采用何种驱动方式,当汽车不在平面路上时,驱动轮都会遇到差速问题。要解决差速问题,最直观的就是控制两个驱动的转速,使其满足Ackerman模型要求。汽车在转向时,全部车轮都必须绕瞬时中心点做圆周滚动,而且前内轮的转角应该满足关系式:ctg b-ctg a=K/L 模型车的主要技术参数说明 模型车技术参数统计模型车技术参数统计 参数参数 所选车型 A车模 车模几何尺寸(长、宽、高)77cm21cm7cm 车模轴距/轮距(毫米)220 车模平均电流(匀速行驶)1.75A 电路电容总量(微法)小于 1600 传感器种类及个数 3个电感,1个编码器,3个干簧管 车模重量(带有电池)(千克)1.5 -30-结论 忙忙碌碌的几个月过去了,省赛结束的。获得了一个不错的成绩。安徽赛区预决赛第一名。自己还是很满意的。回顾过去的几个月。也应该给自己一个总结。今年是恩智浦杯的第十一年,赛题出现了很大的变动。电轨组是今年的全新的赛题。因为没有往届的技术参考,从传感器到最终的车的成型,都是依靠老师和队友一起一点一点琢磨出来的。在这里也感谢老师和队友的支持。因为电轨组的寻迹引导方式与以往不同,前几个月我们都在为了传感器而努力。我们先使用软件模拟,逛各大论坛,尽可能的收集相关资料。之后把收集到的资料进行整理,做出实物进行相关测试,之后官方给出了参考方案,给我们一个方向就是利用电容三点式震荡电路,利用其靠近金属发生的波形变化,通过单片机去检测,从而达到检测路径。我们就是从官方的思路,做出了我们自己的传感器。其中淘宝各大商店也推出了各自的传感器。但我们从一开始就立志传感器要自己做,因为我清楚的知道传感器是智能车的基础,必须要自己能够掌握住。通过几个月的奋斗,我们最终还是成功了。我们的传感器高度达到了两厘米多,主要的是其稳定性很好。传感器出来了之后我们就正式开始了我们的调车子路。越到最后,我们越是求稳。期间有很多次的刷夜,最喜欢的就是在实验室能够和一群爱好相投的人一起讨论智能车的问题。通过在实验室的两年。我得到的不仅是知识上的收获,更多的是身心上。通过调试智能车让我们更加的有耐心。也让我们具备了很强的学习能力。非常感谢学校为我们提供这个平台,也感谢胡老师对我们的支持。当然离开不了与队友之间的团结合作。附录 A:程序代码-31-参考文献 1 智能车竞赛秘书处,电轨组路径检测参考方案.2016 2 卓晴,黄开胜,邵贝贝,学做智能车.北京-北京航空航天大学出版社 2007 3 谭浩强,C+程序设计.北京-清华大学出版社 2004 4 王建农,Altium Designer10 入门与 PCB 设计实例/dz 电路设计丛书 5 杨东轩,王嵩.ARM Cortex-M4 自学笔记:基 KinetisK60M.北京.北京航空航天大学出版社2013 6 童诗白,华成英,模拟电子技术基础M北京.高等教育出版社2000 7 赵天池,传感器和探测器的物理原理应用,科学出版社 8 宗光华,机器人的创意设计与实践M北京.北京航空航天大学出版社2004 9 张文春,汽车理论M北京机械工业出版社2005 -32-致谢 首先我们感谢教育部举办这样的创新比赛,感谢恩智浦半导体公司对于学生创新活动的大力支持,感谢智能汽车竞赛组委会提供竞技平台,让我们在这个平台上学到了知识。同时感谢指导教师与学校领导对我们本次参赛的支持与帮助。最后感谢所有关心过我们比赛的亲人、老师、同学,在你们的期盼和祝福下,我们赢得了最悦耳掌声,在此向各位致以崇高的敬意!在半年的备战过程中,场地和经费方面都得到了学校和学院的大力支持。现在,面对即将到来的大赛,在历时近八个月的充分准备以及安徽赛的考验之后,我们有信心在全国比赛中取得优异成绩。或许我们的知识还不够丰富,考虑问题也不够全面,但是通过这半年来的努力和付出,我们相信自身在各个方面的提高都将让我们今后有更好的发展。I 附录 A:程序代码 源代码/*!*brief 初始化 FTM 的 PWM 功能 *param FTMn_e 模块号(FTM0、FTM1、FTM2)*param FTM_CHn_e 通道号(CH0CH7)*param freq 频率(单位为 Hz)*param duty 占空比分子,占空比=duty/FTMn_PRECISON *since v5.0 *note 同一个 FTM,PWM 频率是必须一样的,但占空比可不一样。共 3 个 FTM,即可以输出 3 个不同频率 PWM *Sample usage:FTM_PWM_init(FTM0,FTM_CH6,200,10);/初始化 FTM0_CH6 为 频率 200Hz 的 PWM,占空比为 10/FTM0_PRECISON */void FTM_PWM_init(FTMn_e ftmn,FTM_CHn_e ch,uint32 freq,uint32 duty)uint32 clk_hz;uint16 mod;uint8 ps;uint16 cv;ASSERT(ftmn=FTM0)|(ftmn=FTM1|ftmn=FTM2)&(ch=FTM_CH1);/检查传递进来的通道是否正确 /*开启时钟 和 复用 IO 口*/FTM_port_mux(ftmn,ch);/*计算频率设置 */若 CPWMS=1,即双边捕捉脉冲,则 PMW 频率=bus 频率/2/(2预分频因子)/模数 /若 CPWMS=0,即单边捕捉脉冲,则 PMW 频率=bus 频率 /(2第十一届全国大学生智能汽车总决赛赛技术报告 II 预分频因子)/模数 /EPWM 的周期:MOD-CNTIN+0 x0001 (CNTIN 设为 0)/脉冲宽度:CnV-CNTIN /模数 MOD 0 x10000 /预分频因子 PS 0 x07 /预分频因子 PS 越小时,模数 mod 就越大,计数就越精准,PWM 输出更为准确 /MOD =clk_hz/(freq*(1 PS)clk_hz/(freq