浙江工业大学-浙工大银江vega队-技术报告_第1页
浙江工业大学-浙工大银江vega队-技术报告_第2页
浙江工业大学-浙工大银江vega队-技术报告_第3页
浙江工业大学-浙工大银江vega队-技术报告_第4页
浙江工业大学-浙工大银江vega队-技术报告_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第十四届恩智浦杯全国大学生智能汽车竞赛技术报告学校:浙江工业大学队伍名称:浙工大银江VEGA参赛队员:严新豪张帆黄涛顾俊顺陈思洁带队教师:陈国定、褚衍清 摘要本文设计的智能车系统以MK66FX1M0VLQ18 微控制器(以下简称K66)为核心控制单元,通过 MT9V032 数字摄像头检测赛道信息,使用 K66 的DMA 模块采集图像,采用动态阈值算法对图像进行二值化,提取黑色边线用于赛道识别;通过编码器检测模型车的实时速度,使用PID 控制算法调节驱动电机的转速和转向舵机的角度,实现了对模型车运动速度和运动方向的闭环控制。为了提高模型车的速度并让其更稳定,为了提高模型车的速度并让其更稳定,利

2、用 MATLAB 等软件进行建模仿真,并进行了大量的硬件与软件测 试、实验分析来完善设计方案与控制参数。 关键词:MK66FX1M0VLQ18,MT9V032,DMA,PIDI II 目录摘要I第一章系统总体设计21.1 系统概述21.2 整车布局3第二章机械系统设计及实现42.1 车体模型简介42.2 车模转向轮的定位与调整52.2.1主销后倾角52.2.2主销内倾角62.2.3前轮前束72.3 底盘高度及其调整82.4 编码器的安装82.5 舵机安装位置及结构调整(四轮车)92.6 舵机转角分析(四轮车)102.7 摄像头的安装102.8 直立车平衡结构(直立车)11第三章硬件系统设计及实

3、现123.1 硬件设计方案123.2 电路设计方案123.2.1 单片机最小系统板2123.2.2 电源稳压电路133.2.3 电机驱动电路153.2.4 人机交互电路153.2.5 陀螺仪接口设计163.2.6 舵机控制电路设计(四轮车)163.2.7 电机驱动信号及编码器信号传输电路设计17III软件系统设计及实现318 第四章4.1 赛道优化处理184.1.1 原始图像特点184.1.2 赛道提线194.1.3 偏差量的计算214.1.4 路径选择214.2 PID 控制算法介绍4224.2.1 位置式 PID234.2.2 增量式 PID234.2.3 PID 参数整定5244.3 转

4、向舵机的 PID 控制算法(四轮车)244.4 驱动电机的 PID 控制算法244.5 速度决策算法25第五章系统开发及其调试265.1开发工具265.2车模的调试手段275.2.1 蓝牙结合上位机的调试275.2.2 IAR 在线调试285.3硬件测试28参考文献30附录:部分程序源代码311.主函数312.管脚定义343.摄像头配置及其中断39IV 引言1 浙江工业大学银江 VEGA第一章系统总体设计1.1 系统概述智能车的总体框架基本由以下部分构成1 :电源模块、传感器模块、驱动模块和主控模块。本届大赛双车可选用 CDF 等车模,我们经过慎重考虑,决定采用 C 车四轮以及 D 车直立进行

5、会车。 四轮车以及直立车的系统架构类似,主要有如下几个特点: (1) 采用MT9V032 总钻风摄像头采集赛道数据。 (2) 使用MOSFET 搭建的H 桥进行电机的驱动。 (3) 使用MK66FX1M0VLQ18 单片机进行控制。 (4) 通过编码器和陀螺仪共同的反馈进行闭环。 系统架构图如图 1-1 所示。图 1-1 系统架构图2 浙江工业大学银江 VEGA1.2 整车布局车体整体布局的基本要求可简单归纳为一下几点:(1)由于本次比赛前瞻很短,故摄像头尽量靠前,电感也尽量往前放,尽可能把 前瞻用到最大; (2)四轮车将主板电池位置后移,使整体重心向后移动,直立车的主板和电池则 往前移,使其

6、零点抬高,上坡不会触碰到坡道; (3)使用 3D 打印件安装各摄像头、电感等各种传感器支架。(4)四轮车使用 3D 打印的尾翼,在速度达到一定程度时利用空气的压力使车尽量 贴地防止抬轮。 (5)摄像头上使用 3D 打印的支架放置偏振片和滤光片。3 浙江工业大学银江 VEGA第二章机械系统设计及实现根据组委会的相关规定,今年双车会车组比赛车模可以选用 B、C 型或 D、E、F 型车模。我们四轮车采用 C 车模,直立车采用 D 车模,在规则允许范围内尽量改造车模,提高车模整体性能。本章将主要介绍我们对 C、D 型车模的机械结构认识及调整方 案。 2.1 车体模型简介此次竞赛的赛车车模选用由东莞博思

7、电子数码科技公司提供的 C 和 D 型车模。车 模示意图如图 2-1 和图 2-2 所示。 图 2-1 C 型车模示意图4 浙江工业大学银江 VEGA图 2-2 D 型车模示意图2.2 车模转向轮的定位与调整为了使车模在行驶过程中,能够直线稳定,过弯轻便,转向后能自动回正以及减少轮胎和转向系零件的磨损等,系统需要对车轮的定位参数进行调整。其中主要包括有: 主销后倾角,主销内倾角,前轮前束。这三个参数反映了前轮、主销和前轴三者之间在车架上的位置关系。下文将对这三个参数做详细的阐述。 2.2.1 主销后倾角图 2-3 主销后倾角5 浙江工业大学银江 VEGA主销后倾角是指在纵向平面内主销轴线与地面

8、垂直线之间的夹角。如图 2-2 所示。它在车辆转弯时会产生与车轮偏转方向相反的回正力矩,使车轮自动恢复到原来的中间位置上。所以,主销后倾角越大,车速越高,前轮自动回正的能力就越强,但是过大的 回正力矩会使车辆转向沉重。通常主销后倾角值设定在 1到 3。 模型车通过增减黄色垫片的数量来改变主销后倾角的,由于竞赛所用的转向舵机力矩不大,过大的主销后倾角会使转向变得沉重,转弯反应迟滞。 最终我们根据实际测试的情况,按照左侧车轮垫片前 2 后 2、右侧车轮垫片前 1后 3 的方式来设置主销后倾角,如图 2-4 所示。 图 2-4 前 2 后 2 的垫片构成的主销后倾角2.2.2 主销内倾角主销内倾角是

9、指在横向平面内主销轴线与地面垂直线之间的夹角,它的作用也是使前轮自动回正,如图 2-5。角度越大前轮自动回正的作用就越强,但转向时也就越费力, 轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。通常汽车的主销内倾角不 大于 8。 对于车模,通过调整前桥的螺杆的长度可以改变主销内倾角的大小,由于过大的内倾角也会增大转向阻力,增加轮胎磨损,所以在调整时可以近似调整为 03 左右,不宜太大。主销内倾和主销后倾都有使车模转向自动回正,保持直线行驶的功能。不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时主销后倾的 回正作用大,低速时主销内倾的回正作用大。 6 浙江工业大学银江

10、 VEGA图 2-5 主销内倾角2.2.3 前轮前束所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时, 其惯性力自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎 内外侧磨损的现象会减少。 如图 2-6 所示。主销在垂直方向的位置确定后,改变左右横拉杆的长度即可以改变前轮前束的大小。在实际的调整过程中,我们发现较小的前束,约束 02mm 可以减小转向阻力,使模型车转向更为轻便,但实际效果不是十分明显。 图 2-6 前轮前束虽然模型车的主销后倾角、主销内倾角和前束等均可以调整,但

11、是由于车模加工和 制造精度的问题,车体物理参数还存在着不少的偶然性,一切以实际调整的效果为准。7 浙江工业大学银江 VEGA2.3 底盘高度及其调整在保证顺利通过坡道的前提下,底盘离地间隙应尽可能小,从整体上降低模型车的重心,以提高行驶稳定性并减小侧滑。C 型车的电机可达到的转速比较高,所以在车模高速跑出赛道时,连接车身和电机的轴很容易被撞断,组委会允许在底盘固定 PCB 板材质的板材固定车身和电机,这样整个车身变成了硬固定。最终的底盘高度如下图 2-7所示。 图 2-7 最终的底盘示意2.4 编码器的安装为了获得更为精确的电机转速返回值,我们在车模上安装的是 512 线 mini 编码器。安

12、装时尽量使得传动齿轮轴保持平行,传动部分轻松、流畅,不存在过大噪音和丢数情况。编码器及其齿轮的安装如图 2-8 所示。 8 浙江工业大学银江 VEGA图 2-8 编码器安装2.5 舵机安装位置及结构调整(四轮车)参考往年的舵机安装方式我们发现舵机有立式安装和卧式安装两种,比较两种安装方式,我们可以发现力臂较短的连接方式优点是能够输出更大力矩,调节精度更高但是不足的是反应速度不够快,而对于长的连接方式优点是反应速度快,调节精度低,但是输出力矩不足,因此设计时就要综合考虑转向机构响应速度与舵机力矩之间的关系,通过优化得到一个最佳的转向效果。经过参考往届方案,以及综合考虑了速度与力矩的关系,我们选择

13、了舵机立式安装。这样保证了左右的对称性,同时提升了舵机的快速响应 能力。 具体安装方式如图 2-9 所示。图 2-9 舵机的安装9 浙江工业大学银江 VEGA2.6 舵机转角分析(四轮车)车模的转向运动主要是靠舵机带动转向轮来实现的,因此,关于舵机和转向轮转向关系的分析就显得尤为重要。 舵机的打角和转向轮的打角并不是简单得线性关系。舵机转角变化范围即使较小, 转弯半径的变化也会很大,因而对多级的控制显得尤为很重要。转向轮打角越小时,随着打角变化,转弯半径变化越明显,即小转角对半径的变化会更加明显,对直道和大半 径的弯道有较大的影响,因而从前桥到舵机连片的机械固定需牢靠,尽量减少虚位。 实际上舵

14、机转角与转向轮转角呈的关系是与舵机臂的长度有关。在某一特定高度下是可以实现线性变化的,当然这对机械的要求非常高,在多次尝试后,我们决定在让两者关系尽量线性的基础上,加一定的二次曲线补偿,这样我们就可以在在思路上为通过 舵机转角改变从而获得所要前轮转角提供便利。 当然改变之前转向轮的四个参数,也能获得较为满意的舵机打角和转向轮的转弯半径关系,四个参数的调整在前文中已经提到,这里不再赘述。 2.7 摄像头的安装为了降低整车重心,我们采用了自己 3D 打印的摄像头固定支架,采用轻质且刚度大的 8mm 碳卷管作为安装摄像头的主桅。底部采用塑料固定件固定碳卷管,这样可以保证摄像头固定的牢固和平稳性,获得

15、最大的刚度质量比,整套装置具有很高的定位精度和刚度,摄像头不易松动,避免了因摄像头松动而反复校准的过程,为顺利完成比赛提供保障力。而且我们在摄像头上打印了偏振片支架,能按照场地光照的方向相应地调整偏振片的角度,使光更加均匀。 摄像头的安装如图 2-10 所示。 图 2-10 摄像头安装10 浙江工业大学银江 VEGA2.8 直立车平衡结构(直立车)直立车的机械结构一共有三种方案: (1)电池放中间,电感伸出放前面,即最初卓老师的方案,如图 2-11 所示。图 2-11 直立方案一优点:重心靠前,有利于加速 缺点:重心过高,容易造成车的俯仰晃动 (2)电池放后面,电感放前面,车正跑,如图 2-1

16、2 所示。图 2-12 直立方案二优点:重心较低,行驶稳定 缺点:重心过前,不容易控速 (3)电池和电感都放后面,直立车反跑,如图 2-13 所示。图 2-13 直立方案三优点:重心集中 缺点:对重心位置要求高 直立车的结构要求为:质量尽可能小,并且尽可能集中,重心尽可能我们最终采用方案三。 等。所以11 浙江工业大学银江 VEGA第三章硬件系统设计及实现3.1 硬件设计方案从最初进行硬件电路设计时我们就既定了系统的设计目标:可靠、高效、简洁,在整个系统设计过程中严格按照规范进行。 可靠性是系统设计的第一要求,我们对电路设计的所有环节都进行了电磁兼容性设计,做好各部分的接地、滤波等工作,将高速

17、数字电路与模拟电路分开,使本系统工作的可靠性达到了设计要求。 简洁是指在满足了可靠、高效的要求后,为了尽量减轻整车重量,降低模型车的重心位置,应使电路设计尽量简洁,尽量减少元器件使用数量,缩小电路板面积,使电路部分重量轻,易于安装。我们在对电路进行了详细分析后,对电路进行了简化,合理设 计元件排列、电路走线,使本系统硬件电路部分轻量化指标都达到了设计要求。 3.2 电路设计方案智能车控制系统电路由两部分组成:以 MK66FX1M0VLQ18 为核心的包括电源和驱动再内的主板和外围模块。考虑到 MK66FX1M0VLQ18 的最小系统板比较大,会占据较大的主板空间,在电池及其他结构调整时主板的空

18、间有限,所以在设计主板时,直接将MCU 设计在主板上,直接形成信号采集、信号处理、电机控制、舵机控制单元。同时为了整量车子的简洁,我们将电机驱动电路也设计到了主板上,为了减小电机驱动电路带来的电磁干扰,我们把控制单元部分和电机驱动部分分开来,排布在主板的两端。驱动部分做了隔离,同时为避免元器件过于密集而引起的信号与地串扰的问题,我们在设计 PCB 时,将板子设计为双层板。 主板上集成了本系统的主要电路,它包括如下部件:MCU 系统,电源稳压电路、摄像头接口、LCD 直插式接口、舵机接口、电机驱动及其编码器模块接口、拨码开关、指示灯等。摄像头模块选用的是 MT9V032 总钻风摄像头,驱动模块采

19、用的是 MOS 管 H桥驱动电路,驱动能力跟 BTN 芯片比有大幅提升。 3.2.1 单片机最小系统板2MK66FX1M0VLQ18 是 K66 系列 MCU。Kinetis 系列微控制器是 Cortex-M4 系列的 内核芯片。K66 不超频主频 180M,含有 1M 的 FLASH,256K 的 SRAM,4K 的 EEPROM12 浙江工业大学银江 VEGA和 256K 的 FlexNVM。K66 最小系统及其外围电路原理图如图 3.1。图 3-1 最小系统原理图最小系统使用 LQFP144 PIN 封装,为减少电路板空间,板上仅将本系统所用到的引脚引出,包括 pwm 接口,外部中断接口

20、,若干普通 IO 接口。其他部分还包括电源滤波电路、时钟电路、复位电路、陀螺仪接口、uart 接口、swd 接口、和 ftm 接口。 3.2.2 电源稳压电路本系统中电源稳压电路分别需要有+5V,+3.3V,+12V 供电。+3.3V 给单片机、拨码开关、液晶等供电;+5V 为摄像头、编码器模块、超声波和舵机供电;+12V 和+5V 共同给电机驱动电路中 IR2104 供电;而电机则直接由电池供电。 由于整个系统中+5V 电路功耗较小,为了降低电源纹波,我们考虑使用线性稳压电路。另外,前轮驱动电机工作时,电池电压压降较大,为提高系统工作稳定性,必须使用低压降电源稳压芯片,选用了 TPS7350

21、。TPS7350 是微功耗低压差线性电源芯片,具有完善的保护电路,包括过流,过压,电压反接保护。使用这个芯片只需要极少的外围 元件就能构成高效稳压电路。 13 浙江工业大学银江 VEGA图 3-2TPS7350 5V 稳压原理图 +3.3V 稳压芯片选用了低压差大功率的TPS7333。另外为保证在电机启动的瞬间, 电池的巨大压降影响摄像头和单片机的正常工作,为摄像头和单片机供电的 3.3V 稳压采用了两级稳压的方式,先通过 TPS7350 稳压到 5V 再稳压到 3.3V。 图 3-3TPS7333 3.3V 稳压原理图电机驱动电路的驱动芯片要 12V 供电,在 MC34063、LM2577

22、和 LM2587 几个方案中我们最后选择了封装较小并且足以满足需求的 MC34063 芯片。 图 3-412V 稳压原理图14 浙江工业大学银江 VEGA3.2.3 电机驱动电路电机驱动板为一个由分立元件制作的直流电动机可逆双极型桥式驱动器,其功率元件由四支 N 沟道功率 MOSFET 管组成,额定工作电流可以轻易达到 100A 以上,大大提高了电动机的工作转矩和转速。该驱动器主要由以下部分组成: PWM 号输入接口、IR2104 控制电路、电源电路、功率 MOSFET 管栅极驱动电路、桥式功率驱动电路等。其中 IR2104 自带死区控制,电源电路采用上述的 5V 稳压、12V 升压和电源电压

23、, MOSFET管的选型也比较重要。驱动电路如图 3.5 所示。图 3-5 电机驱动模块原理图3.2.4 人机交互电路主板上还包括人机交互电路,包括蜂鸣器,拨码开关,按键,LED,LCD 电路,和 一些外设的接口,如图 3-6 所示。 15 浙江工业大学银江 VEGA图 3-6 拨码开关及其他接口原理图3.2.5 陀螺仪接口设计为了使控制移动的方向更加精准,我们加入了陀螺仪进行偏航角的矫正。我们使用的是 BMX055 九轴姿态传感器,含有三轴加速度,三轴陀螺仪,三轴指南针,可以通过I2C 和 SPI 传输,我们选择硬件 I2C 模式进行读取。 陀螺仪模块读取原理图如图 3-14 设计所示。 图

24、 3-7 陀螺仪模块读取原理图3.2.6 舵机控制电路设计(四轮车)为了防止在舵机因为堵转等意外下造成电压反冲,对于单片机与舵机之间的连接我们使用了一块光耦隔离芯片来作为驱动芯片。考虑到舵机的控制 PWM 频率是 100HZ, 不需要特别高速的光耦隔离芯片,我们选用了 TLP521 作为最终方案。其响应时间在 25us以内。 舵机的供电方面,我们参考了往届的方式,对于 S3010 舵机,可以直接使用电池电 压供电。 虽然 S3010 自带了防堵转保护电路,我们为了防止舵机堵转产生逆向电流,加上了一个肖特基二极管。 舵机的驱动原理图如图 3-8 所示。16 浙江工业大学银江 VEGA图 3-8

25、舵机控制原理图3.2.7 电机驱动信号及编码器信号传输电路设计电机的驱动和测速是我们系统中十分重要的一个部分,它们直接影响到了闭环控制性能的优良性。处于保险考虑,我们将电机驱动的信号先通过一块三态缓冲器 74HC245 芯片再传输至电机驱动板。 电机驱动信号传输电路如图 3-9 所示。图 3-9 电机驱动信号传输电路17 浙江工业大学银江 VEGA第四章软件系统设计及实现3高效的软件程序是智能车高速平稳自动寻线的基础。我们设计的智能车系统采用 CMOS 摄像头进行 DMA 图像采集,动态二值化,边线提取,赛道识别。在智能车的转向和速度控制方面,我们使用了鲁棒性很好的经典 PID 控制算法,配合

26、使用理论计算和实际参数补偿的办法,使智能车能够稳定快速寻线。 4.1 赛道优化处理4.1.1 原始图像特点在的单片机采集图像信号后需要对其进行处理以提取主要的赛道信息,同时,由于十字弯、起点线等赛道元素的存在以及光线、远处图像不清晰等的干扰,都会使采集所得的图像效果大打折扣。因此,在软件上必须做到排除干扰因素,对赛道进行有效识别, 并尽可能提供多的赛道信息供决策使用。 在图像信号处理中我们提取的赛道信息主要包括:赛道两侧边沿点位置,赛道边沿点附近的原始像素值,赛道类型。由于摄像头自身的特性,图像会产生梯形式变形,以及桶形失真,尤其是在摄像头的上下左右各个角落处,桶形失真和梯形失真会有叠加, 导

27、致图像畸变更加严重。因此,在数据采集时选择只采集半幅图像,也就是中心上下处的图像,这样采集所得的图像几乎不存在桶形失真。通过摄像头采集到几种典型赛道图像如图 4.1图 4.3 所示。 图 4.1 连续弯图像18 浙江工业大学银江 VEGA图 4.2 弯道原始图像图 4.3 十字交叉原始图像4.1.2 赛道提线赛道边沿提取算法的基本思路如下:(1)逐行扫描最近处的原始图像,根据设定的阈值提取黑白跳变点;(2)利用赛道连续性,故居上一行中的黑点位置来确定本行的边沿点;(3)当弯道的时候赛道有回拐的情况,所以提取本行边沿之前还要向前搜索回拐的边沿点;进出十字的时候,通过校正计算出边沿角度可以较好地滤

28、除十字并进行补线; (4)求边沿点时,因为进出的图像稳定,远处图像不稳定,所以采用由近及远的办法; (5)进出十字的时候,有可能会出现错误体现的情况,因此需要将直角以后的线都滤 除; 边沿提取算法的程序流程如图 4.4 所示。19 浙江工业大学银江 VEGA图 4.4 算法流程图处理后得到的黑线中心如图 5.5 和图 5.6 所示 图 4.5 连续弯处理后的图像20 浙江工业大学银江 VEGA图 4.6 弯道处理后图像4.1.3 偏差量的计算使用前方一定距离的偏差量来控制小车可以使小车具有较强的鲁棒性。若采用斜率算法,经测试发现,图像中远处的斜率有时较为不稳定,因此放弃斜率算法,使用更为稳定的

29、偏差算法。 获得偏差前需要先标定赛道边沿,将小车放在直道上,标定出标准的左右边线。通过取到的左线和左标准线作差,将取到的右边线和右标准线作差,得出前方一定距离处的偏差量,将此用作后期控制等算法中的偏差量。 另外一个需要关注的问题是,选用多少距离范围的数据用作偏差量。当处于直到上时,由于小车的速度较快,因此要选取较远处的偏差,以防止小车来不及转向;当处于弯道内时,由于摄像头的事业有限,应尽量使用能采集到的的最远处的数据段,这样能 在连续弯道的切换上较为流畅,以及在回环弯道上较为稳定。 4.1.4 路径选择小车能否以最短的时间完成比赛,与小车的速度和路径都有着密切的关系,因此,如何使小车以一个最合

30、理、最高效的路径完成比完赛是提高小车速度的关键。对于小车 路径的优化,不能仅在允许下调节转弯系数,而应该将变速考虑进去。调节路径的方法 是在慢匀速情况下调出一套较为切弯的 PD 系数,慢慢的提高匀速的速度。这是由于在弯道内前瞻量是优先的,因此在提速的过程中,不可避免地会出现反应迟钝的情况,此 时就应当停止调节转向参数。在此基础上获得这套转向参数的可用速度范围,并添加变 速程序,即可达到稳定并且高速的效果。21 浙江工业大学银江 VEGA4.2 PID 控制算法介绍4在工业应用中,PID 及其衍生算法是最为广泛的算法之一。 比例、积分、微分控制,简称 PID 控制。PID 算法是最简单,最能体现

31、反馈思想的算法。 PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID控制器,原理框图如图 4-10 所示。 图 4-10 PID 控制器原理框图通过框图不难看出,PID 控制其实是对偏差的控制过程。在计算机控制系统中,使用的是数字 PID 控制器,控制规律为:e(k) = r(k) - c(k)(1)ku (k ) = K e(k ) + T e( j ) + TD e(k ) - e(k - 1)T(2)PTj=0I式中 k-采样序号,k = 0,1,2; c(k)-第 k

32、次实际输出值; e(k)- 第 k 次偏差; KP-比例系数; TD-微分时间常数; r(k)- 第 k 次 给 定 值 ; u(k)- 第 k 次输出控制量; e(k-1)- 第 k-1 次 偏 差 ; TI-积分时间常数; T-采样周期。 简单说来,PID 控制器各校正环节的作用如下: 比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。 微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有

33、效的早期修正信号,从而加快系统的动作速度,减小调节时间。 数字 PID 控制算法通常分为位置式 PID 控制算法和增量式 PID 控制算法。 22 浙江工业大学银江 VEGA4.2.1 位置式 PID位置式 PID 中,由于计算机输出的 u (k) 直接去控制执行机构(如阀门),u(k)的值和执行机构的位置(如阀门开度)是一一对应的,所以通常称公式(2)为位置式PID 控制算法。 位置式 PID 控制算法的缺点是:由于全量输出,所以每次输出均与过去的状态有关, 计算时要对过去e(k)进行累加,计算机工作量大;而且因为计算机输出的 u(k)对应的是执行机构的实际位置,如计算机出现故障,u(k)的

34、大幅度变化,会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的,增量式 PID 控制算法可以避免这种 现象发生。 4.2.2 增量式 PID所谓增量式 PID 是指数字控制器的输出量只是控制量的增量。当执行机构所需的的控制量是增量而不是绝对的数值时,可以采用增量式 PID 算法进行控制。 k -1T TITu(k - 1) = K P e(k - 1) +e( j) + D e(k - 1) - e(k - 2) (3)Tj=0Du(k) = K e(k) - e(k -1)+ T e(k) + TD e(k) - 2e(k -1) + e(k - 2)PTT(4)I= KP D

35、e(k) + KI e(k) + KD De(k) - De(k -1)TP TTDTDe(k ) = e(k ) - e(k -1)= K; KK = K; 式中IDPI公式(4)称为增量式 PID 控制算法,可以看出由于一般计算机控制系统采用恒定的采样周期 T,一旦确定了 KP、TI、TD,只要使用前后三次测量值的偏差,即可由公式(4) 出控制增量。 增量式 PID 具有以下优点: 求(1)(2)由于计算机输出增量,所以误动作时影响小,必要时可用逻辑判断的方法关掉。 手动/自动切换时冲击小,便于实现无扰动切换。此外,当计算机发生故障时, 由于输出通道或执行装置具有信号的锁存作用,故能保持原

36、值。(3)算式中不需要累加。控制增量u(k)的确定仅与最近 k 次的采样值有关,所以 较容易通过加权处理而获得比较好的控制效果。 但增量式 PID 也有其不足之处:积分截断效应大,有静态误差;溢出的影响大。使用时,常选择带死区、积分分离等改进 PID 控制算法。 23 浙江工业大学银江 VEGA4.2.3 PID 参数整定5运用 PID 控制的关键是调整 KP、KI、KD 三个参数,即参数整定。PID 参数的整定方法有两大类:一是理论计算整定法,包括数频特性法和根轨迹法。它主要是依据系统的数学模型,经过理论计算确定控制器参数;二是工程整定方法,包括凑试法、经验法等。它主要依赖工程经验,直接在控

37、制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。由于智能车系统是机电高耦合的分布式系统,并且要考虑赛道的具体环境,要建立精确的智能车运动控制数学模型有一定难度,而且我们对车身机械结构经常进行修正,模型参数变化较为频繁,理论计算整定法可操作性不强,最终我们采用了工程整定方法中的凑试法、经验法。 在不断的测试中,我们发现这样一个动态的调解过程:在偏差比较大时,为使尽快消除偏差,提高响应速度,同时为了避免系统响应出现超调,KP 取大值,KI 取零;在偏差比较小时,为继续减小偏差,并防止超调过大、产生振荡、稳定性变坏,KP 值要减小,KI 取小值;在偏差很小时,为消除静差,克服超调,

38、使系统尽快稳定,KP 值继续减小,KI 值不变或稍取大。微分作用可改善系统的动态特性,阻止偏差的变化,有助于减小超调量,消除振荡,缩短调节时间,允许加大 Kp,使系统稳态误差减小,提高控制精度,达到满意的控制效果。所以,在 e(k)比较大时,KD 取零,实际为 PI 控制; 在 e(k)比较小时,KD 取一正值,实行 PID 控制。 4.3 转向舵机的PID 控制算法(四轮车)对于舵机的闭环控制,我们采用了位置式 PD 控制算法。 通过对图像采集到的左线和右线,用线性回归方程法计算出各自的斜率和截距,最后通过加权运用到 PD 中得到打角。对于丢线和十字这两种情况,前者我们通过设定阈值来给予丢线

39、方一定的值,后者我们通过先补线,再由正常方法计算得到打角 在实际测试中,由于车辆的晃动会带来图像不稳定,进而打角会非常抖,影响了车辆正常转弯和速度。所以我们采取了一定的打角限幅策略,同时我们又根据不同的赛道类型,对左线和右线的斜率和截距采取不同的加权策略,最终使车辆得以稳定前行。例 如在小 S 弯中,车辆会当作直道前行,不会因为赛道弯曲而不断抖动。 4.4 驱动电机的PID 控制算法对于速度控制,我们采用了增量式 PID 控制算法,基本思想是直道加速,弯道减速。 其中不同的赛道配合什么样的速度,尤为关键。这关系到直道是否能快速加速,遇到弯 24 浙江工业大学银江 VEGA道能否及时安全减速,不

40、冲出赛道。4.5 速度决策算法通过获取采集到的左右线和标准直行赛道的左右线的偏移量,对偏差进行加权平均后的值用来设置不同赛道的速度。这样做决策简单,速度梯度明显,具有明显的前瞻,能在入弯时及时减速。 25 浙江工业大学银江 VEGA第五章系统开发及其调试智能车的平台搭建除了算法的构思、硬件电路设计以及机械结构的搭建外,软件代码的编写及调试也是至关重要的。在整个方案的实现及调试过程中,熟悉好各种电脑软件的使用方法,有助于整体开发效率的提升。 5.1 开发工具程序开发在 IAR Embedded Workbench IDE 下进行,Embedded Workbench for ARM 是 IAR

41、Systems 公司为 ARM 微处理器开发的一个集成开发环境(下面简称IAR EWARM)。比较其他的 ARM 开发环境,IAREWARM 具有入门容易、使用方便和代码紧凑等特点。EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种 ARM 内核、外部设备甚至中断的软件运行环境。从中可以了解和评估 IAR EWARM 的功能和使用方法。 其操作界面如图 5-1 所示。 图 5-1 IAR 界面PCB 的绘制在 Altium Designer16 环境中进行。Altium Designer是原 Protel软件开发商Altium公司推出的一体化的电

42、子产品开发系统,主要运行在Windows操作系统。这套软件通过把原理图设计、电路仿真、PCB 绘制编辑、拓扑逻辑 26 浙江工业大学银江 VEGA自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。 Altium Designer16 操作界面如图 5-2 所示。 图 5-2 AD 界面5.2 车模的调试手段在车模的调试过程中,由于单片机的运算速度远超人眼所能区分的时间界限,我们需要使用辅助的调试工具来进行对车体运动的观察和调整。调试方法主要分为上位机实时观测和 IAR 在线调试。

43、5.2.1 蓝牙结合上位机的调试我们在主板上设置了蓝牙收发装置的插槽,在市场上选购了通信质量高、缓存空间大的 HC-08D 蓝牙收发装置。通过配置单片机的串口,可以实时地将数据经由串口及蓝牙发送至上位机。由于网络上有许多开源的上位机,他们的操作都十分简便,功能也很全面,我们就没有自行开发上位机软件,节省了大量的时间用于调整车模参数。我们主要使用山外的串口调试助手来进行智能车的调试。它拥有一套完整的通讯协议来满足我们对不同数据类型的数据的收发,同时也支持波形的收发。 山外串口调试助手如图 5-4 所示。 27 浙江工业大学银江 VEGA图 5-4 山外串口调试助手5.2.2 IAR 在线调试有些

44、时候直接通过蓝牙传回的数据并不足以让我们去分析出程序运行的过程,这个时候就需要让电脑和单片机通过 swd 直接链接起来进行代码的单步调试。IAR 的在线调试功能也十分强大,可以设置很多个断点,也可以使用 watch和 live watch 等功能实时观察到变量以及寄存器的值。 5.3 硬件测试在设计好硬件电路后,首先要做的便是对硬件的测试。利用万用表和示波器检测各个焊盘之间是否存在虚焊,短接,各个原件输入输出波形是否正确。再者对MCU 模块进行烧录测试,最后检测单片机的外围模块是否能正常进行工作。 (1) 电源模块测试 参照所画原理图,用示波器对电源模块的各个点进行输入输出测试,并检测纹波情况

45、。经过示波器的观察,系统的各个电源模块都能正常工作,而且十分稳定,说明车模部分电源模块的设计是合理的。 (2) 最小系统 K66 测试 在上电后,检测程序是否能正常烧录,烧录后是否能正常运行。经检测,主芯片可以正常工作。 (3) 外围电路的测试 在程序烧录后,上位机通过蓝牙能够接收到数据,说明蓝牙模块工作正常;LCD 可以显示摄像头捕获的数字坐标,说明摄像头及通信模块工作正常。初始化 陀螺仪后,移动移动平台,LCD 上正确显示角度,说明九轴传感器正常工作。 28 浙江工业大学银江 VEGA(4) 电机驱动测试 先检测各个 MOS 管间是否有短接现象。上电后提供 PWM 波检测电机是否能正常工作

46、,将编码器测量的转速在上位机和 LCD 上显示,经检测,电机驱动模块能正常驱动电机转动并且随着占空比而变化,编码器读取的脉冲数随着电机转速的变化而变化,说明电机和编码器都正常工作。 (5) 人机交互模块测试 通过按键和拨码开关调整参数,LCD交互模块工作正常。 显示的数据按照调整变化,说明人机29 浙江工业大学银江 VEGA参考文献1 学做智能车: 挑战 飞思卡尔 杯M. 北京航空航天大学, 2007.2 王宜怀, 吴瑾, 蒋银珍. 嵌入式系统原理与实践-ARM Cortex-M4 Kinetis 微控制器.,2012.3谭浩强. C 程序设计. 北京: 清华大学, 2003.4陶永华.新型

47、PID 控制及其应用J. 工业仪表与自动化装置, 1998(1):57-62.5尹怡欣,陶永华.新型 PID 控制及其应用., 1998 年.北械工业30 浙江工业大学银江 VEGA附录:部分程序源代码1.主函数int main(void)get_clk();/上电后必须运行一次这个函数,获取各个频率信息,便于后面各个模块的参数设置/屏幕lcd_init();NVIC_SetPriorityGrouping(4);/设置优先级分组,4bit 16 抢占优先级,没有亚优先级/电机ftm_pwm_init(ftm3,ftm_ch0,20000,0);/ln ftm_pwm_init(ftm3,ft

48、m_ch1,20000,800);/rn ftm_pwm_init(ftm3,ftm_ch2,20000,0);/rp ftm_pwm_init(ftm3,ftm_ch3,20000,800);/lp ftm_pwm_init(ftm3,ftm_ch4,20000,0);/ln ftm_pwm_init(ftm3,ftm_ch5,20000,800);/rn ftm_pwm_init(ftm3,ftm_ch6,20000,0);/rpftm_pwm_init(ftm3,ftm_ch7,20000,800);/lp31 浙江工业大学银江 VEGAgpio_init(D8,GPO,1);/编码器f

49、tm_quad_init(ftm1);ftm_quad_init(ftm2);/舵机ftm_pwm_init(ftm0, ftm_ch2,50,750);/电感adc_init(ADC0_SE8); adc_init(ADC0_SE9); adc_init(ADC0_SE12);adc_init(ADC0_SE12);/使能NVIC_EnableIRQ(PIT0_IRQn);while(1)/电机ftm_pwm_duty(ftm3,ftm_ch0,0); ftm_pwm_duty(ftm3,ftm_ch1,800); ftm_pwm_duty(ftm3,ftm_ch2,0); ftm_pwm_

50、duty(ftm3,ftm_ch3,800); ftm_pwm_duty(ftm3,ftm_ch4,0);ftm_pwm_duty(ftm3,ftm_ch5,800);32 浙江工业大学银江 VEGAftm_pwm_duty(ftm3,ftm_ch6,0); ftm_pwm_duty(ftm3,ftm_ch7,800); ftm_pwm_duty(ftm0,ftm_ch0,0); ftm_pwm_duty(ftm0,ftm_ch1,800); ftm_pwm_duty(ftm0,ftm_ch2,0);ftm_pwm_duty(ftm0,ftm_ch3,800);/编码器pulse1=-ftm_

51、quad_get(ftm1);pulse2=ftm_quad_get(ftm2);/ADCmyadc1=adc_once(ADC0_SE8,ADC_8bit); myadc2=adc_once(ADC0_SE9,ADC_8bit); myadc3=adc_once(ADC0_SE12,ADC_8bit); myadc4=adc_once(ADC0_SE13,ADC_8bit);if(myadcmax2000)dsp_single_colour(WHITE);elselcd_showuint8(0,0,myadc1,RED, WHITE);33 浙江工业大学银江 VEGAlcd_showuint

52、8(0,20,myadcmax,RED, WHITE); lcd_showuint8(40,0,myadc3,RED, WHITE); lcd_showuint8(40,20,myadc4,RED, WHITE); lcd_showuint8(80,0,pulse1,RED, WHITE); lcd_showuint8(80,20,pulse2,RED, WHITE);count=0;2.管脚定义#ifndef _MK60_port_cfg_h#define _MK60_port_cfg_h#include common.h/ UART /模块通道端口可选范围建议#define UART0_R

53、X_PINA15A1/A1、A15、B16、D6不要用(与 Jtag 冲突)#define UART0_TX_PINA14A2/A2、A14、B17、D7不要用(与 Jtag 冲突)#define UART1_RX_PINE1/C3、E1#define UART1_TX_PINE0/C4、E034 浙江工业大学银江 VEGA#define UART2_RX_PIN#define UART2_TX_PIND2D3/D2/D3#define UART3_RX_PINC16/B10、C16、E5#define UART3_TX_PINC17/B11、C17、E4#define UART4_RX_PINC14/C14、E25#define UART4_TX_PINC15/C15、E24/ FTM /模块通道端口可选范围建议#define FTM0_CH0_P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论