智能汽车系统设计方案Word文件下载.docx
- 文档编号:18220714
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:29
- 大小:2.25MB
智能汽车系统设计方案Word文件下载.docx
《智能汽车系统设计方案Word文件下载.docx》由会员分享,可在线阅读,更多相关《智能汽车系统设计方案Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
1.3小结
本章重点分析了智能汽车系统总体方案的选择,并介绍了系统的总体设计和总体结构,简要地分析了系统各模块的作用。
在今后的章节中,将对整个系统的各个模块进行详细介绍。
第二章机械系统设计及实现
智能汽车各系统的控制都是在机械结构的基础上实现的,因此在设计整个软件架构和算法之前一定要对整个模型车的机械结构有一个全面清晰的认识,我们车的机械部分设计如下:
2.1车模车体架构
今年我们摄像头平衡组,我们选用E车模,配套的电机型号为电机RS-380,智能车的控制采用的是双后轮驱动方案。
智能车的外形大致如图2.1:
图2.1智能车外形图
2.2电路板和电池的安装
根据倒立摆原理分析可知,车模重心越低,越有利于保持平衡。
为了使小车具有较好的稳定性及转向性能,我们在搭建小车时尽量选择降低重心,在搜集一些相关的资料和研究前面几届的技术报告后,历经三次重大结构调整,我们最终完成了车模的定型。
如图2.2所示
图2.2车模整体结构
2.3摄像头的安装
摄像头作为赛道采集信息的传感器,安装的稳定性影响到整个车采集信息的准确性,合理的高度和角度能够获得更大的前瞻,摄像头的高度还会影响到整车的重心,经取舍之后,我们最终使用碳素杆做了一个三角支架,将摄像头固定在上面。
安装方式如图2.3所示
图2.3摄像头的安装
2.4加速度计和陀螺仪的安装
加速度传感器可以测量由地球引力作用或者物体运动所产生的加速度。
为了减少车模运动引起的干扰,理论上加速度传感器安装的高度越低越好;
陀螺仪可以测量物体的旋转角速度,为了获得正确的小车前后角速度,应该保证陀螺仪的安装是水平的,否则容易导致小车过弯加减速。
经综合考虑,我们决定将加速度计陀螺仪模块安装在小车的质心附近,于是将其固定在摄像头支架的底部。
如图2.4所示
图2.4加速度计陀螺仪的安装位置
2.5编码器的安装
实现对轮速的精确控制是保证小车平衡的关键因素之一,因此我们安装了编码器实现对速度的闭环控制。
编码器作为车模速度测量的传感器,其安装的合理程度将影响最终的速度反馈。
在保持对称的基础上,调节编码器的位置,保证编码器齿轮与电机齿轮的合理啮合程度,防止打齿或增大阻力等弊端。
其安装位置如下图2.5:
图2.5编码器安装
2.6车模重心位置的调整
重心的高度是影响智能车稳定性的因素之一。
当重心高度偏高时,智能车在转弯过程中易产生跳轮现象,严重时甚至翻车。
因此,从小车稳定性出发,我们尽量降低重心高度。
在以上机械结构的基础上我们做了稍微的改变,从而保证小车可靠稳定。
2.5小结
模型车的性能与机械结构有着非常密切的联系。
良好的机械结构是模型车提高速度的关键基础。
良好的机械结构基础让我们在之后智能车软件的开发变得更加轻松。
我们非常重视对智能汽车的机械结构的改进,经过大量的理论研究和实践,我们尽量压低了小车的重心,从而提高了小车整体的稳定性和可靠性。
第三章智能汽车硬件电路设计
我们在电路设计时采用模块化的设计思想。
这样如果某一模块出现损坏,仅需替换掉损坏模块,同时在设计电路板的同时考虑板子的大小和形状,有计划地排列板子的位置,从而优化车子的重心。
我们智能车控制系统电路由三部分组成:
主板、电源模块、电机控制模块。
其中,主板集成了KL26ARM®
Cortex™-M0+最小系统板,调试模块以及各类传感器接口,是整个小车的中枢神经。
3.1电源模块
图2.6是电源模块的电路板
图2.6电源模块电路板
本系统中电源稳压电路分别需要有+7.2V,+5V,+3.3V供电。
+3.3V主要给OLED、加速度计陀螺仪模块、鹰眼摄像头供电;
+5V为编码器、KL26最小系统板供电;
+7.2V为电机模块供电,由于整个系统中+5V电路功耗较大,为了降低电源纹波,我们考虑使用线性稳压电路。
另外,LM2940的稳压的线性度非常好,而且具有纹波小、电路结构简单的特点,所以我们选择使用它作为5V稳压芯片。
如下图2.7所示
图2.7LM2940原理图
+3.3V稳压芯片最初选用LM1117,把5V转为3.3V,但是在之后发现5V电路负载过大,易导致系统的不稳定,后来选用AIC1086-PM33芯片,直接从7.2V转为3.3V,原理图如图2.8所示
图2.8AIC1086-PM33原理图
3.2电机驱动模块
图2.9是电机驱动模块的电路板
图2.9电机驱动电路板
电机驱动芯片我们选择使用BTN7971B。
BTN7971B是一个完全集成的大电流电机驱动应用半桥。
它是NovalithIC含有一个集成的驱动IC封装在一个一个P沟道MOSFET和一个nhighside通道低边MOSFET系列的一部分。
由于P沟道highside开关的电荷泵需要被淘汰从而减少EMI。
接口与微控制器是轻松的集成驱动IC功能的逻辑电平输入,用电流检测,转换率的调整,死区时间生成和防止过热,过压,欠压,过流和短路保护的诊断。
BTN7971B提供了一个受保护的高电流PWM马达具有非常低的电路板空间的消费驱动器的成本优化的解决方案。
控制电路如图3.0所示
图3.0电机驱动芯片原理图
我们使用74LS74芯片作为隔离芯片。
芯片原理图如图3.1所示:
图3.174LS244原理图
我们使用MIC5219低压差稳压芯片单独为电机模块隔离芯片提供电源,原理图如3.2所示
图3.2MIC5219原理图
3.3主板模块
图3.3是主板的电路板:
图3.3是主板电路板
3.3.1加速度计陀螺仪接口
大赛规定了陀螺仪和加速度计的选用围。
经过挑选,陀螺仪使用ENC-03M,加速度计使用MMA8451。
其接口原理图如图3.4所示:
图3.4加速度计和陀螺仪接口原理图
3.3.2摄像头传感器接口
我们的智能模型车自动控制系统中使用野火鹰眼OV7725摄像头采集赛道信息。
ov7725信噪比高、速度快、稳定性好和微光灵敏度高,其硬件二值化效果非常好。
由于KL26抗干扰能力比较弱,因此需在PCLK和VSYNC信号线接下拉150欧电阻增强电路的抗干扰能力。
其接口原理图如图3.5所示:
图3.5摄像头接口原理图
3.3.3编码器接口
由于KL26上没有正交编码,我们需要使用D触发器,根据AB相的相位差,来获取编码器的正反转状态。
我们使用HC74LS74双D触发器来判断电机的正反转。
编码器接口原理图,HC74LS74双D触发器原理图分别如图3.6,图3.7所示:
图3.6编码器原理图
图3.7HC74LS74原理图
3.3.4辅助调试模块
在调试过程之中,我们需要实时的了解与掌握一些车的运行状态,比如说传感器的状态,调试时用OLED将这些参数显示出来,让我们实时的监测车的状态,从而做出判断,这样很大程度的方便了对车的调试。
有时候需要对参数作修改处理,如果每修改一个数据就下载一次程序的话,就会浪费时间,这时应用按键、拨码开关以及OLED来实现参数调整将大大节省调试时间。
拨码开关、按键以及OLED原理图分别如图3.8、图3.9、图4.0所示:
图3.8拨码开关原理图
图3.9按键原理图
图4.0OLED接口原理图
3.4小结
硬件电路是模型汽车系统的必备部分。
只有稳定的硬件电路才能保证整个系统的稳定运行。
为此,我们在设计电路之时,考虑了很多问题,采用了模拟部分与数字部分隔离等措施。
我们的硬件电路的设计思想是在保证正确检测信号的前提下,尽可能精简电路。
第四章软件系统设计及实现
高效的软件程序是智能车高速平稳自动寻线的基础。
我们设计的智能车系统采用数字摄像头OV7725进行赛道识别,图像采集及校正处理就成了整个软件的核心容。
在智能车的转向和速度控制方面,我们使用了经典PID,模糊PID控制算法,配合使用理论计算和实际参数补偿的办法,使智能车能够稳定快速的运行在跑道上。
4.1程序流程图
图4.1程序流程图
我们将图像采集和图像处理放在main函数中,角度控制,方向控制,速度控制放在PIT中断里面。
经过长期测试,这种构架是稳定可靠的。
4.2平衡控制算法
车模平衡控制是通过负反馈来实现的,通过控制两个电机正反向运动保持车模直立平衡状态。
因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。
控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了,为了避免对车模平衡的影响车模,车模速度、方向的控制应该尽量保持平滑,以减少对于平衡控制的干扰。
了解PID控制后,我们在车模的平衡控制使用比例、微分控制。
将车模角度和角速度乘以各自相应的系数就可以得到直立控制输出量。
具体的算法框图如图4.2所示
图4.2角度控制算法图
4.3速度控制算法
我们通过调节车模的倾角来实现车模速度控制,但为了避免影响车模平衡控制,这个车模倾角的改变需要非常缓慢的进行,因此在算法中,速度控制输出量的变化函数均匀分配在20个角度控制函数周期,这样可以保证车模的稳定性。
速度控制周期为100毫秒。
读取两个编码器脉冲累加值,利用100毫秒的脉冲数量可以反映车模的电机的转速。
据返回的速度值进行自适应调整,从而进行速度的闭环控制。
车模速度采用两个电极速度的平均值。
具体的算法框图如图4.3所示
图4.3速度控制算法框图
4.4方向控制算法
在方向控制中,通过摄像头对赛道信息进行采集,经过相关处理之后,计算得方向偏差。
以此作为方向控制的输入量。
通过左右电机速度差驱动车模转向消除车模距离道路中心的偏差。
通过调整车模的方向,再加上车前行运动,可以逐步消除车模距离中心线的距离差别。
这个过程是一个积分过程,因此车模差动控制一般只需要进行简单的比例控制就可以完成车模方向控制。
我们引入PID算法中的比例、微分控制。
由于经典PID算法在速度比较快时,P值无法适应各种场景,于是我们引入模糊PID进行方向控制,将P值模糊化,根据不同的偏差给定不同的P值。
经过大量测试发现小车直线行驶更加稳定,弯道反应更加灵敏。
4.5摄像头图像处理算法
4.5.1赛道中线合成
赛道边线提取我们采用边缘跟踪+智能延伸扫描算法。
思路如下:
摄像头采集到图像之后,扫描一帧图像的最底下三行,获取边缘的根,从下面第四行开始使用边缘跟踪算法在下一行的理论位置附近扫描边线,当超出边缘跟踪的围之后,由最后一个点的颜色判断是应该向左还是右继续扫描边线,直到找到边线为止。
赛道中线的合成分为三种情况:
第一种:
左右边均存在,此时求左右边的均值即可。
第二种:
丢失一边边线,此时左边线加上(右边线减去)最近一次保存的中线与边线的差值。
这样能补出相对准确的中线。
第三种:
左右边线均没有(常见于十字),此时用一个缺省值(中值)作为中线,并设置标志位表示此处开始完全丢线。
继续向下扫描边线以及合成中线。
当再一次能扫描到左右边线时,反向回补一条正确的边线直到标志位那行。
4.5.2障碍识别算法
路障的出现给直立小车带来了非常大的影响,如若盲目的冲撞上去,必然会导致翻车儿无法继续进行本圈的比赛,因此,我们必须识别并作出特殊化处理,在边线提取时,如果两条边线中有一条边线保持平稳变化,另一条边线突然出现跳变,并且跳变的边线跳变前的前、左、右三向均为黑色(如图4.4所示),我们便认为小车前方出现了路障,对转向进行短暂的周期处理,使小车向障碍的另一侧偏移,从而达到平稳过路障的效果。
图4.4采集的路障图像
4.5.4人字弯处理算法
识别人字弯是在左右边线交汇于一点时启动的(如图4.5),左右边线在下一行没有了,此时启动识别斑马线的算法,经计算确认前方是人字弯后,判断出一个最佳的强转位置和强转的方向,我们对方向控制进行一定周期的控制,强制输出最大值,向另一方向猛打方向,等过去之后,再正常寻线,进行偏差的修正。
图4.5采集的十字弯图像
4.6小结
本章详细介绍了智能汽车的控制软件的设计和思路。
传感器部分重点介绍了摄像头传感器的原理和算法。
在控制策略上主要介绍了直立车的平衡控制,速度控制,方向控制和摄像头的信息处理上。
第五章系统调试
5.1开发工具
程序开放在IAREmbeddedWorkbenchIDE下进行,EmbeddedWorkbenchforARM是IARSystems公司为ARM微处理器开发的一个集成开发环境(下面简称IAREWARM)。
比较其他的ARM开发环境,IAREWARM具有入门容易、使用方便和代码紧凑等特点。
EWARM中包含一个全软件的模拟程序(simulator)。
用户不需要任何硬件支持就可以模拟各种ARM核、外部设备甚至中断的软件运行环境。
从中可以了解和评估IAREWARM的功能和使用方法。
5.2调试工具
5.2.1红树伟业调试助手
为了观察摄像头采集图像的直观效果,我们还采用了红树伟业调试助手作为辅助开发调试工具。
我们设计的智能车系统采用数字摄像头采集赛道信息,分析处理之后用来编写黑线识别及控制算法。
虽然直接将摄像头通过视频接口连接到电视可观察到摄像头所采的图像,但对于图像分析不够方便,且无法实时精确地反馈出一些特定信息。
红树伟业调试助手是一套基于PC机平台的图像显示与处理程序,可完成赛道显示及相关参数的实时反馈。
运行界面如图4.6所示。
4.6红树伟业调试助手界面
显示区域可显示原始图像及处理后的中心点,这为控制算法的编写提供了非常好的依据,也大大减少了调试者的工作量。
5.2.2VisualScope上位机
VisualScope是一种串口上位机虚拟示波器,它可以较好地显示实时显示波形。
我们设计的智能车系统同时采用陀螺仪和加速计来测量车子的角度。
为了能精确地反馈出陀螺仪和加速度测量的值,我们使用VisualScope来实时显示两个传感器的值,更有利于精确的角度合成。
运行界面如图4.7所示
图4.7上位机运行界面
示波器可以用来显示陀螺仪,加速度计,和合成角度的波形。
5.3无线蓝牙串口模块
在调试参数的时候,我们用无线蓝牙串口模块来传输数据,利用蓝牙模块我们收发数据方便了很多。
无线蓝牙模块是由主模块和从模块组成。
从模块只有一个蓝牙模块,引出接口包括VCC,GND,TXD和RXD,此模块与单片机相连,用来发送单片机部的数据或接收从上位机传过来的数据。
主模块为USB转TTL串口和蓝牙主模块的组合,操作USB转串口即可从蓝牙主模块收发数据。
蓝牙主
从模块如图所示。
5.4车模调试
车模调试分为调试准备、静态参数整定、动态参数整定、车模机械调整和竞赛策略制定等各个环节。
整个调试中涉及到的参数和部件非常多,而且这些参数之间还有着紧密的相互影响。
如果对于其中的物理过程认识不清,有没有正确的调试步骤,那么在调试过程中出现的各种错误现象就会掩盖正确的原因,影响整个调试进程,甚至会动摇制作的信心。
智能车是一个整体,所以无法单独调试单一的参数。
大多数情况下速度,角度等要综合起来考虑。
5.5小结
通过组委会提供的IAR编译软件的在线调试功能,可以得到大量的信息,为智能汽车的调试提供了很大的帮助。
在智能汽车的调试过程中,有针对性的开发一个便于人机交互的上位机系统,通过简单明了的可视化界面直观的显示智能汽车的状态对调试有很大帮助。
我们开发了用于监测智能汽车实时状态的实时监测系统,大大提高了调试效率。
第六章模型车的主要技术参数
赛车基本参数
长
30cm
宽
21cm
高
38cm
车重
1350g
功耗
空载
10W
带载
大于12W
电容总容量
1479uF
传感器
欧姆龙500线编码器
2个
OV7725摄像头
1个
ENC03
MMA8451
赛道信息检测
视野围(近瞻/远瞻)
22/139cm
精度(近/远)
7/21mm
频率
70Hz
结论
自报名参加“飞思卡尔”杯智能汽车竞赛以来,我们小组成员从查找资料、设计机构、组装车模、编写程序一步一步的进行,最后终于完成了最初目标,定下了现在这个设计方案。
在此份技术报告中,我们主要介绍了准备比赛时的基本思路,包括机械、硬件电路以及最重要的控制算法的创新思想。
在机械结构方面,我们分析了摄像头安装的高度,陀螺仪的安装高度以及在其他细节方面的优化。
在电路方面,我们以模块形式分类,在最小系统、主板、电机驱动、电源等模块分别设计,经过不断实验,最后决定了我们最终的电路图。
在程序方面,我们使用C语言编程,利用比赛推荐的开发工具调试程序,经过小组成员不断讨论、改进,终于设计出一套比较通用稳定的程序。
在这套算法中,我们结合路况调整车速,做到直道加速、弯道减速,保证在最短时间跑完全程。
在这几个月的备战过程中,场地和经费方面都得到了学校和学院的大力支持,在此特别感一直支持和关注智能车比赛的学校和学院领导以及各位指导老师、指导学长,同时也感比赛组委会能组织这样一项有意义的比赛。
现在,面对即将到来的大赛,在历时近五个月的充分准备以及华北赛的考验之后,我们有信心在全国比赛中取得优异成绩。
也许我们的知识还不够丰富,考虑问题也不够全面,但是这份技术报告作为我们小组辛勤汗水的结晶,凝聚着我们小组每个人的心血和智慧,随着它的诞生,这份经验将永伴我们一生,成为我们最珍贵的回忆。
参考文献
(1)云生.实时控制系统软件设计原理及应用[M]..国防工业.1998.12.
(2)乃尧,阎平凡.神经网络与模糊控制[M]..清华大学.1998
(3)王耀南.智能控制系统[M]..大学.1996.
(4)王宜怀,朱仕浪.嵌入式技术基础与实践(第三版)[M]..清华大学.2013.8
(5)余小琴,文苗.扩展卡尔曼滤波算法初值选取方法[J].声学与电子工程.2012.第1期.
(6)文春.汽车理论[M]..机械工业.2005.
(7)谭浩强著.C程序设计.:
清华大学,2003.
(8)怡欣,永华.新型PID控制及其应用.:
机械工业,1998年.
(9)卓晴,黄开胜,邵贝贝,学做智能车[M].:
航天航空,2007
(10)莹,吴宗泽.机械设计教程(第2版)..机械工业.2009
(11)阎革勇,玉才,宋恩民,宏,梁鸯.地图自动识别系统中识别提取虚线的算法及实现.
(12)卓晴,黄开胜,邵贝贝.学做智能车:
挑战“飞思卡尔”杯.:
航空航天大学,2007年.
(13)男,迪洲,永科.智能车路径识别系统对虚线的预测拟合处理.
附录:
部分程序源代码
//**************************************************************************
//Kalman滤波
floatangle,angle_dot;
//外部需要引用的变量
//-------------------------------------------------------
//0.00015//0.0001
constfloatQ_angle=0.0004,Q_gyro=0.003,R_angle=0.5,dt=0.005;
//0.0001//0.00015//1.2
//注意:
dt的取值为kalman滤波器采样时间;
//0.8
staticfloatP[2][2]={
{1,0},
{0,1}
};
staticfloatPdot[4]={0,0,0,0};
staticconstcharC_0=1;
staticfloatq_bias,angle_err,PCt_0,PCt_1,E,K_0,K_1,t_0,t_1;
//--------------------------------------------------------
voidKalman_Filter(floatangle_m,floatgyro_m)//gyro_m:
gyro_measure
{
//gpio_turn(PTB7);
angle+=(gyro_m-q_bias)*dt;
Pdot[0]=Q_angle-P[0][1]-P[1][0];
Pdot[1]=-P[1][1];
Pdot[2]=-P[1][1];
Pdot[3]=Q_gyro;
P[0][0]+=Pdot[0]*dt;
P[0][1]+=Pdot[1]*dt;
P[1][0]+=Pdot[2]*dt;
P[1][1]+=Pdot[3]*dt;
angle_err=angle_m-angle;
PCt_0=C_0*P[0][0];
PCt_1=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 汽车 系统 设计方案
![提示](https://static.bdocx.com/images/bang_tan.gif)