1、 第十一届“恩智浦”杯全国大学生 智能汽车竞赛 技 术 报 告 学 校:集美大学 队伍名称:判断题全队 参赛队员:林言东 冯伟龙 鲁文铎 带队教师:王晓峰 刘云 I 关于技术报告和研究论文使用授权的说明 本人完全了解第十一届“恩智浦”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:林言东 冯伟龙 鲁文铎 带队教师签名:王晓峰 刘云 日 期:2016.8 II 摘要 本设计以第十一
2、届“恩智浦”杯全国智能车大赛为背景,以大赛组委会指定的 E 型车模为平台,搭建了一个以飞思卡尔半导体公司的 32 位微控制器MK60DN512ZVLQ10 为控制核心的智能车控制系统。以 Keil 5.17 为开发环境,利用基于微机械工艺的陀螺仪和加速度计实现了两轮小车稳定地自平衡,该小车系统还能有效地控制两轮小车的运动速度,自主地识别铺有 100mA,20kHZ 交流导线的赛道,并循迹沿着赛道以尽可能快的速度运行。该两轮自平衡小车系统显示了高度的智能化、人性化,并且具备良好的安全性、稳定性,可以为无人驾驶汽车的后续研究提供经验【关键词】控制系统 飞思卡尔 两轮自平衡 循迹 智能化 III 第
3、一章 引言.1 1.1“恩智浦”杯智能车大赛介绍.1 1.2 报告章节安排.1 第二章 系统总体方案设计.3 2.1 车模机械调整概述.3 2.2 硬件电路设计概述.4 2.3 软件系统设计概述.5 第三章 机械结构部分的设计及调整.7 3.1 车模简介.7 3.4 光电编码器的选择和安装.8 第四章 硬件电路设计.10 4.1 单片机最小系统模块.11 4.2 电源管理模块.12 4.3 电机驱动模块.13 4.4 循迹传感器模块.13 4.6 液晶显示和按键输入模块.14 第五章 总体理论分析及控制器软件算法实现.15 5.1 系统控制总体流程图.15 5.2 PID 控制.15 5.2.
4、1 位置式 PID.17 5.2.2 增量式 PID.17 5.3 直立控制部分.18 5.3.1 两轮直立小车系统的模型建立与分析.18 5.3.2 直立控制器的设计与调试.19 5.4 路径识别部分.20 5.4.1 基于电感传感器排布理论分析.20 5.4.2 路径识别的控制器设计与调试.22 5.5 速度控制部分.22 5.5.1 速度控制的理论分析.22 5.5.2 测试开环控制下 PWM 占空比与电机转速之间的关系.23 5.5.3 速度控制器设计的调试.24 第六章 系统的开发环境与车模调试.26 6.1 开发软件工具.26 6.1.1 工程的建立.26 6.1.2 代码的编辑、
5、编译与链接.27 6.1.3 Keil 的在线调试.27 6.2 上位机监控与调试软件.28 6.2.2 上位机的使用在调试车模的过程中的作用.29 6.3 Altium Designer 电路板制作软件.29 第七章 结论以及车模的各项参数.31 7.1 结论.31 7.2 车模的各项参数.32 参考文献.33 附录:程序源代码.34 1 第一章 引言 1.1“恩智浦”杯智能车大赛介绍 本文以第十一届“恩智浦”杯全国大学生智能汽车竞赛为背景,该比赛受教育部高等教育司委托,由教育部高等自动化专业教学指导分委员会(以下简称自动化分教指委)主办全国大学生智能汽车竞赛。该竞赛以智能汽车为研究对象的创
6、意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一,为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。该竞赛由竞赛秘书处为各参赛队提供/购置规定范围内的标准硬软件技术平台,竞赛过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成团队,协同工作,初步体会一个
7、工程性的研究开发项目从设计到实现的全过程。该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车等多学科专业的创意性比赛。该竞赛规则透明,评价标准客观,坚持公开、公平、公正的原则,保证竞赛向健康、普及,持续的方向发展。该竞赛以恩智浦半导体公司为协办方,得到了教育部相关领导、恩智浦公司领导与各高校师生的高度评价,已发展成全国 30 个省市自治区近 300 所高校广泛参与的全国大学生智能汽车竞赛。2008 年起被教育部批准列入国家教学质量与教学改革工程资助项目中科技人文竞赛之一。1.2 报告章节安排 技术报告的
8、章节安排如下:第 1 章引言,大赛介绍和规则介绍。第 2 章系统总体方案设计,对智能车的机械调整、硬件电路设计、软件系统的设计进行概要性的介绍。第十一届全国大学生智能汽车邀请赛技术报告 第 3 章机械结构部分的设计及调整,主要介绍对小车的机械结构的改装及一些模块的安装方法。第 4 章智能车硬件电路设计,主要介绍智能车硬件系统的设计思想、设计过程和设计结果。第 5 章总体理论分析及控制器软件算法实现,主要介绍智能车软件系统的理论分析、控制器设计过程和调试。第 6 章系统的开发环境与车模调试,主要介绍了 Keil5.10 作为系统的开发环境的使用,还介绍了其它在系统设计过程用到过的计算机辅助设计软
9、件。第 7 章结论以及车模的各项参数,总结了在本大赛当中所取得的成绩与不足之处 3 第二章 系统总体方案设计 本章将全局性、概括性地介绍整个系统,从整体上把握该系统的设计思路,明确设计目标,让小车的性能发挥到极致。设计的目标就是让车模在各种繁杂的赛道上都能稳定快速地行驶。2.1 车模机械调整概述 车模机械调整的目标是让整个小车系统的各个模块及零部件合理地布局,并除掉不必要的部分,让小车在整体上更加紧凑整洁轻便。车模重心的位置讨论。车模重心的高低对于整车的性能的影响是很大的,对于直立小车来说,有它的特殊性,车模的重心较高有利于直立控制,车模的直立效果更佳,而车模的重心较低对于车模速度控制的提高有
10、所帮助,比如防止车模侧向翻滚。在这两者之中我们最初的方案的是折中选择,让车模的重心处在车模中间位置,通过一定的实验证明,我们小车的直立效果很好,在重心逐渐降低的同时,车模的直立抗干扰能力也会下降,但是考虑到比赛赛道中没有坡道,对于直立的干扰并不是很大,所以我们确立目标就是要最大限度的降低车模的重心,以此来提高车模高速行驶的稳定度。车模总质量的讨论。质量越大,车模的惯性也越大,对于小车系统来说,它对速度和转向都要求很高的灵敏度和灵活度,所以整车应该越轻越好。在系统需要添加硬件的时候,必须把它引入的质量而加大了车模惯性这一不利因素考虑进来。机械调整部分大致可以概括为以下几个部分:车模平台的同化:直
11、接买回来的车模是需要经过我们的改装才会适合我们的要求的,做的改动也会影响车模行驶的性能。电磁传感器支架:支架要在一定的硬度和强度的同时尽量轻,同样也要尽量让支架位置放低,以此来达到转动惯量小,重心底。电池的安放位置:电池的质量占据了整个车模系统很大的比重,所以它的位置将很明显地影响系统的重心位置。电路板的安放与布局:电路板是由几个独立的模块组成的,也可以分开布局。第十一届全国大学生智能汽车邀请赛技术报告 测速增量式旋转编码器的安装:旋转编码器是用来测轮子的速度的,它的安装位置是不固定的,旋转编码器的选择也是值得考究的,因为它关系到系统对速度信息获取,最终我们安装在车轮与主板之间。本着让车模质量
12、轻、重心低、转动惯量小的目的,我们通过多次修改车模的布局,最终得到一个相对成熟的方案,下图为改装后车模的整体图:图 2.1 车模完整图 2.2 硬件电路设计概述 图 2.2 硬件系统框图 第二章 系统总体方案设计 5 系统的硬件电路板部分大体可概括为六个部分:(1)单片机最小系统板:我们采用的飞思卡尔公司的 kinetis 系列的单片机 MK60DN512ZVLQ10,它是系统的控制核心,具有丰富的资源,足以满足小车的控制。由于是新出的单片机,基于 Cortex-M4 内核,对于我们来说,掌握起来难度不小。(2)电源管理电路模块:此模块为整个电路系统提供电源,要求电源的质量高,电压稳定。我们采
13、用的是 TPS7350 和 TPS7333 分别为系统提供 5V 和 3.3V的稳定电压,电机则直接由电池供电。(3)电机驱动电路模块:本模块为单片机与电机之间提供一个接口,让单片机可以有效地控制电机。要求驱动电路的驱动电流足够大,内阻小,开关频率高等。我们采用的是 BTN7971 半桥驱动芯片,它的驱动能力强,足够满足 E型车模 380 电机的需求。(4)为直立控制设计的传感器模块:要让车模站立起来,我们采用的是组委会规定使用的 L3G4200 陀螺仪和飞思卡尔公司的 MMA8451 加速度计。这两种传感器各有特点,相互融合就可以实现车模倾角和角速度的测量,为直立控制奠定基础。(5)为循迹设
14、计的电磁传感器模块:本模块是由自制的 LC 振荡电路为基本原理的传感器。它能检测铺设在赛道中心的通有 20KHZ,100mA 交流电的导线周围的电磁场的强弱。我们采用 10MH 的电感和 6.8nf 的电容组成 LC 振荡回路,再加上信号调理放大电路。(6)其它附加模块:这包括无线数传模块和液晶按键模块。无线数传模块和按键液晶模块设计成可方便插拔式的,在调试过程中起辅助作用。2.3 软件系统设计概述 系统软件部分大体可分为四个部分:(1)车模直立控制器:直立控制器是要通过陀螺仪和加速度计整合后的输出值来控制电机,使车模实现直立,而难点就在于两种传感器的整合,这是车模直立的关键所在。如果车模倾斜
15、的角度和角速度不能精确的得到,直立就很难做好。这两种传感器都是基于微机械工艺的传感器,它的特点是成本低、体积小,在低成本的同时,也会带来精确度的下降,所以这就需要较好的软件算法来进行传感器的融合,通过融合得到一个准确的角度和角速度信息,为直立控制打好基础。第十一届全国大学生智能汽车邀请赛技术报告 (2)车模转向控制器:这是算法的重点所在,因为比赛要求以尽量快的速度跑完整圈赛道。这就要求能对赛道做出精准的判断,这就对自己制作的电磁传感器提出了较高的要求,在得到电磁传感器的信息之后,还得要对这些信息做运算处理,以提取出我们所需要的赛道信息。(3)车模速度控制器:速度控制也是本系统的一个难点,因为这
16、个两轮倒立模型本来就是一个不稳定的非线性系统,要在此基础上做出较好的速度控制器是很难的。(4)车模调试系统:这部分是为方便调试和监控车模的运行所做的附加部分,但也是为追求好的控制效果所必须有的。调试系统包括无线数传部分,它可以把单片机检测到的数据传到 PC 机上,供上位机分析,这样对了解车模运行状态有很大的帮助,第二个部分是人机交互接口,液晶和按键模块,有了这个部分就可以更加方便的调试车模,提高调试的效率。图 2.3 软件控制框图 车模以最优路径稳定快速的行驶 直立控制器 速度控制器 转向控制器 车模 信息分析 与决策 赛道信息获取 角度及角速度测量 车模速度测量 7 第三章第三章 机械结构部
17、分的设计及调整机械结构部分的设计及调整 3.1 车模简介 车模采用北京科宇通博科技有限公司提供的 E 型车模,按照大赛组委会的规定,对车模的改动是有一定限制的,不能随意改动车模的电机、齿轮传动比、轮距、底盘等。E 型车模采用的是两个 380 的直流有刷电机。图 3.1 新车模图片 3.2 车模机械调整 对于竞速赛的智能小车来说,速度要求越快越好,在速度不断提高的同时,这就对小车系统的提前判断提出了更高的要求,因为车模的惯量是不能无限降低的,转向的延时也是存在的,为了在高速行驶时提前转向,所以要求前瞻越长越好。电磁组的小车是通过 LC 谐振电路来探测前方赛道的,而电感是要靠近赛道才能检测出赛道信
18、息,这就决定了电磁组的小车要有一个良好的支架来将电感向前方探出,以此提高前瞻性。传感器支架结构经过了几次变动,采用外径 3mm、内径 2mm 规格的碳杆,碳杆采用热熔胶连接,下图为一种结构方案,结构简单,轻量轻,制作方便,但第十一届全国大学生智能汽车邀请赛技术报告 是不足之处就是防撞能力差,在垂直于地面的方向上的振动不能很好的抑制,所以这种结构方案还有待改进。图 3.4 传感器支架 3.4 光电编码器的选择和安装 测速采用增量式旋转编码器来测量车轮的转速。编码器的选择有很多种:方案一:工业上用的抗干扰能力很好的产品,比如欧姆龙的 AB 相光电编码器,这类光电编码器特点是精度可以很高,能达到 1
19、000P/R 的精度,但是重量重,增加整体车身重量。方案二:采用半成品的 AB 相编码器,比如龙邱的光电对管加上码盘。这类编码器体积小,使用也简单,安装的位置就比较自如。方案三:增量式旋转编码器体积小,质量轻,信号稳定,输出信号为 CMOS信号,抗干扰能力强。为了使直立车有一个较好的性能,稳定性好以及重量轻,最终我们采用了方案三。第三章 机械结构部分的设计及调整 9 图 3.6 安装好的测速编码器 10 第四章 硬件电路设计 硬件电路是整个系统中相当重要的一部分,是系统运行的基础,所以每一个电容每一个电阻都需要去考究。硬件电路的设计与制作是一个漫长的过程,也是一个充满乐趣的过程,从电路原理的研
20、究到元器件的选择与使用再到电路板的设计与焊接,如果电路效果不佳,或是有改进,则会重复这一过程,所以为了保证电路的可靠性,同时也要让电路板集成度更高,我们花了很多精力去追求完美。电路系统框图如下:图 4.1 电路系统框图 电路板总共有两块,一块是单片机最小系统板,它是系统的控制核心,引出了所以的接口。另一块是集成了传感器、驱动电路、电源模块和一些接口。实物图如下:第四章 硬件电路设计 11 图 4.1 集成电路板 4.1 单片机最小系统模块 我们采用的是飞思卡尔公司的基于Cortex-M4内核的Kinetis系列的单片机MK60DN512ZVLQ10,该系列单片机性能非常强大,相比于之前的 MC
21、9S12XS128,对于小车的性能可以有一个很大的提升。它的一些指标如下:(1)内核频率达到 100MHZ,可以超频到 120MHZ。(2)64K 的 RAM,256K 的 FLASH,内含 Flex memory,flex bus(3)模拟部分:高精度 16bit ADC 转换器,包含可编程增益放大器 PGA,两对差分输入 ADC(4)定时器部分:两个 2 通道正交编码模块,可编程延时模块,周期中断定时器(5)通信部分:以太网接口,USB 接口,两个 CAN 总线,三个 SPI 接口,两个 IIC,6 个 UART 串口 在电磁直立小车系统上我们使用了单片机的资源如下:(1)ADC 模数转换
22、模块:本系统的的电磁采集到的是电压信号的模拟量,需第十一届全国大学生智能汽车邀请赛技术报告 要把它转换成数字信号,所以要用到 ADC 模块。(2)PWM 波调制模块:系统分配一个定时器来产生 PWM 波,PWM 模块工作在互补输出模式,即两个 PWM 通道的相位是互补的,这两个 PWM 通道形成了互补输出。为控制两个电机,所以要两对互补的 PWM 输出信号。(3)正交编码模块:系统分配两个 TIMER 来实现正交编码功能。因为有两个电机,所以要两个正交编码模块,这两个正交编码模块可以直接测得 AB 相测速编码器的脉冲个数,而且还能十分精确地得知正转还是反转的信息。(4)GPIO 口:GPIO
23、主要用在两个方面,首先用 9 个 IO 口来接受按键的输入,再用 2 个 IO 口模拟 IIC 信号来驱动液晶屏幕。(5)UART 通信模块:用一个 UART 异步通信模块来与无线通信模块通信,实现与 PC 机的通信。(6)J-Link 调试模块:10 脚的标准 J-TAG 调试接口,实现编译环境对单片机的烧写和调试。4.2 电源管理模块 电源模块为整个系统提供电源,要求电源质量高,稳定。尤其是给单片机供电的电源,对电源质量的要求更高,如果电源波动很大,单片机就会出现复位的情况。给单片机供电的电源芯片选用的是 TPS7330,它输出 3.3V 的电压,该芯片是低压差的稳压芯片(LDO),稳压的
24、精度高,SOT89 的封装,体积小,能供500mA 的电流,对于系统来说已经足够。图 4.2 电源管理模块电路 第四章 硬件电路设计 13 4.3 电机驱动模块 电机驱动模块为电机提供电源,它的好坏直接影响电机的输出能力,所以电机驱动模块的设计就显得十分重要。我们用四片半桥驱动芯片 BTN7971B 组成全桥,经过实验测量,E 型车模的电机 380 电机内阻有 45 欧,电池电压只有 78V,所以电机不会流过太大的电流,而且驱动芯片的十几毫欧的电阻相对电机的内阻影响不会很大。驱动电路图如下:图 4.3 电机驱动电路原理 4.4 循迹传感器模块 为检测 100mA,20KHZ 的交流电周围的电磁
25、场强度,我们的传感器方案工字谐振电感与电容组成的 LC 谐振电路,再配上信号放大、检波后就可得到一个良好的直流信号。根据经验,挑选电感的时候要选择磁芯磁导率大的,电感圈数比较多的,等效内阻小的,这样可以谐振出较大的电压。综合考虑后选择10mH 的工字电感。根据并联谐振电路的频率,带入频率和电感大小可以得电容的大小,)2/(1LCf,L=10mH,得到 C=6.33nF,取一个最接近的电容值 6.8nf。对于运算放大器,我们在 TI 公司官网去对比搜索,最终决定使用 OPA2350作为运算放大器,它的性能十分强大,轨到轨输出,低噪声,低漂移,唯一的第十一届全国大学生智能汽车邀请赛技术报告 缺点就
26、是价格太贵。检波电路我们采用一对二极管加上滤波电容,电路简单,效果也很好。电路原理图如下:图 4.4 电磁传感器原理图 4.6 液晶显示和按键输入模块 液晶与按键配合作为人机接口,实现操作员与单片机之间的信息交换,这样可以大大地提高调试的效率,也为参加比赛时临场作出参数调整提供了支持,提高了车模的适应能力。所以这个模块十分必要。液晶我们采用的是 9.6 英寸液晶,IIC 接口(可用 IO 口模拟 IIC),使用十分方便,屏幕大小适中,显示清楚。按键我们就直接采用矩阵按键,所需的 IO口相对少。液晶和按键放在了一个独立的模块,方便插拔。图 4.5 液晶与按键模块 15 第五章 总体理论分析及控制
27、器软件算法实现 5.1 系统控制总体流程图 模糊化的软件控制算法都是基于负反馈理论,控制器采用 PID 控制器,再加上一些处理。整个系统有三部分,直立、转向和速度,两个执行器,为了简化系统,我们把三个部分的输出做简单的叠加后输出给两个电机。其实三个环并不是完全的独立的控制环路,而是相互协同配合的,这也是后期控制算法调试所要做的主要工作。图 5.1 系统控制框图 5.2 PID 控制 在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 PID控制,又称 PID 调节。PID 控制器问世至今已有近 70 年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技
28、术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID控制技术。PID 控制,实际中也有 PI 和 PD 控制。车模以最优路径稳定快速的行驶 直立控制器 速度控制器 转向控制器 车模 信息分析 与决策 赛道信息获取 角度及角速度测量 车模速度测量 第十一届全国大学生智能汽车邀请赛技术报告 PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比
29、例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID 控制器,原理框图如图 5.2 所示。图5.2 PID 控制器原理框图 在计算机控制系统中,使用的是数字 PID 控制器,控制规律为:)()()(kckrke (公式 5.1)1()(0)()()(kekekjTTjeTTkeKkuDIP (公式 5.2)式中 k采样序号,k=0,1,2;r(k)第 k 次给定值;c(k)第 k 次实际输出值;u(k)第 k 次输出控制量;e(k)第 k 次偏差;e(k-1)第 k-1 次偏差;KP比例系数;TI积分时间常数;TD微分时间常数;T采样周期。简单说来,PID
30、控制器各校正环节的作用如下:比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。数字 PID 控制算法通常分为位置式 PID 控制算法和增量式 PID 控制算法。第五章 总体理论分析及控制器软件算法实现 17 5.2.1位置式PID 位置式 PID 中,由于计算机输出的 u(k)直接去控制执
31、行机构(如阀门),u(k)的值和执行机构的位置(如阀门开度)是一一对应的,所以通常称公式(5.2)为位置式 PID 控制算法。位置式 PID 控制算法的缺点是:由于全量输出,所以每次输出均与过去的状态有关,计算时要对过去 e(k)进行累加,计算机工作量大;而且因为计算机输出的 u(k)对应的是执行机构的实际位置,如计算机出现故障,u(k)的大幅度变化,会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的,在某些场合,还可能造成严重的生产事故。因而产生了增量式 PID 控制的控制算法,所谓增量式 PID 是指数字控制器的输出只是控制量的增量u(k)。5.2.2增量式PID 当执行机构
32、需要的是控制量的增量(例如:驱动步进电机)时,可由式(5.2)推导出提供增量的 PID 控制算式。由式(5.2)可以推出式(5.3),式(5.2)减去式(5.3)可得式(5.4)。)2()1(10)()1()1(kekekjTTjeTTkeKkuDIP(公式 5.3)1()()()()2()1(2)()()1()()(kekeKkeKkeKkekekeTTkeTTkekeKkuDIPDIP(公式 5.4)式中)1()()(kekeke;IPITTKK;TTKKDPD 公式(5.4)称为增量式 PID 控制算法,可以看出由于一般计算机控制系统采用恒定的采样周期 T,一旦确定了 KP、TI、TD,
33、只要使用前后三次测量值的偏差,即可由式(5.4)求出控制增量。增量式 PID 具有以下优点:(1)由于计算机输出增量,所以误动作时影响小,必要时可用逻辑判断的方法关掉。(2)手动/自动切换时冲击小,便于实现无扰动切换。此外,当计算机发生故障时,由于输出通道或执行装置具有信号的锁存作用,故能保持原值。(3)算式中不需要累加。控制增量u(k)的确定仅与最近 k 次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。第十一届全国大学生智能汽车邀请赛技术报告 但增量式 PID 也有其不足之处:积分截断效应大,有静态误差;溢出的影响大。使用时,常选择带死区、积分分离等改进 PID 控制算法。5.
34、3 直立控制部分 这部分是软件设计中最基础也是最难的一个部分,在让车模站立起来的过程当中花费了大量的时间。5.3.1 两轮直立小车系统的模型建立与分析 两轮直立小车的模型是一个倒立摆模型,它本身是一个不稳定非线性的系统。单摆模型是通过重力在运动方向上产生的回复力来达到稳定的:图 5.3 单摆受力分析 而倒立的摆中,重力在运动方向上产生的力是与运动方向一致的,不仅不能提供回复力而且还会加速摆倒下,但是可以通过轮子的运动来提供回复力:图 5.4 通过车轮运动来达到车模平衡 第五章 总体理论分析及控制器软件算法实现 19 这个回复力是由惯性力产生的,如下图受力分析:图 5.5 倒立摆受力分析 cos
35、sinmamgF (1)只要轮子运动的加速度 ag,就可以产生回复力,来保持车模的直立。当然回复力越大,对于保持直立越好,但是太大也会导致系统振荡,当系统发生振荡时,可以加入一定的阻尼力来消除振荡,这就可以通过倒立摆的角速度分量来控制摆的平衡。5.3.2 直立控制器的设计与调试 控制器的设计,我们采用了现在工业上用得比较多的 PID 控制器,PID 控制器的实现比较简单,而且效果比较好。PID 是一个基于负反馈理论的控制方法,所以影响控制的效果好与坏,大部分依赖于传感器的优良。在直立控制这部分,关键的部分在于倒立摆的角度和角速度的精确测量。比赛规定了我们用基于微机械 MEMS 原理的陀螺仪和加
36、速度计。滤波算法采用了矩阵卡尔曼滤波。算法如下:void Kalman_Filter(float angle_m,float gyro_m)g_fCarAngle+=(gyro_m-q_bias)*dt;angle_err=angle_m-g_fCarAngle;Pdot0=Q_angle-P01-P10;第十一届全国大学生智能汽车邀请赛技术报告 Pdot1=-P11;Pdot2=-P11;Pdot3=Q_gyro;P00+=Pdot0*dt;P01+=Pdot1*dt;P10+=Pdot2*dt;P11+=Pdot3*dt;PCt_0=C_0*P00;PCt_1=C_0*P10;E=R_an
37、gle+C_0*PCt_0;K_0=PCt_0/E;K_1=PCt_1/E;t_0=PCt_0;t_1=C_0*P01;P00-=K_0*t_0;P01-=K_0*t_1;P10-=K_1*t_0;P11-=K_1*t_1;g_fCarAngle+=K_0*angle_err;q_bias+=K_1*angle_err;g_fGyAngleSpeed=gyro_m-q_bias;5.4 路径识别部分 这部分在上届比赛的基础上,已经有很多经验可以借鉴,所以相对比较容易,但是它也是提高成绩的关键,因为路径识别的好与坏直接影响到车模在行进过各程的行走路线,而只有循线循得好才可以提高运行的速度。5.4
38、.1 基于电感传感器排布理论分析 交流导线周围的磁场是一个以导线为轴的圆柱形的矢量场:第五章 总体理论分析及控制器软件算法实现 21 图 5.6 长直导线周围的电磁场 在对比了往届的技术报告后我们最终确定了如下图所示的设计方案,计用左右四个电感对路况信息进行采集如图所示 图 5.7 电感的排布 在得到赛道的信息之后,我们仍然采用 PID 控制算法来对方向进行控制。对于车模的转向是通过左右轮子的差速来实现的,轮子的减速只是提供一个转向的趋式,只有轮子差速的积分才会实现转向的结果。第十一届全国大学生智能汽车邀请赛技术报告 5.4.2 路径识别的控制器设计与调试 方向控制算法中我们使用了两排四个电感
39、,利用算法采集到四个电感的值在程序中我们首先要判断四个电感采集到的值是否为零,当电感值为零时利用算法将值赋为 1,防止在后续算法处理的时候使程序跑飞。详细代码如下:void DirectionControlOut(void)float fLeftRightAdd2,fLeftRightDif2,fValue;float fDValue;fLeftRightAdd0=g_fsensor1+g_fsensor2;fLeftRightDif0=g_fsensor1-g_fsensor2;fLeftRightAdd1=g_fsensor0+g_fsensor3;fLeftRightDif1=g_fse
40、nsor0-g_fsensor3;if(fLeftRightAdd0 10|fLeftRightAdd1 10)/|(fLeftRightDif -5)g_fDirectionControlOutNew=0;else g_fDet=(fLeftRightDif0/fLeftRightAdd0)*0.4+(fLeftRightDif1/fLeftRightAdd1);fDValue=Vol_GyDir-GyDir_Offset;fDValue*=dirPid.D;fValue=g_fDet*(dirPid.P)-fDValue;g_fDirectionControlOutNew=fValue;g
41、_fDirectionControlOutOld=g_fDirectionControlOutNew;5.5 速度控制部分 速度控制相对角度控制和方向控制重要性没有那么大,但也要让直立小车系统的加速减速的能力足够强,能在刚进入直道时迅速提速,而在入弯时迅速减速,这样就可以让平均速度更大,所以速度控制也是很重要的一环。5.5.1 速度控制的理论分析 通常情况下速度控制部分由光电编码器把轮子的速度反馈回来,然后通过第五章 总体理论分析及控制器软件算法实现 23 负反馈机制做一个 PID 控制器就可以控制速度,但是在直立小车系统里的速度控制就不是那么简单了,它看起来是一个正反馈的机制。当需要车模加速
42、时,并不是通常意义上加大给电机的电压让轮子加速,速度控制反而是让电机减速,这样车模就会往前倾,这时角度控制就会与速度控制相抗衡来达到一个平衡,但是这时车模会持续向前加速,因为车模往前有一个倾角就会有往前倒的角加速度,为了保持角度轮子也必须有一个向前的加速度,这样车模就可实现加速了。要实现减速则要让车模向后仰就可以了。图 5.8 速度控制的框图 5.5.5 5.2.2 测试开环控制下测试开环控制下 PWMPWM 占空比与电机转速之间的关系占空比与电机转速之间的关系 整个小车系统的执行器只有两个电机,采用 PWM 波来对电机进行调压调速,控制平滑,调速效果良好。在进行调压调速时,当电机两端的电压有
43、一个阶跃变化时,电机的响应可以分成两个阶段,一为加速阶段,二为恒速阶段。其中,在加速阶段,电机带动轮子进行加速运动,加速度近似和施加在电机两端的电压成正比。在恒速阶段时,车轮的速度和加在电机两端的电压近似正比关系。电机转速的变化曲线如下:第十一届全国大学生智能汽车邀请赛技术报告 图 5.9 在阶跃输入下电机的转速变化图 因为软件的控制周期是在几个毫秒,而电机的时间常数由电机的转动惯量、车模的转动惯量、齿轮的传动比来决定的,一般在几十毫秒,所以在进行调压调速时,PWM 控制输出的是电机的加速度,而在平均的概念上来看即稳态时,PWM控制输出的是电机的转速。这个概念在对于车模速度控制时是有所启发的。
44、5.5.3 速度控制器设计的调试 速度控制器是用 PI 控制器实现的,车模的速度是用左右轮子速度的平均值来表示的,以消除因为转向引起的单轮测速不准确的情况。并且速度控制是对直立控制的干扰,通过理论分析得出,角度控制是让车不倒而速度控制是让车倒,所以为了车模稳定高速的运行,把速度控制的周期设定为 50,为直立控制周期的十倍,以此来保证直立控制。速度控制器的调试主要是 PI 两个参数和速度控制的周期,由以上分析可知速度控制是对直立控制的干扰,所以当速度控制周期太小时,就会导致直立控制的不稳定,当我们尝试把速度控制周期减小时,反而车模的行驶变得不稳定了。所以速度控制周期不能减小,即速度控制的强度不能
45、太大。后来我们的做法是,对赛道进行判别,当赛道的偏差较小时,可以适当加大速度控制比例,当赛道偏差较大时就必须减小速度控制的比重,以防止在弯道处出现车模倒下的情况。/*第五章 总体理论分析及控制器软件算法实现 25 速度控制的 PID 控制器输出*/void SpeedControl(void)float ThisErr,pErr,iErr,dErr;/fp;static float LastErr,PreErr,fpOld=0;int I_flag;g_CarSpeed=(float)(g_nLeftMotorPulseSigma-g_nRightMotorPulseSigma)/2.0;if
46、(g_CarSpeed=150|g_CarSpeed 60)goWrong=1;CarspeedOld=g_CarSpeed;ThisErr=speed-g_CarSpeed;pErr=ThisErr-LastErr;iErr=ThisErr;dErr=ThisErr-2*LastErr+PreErr;g_fSpeedControlOutOld=g_fSpeedControlOutNew;g_fSpeedControlOutNew+=speedPid.P*pErr+fp-speedPid.D*dErr;PreErr=LastErr;LastErr=ThisErr;26 第六章 系统的开发环境与
47、车模调试 在系统的设计制作和调试的过程中,不管是软件的开发还是硬件电路的仿真和电路板的制作都离不开 PC 机。所以对于 PC 机上的各种辅助设计软件必须要有一定的熟悉程度。这样可以提高开发的效率。6.1 开发软件工具 我们选用了飞思卡尔最新的并且功能很强大的 32 位单片机 K60,开发工具选择了用 Keil 软件来进行软件的开发。并且我们使用了第三方超核电子科技开发的库,在此基础上进行系统的开发。6.1.1 工程的建立 首先新建一个工程如下:图 6.1 新建工程 然后打开下载选项,对 KEIL 进行相应的配置如下:第六章 系统的开发环境与车模调试 27 图 6.2 KEIL 的配置 6.1.
48、2 代码的编辑、编译与链接 在工程建立好之后,就可以新建一个.c 文件进行代码的编辑了,代码的编辑是在代码的编辑区进行。图 6.3 代码的编写 代码写好之后就可以进行编译,连接最后烧写入单片机中了。这一过程相对简单,熟悉得很快。6.1.3 Keil 的在线调试 在前期软件开发的过程中,Keil 的在线调试是非常有用的,它可以用 J-LINK直接连接单片机进行单步调试等,还可以查看单片机内部的寄存器的值,使用第十一届全国大学生智能汽车邀请赛技术报告 起来特别方便。下图就是 Keil 的在线调试界面。图 6.4 KEIL 的在线调试 6.2 上位机监控与调试软件 在后期车模调试的过程中,为了让小车
49、的速度更快,就需要很好了解车模运行的详细状态,而光靠人眼是无法完成对车模很好的监控的,只有通过 PC 机才能很好地监控小车的运行状态,并纪录数据以供分析。那么一个良好的上位机就显得格外重要了。我们应用了虚拟示波器等软件进行上位机监控,对利用上位机对小车进行调试。图 6.6 上位机的用户界面 第六章 系统的开发环境与车模调试 29 6.2.2 上位机的使用在调试车模的过程中的作用 当车模制作完成之后,开始在赛道上进行动态调试的时候,要对车模的运行状态进行监控,了解单片机内部的运行状况,检测车模运行状况的好与坏,以便在程序上做改进。当然得到单片机内部的数据之后,还得做数据处理,比如滤波等操作,这样
50、得到一个光滑的曲线之后,就可以方便地对比分析数据 6.3 Altium Designer 电路板制作软件 我们选择了 Altium Designer10 这一软件来进行电路板的设计,这是一个款功能非常强大的电路板设计软件,并且图形界面非常人性化,使用简单快捷,是当今社会电路板制作的主流软件之一。下图为主控制板的原理图和 PCB 图:图 6.7 Altium Designer 原理图设计界面 第十一届全国大学生智能汽车邀请赛技术报告 图 6.8 Altium Desinger 电路板设计 31 第七章第七章 结论以及车模的各项参数结论以及车模的各项参数 7.1 7.1 结论结论 从去年十一月开始