1、第三届“飞思卡尔”杯全国大学生智能汽车邀请赛技 术 报 告学 校:天津工业大学 队伍名称:疾速漂移参赛队员: 带队教师: 关于技术报告和研究论文使用授权的说明 本人完全了解第二届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名: 带队教师签名: 日 期: 目 录第一章 引言51.1智能车制作情况51.2 技术报告内容安排说明5第二章 智能车整体设计72.1 智能车系统
2、方案的选取72.1.1 红外发光管布局72.1.2单排红外发光二极管方案82.1.2双排红外发光二极管方案92.1.3系统方案确定112.2 系统硬件模块设计122.3软件结构流图14第三章 机械结构调整14第三章 机械结构调整153.1车身机构调整153.1.1底盘的调整153.1.2前轮的调整153.1.3后轮距及后轮差速的调整163.1.4齿轮传动机构的调整163.2舵机的改装173.3红外电路板的安装184.1 MC9S08DZ60芯片主板电路194.1.1 MC9S08DZ60芯片介绍194.1.2 MC9S08DZ60芯片外围电路设计213.2 红外管路径采集电路224.3 舵机转
3、向模块234.3.1 舵机的结构234.1.2 舵机的控制方法234.4 电机驱动模块254.5 速度采集模块264.5.1 速度采集模块方案264.5.2 速度采集模块电路:274.6 辅助调试模块28图4-10 串口调试助手界面283.7 电源分配模块29第五章 智能车软件设计及算法实现315.1 系统初始化315.1.1系统时钟315.1.2 ADC模块315.1.3 SPI模块325.2电机速度控制334.2.1 赛车PID调速334.2.2 积分项的改进:344.2.3 Bang-Bang控制的引入354.3舵机转向控制364.4路径识别算法374.4.1简单的路径识别374.4.2
4、抛物线顶点算法38图4-7 与黑线距离抛物线384.4.3模糊控制394.5 起跑线检测43第六章 智能车调试方法44第七章 总结45附件一 智能车源程序46第一章 引言1.1智能车制作情况从2015年5月到2015年8月,智能车的制作经历了初期学习、中期完善、后期调试修改等三个阶段。系统方案由单排红外管、双排红外管识别路径,到最终单双排结合方案的确定,算法从简单的查表角度控制、三点求抛物线顶点、到模糊算法的研究,电机驱动电路也从四块MC33886串联电路到队员自行设计的H桥电机驱动电路,我们在硬件和软件上对智能车不断地进行改良、优化,实现了智能车按照任意给定的黑色引导线自动识别路径。在调试过
5、程中,我们使用QCUP12无线模块对智能车进行实时监控调试、优化参数。我们解决了多个中断联合使用的时序问题、速度采集问题等,在制作过程中我们也对智能车的机械结构进行优化,如舵机的架高、舵机臂的加长、前轮倾角的调整、后轮差速模块的调节、整车重心的调整等,摸索出了一套机械结构调整的经验方法。在制作过程,我们注重发现问题、积极分析问题、着重解决问题,并总结经验,做了相应的笔记。本文详细介绍系统智能车方案的选取、整车的参数、传感器的选取及个数、MC9S08DZ60单片机最小系统,各个模块的电路设计及工作原理,硬件结构的设计和改进、软件的控制策略等。1.2 技术报告内容安排说明此技术报告的正文部分分为七
6、个部分:第一章,引言部分,介绍比赛背景,技术报告内容安排说明,智能车制作情况等。第二章,智能车系统的整体设计,智能车系统方案的选取,介绍了单排红外光电管方案、双排红外光电管方案的设计,并从硬件及软件方面总体介绍了智能车系统总体框图。第三章,智能车机械结构调整,具体介绍了对赛车各个机械部分的调整,使其达到最佳状态。第四章,智能车系统硬件设计,主要介绍了红外管电路模块、电源分配模块、电机驱动模块、舵机模块、测速模块等,对各模块的设计和功能实现进行详细介绍; 第五章,智能车系统的软件设计,介绍了对智能车各个模块的控制以及智能车的总体控制策略。第六章,智能车系统的整体调试,介绍了智能车整体的调试方法。
7、第七章,总结,参赛队员对参加比赛的体会和感想,以及对智能车展望。第二章 智能车整体设计2.1 智能车系统方案的选取智能车所选取的系统方案直接关系到智能车的性能好坏,本队队员在制作过程中,结合本校研究生的研究论文1对单排红外发光二极管方案、双排红外发光二极管方案等进行了充分的理论分析和实践证明。2.1.1 红外发光管布局“一”字型布局 “一”字型布局是传感器最常用的布局形式,即各个传感器都在一条直线上,从而保证纵向的一致性,使其控制策略主要集中在横向上。如图2-1(a)“八”字型布局 八字型布局,从横向来看与一字型类似,但它增加了纵向的特性,从而具有了一定的前瞻性。将中间两传感器进行前置的主要目
8、的在于能够早一步了解到车前方是否为直道,从而可以进行加速。如图2-1(b) “W”字型布局(c)“W”字型(b)“V”字型(a)“一”字型对于智能车能否顺利跑完全程,最重要的一点是过弯道,特别是通过比较急的弯道的能力。因此为了能够更早地预测到弯道的出现,我们还可以将左右两端的传感器进行适当前置,从而形成“W”型布局。如图2-1(c) 图2-1 红外发光管布局图总之,各种排列方式都有一定的特点,只要与合适的控制算法相匹配,都会有起到理想的控制效果。2.1.2单排红外发光二极管方案单排红外发光管布局及安装结合本校研究生的研究论文1,本方案从“一”字型布局,“”字型布局,“”字型布局中选取了15对红
9、外发射接收管实现“一”字型布局。2.5cm图2-2“一”字型布局两个红外发光二级管相距1.5cm,接收管在发光管的正下方,这样可以减小干扰。图2-3 带倾角安装传感器为使智能车的前瞻性得到提高,采用了带倾角安装传感器方案,采用了TIP5001高性能发光二极管,经实际测试得到发光二极管与水平线倾角65度,距地高12cm,最远探照距离为20cm为最优方案,使得小车能提前进行转弯、减速等一系列动作。数据采集处理对红外接收管数据的采集主要分为数字模式和模拟模式。为达到精确的偏离黑线的距离,本方案选用了模拟模式,使用12位AD值对红外接收管的电压进行采集,得到小车偏离黑线的距离,采用模糊控制算法,针对每
10、个发光二极管和接收管的参数不同,建立动态的隶属度函数,计算出小车偏离黑线的位置。实践证明该方案能较好的克服因发光管和接收管不同参数引起的波动。不足之处由于使用红外发光二极管,其最远探照距离为20cm,作用距离相当有限,而且受限于16个检测传感器,在弯道处可能会出现检测不到黑线的情况,不能做到提前转弯和弯道减速,以至于使小车冲出跑道。虽然建立动态隶属度函数,但仍然不能很好的克服各个发射管和接收管参数不同所带来的误差。2.1.2双排红外发光二极管方案双排红外发光二极管布局由于单排红外发光二极管的探照距离有限,速度达到2m/s时就遇到瓶颈,不能再提高速度,为克服方案一中的不足之处和提高小车的整体速度
11、,我们设计了第二个方案:应用双排红外发光二极管,布局如图:2.5cm图2-4 双排红外发光管排列 第一排为7个发光管二极管和接收管,依然保持70度的倾角。第二排为8个发光管二极管和接收管保持45度倾角。控制策略本方案为提高小车整体速度,如上图所示距离和倾角排列两排得红外管和接收管。第一排检测弯道,依此进行小车减速,第二排为小车提供转角值 。同时根据两排所采集到的AD数据计算出弯道的斜率。经测试这种红外管排列能很好的检测弯道和起跑线。控制策略为:因为以两圈中时间最短的为有效时间,故采取第一圈以较低速度行驶,从起跑线开始,记录弯道的个数以及是左弯道还是右弯道,同时根据测速模块记录弯道相隔的距离。第
12、二圈根据第一圈记录的数据,并于两排红外光电管所检测到的路径进行比较,计算出两者的偏差值,与设定的阈值比较,大于阈值就按红外光电管所检测到的路径行驶,小于阈值时,将两者加权所得到的数据送给转向模块和速度模块。不足之处使用红外光电管还是没能克服探照距离近的障碍,同时整个比赛成绩的优异太过于依赖第一圈的稳定性,如果第一圈记录路径出现了较大的误差,将影响整个比赛成绩。即使第一圈很稳定,到第二圈速度也达不到理想的速度,速度还是受到了限制。2.1.3系统方案确定结合上述两种方案,我们最终确定了由单排7对红外管实现路径寻迹,控制舵机转角控制,利用单排8对红外管实现起跑线检测,并对智能车进行辅助速度控制。2.
13、5cm图2-5 红外发光管最终方案示意图2.2 系统硬件模块设计MCU(MC9S08DZ60)MCU(MC9S08DZ60)红外路径采集模块舵机转向模块速度采集模块电机驱动模块SPI模块PC机电源模块辅助调试模块SCI模块图2-6 系统硬件模块图我们采用红外路径采集的方式控制小车循迹,在这个基础上,通过舵机控制转向,通过电机控制小车的速度。在功能模块上,可将整个赛车分为六大部分:红外路径采集模块、舵机转向模块,电机驱动模块、速度采集模块、电源模块、辅助调试模块,以及MCU之间的SPI 通信模块,MCU与PC机之间的SCI通信模块。下面就这几个个模块分别作简要地介绍: 红外路径采集模块:采用了T
14、IP5001高性能发光二极管。 电源模块:通过LM2576开关型稳压芯片将电池电压稳压到5V,为单片机、红外路径采集模块、速度采集模块及无线调试模块供电。 电机驱动模块: 采用MOS管研发的H桥驱动电路。 速度采集模块:以光电耦合管和自制的码盘作为测速的传感器,光耦合管的输出信号经过555定时器组成的斯密特触发器整形得到一定频率的矩形波信号,再经过MC9S08DZ60的输入捕捉功能提取出小车的速度值。 无线调试模块:在辅助调试模块中我们使用MC9S08DZ60的SCI串行通讯功能,对赛车进行现场的调试,测量参数。速度信息电机转速控制是否有停车信号?是否接收完传输参数?系统初始化速度输入捕捉中断
15、?停车YYYYNN系统初始化设置参数?采集路径信息数据处理及识别路径算法舵机转向控制是否传完参数?起跑线中断判断?YNYNNN2.3软件结构流图图2-7 系统程序流程图第三章 机械结构调整为了让赛车能在直道和弯道上高速稳定的通过,而且转弯比较灵巧,快速,除了有相应的软件和硬件电路的设计之外,赛车的机械结构对其也有很重要的影响。所以我们对赛车的机械结构也做了一些相应的调整。3.1车身机构调整3.1.1底盘的调整由于这次比赛规定初赛时没有坡道,而决赛时赛道直线部分可以有坡度在15度之内的坡面道路,包括上坡与下坡道路。所以决赛时的大部分赛道还是二维的路面,由于我们采取提高红外发射接收管的高度采集路面
16、信息的策略,所以导致整车的重心偏高,在高速过弯时则向心力比较大,同时由于惯性则车很容易向一侧翻倒。为了避免次类事情的发生,我们把车的后轮底盘放低(在以前买来的新车模的基础上),从而降低整车的重心,防止车翻倒。而车头的底盘高度不变,这是为了使车能顺利的上坡而不至于由于底盘过底使底盘擦到赛道。3.1.2前轮的调整前轮的调整包括前轮主销后倾角,主销内倾角,前轮外倾角,前轮前束的调整。在调试过程中,我们发现这几个参数对赛车直线的稳定性和弯道灵巧性都有很重要的影响。主销后倾角是前轮主销与前轮垂直中心线之间的夹角,也就是主销上端向后倾斜的角度。在赛车上是通过四个黄色的小垫片来调整的。减小主销后倾角可以减小
17、前轮的回正力矩。也就是如果车轮向右转,后倾角可以产生一个向左的回正力,使车轮回正比较快,但又使转向更为费力。设黄色垫片2:2(即前2后2)为0,1:3(前1后3)为23,则我们改为3:1(前3后1),使其倾角为负23。这样则可以减小回正力矩的作用,使转向更为灵活,但也会使回正比原来稍慢。主销内倾角是前轮主销在赛车水平面内向内倾斜的角度,虽然增大内倾角也可以增大回正的力矩,但增大内倾角会在赛车转向的过程中,增大赛车与路面的滑动,从而加速轮胎的磨损,由于轮胎对地的附着力对防止侧滑有很重要的影响,所以如果轮胎磨损则得不偿失,所以内倾角调整为0。前轮外倾角是前轮的上端向外倾斜的角度,如果前面两个轮子呈
18、现“V”字形则称正倾角,呈现“八”字则称负倾角。由于前轮外倾可以抵消由于车的重力使车轮向内倾斜的趋势,减少赛车机件的磨损与负重,所以赛车安装了组委会配备的外倾角为1的配件。前轮前束是前轮前端向内倾斜的程度,当两轮的前端距离小后端距离大时为内八字,前端距离大后端距离小为外八字。由于前轮外倾使轮子滚动时类似与圆锥滚动,从而导致两侧车轮向外滚开。但由于拉杆的作用使车轮不可能向外滚开,车轮会出现边滚变向内划的现象,从而增加了轮胎的磨损。前轮外八字与前轮外倾搭配,一方面可以抵消前轮外倾的负作用,另一方面由于赛车前进时车轮由于惯性自然的向内倾斜,外八字可以抵消其向内倾斜的趋势。外八字还可以使转向时靠近弯道
19、内侧的轮胎比靠近弯道外侧的轮胎的转向程度更大,则使内轮胎比外轮胎的转弯半径小,有利与转向。3.1.3后轮距及后轮差速的调整由于速度高,赛车在转弯时容易翻倒,为了增加整车的平衡能力,可用组委会提供的配件把后轮改为大轮距。在拐弯时由于弯道内侧轮比外侧轮的拐弯半径小,则内侧轮比外侧轮的速度小,这就使两轮胎有一定的速度差,称为差速。而赛车的差速机构安装在后轮轴上的,所以只可以调整后轮的差速。经多次调试观察发现差速对赛车转弯有很大的影响。如果差速过紧,即两轮胎的速度很接近时,转弯的时候内侧轮很容易打滑,从而产生侧滑,使赛车滑出赛道。当差速过松时,会使直道的时候两轮打滑,大大的减小了赛车的驱动能力。所以差
20、速调整要适当,才会使直道驱动能力强,弯道转弯灵巧。我们调试差速的经验是把赛车放在赛道上捏住一个轮胎不动让另一个轮胎能在赛道上半滑动时为佳。3.1.4齿轮传动机构的调整大赛提供的电机输出轴齿轮数为18个,后轮输出轴齿轮数为76个,则齿轮比为9:38。齿轮传动机构的调整就是调整电机输出轴的齿轮与后轮轴上齿轮之间的耦合程度。当耦合比较松时由于两齿轮之间存在较大的缝隙,齿轮转动时会产生很大的两齿轮之间的碰撞声音,这样会大大增加齿轮的磨损。当耦合的比较紧时齿轮之间的摩擦力变大,这样就会使电机分出一部分驱动力克服齿轮之间的摩擦力做功,电机的负载无形中就增强,从而减小了电机对后轮的驱动能力。为了使齿轮的调整
21、比较适当,经过多次的调试,我们发现用听齿轮之间的声音的办法来调整其耦合程度效果不错。当齿轮耦合较松或两齿轮之间不平行时的声音很响,也就是齿轮之间撞击的声音很大,当齿轮耦合比较紧时声音很沉闷并且迟滞,最佳状态是基本上没有撞击的声音,声音清脆并且没有迟滞现象。3.2舵机的改装组委会提供的舵机为S3010,由于赛车转向时舵机的响应速度是一个很重要的因素,为了加快舵机的响应速度,我们做了以下三个方面的改进。 用电池电压即7.2V直接给舵机供电 增加从舵机到连杆之间的长度,这样与以前的长度相比让前轮转过同样的角度舵机只需转过比以前更小的角度,虽然舵机本身的动作的速度没有变,但对于转向来说则比以前更快了
22、适当提高舵机频率,舵机频率在50Hz200Hz示意图如下:车轮舵机车轮加长连杆改为等长倒装舵机图3-1 舵机改装后示意图3.3红外电路板的安装红外电路板安装的原则是:轻,稳,灵活。即首先是整个安装构架要轻,其次是安装后在一个位置固定好后在赛车前进时不会前后左右的摆动,位置稳定,由于需要调试出红外电路板安装的最佳位置,所以需要红外电路板能灵活的上下调整高度和倾角。图3-2 红外发光管电路板安装第四章 智能车硬件设计4.1 MC9S08DZ60芯片主板电路4.1.1 MC9S08DZ60芯片介绍8 位HCS08 中央处理器(CPU) 40-MHz HCS08 CPU (20-MHz 总线) HC0
23、8 指令集,带附加的BGND 指令 支持最多32 个中断/ 复位源图4-1 MC9S08DZ60 芯片引脚图片内存储器 整个工作电压和温度范围内可读取/ 编程/ 擦除的Flash 存储器 u MC9S08DZ60 = 60K 最大2K的EEPROM在线可编程内存 最大4K 的随机存取内存(RAM)省电模式外围设备 ADC 24 通道,12 位分辨率,2.5uS 转换时间,自动比较功能, 1.7 mV/C 温度传感器,包含内部能隙参考源通道 SCIx两个SCI,可支持LIN 2.0协议和SAE J2602协议;全双工;主节点支持break 信号生成;从节点支持break 信号检测;支持激活边沿唤
24、醒 SPI 全双工或单线双向;双重缓冲发射和接收;主从模式选择;支持高位优先或低位优先的移位 TPMx 一个6 通道(TPM1)和一个2 通道(TPM2);可支持输入捕捉,输出比较,或每个通道带缓冲的边沿对齐PWM 输出 RTC (实时时钟计数器)8 位模数计数器,带基于二进制或十进制的预分频器;实时时钟功能,使用外部晶体和RTC 来确保精确时基、时间、日历或任务调度功能;内带低功耗振荡器(1 kHz),用于周期唤醒而不需要外部器件4.1.2 MC9S08DZ60芯片外围电路设计 图4-2 MC9S08DZ60 外围电路设计3.2 红外管路径采集电路图4-3 红外管电路图红外传感器原理:红外发
25、射器发出光线,遇到黑线吸收了大部分的红外光线,反射了小部分的光线,遇到白线吸收了小部分的红外线,反射了绝大部分的光线,这样导致接受管接收红外光线强度不同,产生的电压不同,从而实现对黑线的识别。4.3 舵机转向模块4.3.1 舵机的结构舵盘、减速齿轮组、位置反馈电位计5k,直流电机、控制电路板等;图4-4 舵机机械结构4.1.2 舵机的控制方法三线连接法:黑线:地线红线:电源线(7.2V)白线:信号线(PWM信号)图4-5 舵机插头当单片机信号是1ms正脉冲时, 舵机转向-60度位置当单片机信号是1.5ms正脉冲时, 舵机转向度0度位置当单片机信号是2ms正脉冲时, 舵机转向+60度位置图4-6
26、 舵机控制信号对于赛车而言,由于机械结构的限制,当前轮转到最大时舵机只能转到大约40度。对应的正脉冲为1.18ms到1.82ms。在我们对舵机进行了一系列的机械结构改造后,当前轮转到最大时,舵机对应正脉冲约为1.32ms到1.68ms,也就是舵机只需要转动22度左右,就可以使前轮转到最大位置。这样就大大节约了舵机转向的时间,加快舵机的响应速度。4.4 电机驱动模块H桥式驱动电路:如图所示,要使电机运转,必须导通对角线上的一对MOS管。根据不同MOS管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。图4-7 电机驱动电路4.5 速度采集模块4.5.1 速度采集模块方案一般
27、购买的电机编码器重量都较大,而整车质量的增加,对系统动力性能有较大影响。为了减轻整车的质量,我们制作了一个轻量化的轴转速传感器。轴编码器有一般有两种,一种是光学编码器,另一种是利用电磁原理制成的霍尔编码器。霍尔编码器是根据霍尔效应制成的传感器,因为霍尔编码器存在着分辨率低,精确度不高的缺点。所以 我们采用光学编码器,也就是红外传感器。红外反射式红外对射式红外发射管红外接收管 红外传感器有两种,一种是反射式传感方式,另一种是对射式传感方式。示意图如图3-22所示。图4-8 两种红外传感方式如果打开PC鼠标,会发现连接中心活动球的两个圆盘上有很多孔。至少有两个光耦(在实际上光遮断器)对准这些孔,圆
28、盘旋转时,其中一个光耦会让信号从圆盘孔中穿过。把这些光耦摆放在圆盘四周的不同位置,它旋转的距离以及方向就能被计算出来。其实鼠标里用的也是对射式红外传感器。受PC鼠标的启发,在设计中采样类似的原理来检测小车的速度。本作品采用光电耦合管配合自制的码盘,产生一系列数字脉冲,然后通过输入捕捉来采集速度值。发射端接收端自制码盘图4-9 码盘结构如上图,将自制码盘放在光电耦合管的槽内,同时又和赛车的电机的转动轴相连。光电耦合管的发射端发射的红外光,通过码盘的间隙到达接收端。当电机转动时,接收端便以一定的频率接收到红外光线。4.5.2 速度采集模块电路:In_put图4-9 测试模块电路当电机转动时,在55
29、5定时器的第2个端口产生一定频率的信号(大致为正旋波),频率与电机的转速有关。经过555定时器组成的斯密特触发器的整形,out_put端会产生同频率的矩形波信号,这样的信号就可以被单片机采集了。以上555斯密特触发器电路的阈值电压为VCC/3和VCC*2/3。因此需要通过R1和R2的选取将In_put的低电平电压调到 VCC/3以下,高电平电压调到VCC*2/3以上。满足这个条件,测速模块的电路就能很好的工作了。4.6 辅助调试模块为了便于本作品的调试,我们采用无线模块作为辅助调试模块,主要用于调试时能把想要的数据及时传到主机上,以便于分析故障的原因。无线模块通过SCI与小车连接起来,另一块无
30、线模块通过TTL到RS232电平转换模块。通过主机串口连接到主机。再用串口调试助手接收数据和发送传数命令。图4-10 串口调试助手界面3.7 电源分配模块本作品在电源分配上,主要采用LM2567-5V降压型开关稳压芯片稳压到5V,给单片机、测速模块、无线发送模块供电;而舵机和直流电机都由电池电压直接驱动。电源分配图如下:电池(7.2v) 2000mAh Ni-cdLM2576-5v舵机红外采集电机MCU速度采集图4-11 电源分配示意图5V稳压电路本作品采用LM2576将电池电压稳压到5V ,LM2576它内含固定频率振荡器(52kHz)和基准稳压器(1.23V),并具有完善的保护电路,包括电
31、流限制及热关断电路等,具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力,利用该器件只需极少的外围器件便可构成高效稳压电路。 图4-12 5V稳压电路第五章 智能车软件设计及算法实现5.1 系统初始化5.1.1系统时钟多功能时钟发生器(MCG)模块为MCU 提供了几个时钟源选项。MCG 模块中包含1 个锁频环(FLL)和1 个锁相环(PLL),可以由内部或外部参考时钟控制。模块可以选择FLL 或PLL 时钟作为MCU 系统时钟,也可以选择内部或外部参考时钟作为MCU 系统时钟。无论选择哪个时钟源,它都要通过降阶总线分频器,该分频器允许生成更低的输出时钟频率。MCG 还控制一个外部振荡器
32、(XOSC),以便把晶体或共鸣器用作外部参考时钟。初始化MCG:图5-1 系统时钟初始化示意图5.1.2 ADC模块ADC 模块的特性包括: 具有12 位分辨率的线性逐次逼近算法; 高达28 个模拟输入; 12、10 或8 位右对齐输出格式; 单次转换或连续转换(单转换后自动返回空闲状态); 采样时间和转换速度/ 功率可配置; 转换完成标志和中断; 最多可选择4 个输入时钟源; 在等待或STOP3 模式下实现了低噪音运行; 异步时钟源实现了低噪音运行; 可选的异步硬件转换触发; 与小于、大于或等于可编程值自动比较的中断;ADC 模块初始化步骤:1. 更新配置寄存器(ADCCFG),选择输入时钟
33、源和用来生成内部时钟ADCK 的分频率。该寄存器也可用于选择采样时间和低功率配置。2. 更新状态和控制寄存器2 (ADCSC2),选择转换触发(硬件或软件)与比较功能选项,如使能的话。3. 更新状态和控制寄存器1 (ADCSC1),选择转换是连续转换还是只完成一次,并使能或禁止转换完成中断。同时还选择执行转换的输入通道。5.1.3 SPI模块图5-2 SPI系统连接图SPI 模块的特性包括: 主或辅模式运行 全双工或单线双向选项 可编程发送波特率 双缓冲发送和接收 串行时钟相位和极性选项 辅选择输出 可选择的MSB或LSB先移位5.2电机速度控制调速上本作品采用PI加Bang-Bang控制。4
34、.2.1 赛车PID调速PID控制器本身是一种基于对“过去”、“现在”、和“未来”信息估计的简单控制算法。图5-3 常规系统PID控制器原理框图 比例调节作用:按比例反应系统的偏差,系统一旦出现了偏差,比例调节马上产生调节作用以减少偏差。比例作用大,可以加快调节,减少误差,但比例过大,系统稳定性下降,甚至造成系统不稳定。 积分调节作用:使系统消除稳态误差,提高误差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。 微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前控制作用,在偏差没有形成前就已被微分调节作用消除。因此,能改
35、善系统的动态性能。智能车系统的速度控制,由于需要实时速度控制,故取消微分作用,采用PI调节控制器。PI的控制示意图如下:期望速度(SP)控制变量(CV)偏差偏差计算(SP-PV)比例环节积分环节电机转速(PV)控制对象(电机)图5-4 速度控制系统图参数的选择:比例系数P对系统性能的影响:比例系数加大,使系统的动作灵敏,速度加快,稳态误差减小;P偏大,振荡次数加多,调节时间加长;P太大时,系统会趋于不稳定;P太小,又会使系统的动作缓慢。积分控制I对系统性能的影响:积分作用使系统的稳定性下降,I小(积分作用强)会使系统不稳定,但能消除稳态误差,提高系统的控制精度。4.2.2 积分项的改进:当有较
36、大扰动或大幅度改变给定速度时,由于有较大的偏差,以及系统的滞后性,故在积分项的作用下,会产生长较大的超调和长时间波动。所以需要采取积分分离措施,当e(k)较大时,取消积分作用,当e(k)较小时才将积分作用引入。如下:当 | e(k) | p 时 ,取消i的作用当 | e(k) | p 时 ,引入i的作用4.2.3 Bang-Bang控制的引入经过试验数据分析,当e(k)较大时可采用Bang-Bang控制以减小速度的调节时间。具体形式如下:当 | e(k) | 时 电机正压100%占空比当 e(k) 时 电机反压100%占空比4.3舵机转向控制由于舵机转动的时候,存在一定的滞后性,需要一定的反应
37、时间,因此在写入PWM控制寄存器后,要延迟一定的时间,延迟的时间与需要转动的角度成正比。舵机控制流程图如图4-29所示。否是开始写入控制寄存器输出脉冲PWM初始化控制PWM输出延时写入新的角度控制否?继续保持允许PWM通道选择PWM时钟选择极性,脉宽对齐方式选择周期,脉宽(占空比)计数器清零开始计数开 始图5-5 舵机控制流程图小车在黑线的左端小车在黑线的中间小车在黑线的右端4.4路径识别算法图5-6 智能车与黑线的位置示意图智能模型车的路径识别算法(Line Searching Algorithm)是智能车软件设计中最关键的一部分,智能车设计的大部分工作都是围绕它来展开的。路径识别算法与路径
38、识别硬件电路相适应的。我们采用了红外传感器的方式,所以所设计的算法也是与红外传感器的布局相适应的。4.4.1简单的路径识别根据MCU得到的AD值,识别出正对黑线的管子编号,从而知道车子的相对于黑线的位置,利用查表的办法得到舵机的角度值。另外,根据正对黑线相邻的两个管子的AD值对角度进行细分。表4-1 简单舵机角度控制表编号-3-2-10123角度-39-26-130132639简单的查表控制,虽然能让智能车识别黑线自动行驶,但由于是离散的查表取值,导致舵机转角不连续。但由于舵机本身存在滞后现象,离散的取值可以避免舵机频繁改变角度,导致舵机反映不及时。这仍是比较粗略的控制算法,有很大局限性。4.
39、4.2抛物线顶点算法红外传感器是通过检测路面散射回来的光线来识别路面信息的,所以并不是只有当红外管正对着黑线的时候才有变化的,而是一种连续的变化量,渐变的曲线,当正对黑线的时候电压值最小。如下图:图4-7 与黑线距离抛物线根据上图我们把一排管子采的数据中的最小值以及最小值两边的数据找出来,并近似地认为是抛物线的顶点附近的三个点,利用待定系数法求出曲线的近似方程,然后通过解答方程得到曲线的顶点坐标。这样就能得到黑线的比较精确的位置,进而算出黑线的偏离距离。得到黑线的偏离距离error_now值后利用公式得到相应的角度值。angle_now=Kp*error_now+Kd*(error_now-e
40、rror_old)公式1由于红外发射管的参数不一致,要对各个红外管进行归一化处理,拟合抛物曲线,这样数据处理量大,并且经过处理后的数据也难以做到精确,仍存在较大误差。4.4.3模糊控制模糊逻辑控制(Fuzzy Logic Control)简称模糊控制(Fuzzy Control),是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制技术。模糊控制是一种基于规则的控制。它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用。图4-8 模糊控制系统的结构精确输入量模
41、糊化规则推理反模糊化精确输出量第一步第二步第三步模糊控制系统的鲁棒性强,干扰和参数变化对控制效果的影响被大大减弱,尤其适合于非线性、时变及纯滞后系统的控制。图4-9模糊控制步骤图模糊化输入变量的隶属度函数精确输入量模糊输入量模糊化模糊控制的第一步是模糊化,建立隶属度函数。建立输入变量隶属度函数的步骤如下:图4-10 模糊化过程图 第一步,确定所有输入变量的名称。 第二步,确定所有输入变量的变化范围,即论域。 第三步,确定每个语言变量的语言个数及名称。 精确输入量模糊化 模糊输入量规则推理模糊输出量输入变量的隶属度函数规则库模糊规则推理 模糊规则推理就是依据模糊规则进行的推理,这是模糊控制器的核
42、心工作。确定输出模糊变量的隶属度函数及建立模糊规则库。 建立输出变量的隶属度函数 建立模糊规则库规则库中规则的数量取决于个输入变量所含语言值的数量、专家的经验及实际的需要。图4-11 模糊推理过程图 模糊推理推理方法有很多种,这里介绍一种最常用的MAX-MIN法,它的推理过程大致分为四步: 第一步:建立规则库。第二步:寻找对推理起作用的规则。一般情况下,一个输入变量的一个精确输入值对应于该变量个语言值的隶属度只有1个或两个非零值。所以,某时刻有用的规则大大少于规则库中的规则数,推理时间不会很长。 第三步:确定规则强度。所谓规则强度,就是有效规则成立的“真性”程度,或者说有效规则的“适合度”、“
43、力度”。实质上就是规则后件中输出模糊变量某语言值的隶属度。根据MAX-MIN法的原理,由于规则前件间用“AND”操作符连接,因此,每一条规则的强度等于大于前件中的最小值,第四步:确定模糊输出。MAX-MIN法则规定:当相同后件的规则强度不同时,模糊输出取其最大值。 反模糊化反模糊化,就是将模糊的控制量变为精确的控制量,反模糊化的输入是前一步规则推理的输出,即输出变量个语言值的隶属度,反模糊化的输出是系统输出变量的精确输出值。反模糊化采用重心法。即求所有模糊输出量的重心。计算公式如式2: COG=/ 公式2这种反模糊方法也是路径识别系统使用模糊推理的最主要原因。通过它可以确定合理的转动角度和电机转速。隶属度10000 min 0.4(max-min) 0.6(max-min) max AD值 正对黑线隶属度 偏离黑线隶属度 我们根据智能车的实际情况,建立了模糊控制器的隶属度函数,如图:图4-12 模糊隶属度函数我们根据不同环境,现场实时采集各个红外管的黑线和白区的AD值,如图建立各个红外发光管的隶属度函数。我们采用双梯形的形式,根据隶属度函数,分别对每个红外管当前状态计算出正对黑线的程度及偏对黑线的程度,再根据模糊推理规则,采用重心法计算出当前智能车相对黑线的精确距离,从而实现寻迹。4.5 起跑线检测为了适应今年在赛题中关于赛车需要能够在完成比赛