基于Matlab的智能车软件系统设计与仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Matlab的智能车软件系统设计与仿真
严大考;李猛;郭朋彦;张瑞珠
【摘要】The software system is the one using camera to recognise the path for intelligent car which takes small motor-driven car as the research object and is developed based on 32-bite single-chip MK60X256VLQ100.It obtains the road information timely through CMOS cam-era,extracts the black lines on both sides of the path using edge detection method,and then calculates the centre line so that the small car can fast and stably move forward along the centre line.On this basis,we control the motor and servo by using the advanced PID control algo-rithm,and put forward a method of tuning PID parameters by Matlab.The appropriate PID parameters tuned through experiment and simula-tion effectively enhance car's capabilities in acceleration and deceleration as well as
bending.Experiment indicates that the system has a good stability,it can meet the requirements of small cars in all the performance indexes.%该软件系统是以电动小车为研究对象,基于32位单片机MK60X256VLQ100开发的一种利用摄像头识别路径的智能车软件系统。

通过CMOS摄像头实时获取路面信息,用边缘检测法提取赛道两边的黑线,然后计算出中线,使小车沿着中线平稳快速地前行。

在此基础上,采用改进型的PID控制算法对电机和舵机进行控制,提出一种通过Matlab整定PID控制参数的办法,通过实验及仿真调整出合适的PID 控制参数,有效地提升了小车的加减速能力和转弯能力。

实验表明该系统具有良好的稳定性,能够满足小车各项性能指标的要求。

【期刊名称】《计算机应用与软件》
【年(卷),期】2014(000)001
【总页数】4页(P256-259)
【关键词】中线提取;二值化处理;中值滤波;路径识别;PID控制算法
【作者】严大考;李猛;郭朋彦;张瑞珠
【作者单位】华北水利水电学院机械学院河南郑州450045;华北水利水电学院机械学院河南郑州450045;华北水利水电学院机械学院河南郑州450045;华北水利水电学院机械学院河南郑州450045
【正文语种】中文
【中图分类】TP391
随着现代科学技术的发展,汽车也进入了一个智能化的发展时代[1],而智能汽车也势必会成为未来汽车行业的发展趋势,其涵盖自动控制、计算机、传感器、电子通信、模糊控制等多个领域。

本文是基于MK60X256VLQ100单片机研发一种利用CMOS摄像头识别路径的智能车控制系统,具有路径识别、自动转弯和自动变速的功能,是一项具有现实可行性和广阔应用前景的智能车技术。

在核心控制器的选择上,采用了 32位单片机MK60X256VLQ100作为核心控制器,相较以往使用的16位单片机,具有无与伦比的兼容性、可扩展性和低功耗灵活性,有效地提升了系统的处理速度和实时性。

其特有的DMA模块与CMOS摄像头的完美结合,对赛道信息采集的同时也能对其进行处理,提高了图像的处理速度与采集质量。

在图像处理上,摒弃传统的硬件二值化和固定阈值查找边缘的办法,采用软件二值
化与动态阈值查找赛道的边缘,并结合中值滤波排除赛道中杂点的干扰,从而使得到的图像质量有了质的提升。

在控制算法上,采用改进型的PID算法对电机进行闭环反馈控制,利用Matlab
对控制系统进行仿真调试,调整出了合适的参数,有效地提高了电机的加减速性能。

通过程序计算出来曲率去控制舵机转角,利用改进型的PID算法对随动性要求较
高的舵机进行控制,以使小车平稳快速过弯。

在设计这些策略时,充分考虑小车快速转弯时稳定性、各种弯道适应能力、自动停车能力等情况。

最后在CodeWarrior软件调试平台反复对程序进行调试,以达到最佳。

软件控制是智能车控制的核心,通过软件实现图像处理、中线提取,进而控制电机速度和舵机转向使智能车平稳高速自动循迹,软件系统架构[2]如图1所示。

2.1 图像采集
图像采集模块是整个软件系统中的核心模块,我们采用CMOS摄像头作为循迹传感器,它相比于CCD具有低功耗、快速性、集成度高等优点。

其工作方式是按一定的分辨率隔行扫描,每扫描一个点需要通过图像传感芯片将灰度值转换为与之对应的电信号,存放到二维数组中,然后将数组通过串口发送到DMA模块的相应寄存器中。

DMA模块的工作方式为直接读取内存,每采集完一场图像即可对其进行处理,极大地提升了整个程序运行速率。

在采集的过程中,一定要保证中断的优先级,若把握不好时序,图像就会丢失。

采用的CMOS摄像头的分辨率为240×320,由于受到单片机内部资源的限制,
如若逐点扫描的话,240×320的数据量是无法承受的,会极大地影响单片机的运
行速度。

为了提升单片机的运行速度和兼顾采集图像的清晰程度,我们每张图像采集38行,每行140个点。

由于摄像头在安装时与地面存在一定的倾斜角度,造成摄像头采集到的图像会有不同方位不同程度的畸变,即梯形失真,如图2所示。

故远端图像失真严重且分辨率低,须采集的信息多些;近处图像清晰且分辨率高,
采集少量信息即可。

因此我们采取了不等间距的隔行扫描办法,扫描办法如下:(1)当200<row≤240,扫描间隔为9行;
(2)当100<row≤200,扫描间隔为7行;
(3)当1≤row≤100,扫描间隔为5行。

2.2 图像处理
对图像处理的目的是提取清晰有效的中线,由于起止线、十字交叉线的存在,光线变化、赛道背景以及赛道内外杂物的干扰,会严重影响小车的赛道识别能力。

因此,必须通过软件排除干扰因素,提取有效的赛道信息,使小车平稳快速前行。

2.2.1 二值化处理
所谓二值化处理:通过设定阈值把多灰度等级的图像处理为只有两个灰度等级的图像,也就是将摄像头采集的像素点的灰度值与阈值相比较,若像素值大于等于阈值,则判定该像素点是白色,反之为黑色,故阈值的设定是二值化重要的环节。

阈值设定分为固定和动态两种,为了有效提取中线,我们使用的阈值是动态给定的。

这种动态阈值能够更好地适应各种光线情况,特别能适应光线不均匀的情况,且能解决远、近端图像分辨率不均匀的问题,动态阈值的设定如下:
(1)找出数组中每一行最白点的灰度值max和最黑点的灰度值min;
(2)所找的动态阈值为Dt×(max+min),经过反复的测试,最终选取Dt的值为0.3,更能有效地适应光线的变化。

2.2.2 中值滤波
为了防止提取中线时一些不确定因素的干扰,需对图像进行滤波处理以除去赛道上杂点或其他点的干扰。

中值滤波法[3]是一种经典的平滑噪声的办法,能够有效地滤除杂点的干扰且不会削弱黑白跳变值,通过编程能将干扰点的灰度值变为该点某邻域内各点灰度值的中值。

经验证,此法占用单片机资源不多,能够满足图像处理实时性的要求,如图3、图4所示。

2.3 中线提取
经过处理的图像只有黑白两种颜色,故我们采用边缘检测法[4]提取白线中心。

边缘是图像黑白跳变最为明显的地方,只要恰如其分地选择阈值,就能增强小车的外界环境适应能力,避免其在丢失视野时错误循迹,中线的提取思想如下:
(1)求中线时,先选取一条中心线,以这条中心线为基准,分别向左右两边扫描,直至扫描到的点被判定为黑点,分别记下此时两个黑点所在的列数a[i]和b [i],因此得到的中线为(a[i]+b[i])>>2;
(2)在小车循迹的过程中,有可能会造成图像的丢失,因此要分情况去求取中线:左右两边黑线同时丢失,中线为0;右边黑线丢失时,求得中线为(a[i]+41/27×i+110)>>1;左边黑线丢失时,求得中线为(b[i]-23/12×i+30)>>1;
(3)由于赛道是连续的,因此可根据上一行求出的中心的位置来判定本行求出的中线是否有效;
(4)如果对图像逐点扫描的话,就会占用单片机大量资源,处理速度大大降低。

因此我们可以通过上一行求出的中线位置判断下一行将要求的中线位置可能的范围,从而避免了逐点扫描而造成的时间浪费,如图5所示提取的中线。

为了有效地提升小车的速度和弯道识别能力,我们采用经典且稳定性很好的PID [5]控制算法,如图6所示,它简单易行,鲁棒性好。

通过改进可变为位置式PID算法和增量式PID算法。

3.1 位置式PID算法
3.2 增量式PID算法
按PID控制算法,以T为采样周期、k为采样序号,以矩形法数值积分近似代替
积分,以一阶后向差分近似代替微分,即可得到位置式PID控制算法:
所谓增量型PID控制是指系统的输出是该控制量的增量Δu(k),当系统需要的
不是控制量的绝对值,而是其增量时,则应该采用增量型PID控制。

由式(1)可得增量型PID公式:
3.3 电机速度控制
为使小车在赛道上平稳快速前行,需对小车进行速度控制,基本原则就是直道尽可能加速,弯道减速。

但如果使用开环控制电机转速,就会受到电压不稳定、摩擦力、车体重量等不确定因素的干扰。

因此通过光电编码器测速,而后通过当前速度值由单片机去调整PWM输出占空比,可以实现电机转速的闭环控制,以保证小车在
各种路况速度稳定。

3.3.1 电机控制算法建模
我们采用的电机型号为RS380-ST,该电机的参数为:额定
将电机参数带入式(4),得到该电机的数学模型为:电压7.2 V,转速n=15 300 r/min,电动势常数Ce=0.0173 v/(r/min),电机时间常数Tm=0.12 s,电磁时间常数Ti=0.02 s。

直流电机的传递函数模型[6]为:
由于对电机的控制是闭环反馈控制,因此通过Simulink对其建模,搭建增量式PID,系统输入为单位阶跃信号,如图7所示。

3.3.2 PID参数整定
PID参数整定就是选择合适的Kp、Ki、Kd,使系统达到运行时的最佳状态,在其整定过程中,借助于Matlab环境,方便直观、仿真参数可以随意修改,极大地节省了工作人员的参数整定时间。

(1)当控制系统只有P系数参与时,输入不同的Kp,得到系统的阶跃响应曲线
如图8所示。

由仿真结果可知:比例项用于减少系统产生的偏差,随着Kp的增加,系统的响应速度越来越快。

若Kp过大,则系统产生超调,震荡次数增多,增加了调节时间,使系统稳定性下降。

因此Kp的增大不能从根本上消除稳态误差,只能减小。

(2)由于积分系数Ki的作用主要是消除系统的稳态误差,提高系统的无差度。

但随着Ki的增大,超调量减小,系统的响应速度会变慢,甚至会产生积分饱和的现象。

微分系数Kd反映偏差的变化率,起预见的作用,改善系统的动态性能。

如果Kd过大,系统就会提前制动,使调节时间延长,同时也会使系统的抗干扰能力下降。

总之,经过不断地反复调试与试跑,最终确定PID的各个参数为:Kp=10,Ki=0.1,Kd=0.01,能使系统性能指标达到小车的要求,其在Simulink中的仿真图像如图9所示。

3.4 舵机控制
灵敏的转向系统是小车能否跑到极速的一个关键环节,就是依据所提取赛道的实时状况去控制舵机的转角,配合电机完成进弯减速、过弯加速的动态控制。

3.4.1 转向控制
电动小车沿着提取的中心线平稳快速地前行,因此只需通过中心线上的点便可计算出曲率,通过曲率去控制舵机的转角,我们采用的是三点法计算曲率,如图10所示。

通过此图可以计算出:
当A、B、C三点顺时针走向时,△ABC的面积为负,则曲率为负,小车右拐,反之小车左拐。

如果计算出来的面积为0,则直行。

通过此种方法,提高了小车循迹的精确性,使其平稳快速前行。

3.4.2 舵机建模与仿真
舵机的型号为Futaba S3010,小车两车轮间距D=0.2m,机电时间常数Tm=0.12 s,小车轮距中心速度Vc=2 m/s,其传递函数模型为:
将参数代入上式可得:
因此在Simulink建立的模型如图11所示。

一般情况下增量式PID算法可分为PD,PI,PID三种,PD算法虽然可以充分提升系统的实时性、快速性,但是会影响系统的稳态精度;PI算法虽然可以提高系统的稳态精度,但是以牺牲快速性为前提的;PID算法虽然兼具二者的优点,但调试起来有一定难度而且复杂。

大多调速系统都会对动态稳定性和稳态精度有一定的要求,对速度要求不高的系统,可以采用PI算法;而对舵机的控制是随动系统,动态响应性要求很高,为了提高其快速性,采用PD控制,即I系数为0。

经过反复仿真与调试,最终确定Kp=5,Kd=1,其能满足舵机的实时性要求,仿真图如图12所示。

本文设计了一种利用摄像头循迹的智能车控制系统,取得的成效如下:
1)按照智能车的需求,对单片机的各个模块编制了初始化程序,通过读取数据寄存器或状态寄存器实现相应的功能。

2)32位单片机的使用,极大提升了数据处理速度,其特有的DMA模块在完成采集图像工作时,CPU占用率仅为10%。

3)经过二值化和中值滤波处理后的图像几乎没有噪点的干扰,采用由中间往两边扫描的办法提取中线,使小车能够精确地沿着中线向前行驶。

4)通过Matlab对电机和舵机建立了模型,并对其进行仿真调试,调整出了合适的参数,提高了整个控制系统的性能。

5)将小车的稳定行车速度由原来的1.5 m/s提升至2.2 m/s,并且参加了第七届全国大学生智能汽车竞赛,获得了三等奖。

总之,该软件系统能使小车沿着赛道平稳快速地前行,且系统具有较好的稳定性和抗干扰能力,达到了预期的效果。

【相关文献】
[1]Robert TCollins,et al.A System for Video Surveillance and Monitoring[R].CMU-RI-TR-00-12:1- 68.
[2]杨丹明,王富东,张成,等.基于飞思卡尔单片机的智能循线赛车设计和实现[J].苏州大学学报:工科版,2010,30(6):38- 41.
[3]吴吟啸,张虹,王新生.基于黑白摄像头的智能小车路径识别系统设计[J].信息技术与信息化,2009(2):42- 45.
[4]熊慧,魏翼鹰,黄加勇,等.基于图像识别的循迹车路径识别算法研究[J].单片机与嵌入式系统应用,2009(3):20- 23.
[5]鲁小雨.基于MC9S12XS128单片机的控制系统设计与实现[J].成都:成都大学学报,2011(3):264- 267.
[6]陈义.基于MC9S12XS128单片机的智能车控制系统的研究[D].保定:华北电力大学,2011.。

相关文档
最新文档