分享
华中科技大学光电1队技术报告.pdf
下载文档

ID:3498056

大小:2.59MB

页数:45页

格式:PDF

时间:2024-05-16

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
华中科技大学 光电 技术 报告
第八届飞思卡尔杯全国大学生 智能汽车竞赛 技技 术术 报报 告告 学 校:华中科技大学 队伍名称:华中科技大学光电一队 参赛队员:周博文 杨畅 张越 带队教师:何顶新 刘洋 I 关于技术报告和研究论文使用授权的说明 本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:带队教师签名:日 期:I 目录目录 第第 1 章章 引言引言.1 1.1 研究背景.1 1.2 概述.2 1.3 全文安排.2 第第 2 章章 电路设计电路设计.3 2.1 电路系统框图.3 2.2 电源部分.4 2.3 电机驱动部分.7 2.4 编码器.8 2.5 陀螺仪和加速度计.9 2.6 线性 CCD.13 第第 3 章章 机械设计机械设计.15 3.1 车模的主要参数.15 3.2 电池的固定.16 3.3 编码器的安装.17 第第 4 章章 软件设计软件设计.18 4.1 程序整体框架.18 4.2 系统分析.18 4.3 前台系统.22 4.4 后台系统.22 4.5 软件详细设计.22 第第 5 章章 调试调试.28 5.1 信号调试.28 5.2 巡线调试.28 5.3 速度调试.29 5.4 调试平台.29 第第 6 章章 K60 的简介的简介.30 6.1 Kinetis 系列.30 6.2 K60 开发环境和流程.33 II 第第 7 章章 全文总结全文总结.35 7.1 智能车主要技术参数.35 7.2 不足与改进.35 7.3 致谢与总结.36 参考文献参考文献.37 附录附录 A 源代码源代码.38 第 1 章 引言 1 第1章 引言 1.1 研究背景 教育部为了加强大学生实践、创新能力和团队精神的培养,在已举办全国大学生数学建模、电子设计、机械设计、结构设计等四大竞赛的基础上,委托教育部高等学校自动化专业教学指导分委员会主办每年一度的全国大学生智能汽车竞赛。并成立了由教育部、自动化分教指委、清华大学、飞思卡尔半导体公司等单位领导及专家组成的“飞思卡尔杯全国大学生智能汽车竞赛”组委会。该竞赛是为了提高大学生的动手能力和创新能力而举办的,具有重大的现实意义。与其它大赛不同的是,这个大赛的综合性很强是以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感、电子、电气、计算机和机械等多个学科交叉的科技创意性比赛,这对进一步深化高等工程教育改革,培养本新意识,培养硕士生从事科学、技术研究能力,培养博士生知识、技术创新能力具有重要意义。以智能汽车为研究背景的科技创意性制作,是一种具有探索性的工程实践活动,其本质也是人类创造有用人工物的一种训练性实践,其过程属性是综合,而结果属性很可能是创造。通过竞赛,参赛的同学们培养了对已学过的基础与专业理论知识与实验的综合运用的能力;带着背景对象中的各种新问题,学习控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科新知识,包括来自不同学科背景大学生的相互学习,逐渐学会了在学科交叉、集成基础上的综合运用;若是以实用为目的,还必须考虑考虑可靠性、寿命、外观工业设计、集成科学与非科学,在具体约束条件下融合形成整体的综合运用。这样的训练是很有意义的。在智能车的开发过程中,各参赛队伍需要改装竞赛车模,完成智能巡线小车的制作。在此过程中需要学习嵌入式系统开发环境与在线编程方法、单片机接口电路设计,自行设计并实现识别引导导线的硬件电路、电机的驱动电路、车速反馈电路、智能车舵机控制电路以及能使小车在不驶出赛道的前提下可能快速行驶的控制策略与软件算法。为响应教育部的号召,本校积极组队参加第八届“飞思卡尔”杯全国大学生智能汽车竞赛。从 2012 年 12 月开始着手进行准备,历时近 8 个月,经过设计理念的不断进步,制作精度的不断提高,经历几代智能车硬件平台及相关算法的改进,最终设计出一套完整的智能车开发、调试平台。作为光电组的华中科技大学光电一队采用轻质量机械设计和连续化算法处理的基本技术路线,在第 1 章 引言 2 前瞻距离、噪声抑制、驱动优化、整车布局等方面加强研究创新,在有限计算能力下获得了较高的赛道信息准确率。使智能车能够满足高速运行下的动力性和稳定性需求,获得了良好的综合性能和赛场表现。本文将对智能车的总体设计和各部分的详细设计进行一一介绍。1.2 概述 1.2.1 电路设计 电路设计部分是在机械和程序之间起着重要的媒介作用。稳定高效的电路设计是赛车能够稳定较好运行的保障,在经过多次改进之后,我们形成了以 K60为核心的一整套稳定的电路系统。系统中子模块可分为电源部分、电机驱动、编码器、陀螺仪和加速度计、线性 CCD 等几个部分。1.2.2 机械设计 机械方面,在保证车子灵活性和稳定性的前提下,尽量降低重心和减轻质量。为获取最佳最佳的机械性能,还需注重各个小细节。比如编码器的选型与固定方式,以及有利于车模进行巡线、提速条件下的电池、电路板和传感器的固定的研究和设计。1.2.3 程序设计 程序是小车系统的控制核心,本届平衡车在保持直立、方向、速度控制的基础上,同时还需要对起跑线、虚线、障碍物、坡道等元素的识别,这其中的难度体现在要识别不同的元素并采取相应的控制策略以及对采取回的信号进行处理,并且要使得程序上的处理变得更加灵活。1.3 全文安排 本文在第一章中简要介绍智能车竞赛的情况。本文在第二章中详细说明电路部分的设计。本文在第三章中详细说明机械部分的改装。本文在第四章中详细说明软件部分的实现。本文在第五章中详细说明调试平台部分的设计。本文在第六章中会介绍 K60 本文在第七章中做全文总结 第 2 章 电路设计 3 第2章 电路设计 2.1 电路系统框图 2.1.1 电源部分 电源部分主要包括:电源开关保护指示、电源管理、主控制板和传感器电源、电机驱动、陀螺仪和加速度计。电源部分功能结构如下:图 2.1 电源部分系统框图 2.1.2 MCU 部分 MCU 最小系统部分主要包括:MCU 复位、通讯、人机交互、与外围器件接口,结构框图如下:第 2 章 电路设计 4 图 2.2 MCU 部分系统框图 2.2 电源部分 为了方便了解系统电源的工作情况,故需要加入电源监视电路即时提醒注意电池电压状况。而且电源管理部分体积、功耗都不能太大,不能影响电路的正常工作。2.2.1 电源开关指示模块 由于智能车使用的直流电源,故一旦电池的正负极接反将造成很严重的后果,很有可能烧坏主控制板,故考虑在电源的最开始部分设计仿插反的结构和插反后的保护电路。一般来说,二极管拥有良好的单向导电性,故可考虑用二极管作为反接保护器件。第 2 章 电路设计 5 图 2.3 电源开关指示保护电路原理图 2.2.2 主板电源 由于主控制板需要 5V 直流稳压,因此需要一个 5V 稳压芯片。根据分析可得:U=+5.0V+5%(4.75V-5.25V),I 600mA。故 LM2940-5V 可以作为合适的稳压芯片选择。图 2.4 LM2940 稳压 5v 电路原理图 第 2 章 电路设计 6 2.2.3 电机电源 由于直立车模所有的控制都集中到电机上,因此,电机的电源要尽可能高和稳定。所以我们的电机电压直接是电池电压,用 1000uf 以上的大容量电解电容来实现滤波稳压。电机是整个系统中,功耗最大的输出,电机驱动芯片的电源是直接给电机供 电的电源,其布线要求要尽可能的宽,根据电机的最大堵转电流设计线宽。直接与电机相接的部分要注意电机线不能太细,要检查好电机部分的的硬连接,一般出厂电机在电路焊接上都比较很容易松动,要重新焊接。2.2.4 陀螺仪和加速度计电源 MMA7260 的工作电压只能是 3.3V,而 ENC-03MA 的工作电压是 3.3V 和 5V 兼容的。这两种都是模拟输出的传感器,输出的模拟信号和工作电压有直接关系。一次要保证 MMA7260 和 ENC-03MA 的工作电压的稳定。因为 LM117 的供电能力有限,长距离传输有压降。因此,如果 MMA7260 和 ENC-03MA 与主驱动板分离,应该是用 5V 给 MMA7260 和 ENC-03MA 的二合一板子供电,再用一片 LM1117 来转成3.3V 来供电,来保证 MMA7260 和 ENC-03MA 的工作电压稳定。ENC-03MA 信号比较弱,需要进行放大。运算放大器的电源也要注意,如果选的运放不是轨至轨的运放(轨至轨的运放:放大线性输出范围与供电范围一 致,像 LMV358(用 3.3V 供电,最大有效输出是 2.7V),那运放的供电要用 5V。如果是轨至轨的运放如 LMV852,供电电压可以使 5V 或者是 3.3V。2.2.5 模拟地和数字地 保持低阻抗大面积接地层对目前所有的模拟和数字电路都很重要。模拟地一般是直流供电的负端(直流的公共端),是实实在在地灵电位;数字地一般是低电平 0(电位不一定为 0),但它可能不是公共端(0),通常情况下都不是 0,会比 0高一点点。如果你把两个地直接接在一起,数字地就会将模拟地拉高,并且你数字电路中如果又高次谐波的话,也会通过模拟地传到模拟电路中,这些高次谐波可能在数字电路中没有大的影响。因为通常高频干扰电压都很低,数字信号的抗干扰能力强,因为高低电平都是一个范围,但是对于模拟电路就不同了,他会实实在在影响到你对模拟量的测量,所以通常模拟地与数字地中间会加一个零欧电阻,磁珠之类的。第 2 章 电路设计 7 2.3 电机驱动部分 电机驱动由 PWM 逻辑电路和 H 桥电路组成 2.3.1 PWM 逻辑电路 由 PWM 信号和方向信号进行逻辑运算得到结果去驱动 H 桥 图 2.5 MOSFET 驱动电路电路原理图 2.3.2 H 桥驱动电路 重点是如何给电机提供尽量大的驱动电压(尽量接近电源电压)和电流,以及尽量减少驱动环节的能量损耗。图 2.6 MOSFET 驱动电路电路原理图 第 2 章 电路设计 8 2.3.3 BTS7960 搭建 H 桥模块 如果用 PNMOS 搭建的话要配合死区延时,比较麻烦,可以采用 BTS7960,它内部集成了 PNMOS 管各一个,死区延时和过热过压保护,比较方便安全。图 2.7 BTS7960 驱动原理图 2.4 编码器 为了进行精确的速度控制,必须及时的知道小车的时时刻刻的速度,就需要用于测速的编码器。在编码器的选型上,我们选择的是实用的光电码盘编码器,虽然这类编码器较之其他旋转式的编码器精度较低,但是此类编码器对于直立车模的控制已经足够,并且具有轻便,便宜的特点。最需值得指出的是要非常细心的安装,装码盘时要不偏不移,装发光管和接收管高度适宜,尽量把整个光斑打在光栅上,稍微趋向外部。因为在靠內时得到信号的相位差并不大,在高速的情况下差别更小,会导致信号处理后脉冲丢失。建议以后选用精度更高的磁电式编码器。第 2 章 电路设计 9 编码器原理图如下 图 2.8 编码器电路 上拉电阻 RE8 把编码器输出信号拉高是为了保证编码器不工作的时不产生随机信号;D 触发器实现鉴相功能;后一级电路的与或门把输出的两个信号进行倍频,可以提高分辨率(例如把原脉冲数为 1000,倍频后脉冲数为 2000,这样就可以把分辨率从 0.36 度提高到 0.18 度)。2.5 陀螺仪和加速度计 2.5.1 陀螺仪 ENC-03MA 应该属于电子陀螺仪。和机械陀螺仪相比,在性能上来说,是达不到机械陀螺仪的精度和误差要求。(ENC-03MB 和 ENC-03MA 功能上没什么区别,只是两者的共振频率不一样)第 2 章 电路设计 10(1)反冲 ENC-03MA 的 datasheet 上提供的电路如下图:图 2.9 陀螺仪电路 图 2.10 陀螺仪的过冲 此电路的优点:没有温漂;缺点:有过冲。在程序上,陀螺仪的值是要进行积分的,如果陀螺仪有过冲,经过积分作用对我们的程序的影响是很大的。因此,这个电路对我们而言是错误的。第 2 章 电路设计 11(2)温漂 将标准电路改成如下图电路,出现温飘:图 2.11 陀螺仪电路 温飘的表现是:当陀螺仪静止不动时,陀螺仪的输出值在随时间变化。上图电路陀螺仪电压输出和参考电压经过差分放大,放大公式为Vo=10Vi-9Vf。图中放大级存在低通滤波器。图 2.12 陀螺仪的温漂 陀螺仪的温飘是陀螺仪器件本身的特性,每一个陀螺仪的温飘大小都不同,好的陀螺仪,温飘 10 分钟之内都不怎么显。但有些陀螺仪的温飘,就像上图,第 2 章 电路设计 12 飘得很快,之后会慢慢稳定下来(时间长短不一,最少也要 10 分钟)。陀螺仪的选择要保证,在 23 分钟之内,陀螺仪的温飘在程序的可控范围内(对纯直立的控制),如果加上速度控制的话,陀螺仪的温飘就不是问题了(原因是速度控制本事就会调节陀螺仪的值,陀螺仪的温飘可以用速度控制来自动修正)。滑动变阻器控制的中值电平调节:用万用表测,陀螺仪静止时的电平,再调滑动变阻器的输出电平到这个值。如果陀螺仪的输出正负最大值相差太多,不能调这个电阻来改变。2.5.2 加速度计 加速度计是一种测量加速度的传感器。在本次电路设计中,我们将加速度计 当成测量重力加速度的传感器,通过重力加速度的分量来检测,检测车体的倾斜角度。(1)加速度计硬件 加速度计用的是 MMA7260,电路图是芯片厂商提供的标准电路:图 2.13 加速度计电路 第 2 章 电路设计 13 这个电路输出端的低通滤波器,可以没有电阻,至少要有个 0.1uf 的电容。加速度计的有一个缺点是加速度计的静态性能很好,但动态性能很差,而陀螺仪搞好相反。加速度计信号容易受到高频信号的干扰,因此加速度计的安装位置,就显得很重要。(2)安装位置 加速度计的安装要使加速度计所受到的干扰尽可能的少。我们的两轮车本身 就是一个不稳定系统,车身本身就在不断的前倾和后倾的摆动中。为了减少车体的震动对加速度计的影响,要将加速度计安装到车体前后旋转的轴心上(就是车体的重心)。因此,要把加速度计安装到尽可能接近重心,但是陀螺仪要安装到重心的上方(否则陀螺仪测出的加速度和车体的角速度方向相反)。因此,如果陀螺仪和加速度计是在同一块电路板上,加速度计在下,陀螺仪在上。将加速度计尽可能的放到重心上,陀螺仪就在中心之上了。(3)信号处理 理论上,我们从加速度计得到角度公式是 arcsin(a/g)=,要查表计算反正弦。但是,我们车的角度变化只是在 20-20 度之间。在这个区间,我们可以近似成线性,如图:图 2.14 加速度计的信号处理 当倾斜角度太大时近似将会导致很大的误差,不能采用这种近似。2.6 线性 CCD TSL1401CL 的线性传感器阵列由一个 1281 的光电二极管阵列,相关的电荷放大器电路,和一个内部的像素数据保持功能,它提供同时集成起始和停止时间所有像素。该阵列是由 128 个像素,其中每一个具有光敏面积 3,524.3 平第 2 章 电路设计 14 方微米。像素之间的间隔是 8 微米。操作简化内部控制逻辑,需要只有一个串行输入端(SI)的信号和时钟。线性阵列的积分时间是指光被采样和电荷积聚在每个像素的积分电容器的周期。灵活的调整整合是 TSL1401 线性阵列的一个强大和有用的功能,通过改变积分时间,避免在广泛的光照水平是打到饱和,所需的输出电压是可以在输出引脚上获得。积分时间是 SI 正脉冲和 HOLD 正脉冲之间的时间减去 18 设置时钟。最大积分时间应不超过 100ms。最低积分时间为 33.75us。如果在阵列上入射的光的量在一个给定的积分周期期间产生的饱和输出(最大电压输出),但是数据是不准确的,如果这种情况发生,积分周期应该减少,直到每个像素的模拟输出电压低于饱和电平。目标的光采样窗口被激活的时间周期是降低的输出电平电压,以防止饱和。图 4.15 CCD 电路 上图为 CCD 输出的处理电路,第一级为差分放大电路,通过调节滑变调节放大器的输出,第二级电路为硬件比较电路。硬件比较虽然方便了程序上处理,但是存在一定的局限性,一般这种方案不采用。第一级的放大倍数可调节结构非常重要,当光线太强造成输出饱和或光线太弱造成输出偏低时,无非是改变放大倍数或改变曝光时间,但是改变曝光时间会影响程序周期,影响各个方面的控制。而改变放大倍数则在任何时间都可得到我们所需要的阈值。第 3 章 机械设计 15 第3章 机械设计 3.1 车模的主要参数 本届飞思卡尔光电组比赛采用 D 型车模。参数如下:基本参数 尺寸 轴距 203mm 后轮距 138mm 车轮直径 64mm 表 3.1 智能车模主要参数 由于要求二轮直立行走,车模本身主底板与后悬挂固定不牢固,容易发生震动,我们改用固定板固定,并将减震去掉。车模黄色连接轴与车模轴套之间容易发生相对滑动,导致轮子转动不在一个平面上,可用 502 胶将其固定。图 3.1 固定板示意图 第 3 章 机械设计 16 3.2 电池的固定 由于电池的重量较重,在整车中占有很大的比例,影响着重心的位置,所以电池固定的位置至关重要。电池的固定方式主要有立式固定和水平固定两种方式。立式固定的方法使小车的质量集中在车体的轴线附近。这样车体左右转动时的转动惯量会小一些,使车体转向对电机的负担会小一些。控制也就更容易。但是这样也会导致车体的重心较高。在转向时会导致小车由于离心力作用容易发生侧翻现象,这会成为小车速度的一个瓶颈。电池的水平固定,具体是指将电池水平固定在两个轮子之后。这样车体的重心会很低,侧翻现象会变少。但是这种方法会导致车体质量没有集中在左右转向轴线上。小车转动惯量变大。方向控制相对而言变得有难度。两者综合考虑之后,我们还是选择了水平固定电池的方法。图 3.2 电池水平固定正面 为了减轻车体的重心以及减轻车体的质量,首先尽量将电路板精简到最小,一部分固定在车体原先固定车体的减震的地方,另一部分也尽可能固定在靠下的部分。第 3 章 机械设计 17 3.3 编码器的安装 我们采用的光电码盘,用 AB 胶将码盘粘在马达齿轮上,码盘的旋转轴是否在齿轮的旋转轴上将直接影响的编码器测距的准确性。经验证,这种编码器的装法,码盘与光电管都固定在小车的后悬挂上,这样两者之间很难有相对移动,保证了测距的稳定性。图 3.3 编码器的固定示意图 第 4 章 软件设计 18 第4章 软件设计 4.1 程序整体框架 整个系统由飞思卡尔半导体公司(原摩托罗拉半导体部)的 32 位 K60 系列微控制器中 MK60N512VMD100 或飞思卡尔半导体公司 H12 系列 16 位单片机MC9S12XS128 为主控 MCU,以加速度计陀螺仪和 CCD 对模拟信号进行采集和处理,并对输出的两路 PWM 分别控制,进行电机的控制;两路 PWM 分别控制两个轮子的电机输出,完成直立、速度控制、转向的功能,另外使用编码器采集速度,进行速度控制。系统框图如下所示:图 4.1 程序构架系统框图 系统输入信号包括传感器,编码器。输出为电机的PWM。信号的输入输出都使用后台的实时控制来实现,前台只是将得到的输入信号进行处理,决定电机的输出。而电机输出的PWM包含:速度控制,方向控制,直立控制。直立作为优先级最高的PWM输出。4.2 系统分析 4.2.1 问题获取 今年光电平衡组新增加了坡道、障碍以及虚线等元素。比赛为巡线竞速的方式,要求小车在直立的状态下巡线,通过坡道、障碍和虚线,要以尽可能短的时间完成比赛,并且检测到起跑线。既要追求速度,又要确保稳定性。第 4 章 软件设计 19 坡道、障碍、虚线以及起跑线的检测对小车整体的控制提出了更高的要求:坡道要求控速更优化;障碍物对小车的机械结构提出了很高的要求,并且软件上要求能提前检测到并且对转向控制、直立控制和速度控制做出相应的改变;虚线最好能检测到,防止误打角;起跑线的检测可以使用光电管检测或者使用CCD的信号判断,还要考虑到坡道以及障碍对起跑线检测的干扰,小车的姿态也会影响元素的判断,所以关键在于不能误检。4.2.2 分析 今年平衡车采用的传感器方案是CCD,陀螺仪和加速度计,所以必须要搞清楚传感器的原理和特性。陀螺仪:存在零飘问题,安装应尽可能水平;加速度计:静态特性好,动态有很大噪声,安装高度应尽可能低;由于两种传感器各有缺点,故将加速度计和陀螺仪的信号进行融合,用于直立控制的信号。线性CCD:扫描前方水平的128个点,不同的光强输出不同的模拟电压,将模拟信号放大,然后滤波,输入单片机的AD通道,通过单片机处理出AD值;白色区域的光强比黑色区域的光强强,因此CCD采集到的电压更高。通过分析CCD采集到的AD值,将数据二值化处理可以提取出赛道上的两条黑线。图 4.2 CCD 图像分析 第 4 章 软件设计 20 关于电机:新的电机在同样的电压供电下驱动力更强,要适应新的电机。4.2.3 功能需求 为了更好的控制,平衡智能车控制系统需要有:(1)高速、高性能的芯片对数据进行高效的运算和处理;(2)准确实时的速度反馈;(3)需要实现基本的人机交互;(4)需要返回车在运行时的实时状态或存储运行的信息;(5)可以对返回的数据进行快速的数据分析;(6)电池电压的采集;4.2.4 性能需求 对于性能方面的需求,包括:(1)车体重心配置合理,不可以过高或过后;(2)较好的轮胎摩擦力;(3)机械性能稳定、轻量化;(4)高效的电机驱动与传动效率,速度响应快速,加减速性能优越;(5)高速、高性能控制芯片;(6)稳定的电源供电模块;(7)强劲的电池放电能力;(8)较短的控制周期,更准确的控制;(9)程序高效稳定、发挥出机械与电路上的最高速度;(10)高效高速稳定的数据通讯实现;第 4 章 软件设计 21 4.2.5 接口需求(1)硬件接口需求 需要统一完善的电路接口,做到便于利用,便于测试、配置、更换。要提供预备的额外接口,防止接口不够用或者损坏无法修复的情况。(2)软件接口需求 对于系统的设计,需要程序底层向中层提供完善的函数接口,屏蔽所有底层寄存器调用,达到变量控制一级;中层对于高层提供可以方便调用的变量、函数接口;整个调用实现效率高,安全性好,每层做到保护自己私有的数据、防错处理,对于全局变量的控制权进行控制。(3)通讯接口需求 程序的通讯部分向上要有足够高的封装度,使用人性化,调用方便,实现高效,内部实现向上屏蔽,缓冲数据私有,移植性强,可扩展性强。通讯接口要多样化,采用尽可能多的通讯手段,每种通讯手段各有利弊,根据需要选择最好的通讯方式。4.2.6 调试需求(1)软件设计的模块化,提高程序的可读性和可移植性。(2)统一的编程风格,并加注释,尽量用英文注释,方便进行修改和维护。(3)各成员统一程序版本,使用 SVN 管理程序版本,加强沟通,协调合作。(4)调试前了解小车的性能,以方便调试时参数的修改。(5)调试时参数可以通过拨码及时调整,尽量少的烧写程序和接口的插拔。(6)调试中使用串口调试,将数据发到电脑上分析,做好完整的调试记录。(7)调试中使用 SD 卡调试,将需记录的数据写入到 SD 卡中,记录小车跑时 的状态,将数据在电脑上进行分析,做好调试记录。(8)调试中充分利用 LED 灯,蜂鸣器和液晶来反馈小车的运行信息。4.2.7 调试步骤(1)首先配好底层驱动,进行硬件调试(2)然后通过中层将底层整合,为上层控制和信号处理做准备;(3)程序底层配置完成后,先将直立控制调稳定,然后确定小车的前瞻,从而确定传感器安装的位置和角度(4)当转向和直立稳定后,着重于提速部分。(5)当速度提上来后,进行功能测试,测试坡道、障碍物和虚线。(6)最后进行稳定性测试 第 4 章 软件设计 22 4.3 前台系统 使用状态转换机思想,结构如下所示:switch(carmode)case mode1:code;break;case mode2:code;break;这种结构的优点是清晰,明了,调试的时候首先看模式(即 mode 值)是否出错。这种结构的要求就是能准确识别赛道类型,并且模式数量不能过多也不能过少,要清楚的知道各个模式的区别,如起跑线,保护模式等,和瑞萨比赛不同,飞思卡尔比赛各个赛道类型区别不是很明显,基本的赛道类型是:直道,弯道小 S 弯,坡道,识别了赛道类型后,就可以对小车控制的各个细节进行优化处理,提高小车的速度以及稳定性。4.4 后台系统 后台系统为 1 毫秒中断,做实时控制,设定每隔一定时间进行信号采样和硬件的输出。系统周期是 4 毫秒,第 1ms 中是采集加速度计和陀螺仪的信号和编码器信号;第 2ms 处理直立信号并进行直立控制,同时检测保护模式;第 3ms 采集 CCD的信息并进行初步的处理;第 4ms 进行方向的控制和速度的控制。此外电机的输出 1ms 一次;速度控制周期和转向控制周期均是系统周期的 4 倍,这样可以保证转向和速度的平滑 4.5 软件详细设计 4.5.1 信号处理 信号处理部分主要采用了动态阈值法,以 CCD 采集到的图像为例,白色区域电平较高,黑色区域电平较低,要区分黑色和白色需要计算一个阈值。第 4 章 软件设计 23 图 4.3 信号处理 通过计算出一个合理的阈值可以将采集到的数据进行二值化处理,区分出白色区域和黑线,从而提取出赛道的信息,确定小车应该追寻的中心线。图 4.4 信号处理步骤 路障和起跑线的模式识别需要分析 CCD 的波形,总结它们的波形特点,再结合其他很多条件综合判断,从多个方面确定路障和起跑线。模式识别分为两个步骤,分别是预识别和准确识别,当检测到的信号和某些元素的信号特点比较类似时就可以将赛道预识别为这个元素,此时要开始预识别的处理,包括直立控制、速度控制和转向控制;预识别后就要进行准确识别,要根据传感器传回来的更多的信息综合判断是否识别准确,如果识别错误就要有相应的处理,当准确识别为某个元素时,就要进入相应的控制模式。模式识别可以进一步优化速度控制和转向控制,提高小车的速度。第 4 章 软件设计 24 4.5.2 速度控制 速度控制上常用的控制算法有:1、Bang-Bang 控制:实际上是一种时间最优控制,它的控制函数总是取在容许控制的边界上,或者取最大,或者取最小,仅仅在这两个边界值上进行切换,其作用相当于一个继电器,所以也是一种位式开关控制。打个比方,我设定小车的期望速度为 2m/s,当小车的速度小于 2m/s 时,会以 100%的 PWM 加速,而当小车的速度大于 2m/s 时,会以-100%的 PWM 减速。2、电压控制:打个比方,如果我们一直给开环 30的 PWM 让小车前进,在直道上最后肯定会稳定在某个速度,假设为 2m/s。也就是说 30的 PWM 可以维持 2m/s 的速度,理想状况如果我们从 0 开始加速,在速度达到 2m/s 之前用 100PWM 加速,到 2m/s 的时候之后,我们一直使用 30的 PWM 就可以是小车稳定在 2m/s。所以我们可以测试不同的 PWM 可以使得小车稳定在某一个速度,最后写程序就可以进行指导如何进行电压控制了。当然实际程序中会做一定的改进和测试。3、增量式 PID:增量型算法得出的是控制的增量,误动作影响小,必要时通过逻辑判断限制或禁止本次输出,不会影响系统的工作。增量式 PID 控制算法与位置式 PID 算法相比,计算量要小的多,且受外界的干扰比较的小,因为每次只有一个增量的变化,若参数得当,输出不会产生大的阶跃,反应在速度上,不会有速度不会有大的变化。通过阅读前几届的技术报告发现采用增量式 PID 进行控速是一个比较好的方案,增量型 PID 其与位置型 PID 算法相比,具有以下优点:增量型算法不需要做累加,增量的确定仅与最近几次偏差采样值有关,计算精度对控制量的计算影响较小,而位置型算法要用到过去偏差的累加值,容易产生大的累加误差;增量型算法得出的是控制量的增量,而位置型算法的输出是控制量的全量输出,误动作影响大;采用增量型算法,易于实现手动到自动的无冲击切换。为了更快的响应,采用了增量式 PID 结合的算法。图 4.5 PID 控制模型 第 4 章 软件设计 25 增量法:其返回的值是控制量所需加上的增量。其中 e(t)是当前测量真实值与设定的目标值的差。比例项主要使快速达到目标,但是过冲可能过大,积分项可以减小过冲,但是使反应变慢,微分项可以提高系统灵敏度但是也会对于干扰信号进行放大。使反应变慢,微分项可以提高系统灵敏度但是也会对于干扰信号进行放大。对于其中参数的调节有以下的经验方法 (1)确定比例系数 Kp 确定比例系数 Kp 时,首先去掉 PID 的积分项和微分项,可以令 Ti=0、Td=0,使之成为纯比例调节。输入设定为系统允许输出最大值的 6070,比例系数 Kp 由 0 逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数 Kp 逐渐减小,直至系统振荡消失。记录此时的比例系数 Kp,设定 PID 的比例系数Kp 为当前值的 6070。(2)确定积分时间常数 Ti 比例系数 Kp 确定之后,设定一个较大的积分时间常数 Ti,然后逐渐减小 Ti,直至统出现振荡,然后再反过来,逐渐增大 Ti,直至系统振荡消失。记录此时的 Ti,设定 PID 的积分时间常数 Ti 为当前值的 150180。(3)确定微分时间常数 Td 微分时间常数 Td 一般不用设定,为 0 即可,此时 PID 调节转换为 PI 调节。如果需要设定,则与确定 Kp 的方法相同,取不振荡时其值的 30。4.5.3 转向控制(1)通过 CCD 传回来的数据提取出小车的行进路线,以及差角。(2)根据角度的偏差,进行分段线性给出电机的转向差速。通过传感器的返回值,同样采取 PD 控制,来使转角变得平滑和流畅。(3)根据实际情况对角度的偏差、偏差的变化率、转向的输出限幅,防止突然的较大的转向输出影响系统稳定。(4)对极限情况的转向要获得正确的信号,而且做出必要的应急处理 4.5.4 直立控制 直立是一大难点,我们采取的是在清华的方案理解下通过互补滤波将陀螺仪采集的信号和加速度计采集到的信号融合来控制直立。下面介绍通过卡互补滤波实现直立的过程。互补滤波器是集成加速度计和陀螺测量平衡的一个简单的解决办法的平台。它所需要的传感器是加速度计和陀螺仪。第 4 章 软件设计 26 互补滤波器实质上是一个低通滤波器,由于加速度计的静态性能好而动态下有很多的噪声影响,而陀螺仪又存在零飘问题,两者不能够只取一个信号进行处理,所以将加速度计和陀螺仪的信号各取一定的比例即可合成角度,从而得到合理的静态特性及其动态响应。它是一种较为简单,容易实现的滤波方案。首先,我们先要将加速度计和陀螺仪的模拟信号转化为有用的数字信号;通过查阅电子器件的技术文档可以将加速度计和陀螺仪的信号转化为实际的角度和角速度,下一步要做的就是将得到的两个信号进行融合;首先我们可以取一个适当的比例,尝试将陀螺仪和加速度计的信号融合起 来,看一看合成的角度曲线是否合理:图 4.6 角度融合示意图 式中 dt 是传感器的采样周期;a 是根据时间常数 T 和采样周期 dt 计算出来的;时间常数 T 的选取需要试验获得,前期可取一个大于 0.5 的值;a=T/(T+dt);(1)可以前后摇晃小车,观察合成的角度是否随小车的位置而发生变化,发现角度的合成基本正确后可以采用 PD 控制小车的直立,一开始小车可能直立不好,出现震荡或者前后摆或者向一个方向发散,这说明参数的调整还不合理。下一步就要开始调整参数了。要将时间常数 T 调到合适的值,使得直立的静态特性和动态响应比较好。由式(1)可以看出,时间常数 T 实际上影响着加速度计和陀螺仪信号融合的比例,时间常数 T 越大,则比例 a 越大,即陀螺仪采集的信号的比重就越重,第 5 章 软件设计 27 这时系统响应就越快,直立收敛越快;比例 a 越小,加速度计采集的信号的比重就越大,响应就变慢,直立收敛也变慢。实验可以设定多个不同的时间常数,仔细观察小车的直立控制状态和运动状态来确定一个相对比较好的时间常数 T。调试中还可以发现,时间常数 T 还会影响小车的速度控制,因此时间常数 T的选取要兼顾小车的直立控制和速度控制,既不可以取太小,使得系统振荡;也不可以取太大,使得系统不稳定。4.5.5 控制关系 如图 4.6,对于直立控制,速度控制,方向控制的关系,该流程图完整的反映了程序进行的方向。4.6 程序流程图 直立控制、速度控制、方向控制和电机控制都是在中断中完成的,每一种控制都有一定的控制周期。直立、方向和速度都是 4ms 控制一次,电机输出每1ms 控制一次。要想获得理想的控制效果需要调整好三个控制之间的相互配合,作为平衡车,最重要的就是维持平衡,即要在不影响平衡的前提下,调节转向和速度。第 5 章 调试 28 第5章 调试 程序的基本框架建立起来以后,主要要做的就是进行 PID 参数的整定,具体的整定方法可以参见过程控制与微机控制技术,以下是我们的调试概况:5.1 信号调试 调整信号处理的参数,考虑好赛道干扰和滤波问题,整定之后将测得的偏差通过无线串口发到电脑上,用上位机 接收数据,将传感器板从左到右慢慢移动,观察偏差情况,基本上是比较连续的,没有出现跳跃的情况,满足要求。5.2 巡线调试 我们在程序中先通过判断 Err 和 ErrD 来判断出当前小车的状态然后在不同的状态下结合公式给出 P 分量和 D 分量。具体原理如下:图 5.1 参数整定原理图 如上图,当 Err0 且 ErrD0 和 Err0 且 ErrD0 且 ErrD0 且 ErrD0 时,正处于靠近预期的状态。那么我们在控制过程中就要注意,当小车远离中心线时小车要及时的往中间打角,当小车正在靠近中心线时,要适当的减小角度,避免由于角度过大,来不急及时调整导致超调,从而产生振荡。第 6 章 调试 29 5.3 速度调试 通过速度的 PID 控制,将速度控制在一定的范围内,使速度尽可能的平滑。对于两轮直立行走的车来说,维持速度的稳定是很有必要的,所以选择合适的PID 参数是很有必要的。采用 4.5.2 的速度控制中的 PID 参数调节法可以做到速度的平滑控制。5.4 调试平台 我们光电组采用的是通过 ZIGBEE 传输数据到上位机,再通过返回的值和车的状态对智能车的参数进行修改 图 5.2 上位机返回截图 第 6 章 K60 的简介 30 第6章 K60 的简介 今年我们参加华南赛的 2 辆车,华中科技大学光电二队上面微处理器飞思卡尔半导体公司 H12 系列 16 位单片机 MC9S12XS128 为主控 MCU,而华中科技大学光电一队采用的是由飞思卡尔半导体公司(原摩托罗拉半导体部)的 32位 K60 系列微控制器中 MK60N512VMD100,K60 属于 Kinetis 系列微控制器。6.1 Kinetis 系列 Kinetis 系列微控制器是飞思卡尔公司于 2010 年下半年推出的基于 ARM Cortex-M4 内核的微控制器,是业内首款 Cortex-M4 内核芯片。Kinetis 系列微控制器采用了飞思卡尔 90 纳米薄膜存储器(TFS)闪存技术和 Flex 存储器功能(可配置的内嵌 EEPROM),支持超过 1000 万次的擦写。Kinetis 微控制器系列融 图 6.1 Kinetis 系列微控制器 第 6 章 K60 的简介 31 合了最新的低功耗革新技术,具有高性能、高精度的混合信号能力,宽广的互连性,人机接口和安全外设。第一阶段产品由五个微控制器系列组成,见图 2-1 所示,包含超过两百种器件,在引脚、外设和软件上可兼容。每个系列提供了不同的性能,存储器和外设特性。通过通用外设、存储器映射和封装的一致性来实现系列内和各系列间的便捷移植。所有的 Kinetis 系列都包含丰富的模拟、通信和定时控制外设,提供多种闪存容量和输入输出引脚数量。所有 Kinetis 系列都具有以下特性:内核内核:ARM Cortex-M4 内核带 DSP 指令,性能可达 1.25 DMIPS/MHz(部分Kinetis 系列提供浮点单元)多达

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开