上海电力学院(飞思卡尔光电组) - 图文

更新时间:2024-06-02 09:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第八届\飞思卡尔\杯 全国大学生智能汽车竞赛

技 术 报 告

ELECTRIC POWER 学 校: 上海电力学院 队伍名称: 光电组二队

参赛队员: 李政 李奇夏 魏姝姝 带队教师: 黄云峰 杨宁

I

SHANGHAI UNIVERSITY OF

关于技术报告和研究论文使用授权的说明

本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、

使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名: 带队教师签名:

日 期:

II

摘要

本设计以第八届全国大学生智能车竞赛为背景,介绍了光电两轮自平衡赛车的软硬件结构的开发流程。此次比赛采用大赛组委会统一指定的D型车模,搭建了以Freescale半导体公司生产的16位单片机MC9S12XS128为核心控制的控制系统,在CodeWarrior IDE 开发环境中进行软件开发。整个系统涉及车模机械结构调整、传感器采集来的信号处理、控制算法和策略优化等多个方面,今年光电平衡组增加了路障,对直立小车有了更高的要求。为了提高智能赛车的行驶速度和可靠性,对比了不同方案的优缺点,并利用Matlab以及液晶等工具,最终确定了现有的系统结构和各项控制参数。

关键词:智能车,小车机械结构,两轮子平衡,线性CCD循迹,路障,无线通信

III

目录

第一章 引言 .................................................................................................................................... 1

1.1“飞思卡尔杯”智能车比赛介绍 ..................................................................................... 1 1.2第八届比赛规则介绍 ....................................................................................................... 2 1.3技术报告章节安排 ........................................................................................................... 2 第二章 系统整体介绍 .................................................................................................................. 3

2.1机械结构介绍 ................................................................................................................... 3 2.2硬件系统的介绍 ............................................................................................................... 4 2.3软件系统的介绍 ............................................................................................................... 5 第三章 机械结构 ............................................................................................................................ 7

3.1 车模简介 .......................................................................................................................... 7 3.2 车模机械调整 .................................................................................................................. 7 3.2.1 车模的固定 .................................................................................................................. 7 3.2.2 车模电路板设计安装 .................................................................................................. 8 3.2.3 车模电池位置的固定 .................................................................................................. 9 3.2.4 线性CCD的安装 ........................................................................................................ 10 3.2.5 电机的调整及编码器的安装..................................................................................... 11 第四章 硬件电路设计 .................................................................................................................. 13

4.1车模电路布板思路 ......................................................................................................... 13 4.2车模电路原理 ................................................................................................................. 13 4.2.1最小系统板 ................................................................................................................. 14 4.2.2 电源主板 .................................................................................................................... 15 4.2.3 车模直立电路模块 .................................................................................................... 16 4.2.4 车模驱动模块 ............................................................................................................ 18 4.2.5 车模编码器测速模块 ................................................................................................ 20 4.2.6 液晶及蓝牙模块 ........................................................................................................ 20 第五章 软件系统设计 .................................................................................................................. 23

5.1 直立控制设计 ................................................................................................................ 23 5.1.1 小车直立模型的建立 ................................................................................................ 23 5.1.2 小车直立控制器的设计与调试................................................................................. 25 5.2速度控制设计 ................................................................................................................. 27 5.2.1速度控制理论 ............................................................................................................. 27 5.2.2 速度控制器设计 ........................................................................................................ 28 5.3方向控制设计 ................................................................................................................. 28 5.3.1 CCD的采样 ................................................................................................................. 28 5.3.2 CCD采集图像的图像处理 ......................................................................................... 30 第六章 开发工具说明 .................................................................................................................. 34

6.1 Codewarrior开发工具简介 ......................................................................................... 34 6.2 基于MATLAB的参数计算及仿真 ................................................................................... 34

IV

第七章 总结 .................................................................................................................................. 37 参考文献 ........................................................................................................................................ 38 附录 ................................................................................................................................................ 40

V

第一章 引言

这份技术报告中,通过对小车整体设计思路、电路设计、算法策略及调试参数的介绍,详尽地阐述了我们的想法,具体表现在机械、电路的独特设计,以及算法方面的创新想法,而对车模具体参数的调试我们也付出了很大的精力。这份报告凝聚着大家的心血和智慧,在此要感谢学校的大力支持及老师的悉心教导,特别感谢和我们一起协作的队员们,协助,互促,共勉使我们走到了今天。

1.1“飞思卡尔杯”智能车比赛介绍

本文以第八届“飞思卡尔”杯全国大学生智能汽车竞赛为背景,该竞赛以

智能汽车为研究对象的创意性科技竞赛,是面向全国大学生的一种具有探索性工程实践活动,是教育部倡导的大学生科技竞赛之一,为加强大学生实践、创新能力和团队精神的培养,促进高等教育教学改革。该竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。

智能车系统有着极为广泛的应用前景。结合传感器技术和自动驾驶技术可以实现汽车的自适应巡航并把车开得又快又稳、安全可靠;汽车夜间行驶时,如果装上红外摄像头,就能实现夜晚汽车的安全辅助驾驶;它也可以工作在仓库、码头、工厂或危险、有毒、有害的工作环境里,此外他还能担当起无人值守的巡逻监视、物料的运输、消防灭火等任务。在普通家庭轿车消费中,智能车的研发也是很有价值的,比如雾天能见度差,人工驾驶经常发生碰撞,如果用上这种设备,激光雷达会自动探测前方的障碍物,电脑会控制车辆自动停下来,撞车就不会发生了。

1

第八届全国大学生智能汽车邀请赛技术报告

1.2第八届比赛规则介绍

本届比赛,光电平衡组采用车模直立行走的方式,使用D型车模。车模运

行时只允许动力轮着地,车模直立行走。车模运行方向应按照图1-1所示:

注意车模请按照图示的方向运行。车模运行方向原来的转向轮没有用,可以去除掉。C车模动力轮 图 1-1光平衡组车模运行模式

参加光电平衡组的车模可以使用光电传感器、指定型号的线性CCD传感器进行道路检测,禁止使用激光传感器。

1.3技术报告章节安排

本技术报告以小车的设计为主,包括小车的机械结构设计、硬件电路设计、软件及控制算法设计分为四章:

第2章智能车系统总体设计,对智能车的机械调整、硬件电路设计、软件系统的设计进行概要性的介绍。

第3章智能车机械调整,主要介绍对小车的机械结构的改装及车模电路板、线性CCD、编码器等模块的安装方法。

第4章智能车硬件系统设计,主要介绍智能车硬件系统的设计思想、设计过程和设计结果。

第5章智能车软件系统设计,主要介绍智能车软件系统的理论分析、控制器设计过程和调试。

第6章结论与展望,总结了在本次大赛当中所取得的成果与不足之处。

2

第二章 系统整体介绍

本章从机械、硬件、软件三个方面上对小车进行介绍,从整体上把握该系统设计思路与框架,通过对这三方面的调整,提高小车性能,使小车平稳快速运行。

2.1机械结构介绍

智能车系统任何的控制都是在一定的机械结构基础上实现的,因此在设计整个软件架构和算法之前一定要对整个车模的机械结构有一个整体的认识,然后建立相应的数学模型。从而再针对具体的设计方案来调整赛车的机械结构,并在实际的调试过程中不断的改进和提高。

车模重心的位置的改造,车模重心的高低对于整车的性能的影响很大,介于直立系统的特殊性,车模的重心越低有利于直立控制,车模的直立效果及速度控制的效果越好,同时重心降低,可以防止车模侧翻,所以我们的目标就是要最大限度的降低车模的重心,以此来提高车模高速行驶的稳定度。

考虑小车的速度和转向对灵敏度和灵活度的要求,车模的质量越大,车模的惯性也越大,所以小车应该越轻越好,所以要考虑如何从硬件等方面尽量减轻小车的重量。

机械调整部分大致可以概括为以下几个部分:

车模的简化:买回来的车模是需要经过改装才会符合要求,而且要根据运行的状态在不违反规则的前提下进行改变。

电池的安放位置:电池的质量占据了整个车模系统很大的比重,所以它的位置将很明显地影响整个车的重心,电池如何摆放还会影响到车模的力矩,。

电路板的安放与布局:我们把全部的电路放在一块电路板上,为降低车模重心,尽量降低电路板的位置

测速光电编码器的安装:光电编码器是用来测轮子的速度的,它的安装位置是不固定的,光电编码器类型的选择也要进行选择,因为它关系到系统对速度信息获取。

3

第八届全国大学生智能汽车邀请赛技术报告

本着让车模质量轻、重心低、转动惯量小的目的,我们通过多次修改车模的布局,最终得到一个相对成熟的方案,下图为改装后车模的整体图:

图2-1 车模完整图

2.2硬件系统的介绍

倾角及角速度传感器模块 电源 管理 模块 3.3V 7.2V 5V 液晶及按 键模块

蓝牙 模块 线性CCD 电机 MOTOR PWM 电机驱 动模块 电机 MOTOR 测速 测速编码 器 单片机最小系统板 图2-2 硬件系统框图

4

第二章 系统整体介绍

系统的硬件电路板部分大体可概括为六个部分:

单片机最小系统板:我们采用的飞思卡尔公司的系列的16位单片机MC9S12XS128,它是系统的控制核心,具有丰富的资源,功能足以进行小车的控制。

(2) 电源管理电路模块:此模块为整个电路系统提供电源,要求电源的质量高,电压稳定。我们采用的2940是和AMS1117分别为系统提供5V和3.3V的稳定电压,电机则直接由电池供电。

(3) 电机驱动电路模块:本模块为单片机与电机之间提供一个接口,让单片机可以有效地控制电机。要求驱动电路的驱动电流足够大,内阻小,开关频率高等。我们采用的是BTS7960半桥驱动芯片,它的驱动能力强,满足D型车模260电机的需求。

(4) 为直立控制设计的传感器模块:要让车模站立起来,我们采用的是组委会规定使用的村田公司的ENC03系列陀螺仪和飞思卡尔公司的MMA7361加速度计。这两种传感器各有特点,相互补充就可以实现车模倾角和角速度的测量,为直立控制奠定基础。

(5) 循迹传感器模块:车模识别路径使用了组委会指定的TSL1401系列的线性CCD。

(6) 其它附加模块:这包括蓝牙模块和液晶按键模块。蓝牙和按键液晶模块设计成可方便插拔式的,在调试过程中起辅助作用。

2.3软件系统的介绍

系统软件部分大体可分为四个部分:

(1) 车模直立控制器:直立控制器是要通过陀螺仪和加速度计整合后的输出值来控制电机,使车模实现直立,而难点就在于两种传感器的整合,这是车模直立的关键所在。如果车模倾斜的角度和角速度不能精确的得到,直立就很难做好。这两种传感器都是基于微机械工艺的传感器,它的特点是成本低、体积小,在低成本的同时,也会带来精确度的下降,所以这就需要较好的软件算

5

第八届全国大学生智能汽车邀请赛技术报告

法来进行传感器的融合,通过融合得到一个准确的角度和角速度信息,为直立控制打好基础。

(2) 车模转向控制器:这是算法的重点所在,因为比赛要求以尽量快的速度跑完整圈赛道。这就要求能对赛道做出精准的判断,

(3) 车模速度控制器:速度控制也是本系统的一个难点,因为这个两轮倒立模型本来就是一个不稳定的非线性系统,速度控制和直立控制之间存在耦合

(4) 车模调试系统:这部分是为方便调试和监控车模的运行所做的附加部分,但也是为追求好的控制效果所必须有的。调试系统包括无线数传部分,它可以把单片机检测到的数据传到PC机上,供上位机分析,这样对车模运行的快速性和稳定性有很大的帮助,第二个部分是人机交互接口,液晶和按键模块,有了这个部分就可以更加方便的调试车模,提高调试的效率。

速度控制器 转向控制器 直立控制器 车模 车模以最优路径稳定快速的行驶 信息分析 与决策 角度及角速度测量 赛道信息获取 车模速度测量

图2-3 软件控制框图

6

第三章 机械结构

3.1 车模简介

车模采用广东东莞博思电子数码科技有限公司提供的D型车模,按照大赛组委会的规定,对车模的改动是有一定限制的,不能随意改动车模的电机、齿轮传动比、轮距、底盘等。D型车模采用的是两个RN—260型号的直流有刷电机,电机的功率相对去年直立电磁车较大。今年光电组采用两轮直立行走的方式,所以和去年电磁车相同,车模两个前轮及其转向机构是可以完全去除,再去除被动悬架之后,车模就只剩下两个电机、两个轮子、齿轮传动机构、电池和底盘。之后就将在此基础上逐步完善这个两轮直立循迹小车系统。

图3-1 D型车模

3.2 车模机械调整

3.2.1 车模的固定

由于直立车是一个比较特殊的系统,车模整体的机械结构对直立控制、速

度控制以及转向控制会有很大的影响,不同的机械结构小车的性能会有很大的不同,直立车模型可以视为一个一级倒立摆,但是由于车模的底盘和电机的连接部分存在的一个很大的缝隙,缝隙导致车模在直立行走时发生震荡,从而车模的物理模型就有一级倒立摆演变为二级倒立摆,那么此时再用一级倒立摆的程序来维持小车的平衡就很困难了,当小车在快速度跑动的过程中,轻微的震

7

第八届全国大学生智能汽车邀请赛技术报告

动或者抖动都会对小车造成较大的影响。为此,我们最终用PCB板来固定车底盘和电机部分,并将PCB板切割成固定的形状,去除其他多余的部分,以确保车模的稳定直立运行。

图 3-2 车

模固定板

3.2.2 车模电路板设计安装

为了尽量降低车模重心,我们对电路板进

行了改造,并改变了电路板的位置,为了尽量车模降低重心,特意重新设计了将主控电路与驱动电路整合的L字形PCB电路,并改变了电路板的位置,将其和电池放在同一面,驱动模块位于电池下面,有效利用了车模正面的安装空间,并同时搭载了液晶显示器件,合理的利用了车身所能提供的空间,L形电路板如下

8

第三章 机械结构

图3-3 电路板的设计安装

3.2.3 车模电池位置的固定

电池是整个小车中质量最大的一个部分,它的位置对小车系统的重心影响

较大。经过多次尝试,并尽量降低车模整体重心,最终确定把电池放在车模的背面,并对电池的高低进行了调整,最终使电机几乎靠近轮子的轴心的位置,这样电池的位置就几乎放到了最低位置。

图3-4 车模电池位置

固定好电池后,车模的总体质量要注意,质量越大,车模的惯性也越大,对于小车系统来说,它对速度和转向都要求很高的灵敏度和灵活度,所以整车应该越轻越好。在系统需要添加硬件的时候,必须把它引入的质量而加大了车

9

第八届全国大学生智能汽车邀请赛技术报告

模惯性这一不利因素考虑进来。 3.2.4 线性CCD的安装

本车采用两个CCD来循迹,我们考虑了多种CCD安装方案,最终确定了两种方案,其中第二种方案是对第一种的改进。第一种方案是将碳素杆装在车的中线的位置,开始是用热熔胶将CCD粘在碳素杆上,在最终确定CCD的前瞻后,在碳素杆上打孔,并自制CCD的安装支架,将CCD用螺丝固定在碳素杆上,经过区赛后,发现这种方法没有将CCD完全固定住,小车摔倒后CCD的倾角会发生变化,导致后面小车跑时路径不好,为此我们做出了改进,改碳素杆为较刚的弹簧片,直接将CCD固定在车上,这样子就不会导致小车摔倒时CCD倾角改变

图3-5 CCD支架 图3-6 使用碳素杆装CCD

图3-7 使用弹簧片装CCD

10

第三章 机械结构

为了尽量减轻车模的重量,我们把CCD原用的杜邦线换成了漆包线,用五根细的漆包线并绕成一根线,每个CCD用五根线,将这些线编织在一起,既减轻车模的重量,又使车模显得简洁,同时为防止车摔倒时撞倒CCD,我们在车底板装了支架,用以防止车模倒下时摔坏CCD。

图3-8 保护CCD的支架

3.2.5 电机的调整及编码器的安装

直接用刚买回来的车模,发现小车在调速度的过程中,出现直道跑不直的

情况,后来分析发现是因为左右两个电机不对称,对多个电机进行测试,让电机加速转,采集电机的速度值,并在MATLAB里面绘制成曲线,比较曲线找到动态特性接近的两个电机,换掉原来的两个电机。电机的响应可以分成两个阶段,一为加速阶段,二为恒速阶段。其中,在加速阶段,电机带动轮子进行加速运动,加速度近似和施加在电机两端的电压成正比。在恒速阶段时,车轮的速度和加在电机两端的电压近似正比关系。装好电机

后按图3-9我们把编码器装好。

图3-9编码器安装图

11

第八届全国大学生智能汽车邀请赛技术报告

图3.10 在阶跃输入下电机的转速变化图

12

第四章 硬件电路设计

4.1车模电路布板思路

电路板是由几个独立的模块组成的,前期电路均采用各模块独立制板分开布局,经过多次测试后发现电机驱动控制PWM信号端采用杜邦线连接,在车模运行过程中会有接触不良的现象产生,长期插拔更会加重此故障,所以在后期制作电路时我们将分开的角度传感模块和电机驱动模块集合在一块电路中,以排除跳线接触故障。驱动电路和供电电路整合在一块电路中随之而来的干扰产生了,驱动电路的大电流会干扰主芯片的工作,带来的干扰我们采用一块主板两个地端(一个模拟地,一个实际地)其中两个地端中间采用10uh电感相连避免驱动电流产生的干扰。各模块集成为一块电路后,不仅利于电路安装还可以避免电路调整时因人为接线错误烧毁电路的事故。

4.2车模电路原理

车模的电路板总共有两块,一块是最小系统板,一块是电源主板。

图4-1最小系统板

13

第八届全国大学生智能汽车邀请赛技术报告

图4-2电源主板

4.2.1最小系统板

我们采用的是飞思卡尔公司的MC9S12XS128芯片,最小系统板的硬件电路设计主要包括以下几个部分:时钟电路、电源电路、BDM接口。其中各个部分的功能如下: 1、时钟电路给单片机提供一个外接的16MHz的石英晶振; 2、电源电路主要是给单片机提供5V电源; 3、复位电路由复位开关组成当按下复位开关时,芯片复位; 4、BDM接口让用户可以通过BDM头向单片机下载和调试程序。

使用的资源有: (1) ATD模块

陀螺仪:一路,检测车模角速度; 加速度计:一路,测量车模倾角;

线性CCD:2路,采集CCD输出的模拟电压值。 (2) PWM模块

控制左右两个电极双方向运行。由于采用单极性PWM驱动,需要四路PWM

接口。如果采用双极性PWM驱动,可以使用两路。

14

第四章 硬件电路设计

(3) TIM模块

对编码器脉冲数进行计数。 (4) SCI串口通讯模块 用于无线通讯设备蓝牙。 (5) IO接口

用于LCD液晶显示,拨码盘、编码器计数脉冲及方向信号输入口及信号

灯设置等。

单片机的时钟电路:

通过把一个16MHz的外部晶振接在单片机的外部晶振输入接口EXTAL和

XTAL上,然后利用MC9S12XS128 内部的压控振荡器和锁相环(PLL)把这个频率提高到40MHz,作为单片机工作的内部总线时钟,外部振荡电路如下:

4.2.2 电源主板

电源模块为整个系统提供电源,要求电源质量高,供电电压稳定,图4-2

为电源主板。尤其是给单片机供电的电源,对电源质量的要求更高,如果电源波动很大,单片机就会出现复位的情况,而且电池的供电能力有限,所以当电机出现堵转时电池电压就会被拉得很低,这时就要对单片机的供电进行保护。所以我们在芯片和主板的电源供电上采用双稳压芯片并联稳压,给芯片和主板分别独立供电,防止电机堵转对芯片电压的干扰,除此以外我们还采用了大电

15

第八届全国大学生智能汽车邀请赛技术报告

容给单片机储存电能,在电池电压拉低的短时间内给单片机提供电源,防止由于电压过低导致单片机复位。

并联的双稳压芯片我们前期采用的是插针式7805,但经过一段时间的调试后我们发现7805的稳压对电池电压的要求比较高,当车模在加速期间电池电压会被拉低 到6.5V,而7805稳压自身的压降为2V此时7805稳压输出电压为4.5V给芯片供电就会偏低,所以后期我们将2个7805稳压芯

片全部更换为2940以获取更稳定的电源供电,图4-3为双并联插针式2940电源稳压模块。电源供电原理图如下:

图4-4稳压电源供电模块原理

4.2.3 车模直立电路模块

16

第四章 硬件电路设计

车模直立电路使用了陀螺仪、加速度传感器,两者配合使用以判断车模倾

角姿态。陀螺仪采用日本村田公司的ENC-03如图4-4所示,供电电压采用AMS1117稳压芯片输出的3.3V,静止状态输出1.35V左右,其输出电压随着旋转成线性变化。该产品是一种应用科氏力原理的角度传感器,在器件中利用压电陶瓷做成振动单元。当旋转器件时会改变振动频率从而反映出物体旋转的角速度,它输出一个和角度成正比的模拟电压信号,特征为:体积小重量轻;快的响应;低的驱动

电压和功耗。 图4-5 ENC-03 加速度计则采用MMA7361三轴模拟信号加速度计,通过微机械加工技术在硅片上加工形成了一个机械悬臂。它与相邻的电极形成了两个电容。由于加速度使得机械悬臂与两个电极之间的距离发生变化,从而改变了两个电容的参数。通过集成的开关电容放大电路量测电容参数的变化,形成了与加速度成正比的电压输出,与倾角成正比。

,式中,为重力加速度;gθ为车模倾角;为加速

度传感器灵敏度系数系数。当倾角kθ比较小的时候,输出电压的变化可以近似

图4-6 MMA7361及其原理图

角度计算电路:

17

第八届全国大学生智能汽车邀请赛技术报告

下图给出了使用一个运算放大器计算角度的电路。其中电位器P1可以调节陀螺仪的比例因子。

图4-7车模角度计算电路

图4-8角度传感模块原理

4.2.4 车模驱动模块

车模采用BTS7960芯片作为主驱动芯片,驱动能力完全能够满足电机要求,我们采用了H桥驱动电路来驱动电机,电路得名于“H”桥驱动电路”是因为它的形状酷似字母H。

18

第四章 硬件电路设计

图4-9 H桥驱动电路

要使电机运转,必须使对角线上的一对三极管导通,车模的电机驱动模块原理图如下图所示:

图4-10 H桥电路驱动电机顺时针转动及逆时转动

图4-11 车模驱动模块原理图

由于摩擦力等因素的存在,电机与PWM给定信号存在非线性死去特性。为

19

第八届全国大学生智能汽车邀请赛技术报告

了使系统具有更好的线性,首先需要对电机死区进行补偿。

4.2.5 车模编码器测速模块

由于直立车转弯时是靠差速来转,所以会有左右两个轮子速度不一样的情况出现,为此我们采用了CD4051开关,分时计数左右两个编码器的速度脉冲,11引脚来控制选择计数13和14哪个通道的脉冲数,3脚接PT7口对脉冲数计数,由于需要知道车模的方向,所以我们采用两个编码器,一个是157线,不带有检测车轮方向功能,一个是512线,可以检测车模方向。

图4-12 CD4051原理图

4.2.6 液晶及蓝牙模块

本届比赛光电平衡组采用TSL1401系列的线性CCD作为传感器进行循迹,

20

第四章 硬件电路设计

为方便查看CCD采集来的道路信息以及二值化后的图像,我们自制了液晶模块,并加有按键功能,液晶与按键配合作为人机接口,实现操作员与单片机之间的信息交换,这样可以大大地提高调试的效率,由于采用了两个CCD,通过按键可以实现上下CCD的切换,为调试带来很多方便。

图4-13 液晶及按键模块

调试参数时,在程序里面改好参数再用BDM烧写进去会很麻烦,因此运用了单片机的异步通信模块来把内部数据以数据包的形式发到无线数据传输模块上,然后无线模块再传输到电脑上查看,我们采用的是济南华茂科技公司的HM系列蓝牙模块,HM系列蓝牙模块采用CSR BlueCore芯片,配置6-8Mbit的软件存储空间,支持AT指令,用户可根据需要更改SPP 角色(主、从模式)以及串口波特率、设备名称、配对密码等参数,使用灵活。

图4-14 蓝牙模块

车模整体电路板PCB图如下:

21

第八届全国大学生智能汽车邀请赛技术报告

图4-12 最小系统板

图4-13车模电路板顶层

22

第五章 软件系统设计

软件的主要功能包括有:车模运行状态检测,电机PWM输出,车模运行控制,其中包括直立控制、速度控制、方向控制,车模运行流程控制,程序初始化、车模启动与结束,系统界面,包括状态显示、上位机监控、参数设定等。其中车模运行控制是核心,为了简化系统,我们把三个部分的输出做简单的叠加后输出给两个电机。其实三个环并不是完全的独立的控制环路,而是相互协同配合的,这三部分的参数调整是后期控制算法调试所要做的主要工作,系统主程序框架如右图所示。

5.1 直立控制设计

这部分是软件设计中最基础的一个部分,因为所有的程序运行必须建立在小

车可以站立不倒的情况下进行,所以对车模的直立稳定性就提出了较高的要求,我们在车模的直立控制上采用的是PD控制,通过角度传感模块和上位机采回车模倾角数据,然后利用MATLAB拟合出跟随平滑曲线,以此方法来调整出合适的PD参数,由于机械结构有所改进,车模重心比去年降低了很多,并对去年的算法进行了改进,所以使小车拥有更强的直立刚度。 5.1.1 小车直立模型的建立

两轮直立小车的模型是一个倒立摆模型,它本身是一个不稳定非线性的系统。单摆模型能够稳定在垂直位置的条件有两个:(1)受到与位移相反的回复力;(2)受到与运动速度相反的阻尼力。

23

第八届全国大学生智能汽车邀请赛技术报告

图5-1 单摆受力分析 图5-2 不同阻尼下的单摆运动

而倒立的摆中,重力在运动方向上产生的力是与运动方向一致的,不仅不能提供回复力而且还会加速摆倒下,但是可以通过轮子的运动来提供回复力:

图5-3 通过车轮运动来达到车模平衡

这个回复力是由惯性力产生的,如下图受力分析:

24

第五章 软件系统设计

图5-4 倒立摆受力分析

假设负反馈控制是车F?mgsin??macos?,当?很小时F?mg??mk1?,

轮加速度与偏角θ成正比,比例为k1。如果比例k1>g,那么回复力的方向便于位移方向相反了,这样就可以产生回复力,来保持车模的直立。当然回复力越大,对于保持直立越好,但是太大也会导致系统振荡,当系统发生振荡时,可以加入一定的阻尼力来消除振荡,这就可以通过车模的角速度分量来控制车模平衡。 5.1.2 小车直立控制器的设计与调试

根据所学的知识以及通过对直立系统的进行分析,我们最终采用了现在工业上用得比较多的PID控制器,PID控制器的实现比较简单,而且效果比较好。要想车模直立,必须控制车模的倾角稳定在平衡位置,在直立控制这部分,对基于平衡位置的角度偏差值进行控制,角速度为角度的微分值,属于微分量,所以最终我们采用PD控制。

为了准确地进行控制,关键的部分在于车模的角度和角速度的精确测量。比赛规定了我们用基于微机械MEMS原理的陀螺仪和加速度计。这两种传感器各有各的特点,陀螺仪的特点是动态特性好,能比较精确的测得转动的角速度,但是静态特性不好,有温漂和积分漂移存在。加速度计的特点正好与陀螺仪互补,它的特点是静态特性好,能在静态时比较精确的测得角度,但在动态时不能很好地反应车模的倾斜角度。所以我们把两者进行互补,融合后可以得到相对较准确的车模角度和角速度。

25

第八届全国大学生智能汽车邀请赛技术报告

加速度计测量重力场方向的原理是通过测量微小形变来实现,当加速度计静止放在水平台面上时,它受到台面给它的支持力而产生在Z轴即重力方向上的形变,这时Z轴的输出值最大,当它和水平台面的倾角逐渐变大时,在Z轴上的形变会渐渐变小,而在Y轴上的形变会变大,实际上Z轴和Y轴上的分量就是重力在这两个方向上的分量,用这两个量就可以测得重力方向了。

从以上分析得知这种方式非常适合静态测量角度,而一旦有水平方向上的加速度时,这就会干扰我们的测量,所以这时就得用到陀螺仪了,陀螺仪能直接很精确的得到角速度的值,它的积分就可以得到角度。两者融合就可以得到精确的角度和角速度了。

在得到车模的角度和角速度后,就可以通过PD控制器来控制车模的平衡,只需调节PID的参数就可以让车模直立起来,而且效果很好。控制器这里还有一个重要的思想是我们采用了分段控制,对车模相对平衡位置-6度到+6度的偏差进行控制,不同的偏差应用不同的PD控制参数,融合后控制的框图如下:其中加速度计所占的比重很小,也是为了消除它带来的噪声的影响。

图5-5直立控制的算法框图

直立控制的调试首先是调节角度和角速度计算公式前面的系数,车模在小角度范围内晃动时,使加速度计采样值转换为对应的角度,使陀螺仪采样值得到对应的角速度,其次调节由加速度计测得的角度所占的比重Tg,即加速度计的补偿力度,PD控制中的比例系数K1,微分系数K2。通过实验分析,加速度计的补偿力度可以很小,陀螺仪的积分误差也不会太大。若补偿力度太大反而会使系统振荡,因为加速度计的噪声是很大的。对于比例和微分这两个参数,先调节比例参数,可以逐渐加大K1,直到系统出现大幅度振荡,这时再增加微分

26

第五章 软件系统设计

参数K2,因为微分参数是起阻尼作用的,它可以在一定程度上消除由于比例系数较大而引起的振荡,但是微分系数太大会使系统出现高频振荡,所以适中即可。

5.2速度控制设计

5.2.1速度控制理论

速度控制部分是由光电编码器把轮子的速度反馈回来,然后通过负反馈机制做一个PID控制器就可以控制速度,但是在直立小车系统里的速度控制就不是那么简单了,它是一个正反馈的机制。

当需要车模加速时,并不是加大给电机的电压让轮子加速,速度控制反而是通过让电机减速,这样车模就会往前倾,角度控制与速度控制如此会达到一个平衡,这时车模会持续向前加速,因为车模往前有一个倾角就会有往前倒的角加速度,为了保持角度轮子也必须有一个向前的加速度,这样车模就可实现加速了。要实现减速则要让车模向后仰就可以了。

图5.6 速度控制的框图

27

第八届全国大学生智能汽车邀请赛技术报告

5.2.2 速度控制器设计

速度控制器选用PID控制器,车模的速度用左右轮子速度的平均值来表示,因为转向时左右两个轮子速度不同,如果单轮测速测到的速度不准确,由于速度控制会对直立控制产生干扰,通过理论分析得出,角度控制是让车不倒而速度控制是让车倒,为了车模稳定高速的运行,把速度控制的周期设定为25ms,直立控制周期为2ms,以此来保证直立控制不受到直立控制的影响。

速度控制器的调试主要是PID三个参数,参数的调试主要借助MATLAB和蓝牙两个调试工具完成。在速度控制中,车模速度要从零加速到设定的速度值,如果直接把速度设定值减去零作为偏差进行PID控制,会使车模很不稳定,所以我们采用了分阶段设定速度设定值,使设定值呈阶梯状稳定上升,这样速度偏差值较小,速度控制比较稳定。

在速度控制参数的调试上,我们花费了很多时间,主要是控制容易出现较大的超调,当第一次达到设定值时,紧接着后面会出现较大的超调,我们把达到设定值作为分界点,前后使用不同的控制参数,后来达到了比较好的效果,减小了超调量。

5.3方向控制设计

小车采用采用了两个TSL1401CL系列线阵CCD,方向控制思想可以参考摄像头组的循迹思想。

5.3.1 CCD的采样

TSL1401CL线阵CCD包含128个光电二极管的线性阵列。与面阵CCD相比,线性CCD最明显的特点就是其只能采集一行的可视像素,并且输出的是模拟量,所以需要进行AD采样。

28

第五章 软件系统设计

它的时序波形与操作波形如下如所示:

图5-7 CCD时序波形

图5-8 CCD操作波形

128个像素的采集与输出用到了SI和CLK信号,在这128个像素之外,还有一个开关逻辑控制和移位寄存器电路。SI通过该电路,控制每一个像素的积分和复位操作;CLK通过该电路控制每一个像素电压的依次输出。

在软件中,我们需要按照上图所述的CCD时序对CCD进行曝光与采集的控制。图中,第19个CLK到下一个SI开始的这段时间,就是CCD的积分时间,及曝光时间,之前的18个CLK的时间为积分器的复位时间。在每一个SI信号之后采集到的像素均是这个SI信号之前曝光得到的图像。具体的方法是:在SI持

29

第八届全国大学生智能汽车邀请赛技术报告

续高电平20ns后产生第一个CLK信号,并在每个CLK信号的下降沿时采集AO引脚输出的电压值。在采集了128个像素后,还必须生成第129个CLK信号以结束本次采集。在第129个CLK之后到下一个SI信号之间的时间就是下次采集的曝光时间。

采集程序如下:

unsigned int i=0;

unsigned int j=0;

SETSI; /* SI = 1 */ SamplingDelay();

SETCLK; /* CLK = 1 */ SamplingDelay();

RESETSI; /* SI = 0 */ SamplingDelay();

AD_CCD_sample(pCCD_BUFF_H,pCCD_BUFF_L);/*对CCD进行采样*/ RESETCLK; /* CLK = 0 */ for(i=0; i<127; i++) { SamplingDelay();

SETCLK; /* CLK = 1 */ SamplingDelay();

AD_CCD_sample(pCCD_BUFF_H+i+1,pCCD_BUFF_L+i+1); RESETCLK; /* CLK = 0 */ }

SamplingDelay();

SETCLK; /* CLK = 1 */ SamplingDelay(); RESETCLK; 5.3.2 CCD采集图像的图像处理 1、图像预处理

图像处理简单的来说就是根据CCD传回来的视频信号中提取出黑线的位置。常用的黑线提取算法分为二值化算法、直接边缘检测算法和跟踪边缘检测算法。

二值化算法的思路是:设定一个阈值,从左至右比较各像素值和阈值的大小,若像素值大于或等于阈值,则判定该像素对应的是白色赛道;反之,则判定对应的是黑色的目标引导线。记下第一次和最后一次出现像素值小于阈值时的像

30

第五章 软件系统设计

素点的列号,算出两者的平均值,以此作为该行上目标引导线的位置。

直接边缘检测算法:首先找到从白色像素到黑色像素的下降沿和从黑色像素到白色像素的上升沿,然后计算上升沿和下降沿的位置差,如果大于一定的标准值,即认为找到了黑线,并可求平均值算出黑线的中心点。至于上升沿、下降沿的检测,可以通过上上次采样数与这次采样数的差值的绝对值是否大于一个阈值来判断,如果“是”且差值为负,则为上升沿;如果“是”且差值为正,则为下降沿。

跟踪边缘检测算法:由于黑色的目标引导线是连续曲线,所以相邻两行的左边缘点比较靠近。跟踪边缘检测正是利用了这一特性,对直接边缘检测进行了简化。其思路是若已寻找到某行的左边缘,则下一次就在上一个左边缘附近进行搜寻。这种方法的特点是始终跟踪每行左边缘的附近,去寻找下一列的左边缘,所以称为“跟踪”边缘检测算法。

我们的思路是:对一行中所有像素点求平均,然后再逐点对比像素点与平均值之间的关系,求出高于平均值的像素点的平均值以及低于平均值的像素点的平均值。这两个平均值乘以一定的系数之后,这两个值分别作为判断为白色的的阈值与判断为黑色的阈值。这种思路的好处是,对于一行的灰度图像阈值有一定的死区,可以有效滤掉一部分可能产生的噪点与反光,这个思路是源于数电里面学的史密特触发器。 2、边缘提取

对于边缘提取我们使用了捕捉二值化后图像的上跳沿与下降沿的方法,我们的思路是:在一定图像范围内,检测到上跳变沿时把当前列记入上升沿数组中,检测到下降沿时把当前列记入下降沿数组。然后逐对地让下降沿与上跳沿作差,保留其最大一对的差值,即为赛道的中心线。 3、CCD的曝光时间控制

最初我们采用的是10ms的固定时间曝光,后来发现在强光下会产生比较大的畸变,对提取边线有一定的影响,因此改用自适应曝光。

自适应曝光我们有两种方案:第一种为在车辆运行的时候对当前的光线进行实时的调整;第二种方案为只在小车初始化时确定本次运行的曝光时间,之后曝光时间不变。经过我们实际调试,发现第一种情况对光线变化程度大的场地

31

第八届全国大学生智能汽车邀请赛技术报告

适应性会稍微好一点,但是由于每次曝光时间都不一样,会导致采集的图像不太稳定,第二种情况反之。

我们的自适应曝光的程序设计思路如下:先对所有点作平均值,再逐点对高于平均值的点取平均值。当此平均值大于设定值时,让曝光时间减小,当此平均值小于设定值时,让曝光时间增大。 4、起始线的识别

我们有几种方案检测起始线:

第一种:由于起跑线只可能出现在直道,因此在接近起始线时,车身位置较为固定。因此在实际测定的基础上,让程序在一定的范围内检测黑色点的数值,若黑色点在合理范围内即判定为起始线。

第二种:在正常赛道中,提取出来的上升沿与下降沿应为一对。在线性CCD采集到起始线图像时,图像应有多对上升沿与下降沿。如车身正对着起始线时,线性CCD捕捉到的图像经过二值化后应是“黑白黑白黑白黑”,此时有三个上跳沿,三个下降沿;如车身不正,采集到的二值化后的图像应是“黑白黑白”或“白黑白黑”,即两个下跳沿,两个上升沿。通过判断跳变沿的信息即可判断起始线。这种判断在虚线小s时会遇到一些问题,因虚线小s背景板为白色,所以也会出现多个跳变沿。我们的解决方法是在原判断上加上对黑色段宽度的判断,经测试可行。

第三种:在车身两侧加装红外对管,当两侧红外对管同时检测到黑线时即为起始线。

5、路障的识别与处理

由于直立平衡组的路障颜色是黑色的,因此我们通过图像检测的方法检测路障。在采集到路障的图像时,图像的大部分为黑色,此时可以通过对黑色点计数或者对整幅图像的平均灰度进行判断,当黑色点数值大于设定值或平均灰度小于设定值时即为路障。

过路障对于直立小车来说是一个比较大的困难,开始我们不加速度控制,纯靠直立控制让小车过路障,发现在低速时可以过去,速度达到一定值小车会摔倒,然后加上速度控制让小车过路障,发现同一速度下稳定性要比只有直立环

32

第五章 软件系统设计

时的差,所以我们在检测到路障后采用关闭速度环,只靠直立环的方法来过路障,由于高CCD有60cm的前瞻,在检测到路障后,通过给小车前倾的角度让小车快速减速,这样可以提高降速的速度,还以提高小车过路障的稳定性,当小车通过路障后,打开速度环,小车正常行驶。

33

第六章 开发工具说明

6.1 Codewarrior开发工具简介

此次智能车大赛的软件开发平台为Metroworks 公司的Code Warrior 4.7,

Codewarrior 是由Metrowerks 公司提供的专门面向Freescale 所有MCU 与DSP 嵌入式应用开发的软件工具。其中包括集成开发环境IDE、处理器专家、全芯片仿真、可视化参数显示工具、项目工程管理、C交叉编译器、汇编器、链接器以及调试器。用户可以将芯片的类库添加到集成环境开发环境中生成就是一个最小系统,就能直接在新建工程时添加所需的程序代码。图6-1为Codewarrior用户操作界面。

图6-1 Codewarrior用户操作界面

6.2 基于MATLAB的参数计算及仿真

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算

34

本文来源:https://www.bwwdw.com/article/aal6.html

Top