1、第九届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学 校:杭州电子科技大学队伍名称:杭电光电3队参赛队员:刘 勇常玉锋叶建明带队教师:刘国华黄继业日期: 2014年8月11日目录第九届“飞思卡尔”杯全国大学生智能汽车竞赛 1摘要 3第一章引言 51.1 概述 .51.2 整车设计 .61.3 小结 .7第二章机械设计与修改 82.1 前轮定位 .82.2 底盘高度 .112.3 主动悬挂 .112.4 传感器支架 .122.5 舵机的安装 .122.6 差速调整 .13第三章硬件设计 143.1 硬件电路整体架构设计 .143.2 单片机最小系统板电路设计 .153.3 传感器设计 .163.
2、4 起跑线检测电路 .163.5 电机驱动电路设计 .163.6 舵机驱动电路设计 .173.7 液晶按键电路设计 .183.8 系统电源电路设计 .193.9 系统主板电路设计 .193.10 电源电路设计 .203.11 小结 .20第四章软件系统设计 224.1 软件控制的总体思路 .224.2 主程序结构 .224.3 程序的运行 .234.4 路径识别子程序设计 .244.5 摇头舵机控制子程序设计 .244.6 转向舵机控制子程序设计 254.7 悬挂舵机控制子程序设计 .264.8 速度控制子程序设计 274.9 小结 .32第五章开发、调试过程说明 335.1 开发工具 .33
3、5.2 调试工具 .335.2.1 串口调试方法 345.2.2 按键调试模块 355.2.3 SD 卡与大容量 FLASH 调试模块 .355.2.3 上位机调试 364第六章车模技术参数说明 376.1 车模主要技术参数 37第七章总结 39致谢 40参考文献 41附录 A 程序源代码 .42附录 B 电路设计图 .59摘要本文介绍了杭州电子科技大学杭电光电三队队员们在准备第九届飞思卡尔智能车大赛中的工作成果。智能车的硬件平台采用Kinetis 微控制器,软件平台为IAR开发环境,车模采用大赛组委会统一提供的B型仿真车模。文中主要介绍了智能小车控制系统的机械结构、软硬件结构及设计开发过程。
4、整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略的优化等多个方面。车模以MK60DN512ZVLQ10单片机为控制核心,以安装在车身上的线性CCD为循迹传感器,采用红外对管检测起跑线,以正交光电编码器检测速度信息。车模系统的简单工作原理是MK60DN512ZVLQ10单片机采集线性CCD传来的赛道信息,结合舵机控制算法控制舵机转角,单片机再综合赛道信息并结合旋转光电编码器的速度反馈信号,利用电机控制算法控制速度变化。结合MATLAB软件仿真和上位机软件的监控调试,最终确定了各项控制参数。关键字:智能车;PID控制;上位机;MATLAB;线性CCD6第一章引言1.1 概述飞
5、思卡尔杯全国大学生智能车竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,涵盖了机械、模式识别、电子、电气、传感技术、计算机、自动化控制、汽车理论等多方面知识,从一定程度上反映了当代大学生综合运用所学知识和探索创新的精神。我们积极组队参加第九届“飞思卡尔”杯全国大学生智能车比赛。光电组采用线性CCD检测赛道。其信号采集与摄像头组和电磁组有很大差别,主要在于线性CCD对于光线的要求比较高,适应性相对较差,而且前瞻也有局限性,结合上述特点,我们采用双CCD及“摇头”策略,加以合理的传感器布局,经过后续电路处理,完成对赛道信号检测并以此来控制车子的转向和行驶速度。关于软件,我们采用鲁棒性较
6、强的PID控制算法来作为车子的主导控制。为满足智能车在高速与急转等恶劣情况下的动力性能和稳定性能,我们参考了前几届的队伍参赛经验,经过深思熟虑对整车经行了合理的重心与电路等的布局。本技术报告主要讲述杭电光电三队智能车的制作历程,包括机械和硬件的设计、改装,以及单片机的学习和使用,控制算法的研究与应用,车模机械参数的讨论和修改等。1.2 整车设计1.2.1 车辆布局鉴于赛道的摩擦力和复杂性以及车模的机械结构等因素,我们认为在确保不伤害赛道的情况下最大限度降低重心有利于车子行驶,主要是因为这对车子转弯的性能以及直道加减速性能有很大帮助。故而在设计 PCB 及机械架构时主要以降低重心及车模对称性为核
7、心进行改装。另外,由于 CCD 对于抖动比较敏感,所以我们采用特制支架对其加固,支架以碳杆及铜柱为主要材料,这样可以在保证质量足够轻的前提下最大限度使在车模运动时 CCD 不发生抖动。此外,我们采用 500P 的 OME-A 18 光电编码器,直接用编码器齿轮咬合车模后轮齿轮的方法来获取速度信息,从而对车子运行速度进行闭环控制。车模主体部分:1: 底盘及附属部分,包括电机、舵机、电池等;2: 赛道信息检测部分,包括线性 CCD、红外对管等;3: 编码器测速部分;4: 单片机最小系统及电源电路;5: 传感器支架;6: 红外对管及 OLED。8图1.1 车模整体图1.2.2 控制简述由于传感器感应
8、得到的电压信号相对较小,黑白线电压差值较小,所以我们采用蓝宙电子提供的带运放的线性CCD,信号值经过运放后,黑白线差值较大,然后再通过单片机AD口采集。同时编码器的信号也同步输入,由单片机的正交编码模块进行采集计算,从而得到车子行驶的速度。舵机采用PID控制算法根据速度及赛道信息进行控制,并且加入连续控制函数进行修正,使前轮的转向更加具有连续性和精确性;驱动电机在最佳的驱动频率(15kHz)下,采用增量式PID控制PWM通道的占空比而调整电机输出功率。图1.2 车模控制系统概述1.2.3 光电组的优势与劣势光电组的信号采集与处理与摄像头组和电磁组有很大差异,对于光线要求较高,所以适应性较差,我
9、们尝试过动态曝光时间及动态阈值等算法加强其适应能力。线性CCD采集到的图像信息很少,赛道识别难度比较大,而且容易丢线,前瞻也有局限性,所以对算法要求比较高,另外B车模本身机械架构较差,尤其是前轮虚位及其严重,我们采用粘贴锡箔纸及AB胶固定等方法减小虚位。光电的优势就在于B车模速度性能好,速度提升空间很大,合适的机械结构及软件算法可以使之发挥出巨大的潜力。1.3 小结本章主要介绍了车模的整体设计思路和大致的布局,以上将会为以下章节的介绍起到铺垫的作用。10第二章 机械设计与修改2.1 前轮定位为了使模型车在直线行驶时更加稳定,转向轻便,转向后能自动回正,并减少轮胎和转向系零件的磨损等,在转向轮、
10、转向节和前轴之间形成一定的相对安装位置,叫车轮定位。其中包括主销后倾、主销内倾、车轮外倾和前束。我们今年的比赛车模主销后倾角与前轮外倾不可直接调整,但是通过对前悬挂系统的适当打磨(规则允许)可以达到一定的调整。接下来主要介绍主销后倾、主销内倾和前束对车子行驶的影响及调教。2.1.1 主销后倾主销在车模的纵向平面内(汽车的侧面)有一个向后的倾角,即主销线与地面垂直线在车模在纵向平面的夹角,称为“主销后倾角”,如图2.1示例所示。车模采用主销后倾的原因是由于汽车在车轮偏转后会产生一回正力矩,纠正车轮偏转。车模的主销后倾不可直接调教,在此我们采用预设的主销后倾角,大概5度。如图2.2所示。图2.1
11、主销后倾角示例 图2.2主销后倾角2.1.2 主销内倾主销在车模的横向平面内向内倾斜一个角,即主销轴线与地面垂直线在车模的横向断面内的夹角,称为“主销内倾角”,如图2.3示例所示。主销内倾角也有使车轮自动回正的作用,当转向轮在外力作用下发生偏转是时,由于主销内倾的原因,车轮连同整个车模的前部将会被抬高;外力消失后,车轮在重力作用下恢复到中间位置。另外主销内倾还会使主销线延长线与路面的交点到车轮中心平面的距离减小,同时转向时赛道作用在转向轮上的阻力矩也会减小,从而减小转向阻力,使转向轻便,灵敏。最后,之所以这么做,是为了弯道。轮胎调整为倾斜以后直线行走的时候是轮胎内侧着地。而当过弯的时候,由于惯
12、性车体会要向弯道外侧倾斜,而这时候的外侧轮胎如果倾斜角度事先调整得当则正好可以胎面着地,从而使车辆在弯道获得最佳抓地力。而如果事先把轮胎装成是完全垂直于地面的话,尽管直线行驶的时候轮胎是胎面着地,而到弯道就会变成轮胎外侧着地了,那样将大大减小轮胎与地面的有效接触面积,从而导致弯道抓地力大幅降低。不可过度调整,否则在直道和弯道时均使用轮胎内侧,导致轮胎严重磨损,抓地力极低。可适当提高(向左侧调整)前轮内倾角,以便在过弯时保持转向灵敏度。高速赛道提高(向左侧调整),低速赛道降低(向右侧调整)。由于我们的车模要在高速下连续转弯,在此我们将车模主销内倾调教为-8度左右。12图2.3 主销内倾角示例 图
13、2.4 主销内倾角2.1.3 前轮前束前束是转向灵敏度与稳定性的权衡。前束不可以无限度增大(向左侧调整),太大了的话,直道行驶时车轮与地面发生的就不是滚动摩擦,而是滑动摩擦,轮胎磨损将急剧增大,且会导致阻力加大,降低直道速度。过度减小(向右侧调整),会导致稳定性降低,车辆抖动,难以操控。如图2.5示例所示。为了增加车子的转向性能以及满足阿克曼转弯原理,我们将车子的前束调教为tou out,大概5度左右。如图2.6所示。图2.5 前束示例 图2.6 前轮前束经过对以上车子前轮定位调整找到最佳参数后,车子在高速情况下获得较好的稳定性与速度性能。2.2 底盘高度由于车模在赛道上高速行驶和连续急转弯,
14、所以整车重心的高低决定了车模的加减速性能、转向性能、行驶稳定性等。吸取了前几届摄像头车模在比赛中翻车的教训后,我们坚持将整车重心最大限度的降低(前提是不伤害赛道)。在包裹上后来组委会指定的防滑套后,我们进行了“先滑先翻”试验。就是将车模放在赛道板子上,然后逐渐倾斜板子,看车模是先发生滑动还是先翻。如果是先滑动,那么就是摩擦力或者抓地力不足,重心不会导致过弯时翻车;如果是先翻车,那么说明重心太高。结果是车模先滑动,说明车模重心不是很高了,一般不会发生弯道翻车。为了增加转向的灵敏度,我们将前底盘的高度设定为低于后底盘高度,从而在转弯时能够更灵敏的转弯。2.3 主动悬挂根据往届比赛我们了解到车模在加
15、了主动悬挂以后对车对车模行驶有一定帮助。图 2.7 主动悬挂142.4 传感器支架关于支架的选取,我们历经多种方案。最开始采用“铜柱&塑料板&碳杆&AB胶”,后来发现该方案铜柱太沉重,使车模前部重量大幅增加,而且铜柱质地较脆硬,撞击或者过度拆卸就会“滑丝”甚至折断。直至最后采用碳杆的方案,该方案一直使用到现在。优点在于:1:架构简单,质量轻,强度大;2:可以使传感器支架做长,获得较远前瞻。因为这种架构的转动惯量较小,而且车模行驶时传感器支架抖动较小,所引起的传感器值改变小(后级的运放放大后会使信号出现异常,因此减小抖动很重要);3:可以做在任何位置,从而我们直接将支架固定在降低重心的配件里,很
16、牢固而且整车看起来简洁、坚固;4:该组合架构拆卸和维修较为方便,如果碳杆折断,只需更换即可。图 2.8摇头舵机安装图 2.9 摇头舵机安装图 2.10 固定CCD支架2.5 舵机的安装新车模的舵机是立式安放的,为了降低重心和减小前悬架的运动,我们将16舵机改为爬式放置。图 2.11 舵机安装图2.6 差速调整今年B车模差速分为内外差速,差速效果较为理想,所以无需任何高难度调整,只要保证差速在加速时不打滑即可。图 2.12 差速第三章硬件设计这一章将说明我们车模的每一部分硬件电路的原理及设计的实现方法。3.1 硬件电路整体架构设计图3.1 车模系统电路总体构架图系统整体结构如图3.1所示,我们将
17、电路分成几个模块单片机最小系统,电源电路,传感器电路,电机驱动电路,调试用的液晶显示&按键电路。部分模块独立在单独的电路板上,方便随时修改方案,并实现物理上的隔离。强电流和弱电流分别分布在电路板上的两个角落。数字地与模拟地隔离。上述措施可以防止电磁干扰,显著的提高电路的稳定性。183.2 单片机最小系统板电路设计为提高队员的动手能力和减小模型车总重量,我们自己设计了单片机最小系统板。最小系统板使用MK60DN512ZVLQ10芯片。最小系统板中包括单片机时钟(有源晶振提供)与复位电路、3.3V稳压电路、JLINK 接口,并引出其他需要的 IO。而光电编码器接口、舵机接口、驱动电路接口等就直接设
18、计在主板上,因为他们的供电比较麻烦而且供电必须稳定才行。整个最小系统电路板按照Freescale提供的PCB Layout设计,保证了电路的稳定性。为了提高单片机最小系统的稳定性,防止540电机和伺服舵机在大功率工作时(例如直到加速或者急转弯减速时)将电池电压拉低导致最小系统工作出现故障,我们修改了最小系统的供电方案。首先我们将电池电压降压到5.5V,再稳压到3.3V,显著提高了单片机的抗干扰能力。图 3.2 单片机最小系统 PCB 图 图 3.3 单片机最小系统实物图3.3 传感器设计传感器模块我们直接采用了蓝宙电子的线性CCD模块。3.4 起跑线检测电路按照比赛规则,起跑线是两条10cm长
19、的黑线。用四个线性排列的红外对管进行检测即可。通过调整红外对管的相对距离可以确保每次车模经过都至少有两个对管检测到黑线。图3.4 红外对管检测电路3.5 电机驱动电路设计对于电机驱动电路,可有多种选择,像专用电机驱动芯片MC33886、L298N等,但是以上芯片效果不好。因为电感作为传感器前瞻比较小,因此需要用H桥的全桥电路刹车才能够使得车及时刹车,减速入弯。另外,今年电磁组的电机采用540电机,功率较大,我们大概测试过启动或者堵转时电流可以达到7.5A(适当的驱动频率下),甚至烧毁电池的保护连接件。开始我们采用英飞凌的集成半桥芯片BTS7960B构成H桥来驱动电机,由于速度提升后电机耗电较大
20、,所以发热严重,使得BTS7960B进入过热保护而导致车子停止前进。后来改用MOS H桥来驱动电机,当速度达到一定水平后焊接MOS的焊锡融化后使MOS掉落,烧毁很多电路。于是我们又开始艰难的尝试新的驱动方案。最终我们找到了4N MOSFET的H桥方案,于是采用4N MOSFET 的H桥使得电机驱动问题彻底解决。该电路也较为简单,百度文库即可搜到。往届技术报告亦有所提及。20图3.5 驱动电路 图3.6 驱动电路3.6 舵机驱动电路设计今年B车转向舵机采用的是S-D5数字舵机,工作电压小于5.5V。为了稳定性和舵机寿命,我们于是给该舵机提供5.2V到5.4V的电压。早期检测表明该舵机耗电较大,因
21、此我们就没有使用使用比较广泛的LM2576和LM2596,而是采用新型的8133降压稳压器(输入级直接是电池电压),8133足够提供舵机的供电,还能有较大电流的裕量。实际测试的过程中也没有出现因为舵机供电的问题导致舵机反映迟钝。所以最终就采用了这种方案。舵机的控制除了需要5.4V的供电电压还需要一路PWM波,以20ms 为周期(实际S-D5数字舵机可以用最大 300HZPWM信号控制),不同的占空比会使舵机稳定在不同的角度上,具体如图3.12所示。图 3.6.1 不同PWM对应的舵机旋转角度3.7 液晶按键电路设计为使软件上参数调节的方便,我们特意制作了这个液晶加键盘模块。调试中,这个模块给我
22、们对参数的确定带来了极大的方便,不用为改一个参数而重新为单片机下载一下程序。模块采用键盘+ OLED 液晶。此模块直接与最小系统板连接,并将其直接固定在主板。图3.7 液晶按键PCB图图 3.8 液晶按键PCB图223.8 系统电源电路设计系统要稳定工作,首先电源要稳定,系统中有多路电源,7.2V,5.5V,3.3V等。7.2V电池电压直接接到电机启动模块,5.5V 为舵机供电,3.3V 为单片机、红外模块、CCD以及液晶供电。3.9 系统主板电路设计由于硬件是分模块设计的,最终要接在一起才能相互通信。主板电路主要有电池接口、单片机最小系统板插座、电源电路板插座、舵机及电机驱动接口。另外,主板
23、上还集成了出3.3V稳压电路。接口电路板的PCB设计是要充分考虑与车模机械的配合,于是更多的采用高效优质的牛角插座及排线来完成远距离连接。图3.9 主板电路PCB图图 3.10 整体电路实物3.10 电源电路设计由于主板空间有限,故将部分电源模块单独做出,包含 3 路 5.5V 电源电路,分别为打角舵机、摇头舵机和扭腰舵机、3.3V 稳压芯片供电。图 3.11 电源电路 PCB 图 3.12 电源电路实物图3.11 小结对于硬件电路部分,一定要用料扎实,稳定第一,抗干扰性能一定要高。单片机电压一定要稳定,防止舵机和电机启动的时候拉低电压导致复位。解决这个问题最实用的办法就是加上储能器件,加上适
24、当大小的电容是必要的。整个电路板的制作过程也要十分严谨。电路简单的线路板直接使用手工制作。复杂的电路要经过好几个步骤。首先手工制作电路板,长时间工作以测试其稳定性。当稳定24性达标之后根据原理图重新布线,到工厂生产PCB,制作出第一批样品。没有问题的样品电路板直接使用,布局不好或者是影响性能的电路板要重新制作,直至纹波、质量、体积、布局都达标才是最终产品。硬件电路是智能车的基础,只有打好基础才能继续软件方面的工作。第四章软件系统设计4.1 软件控制的总体思路软件控制即将自己的思路通过代码形式灌输到单片机中,并让其高速有序的执行。对于所有智能车来说软件控制基本是按照路径识别=摇头控制=主动悬挂控
25、制=舵机控制=速度控制。其目的是在比赛时以最快速度,最佳路径跑完全程。具体方案就是采集CCD传来的赛道电压值,判断赛道两侧黑线的位置,控制摇头打角,主动悬挂,进而控制舵机打角,控制电机转速。思路清晰可行,但真正想达到好的效果还是有一定难度的。4.2 主程序结构软件设计,主要包括以下几个部分:初始化、路径信息采集、决策控制等几个部分。程序的主体采用顺序结构。为了方便控制,Main函数里面除了初始化程序就是起跑线检测,而所有的核心操作放在定时中断中。如果说画流程图,从宏观上来看是两条线同时执行。如图4.1所示:26图4.1 主程序结构示意图4.3 程序的运行电源打开后后,对智能车所有参数进行初始化
26、处理,接着进行PIT 定时中断,对线性CCD传感器采回来的数值进行分析,由此判断出赛道的两边黑色引导线的位置坐标,根据实时信息设置合适的参数,并由此执行以下的控制步骤。根据CCD采集的黑线位置计算出赛道两侧的黑色导线与车正中心的偏差(下简称黑线偏差)。并由黑线偏差的大小调节合适的CCD前瞻远近以实现最合适的路径采集与处理。获得赛道信息与目前的车身与赛道间的黑线偏差后,即可结合舵机的PID控制算法控制舵机的打角值,打角与黑线偏差的关系由PID控制,调节最适的PID参数用以最佳的路径跑法。同时根据两个CCD的远近关系以及黑线偏差可以相互切换使用,由黑线的偏差量即时改变给定电机的目标转速。在获取到目
27、标转速后,通过电机的PID控制器迅速稳定的控制电机达到目标转速。4.4 路径识别子程序设计路径识别包括对CCD传感器的控制以及采集信号的处理。我们利用PIT 定时中断,在一定的中断时间后进行CCD的采集函数,将CCD的128个位置的采集电压值用数组line128储存下来。对128个点的电压值进行精细分析,通过设定阈值的方法滤除杂波之后,利用二值化或者边沿检测的方法对数据的有效性判断,并确定采集到的赛道黑色引导线在CCD上的坐标值,左边黑线坐标Lx,右边黑线坐标Rx,由此借助前瞻的最适状态可以计算出车身与赛道的偏离情况:Mid = Lx + Rx - 128,进而可以进行一下的舵机以及速度等控制
28、。另外,为适应今年的赛道规则,我们特地对今年的人字,坡道,障碍等元素通过CCD采集来的值进行了适当处理,得到相关信息,进而可以相应的进行打角或速度控制。4.5 摇头舵机控制子程序设计摇头舵机的作用在于,CCD 传感器的角度可以根据上次黑线的采集情况以28及车身的偏离大小变化,使得 CCD 采集的黑线不会因为弯道过急造成丢线情况并出现复杂反应。摇头舵机打角是基于黑线采集判断。路径识别中得到的黑线偏差量 Mid 在摇头舵机的控制中起到到关键的作用。通过分析本场数据和上一场数据的关系,可以得到两次黑线偏差量的差值变化,由此还可以判断黑线的变化率Mid_cha,即可判断出进出弯道的情况,在接下来的 P
29、ID 控制中 Mid_cha 的作用在于增强了过弯打角的敏感度。经过舵机调试设定摇头舵机占空比给定的大小,通过黑线的偏差量和变化率计算出应该给定的数值 PWMDTY_yaotou=Mid*P+Mid_cha*D,其中 P、D 参数的设定是要根据实际情况做出最合适的调整的,它的大小影响了 CCD 的摇头量,进而影响 CCD 的采集状态,影响转向舵机打角,还会影响速度的控制,所以,摇头舵机的控制将是我们智能车的很重要的一部分,当然其他控制也是极其重要,缺一不可。图 4.2 是摇头舵机占空比给定的模拟曲线图。图4.2 PWMDTY_yaotou给定的效果图4.6 转向舵机控制子程序设计关于转向舵机打
30、角是建立在赛道分析和黑线采集判断的基础上的。路径识别中得到的黑线偏差量Mid在接下来的控制中起到到关键的作用。通过分析本场数据和上一场数据的关系,可以得到两次黑线偏差量的差值变化,由此还可以判断黑线的变化率Mid_cha,即可判断出进出弯道的情况,在接下来的PID控制中Mid_cha的作用在于增强了过弯打角的敏感度。通过长时间的调试,设定好不同的PID参数,用来给定舵机PWM的占空比的比例,另外加上摇头舵机的摇头大小基于打角占空比PWMDTY_zhuanxiang = PWMDTY_yaotou + Mid*Mid*A+Mid*B + Mid_cha*C。其中A、B、C是长时间调试出来的结果。
31、其中二次项的系数越打角会沿二次函数,一次项系数越大打角就越剧烈,C项越大直道就会抖动,但是过弯很灵敏。但最后实现的效果图如4.3 所示。图4.3 PWMDTY_zhuanxiang给定的效果图304.7 悬挂舵机控制子程序设计悬挂舵机的作用在于,车子在过弯的时候,可以使得车身往一侧略显倾斜,就像人骑摩托车过弯一样,可以让过弯道更加灵活,对车身的机械寿命也有一定的改进作用,防止往一侧过弯,因为重心向外测便宜,造成另一侧的车身损伤过于厉害。悬挂舵机控制是依赖于转向的大小的。针对不同转向舵机的打角值,给定不同的悬挂舵机打角大小,可以给定不同的车身倾角,进行悬挂控制经过不断的调试设定悬挂舵机占空比给定
32、的大小,通过转向的大小和变化率计算出应该给定的数值 PWMDTY_xuangua=zhuanxiang*P1+zhuangxiang_cha*D1,其中P1、D1 参数的设定是要经过不断的调试得到的。4.8 速度控制子程序设计速度控制部分是智能车除了舵机控制之外最为核心的内容。一个好的速度控制就是在不同的赛道处可以十分准确的给出目标速度,以求借助最适合和最快的速度过不同的赛道,电机对目标速度响应迅速,系统在干扰下速度依然稳定。4.8.1 模拟 PID 控制原理第一步要求有合理的速度决策。我们最终采用的速度决策方法是一次函数。速度的一次函数是根据黑线的偏差情况给定的,不同的速度适合不同的偏差量,
33、这个一次函数的关系需要不断调试实现,再设定出最高速度和最低速度,确保能够最快最稳定的进行。另外,由于本届规则设定了人字和障碍,以及坡道,通过赛道的判断,给予这三个元素不同的速度控制。而且这些速度都是可以根据赛道的具体情况通过按键在比赛准备时设定。同时我们基于对路况的识别对速度进行分配,速度分配的基本原则是长直道加速,入弯减速,弯道中适当加速。同时给不同的弯道(如大弯,S 弯)其所能运行的最高速度。图4.4 PWMDTY_sudu给定的效果图速度给定了之后执行也大有学问。直接列出速度和占空比的关系是一种十分不稳定的做法。这种做法受电池电量影响严重,而且只能适应某一种摩擦力的赛道。所以我们决定根据编码器反馈回来的数值进行换算。实际我们给定的目标速度与目标编码器的值是匹配的,当编码器反馈回来的速度没有达到目标速度,那么正转占空比自加,反之则自减。只要调节自加和自减的步进就能很好的对速度进行控制。这种步进,就是经典的增量式PID。对车速的 PID 闭环控制策略是将建立在经典的 PID 控制算法的基础上。有关 PID 的控制策略在这里做相关的介绍说明。将偏差的比例(Proportion ) 、积分(Integral)和微分(Differential)通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器称PID 控制器。