刘 西,张 隆,胡远志
(重庆理工大学 汽车零部件先进制造技术教育部重点实验室,重庆 400054)
近年来,随着智能汽车技术的迅猛推进,国内外诸多企业、高校及研究人员投入到了智能汽车技术的研究,而利用缩微智能车进行相关课题的研究已逐渐成为比较普遍的研究手段之一[1-2]。
智能汽车的主要研究内容包括环境感知、决策与规划、控制与执行等几大方面[3]。而缩微智能车是集环境感知、规划决策的自动化控制系统,其可用于导航定位、计算机视觉、通信、自动控制等多方面的研究[4]。利用缩微智能车进行智能汽车技术的研究不仅具有成本低廉、简单易行的优点,而且可以有效地避免实车试验危险系数高、纯软件仿真的真实性与准确性难以保证等缺点。因此,利用缩微智能车进行智能汽车技术的研究非常有意义。
国外的加拿大滑铁卢大学举办的国际无人小车比赛(international autonomous robot racing challenge,IARRC),国内的上汽集团缩微智能车挑战赛、飞思卡尔智能车大赛等,都是利用缩微智能车进行智能汽车技术研究的典型代表[5]。此外,还有国内外学者利用缩微智能车进行了自动导航系统[6]、路径跟踪算法[7]、车辆跟驰控制系统[8]、目标检测系统[9]及室内定位系统[10-11]等多方面的研究。上述研究方法在一定程度上取得了实际性的研究成果,但其均是利用计算机高级编程语言(C/C++、python等)进行研究的,其不仅要求研究与开发人员具有较强代码编写能力,而且在调试过程中会花费大量的时间与精力。
基于此,本文中提出了一种简单、高效的基于图形化编程进行智能汽车技术研究的方法,且采用该种方法开发了缩微智能车的巡航控制系统并进行了相应的实验与测试。首先,基于图形化编程方法在Matlab/Simulink软件中开发了缩微智能车巡航控制算法与控制策略;然后,以真实车辆1∶10比例的缩微智能车、树莓派开发板与缩微交通环境搭建了开发与测试平台;最后,将控制算法部署到树莓派开发板中实现了缩微智能车的巡航控制。该种开发方法有效地避免了计算机高级编程语言复杂而不易上手的缺陷,使相关的研究人员将研究重点转移至控制算法与系统功能实现的开发上,而不是通过何种编程方法的实现上。
巡航控制系统是智能汽车研究的重点[12-13],真实车辆的巡航控制系统是通过控制车辆油门和刹车系统以实现对车辆的纵向控制,其对缓解驾驶员的驾驶疲劳、提高汽车的安全性和道路交通利用率等均具有突出的贡献[14]。巡航控制系统主要包括定速巡航和自适应巡航控制系统2个子系统,其中后者是前者的延伸。
控制算法与控制策略是实现巡航控制的根本,目前多用于巡航控制的算法有PID控制、模糊控制、神经网络及模型预测控制(MPC)算法等。其中PID控制算法具有简单易行、响应速度快等优点,但在面对车辆非线性极强的系统时稳定性、超调等问题都难以处理;模糊控制是基于专家经验的算法,具有简单易应用的优点,控制系统的建立需要一定的知识与经验积累;模型预测控制算法虽很适用于多控制目标和非线性系统,但其运算量较大不利于实时运算且算法较为复杂,对硬件的运算能力要求较高;神经网络及机器学习等智能算法不仅开发周期长且同时对硬件的计算能力要求较高。综合考虑控制算法的时效性、精确性、稳定性和树莓派开发板的运算能力等,本文中选用模糊控制算法及响应速度较快的PID控制算法对缩微智能车的巡航控制器进行设计。
为实现缩微智能车的巡航控制,结合真实车辆巡航系统控制方法与缩微智能车的纵向运动特性,设计缩微智能车的巡航控制系统整体架构,如图1所示。
缩微智能车巡航控制系统整体架构主要包括信号采集单元、信号控制单元、执行单元3个部分。信号采集单元主要作用是采集缩微智能车与前方目标的车间距离信息、本车车速信息并传递至信号控制单元;信号控制单元的主要作用是将缩微智能车的状态信息根据控制算法和控制策略量化为执行单元的PWM参量;执行单元的主要作用是控制驱动电机以实现对缩微智能车的纵向运动控制。
本文中结合缩微智能车的纵向运动特性,在信号控制单元中根据本车前方80 cm范围内是否存在有效跟随目标将控制系统分为速度控制模式和跟车控制模式,在速度控制模式下采用PID控制算法,跟车控制模式下采用模糊控制算法。
1.2.1 模糊控制器设计
模糊控制是基于专业经验与知识库的控制算法,其多用于无法以严密数学表示的控制对象模型[15]。模糊控制主要包含模糊化、模糊推理和解模糊3个部分,其原理如图2所示。
为了实现缩微智能车在跟车模式时的巡航行驶,本文中以缩微智能车与前车的车间距离S和实际车速V为输入变量、控制驱动电机的PWM为输出变量,建立模糊控制器三角形隶属度函数,如图3所示。其中实际车速V的论域为[0,80],车间距离S的论域为[0,80],PWM的论域为[0,0.095]。
专家经验与知识库是模糊控制算法的关键,根据缩微智能车的纵向运动特性及多次测试数据积累,建立模糊控制规则表,如表1所示。
表1 模糊控制规则
常用的解模糊方法有:最大隶属度法、中位数法、面积重心法等,本文中选用平滑度较高的面积重心法解模糊,可得控制曲面,如图4所示。
1.2.2 PID控制器设计
PID控制算法原理简单、适应性强、鲁棒性强,在工业界得到了广泛的应用[16],其主要包含比例、积分、微分3个环节。PID控制器的算法原理如图5所示。
PID控制器算法的数学表达式为
式中:e(t)为系统的偏差量(本文中的e(t)为设定车速与实际车速的偏差量);kp为比例系数;Ti为积分时间常数;Td为微分时间常数,经变形可得
式中:kp为比例系数,ki=kp/Ti为积分系数,kd=kp·Td为微分系数。
测试与开发平台主要由搭载传感器的缩微智能车、缩微交通环境、Matlab/Simulink软件及树莓派开发板等组成,其基本原理是首先利用Matlab/Simulink软件进行巡航系统控制器的设计,然后将设计好的控制器Simulink模型部署到树莓派开发板中,最后在缩微交通环境下实现缩微智能车的巡航功能,整个开发与测试平台的基本组成如图6所示。
缩微智能车是由真实车辆1∶10比例的智能小车、测速传感器、测距传感器与树莓派开发板组成,如图7所示。该缩微智能车具备环境感知和规划决策的能力。测速传感器主要用于智能小车实时车速信息的获取;测距传感器主要用于本车与前方有效目标的车间距离信息的获取;树莓派是整个控制系统的数据处理和运算平台,即中央控制器。
2.1.1 树莓派开发板
树莓派(Raspberry Pi)是基于ARM的微型电脑主板,可运行Linux和Windows 2种系统,目前在物联网与工业控制领域得到了广泛的应用[17]。树莓派自身是可以用计算机编程语言C/C++与Python进行开发和应用的,而MathWorks公司于2013年开发的树莓派Matlab/Simulink支持包,使利用Matlab/Simulink软件图形化编程方法进行树莓派相关应用的开发成为了可能。
树莓派从早期的B版本到现在的4B型版本,其外部接口更加丰富、功能更加强大、使用更加广泛。Matlab/Simulink软件从R2014a版本开始提供了树莓派开发的支持包,本文中选用Matlab 2018b和树莓派3B+进行缩微智能车巡航控制系统的开发与测试。
2.1.2 智能小车
智能小车以AMO 5200 mA(2S 7.4V锂电池)电池为动力源,驱动方式为四驱,驱动电机为540有刷电机,转向采用JX PS-5221舵机(金属齿轮20 kG扭矩),其基本的结构尺寸为:车辆总宽度297 mm、总长度522 mm、轴距177 mm、轮距324 mm、离地间隙55 mm、车轮直径106 mm。
为了保证智能小车能在车道内巡航,利用摄像头提取车道线并通过相应的控制算法使智能小车具备车道保持功能。由于本文的重点是实现缩微智能车的巡航控制,因此不对车道保持相应的控制算法与控制策略进行详细的说明。
2.1.3 测距模块
超声波传感器通过镜片发射出超声波,当遇到障碍物时返回,随后感知系统计算声波的飞行时间,分辨出与障碍物的距离信息。本文中测距传感器选用HC-SR04的超声波传感器,其测距范围为3~400 cm且精度为±3 mm。根据超声波测距传感器的基本工作原理建立数学模型:
式中:s为实际车距;v为超声波传播的速度(设为340 m/s);t为超声波返回的时间差。
将上述数学模型转化为Simulink模型,如图8所示。
2.1.4 测速模块
光电编码器可计算单位时间内光电编码的脉冲个数,通过车速与脉冲个数的数学关系将其转化为实际的小车车速。本文中选用以LM393为主要芯片的对射光电传感器,其测速精度为±3 cm/s。根据光电式传感器的基本工作原理建立其数学模型:
式中:l为单位时间内的位移;x表示单位时间内记录的脉冲数;v代表车速;t代表单位时间(本文中设定为0.5 s)。
将上述的数学模型转化为Simulink模型,如图9所示。
缩微交通环境如图10所示,长为10 m,宽为6 m,单车道宽为0.5 m。该实验平台不仅可以用于巡航控制系统的研究,还可以用于车道保持、自动泊车及有效目标识别等多方面的研究。利用此平台进行智能网联汽车技术、人工智能等方面的研究非常具有实际性意义。
为了验证本文中提出的缩微智能车巡航控制系统开发方法的简单易行性,对缩微智能车的巡航功能进行了大量的实验与测试。首先为了保证传感器获取数据的真实有效性,对测速与测距传感器进行了数据标定;然后根据缩微智能车的纵向运动特性分别设定了跟车控制、车速控制与跟车和车速复合控制模式多种不同的测试工况;最后将在Matlab/Simulink软件中开发的巡航系统控制算法与控制策略模型(如图11所示)部署到树莓派开发板中,进行了实验与测试,以验证开发方法与控制算法和控制策略的有效性。
由于不同的采样时间及计算步长使得传感器在获取数据时与真实的状态信息有一定的误差,因此为了获取缩微智能车实际车速与车间距离的精确数据,在使用之前需对超声波传感器、光电编码器2个主要传感器进行数据标定。
3.1.1 测距传感器标定
在缩微智能车前方60 cm处放置一障碍物,设定计算步长为0.001、采样时间为0.001,将搭建的测距模块Simulink模型部署到树莓派中测试15 s。对获取的数据分析可知,在15 s内的距离数据平均值为62.08 cm。为了获取更加精确的数据对原有的模型减去数值2。最后,对标定后的测距传感器再次进行测试(方法不变),对获取的数据分析可知在15 s内的距离数据平均值为59.48 cm且误差在±3 cm,更加接近真实值。图12为标定前后的数据。
3.1.2 测速传感器标定
选取一条长度为6 m的跑道,记录缩微智能车在选定跑道所用的时间,可计算出真实的小车车速。设定计算步长为0.001,采样时间为0.01,将搭建的测速模块Simulink模型部署到树莓派开发板中进行测试。对获取的数据分析可知,小车从启动到通过6 m的跑道所需的时间为13.9 s,即实际车速为43.1 cm/s,而传感器获取的数据均值为48.71 cm/s(此处只需考虑车速稳定时的数据)。为了获取更加精确的数据对原有的模型减去数值5.61。最后,对标定后的测距传感器再次进行测试(方法不变),对获取的数据分析可知车速稳定时的均值为44.1 cm/s且误差在±5 cm/s,其更加接近真实值。图13为标定前后的数据。
为了测试缩微智能车的巡航功能,分别设定车速控制模式测试工况、跟车控制模式测试工况、车速与跟车复合控制模式测试工况进行测试。
3.2.1 车速控制模式测试
当小车前方80 cm范围内不存在有效跟随目标时将执行速度控制模式,即以设定的车速稳定巡航行驶。将缩微智能车放置于车道内(如图14所示),分别设定小车的车速为40、50、60 cm/s进行测试,测试结果如图15所示。
由图15的测试结果分析可知:在不同测试工况下缩微智能车均能按照设定的车速稳定巡航行驶。由于本文中选用的缩微智能车结构复杂,其在启动时的阻力较大,所以缩微智能车从启动到稳定行驶所需的时间较长;由于加入了PID控制所以会造成一定的超调量,但该超调量在可控的范围内。综上分析可知,误差与超调量均在可控范围内,即设计的控制器鲁棒性、精确性均可满足缩微智能车的速度控制模式的需求。
3.2.2 跟车控制模式测试
当小车前方80 cm范围内存在有效跟随目标时将执行跟车控制模式,即根据当前的实际车速和本车与前车的车间距离跟随前方车辆稳定行驶。将缩微智能车放置于车道内并在其前方40 cm处放置一辆引导车(如图16所示),分别设定前方引导车的的车速为40、50 cm/s进行测试,测试结果如图17、图18所示。
由图17、18的测试结果分析可知,在不同测试工况下缩微智能车均能跟随前方车辆稳定行驶且车间距离相对稳定,车速的波动是由于车间距离波动和传感器自身精度而造成的,但其可满足缩微智能车的巡航功能需求。
3.2.3 车速与跟车复合控制模式测试
为了测试整个控制系统的稳定性及跟车与车速控制模式的相互切换功能的有效性,搭建了相应的测试场景。在本车前方1.5 m处放置一辆引导车并设定前方车辆的车速为20 cm/s,设定本车的期望车速为40 cm/s进行测试,测试结果如图19所示。
本文中设定当实际车距大于80 cm时测距模块的输出为80 cm,即执行车速控制模式。由图19的测试结果可知,缩微智能车在前8 s执行车速控制模式且以设定的期望车速巡航行驶;后7 s执行跟车控制模式,由于缩微智能车在低速环境下行驶阻力较大所以造成距离控制模式下的车距与车速波动较大。总体分析可知,缩微智能车可实现巡航行驶功能。
1)本文中提出的缩微智能车开发方法简单易行且设计的巡航控制器可实现缩微智能车的巡航行驶功能。
2)利用缩微智能车进行智能汽车技术的研究不仅具有安全、高效、可操作性强等优点而且对推动智能汽车技术的发展具有深远的意义。
3)本文中提出的基于图形化编程进行缩微智能车开发的方法对于企业、研究院、高校等不同领域的工程开发与研究人员有极大的参考价值和应用价值,其不仅可以有效地避免高级编程语言不易上手且复杂的缺陷,而且具有安全、高效、廉价等优点,可使利用缩微智能车进行智能汽车技术研究的手段得到广泛的普及。