计算机系统应用  2018, Vol. 27 Issue (3): 51-56   PDF    
智能车运动仿真平台设计
李少伟1, 程辉1, 王胜正2     
1. 江汉大学 数学与计算机科学学院, 武汉 430056;
2. 上海海事大学 商船学院, 上海 201306
摘要:为了辅助开发人员进行智能车PID控制参数的设定及修正, 设计了一种智能车运动仿真平台, 该仿真平台由三部分模块组成. 轨道模块内部记录有当前仿真环境下的跑道形状及参数信息; 车辆模块内建有智能车的运动模型及参数; 运行仿真模块用于模拟物理运行环境并建立有坐标信息. 运行过程中, 运行仿真模块接收来自用户的车辆运动及PID控制参数, 在车辆模块的协助下, 实现对车辆位置以及误差信息的计算. 实验表明, 与现有算法相比, 本平台不受传感器类型的限制, 可以更真实的仿真车辆的运动状态, 同时为开发人员进行PID参数调整提供了实践依据.
关键词: 智能车    PID    仿真平台    模块化    运动模型    
Design of Simulation Platform for Intelligent Vehicle
LI Shao-Wei1, CHENG Hui1, WANG Sheng-Zheng2     
1. School of Mathematics and Computer Science, Jianghan University, Wuhan 430056, China;
2. Merchant Marine College, Shanghai Maritime University, Shanghai 201306, China
Abstract: In order to assist developers to set and revise PID control parameters for intelligent vehicle, a simulation platform for vehicle motion composed of three modules is designed. The shapes and parameters for tracks are stored in track module; the motion model and parameters for intelligent vehicle are built in the vehicle module; the motion simulation module is used to mimic the real physical environment with coordinate system. During emulation process, the simulation module receives parameters for vehicle and PID, with the aid of vehicle module, it then figures out the position and error information for developers. The result shows that, compared with the traditional way, this method is not constrained by certain sensors. Meanwhile, its simulation data could actually reflect vehicle motion. Importantly, it helps developers to enhance efficiency for control parameters revision.
Key words: intelligent vehicle     PID     simulation platform     modularization     motion model    

随着我国各个高校以及科研院所对智能车竞技项目的重视程度不断增加, 各种新的智能车控制算法不断涌现. 但是通过比较和分析各种不同的控制算法, 我们可以发现, 几乎所有的控制方法其核心部分仍然是采用了经典PID控制理论. 虽然在后续研究中, 为了提高车辆的竞技水平以及参数调整的效率, 在经典算法中加入了分段算法、神经网络算法以及模糊控制算法等[15], 但是最重要的PID参数设定以及调整往往需要依靠开发者的经验与大量的实验, 从而大大降低了开发效率; 采用仿真软件的方式可以大大缩短智能车运行实验的时间周期, 不仅可以降低实验成本, 还能辅助开发人员进行PID控制参数的设定与调整, 刚好弥补了现阶段智能车控制算法设计中的不足.

基于以上原因, 清华大学和上海交通大学分别设计了基于光学摄像头的智能车仿真程序Plastid和Cyber-Smart[6,7]. 上海交通大学陆正辰等人利用上述仿真系统, 设计了一套基于电磁导引的智能车仿真平台[8]. 该平台中建立有电磁传感器模型以及车辆的运动模型, 以帮助智能车仿真程序识别车辆在跑道中的位置及误差信息. 但在整个系统的设计中并没有涉及到车辆的控制算法, 也就意味着, 一旦车辆偏离轨道, 仿真程序无法根据实际运行情况, 修正车辆的位置信息; 杭州电子科技大学吴秋轩等人将微软公司的MRDS作为开发平台, 设计了一种智能车仿真平台[9]. 这种仿真平台的核心技术过于依赖底层的开发平台, 且整个系统的实用性和准确性并未验证; 国外的智能车仿真平台则更偏向于车辆交通流的整体研究, 例如Yue Yu和Abdelkader El Kamel等人提出了一种基于多Agent的车辆仿真模型[10]. 在此方法中, 车辆、道路以及环境均采用面向对象的Agent方法进行表示, 并将获得的Agent对象引入到虚拟现实仿真环境中. 这种方法将更多的注意力集中到车辆交通流的控制中, 弱化了车辆本身的操纵性能, 是一种理想化的车辆仿真模型; Chungen Hung与Abdulrahman Yarali等人提出了一种基于无线定位的智能车控制平台[11]. 该平台采用无线定位的方式通知车辆的当前位置, 并引导智能车进入下一个定位点. 这种方法具有控制算法简单、安全的优势, 但实际应用中需要额外的基础设施, 势必会带来较大的开销; JM Collado以及Chunzhao Guo and Seiichi Mita均提出了基于机器视觉的智能车控制方法, 前者采用传统的车道识别算法而后者则提出了一种目标归类方法[12,13]. 这两种方法均采用传感器返回信息判断车道位置, 并实时修正车辆位置信息.

为了解决上述仿真平台中存在的不足, 本文设计了一种通用型智能车运动仿真平台. 该仿真平台采用控制延时的方式来仿真传感器数据的采集、计算以及控制延时, 也就是说只要有合适的参数(可通过实验获得), 平台即可仿真基于不同传感器的智能车运动, 克服了上述Plastid和Cyber-Smart仿真平台的不足; 同时, 该平台引入分段式PID控制算法, 以四轮后驱车为研究对象, 完成了整套仿真平台的设计, 具有参数灵活可调的优势; 另一方面, 平台预留有算法控制接口, 其中的PID参数不仅可以由用户输入, 还可以采用相关算法生成, 具有应用你扩展优势.

本仿真程序的设计采用了分模块面向对象的设计方法, 共分为3个模块, 分别为运动仿真模块、车辆模块以及跑道模块. 在各个不同模块中, 分别建立有通用型四轮车运动模型、分段式PID控制算法、跑道参数信息以及运动仿真算法. 仿真平台通过读取用户可输入的车辆模型数据、跑道信息以及PID控制参数, 实现对车辆运动的仿真, 并将运动误差反应给开发者, 以协助开发人员进行控制参数及模型的调整.

1 智能车运动控制模型 1.1 车辆运动模型[1416]

在结构上, 本文所涉及的智能车为四轮结构, 左右后轮均安装有驱动电机, 前轮则连接到舵机负责控制方向, 如图1所示为轴距为L, 轮间距为W, 前轮转向角为α时, 智能车运动示意图.

根据车辆运动的基本模型可知, 智能车在如图1所示的状态下, 四轮将会围绕同一个圆心做圆周运动, 此时车辆左侧前轮运动方向为其圆周运动切线方向. 做此切线的垂线并与后轴延长线交于一点O, 此点即为车辆做圆周运动时的圆心.

图 1 车辆运动模型

1.2 车轮转速差

智能车两后轮分别由不同的电机驱动, 因此在转向时必须根据前轮转向角调整其转速差, 否则将会导致车辆失控. 假设车辆转向时左右后轮的转速分别为vlvr, 右轮转弯半径为Rr, 运动角速度为ω, 根据图1可得如下等式:

$\omega = \frac{{{v_l}}}{{{R_r} + W}} = \frac{{{v_r}}}{{{R_r}}}$ (1)

根据平面几何基本规则可知:

${R_r} = \frac{L}{{\tan \alpha }} - W$ (2)

综合公式(1), (2)可得如公式(3):

$\frac{{{v_l}}}{{{v_r}}} = 1 + \frac{{W*\tan \alpha }}{{L - W*\tan \alpha }}$ (3)
1.3 智能车转弯半径

智能车在转向时最好的状态就是保持前轴中心在跑道中心线上, 根据图1可知, 前轴中心点的转弯半径与前轮转向角之间有如下关系:

${R_m} = \sqrt {{L^2} + {{({R_r} + W/2)}^2}} $ (4)
1.4 车轮抓地力

智能车在转向时由于受到离心力的影响, 车轮与地面之间会产生横向摩擦力, 一旦离心力超过最大横向摩擦力, 车辆则会发生侧滑. 在本系统中, 我们将智能车看作一个质点, 根据基本的物理公式可知, 智能车转向时的最高运动速度与转弯半径及车轮最大横向摩擦力有如下关系:

$v = \sqrt {\frac{{F{R_m}}}{m}} $ (5)

其中m为智能车质量, 为固定值, Rm可由公式(4)获得.

1.5 智能车控制模型

智能车的控制模型采用分段式PID控制方法, 即根据智能车在跑道中的不同位置以及当前的车速, 选取不同的PID控制参数实现对智能车位置误差的校正. 如图2所示为基于经典PID控制方法的智能车控制模型结构图.

图 2 车辆控制模型

记PID控制参数分别为Kp, Kd, Ki, 采用一阶差分方式实现微分的数值计算, 那么可以得到如式(6)所示的智能车控制模型计算方程组.

$\left\{\begin{array}{l}K{}_p = a*e(t)\\[5pt]{K_i} = b*\frac{{e(t) - e(t - \Delta t)}}{{\Delta t}}\\[5pt]{K_d} = c*\sum\limits_{t = {T_1}}^{{T_2}} {e(t)*\Delta t} \\[8pt]F = {K_p} + {K_i} + {K_d}\end{array}\right.$ (6)

其中F表示用于调整舵机和电动机参数的控制量.

2 运动仿真平台模块设计

智能车运动仿真平台采用模块化设计方案实现, 它由运行仿真模块、车辆模块以及轨道模块3个部分组成, 其逻辑关系如图3所示.

运动仿真模块模拟智能车运行时的真实物理环境, 在运行过程中, 根据车辆的实时状态以及PID控制参数, 每间隔一定的时间便计算得到智能车转向角信息, 然后将此数据发送到车辆模块; 车辆模块记录了智能车的物理尺寸并存储有车辆运动模型, 此模块一旦接收到转向角信息, 即可在模块内部计算得到智能车的转弯半径以及驱动轮速度差, 然后将计算得到的数据返回到运动仿真模块中. 当车辆转向时的速度过快时, 此模块还会发出限速警告; 轨道模块中则记录了轨道的数量以及各部分轨道的形状参数, 其具体信息如表1所述[17].

3 仿真验证与算法比较

为了验证仿真平台的正确性与实用性, 我们选择基于线阵CCD的智能车为实验对象. 首先, 在轨道模块中设定相应的轨道数量、长度等参数信息; 然后, 根据上文提出的分段PID参数设定的概念, 针对不同的误差条件, 输入相应的PID控制参数; 接下来, 根据CCD摄像头与车身前端的距离, 设定运动仿真模块中的延时参数; 最后, 针对每一组PID控制参数设定直线速度与弯道速度. 运行仿真模块在每次计算得到智能车新的位置信息后, 都会记录下智能车与轨道中心线的相对位置误差信息, 智能车相对中心线左偏误差记为正, 反之则为负误差. 最终正、负误差的累计数据分别被记录在不同的变量中, 以便用户评估当前智能车的运动状态. 最后, 本文将不同的仿真平台中的实验结果进行了比较, 并针对比较结果进行了分析.

表 1 跑道参数信息

图 3 仿真平台组成模块

3.1 跑道参数

为了方便实验平台的建立, 简化仿真计算工作, 我们选取如图4所示的跑道参数作为本次仿真实验的运行平台. 根据图4可知, 轨道形状为边角为90度扇形的正方形, 其中直道长度为5 m, 跑道宽度为40 cm; 边角扇形的内径为40 cm, 外径为80 cm. 跑道的左侧外边与下侧外边分别与直角坐标系的Y轴与X轴重合, 便于位置误差的计算[18].

3.2 车辆模型参数与仿真

图5所示为仿真验证实验中用到的车模. 其中轴距长度约为21 cm, 轮间距约为14 cm, 车重约为2 kg.

图 4 仿真跑道

图 5 实车研究对象

在本次仿真实验中, 采用了两段式PID控制参数的方案, 以误差7 cm为分界点; 智能车在直道和弯道运行时的速度采用固定值, 同时为了简化计算, 不考虑智能车运动时的加速度信息; 弯道与直道的判断方法采用误差比较法, 若连续三次对位置误差数据进行采样, 得到的误差趋势均相同, 则认为此时智能车进入了弯道; 位置信息计算间隔时间固定为30 ms, 延时时间固定为10 ms. 如表2所示为智能车仿真运行参数.

表 2 仿真运行参数

表2中的参数写入作为实验对象的智能车中, 得到表3所示的信息[18].

表 3 仿真运行参数

表3所示, 在实际运行过程中, 车辆会出现滑动、加速等情况, 因此较仿真实验耗时会有所增加. 当车辆速度达到2 m/s时, 由于机械误差以及电子设备的延迟, 车辆在过弯时冲出跑道.

3.3 跑道参数实验结果比较与分析

陆正辰等人在其仿真实验中加入了S弯道以及十字弯, 但其真实的仿真赛道并未公布. 同时, 实验以基于电磁传感器的智能车作为研究对象, 得到了如图6所示的仿真结果.

图6中可以看到两个个非常明显的问题: 1) 对于普通的智能车, 转向角限位一般都在30度左右, 而图6中的最大转向角数据明显超过30度, 不符合一般智能车的控制规律; 2) 根据不同的环境, 竞技智能车的运动速度一般都介于1.2 m/s~2 m/s之间, 而图6中的仿真速度仅有0.4 m/s, 此数据没有实际参考价值.

图 6 仿真结果

吴秋轩等人则在其论文中仅仅介绍了智能车的理论控制算法, 并在MRDS平台中建立了如图7所示的智能车跑道模型.

由于MRDS平台已经集成了智能车的大部分控制算法, 因此用户在使用时只用输入相关的运动参数即可; 同时由于车模固定, 因此, MRDS仿真平台可扩展性收到了一定的限制.

图 7 MRDS仿真跑道

反观本文提出的仿真平台, 由于采用了真实的智能车作为研究对象, 结合表2以及表3中的数据, 可以认为相关的运行数据具有一定的实际参考价值. 根据本文中的仿真平台实验结果及智能车实际运行效果进行分析可以得到如下结论: 1) 随着智能车速度的提高, 车辆在赛道上运行时所消耗的时间则会相应的减少, 这与基本物理常识一致; 2) 针对同一运行速度, 随着PID参数的增加, 特别是比例参数P的增加, 车辆运行时的误差也会相应增加, 耗时则会有所减少. 这是由于P值增加后车辆调整的惯性随之增加, 产生了更多的超调量. 而较大的PID参数同时也加大了车辆位置修正时的舵机角, 使得车辆灵敏性增加; 3) 智能车的理论运行仿真结果与实际运行有一定的误差, 这是由于智能车在运行过程中受到机械误差、程序延时以及电子元器件的工作状态等因素的影响造成的.

4 结语

采用传统手段进行智能车参数调整需要承担一定的实验成本, 同时面临着实验周期长, 实验数据难以量化的问题. 采用计算机仿真方式, 可以缩短实验周期, 降低实验成本, 同时为开发人员提供了量化数据信息. 通过比较可知, 采用软件仿真的方法可以在一定程度上提高智能车开发人员的参数调整效率, 降低工作量.

在下一阶段的工作中, 仿真程序可以从以下两点进行改进: 1) 加入更多的仿真算法, 以应对不同的仿真环境. 相关算法可以并不局限于竞技类智能车, 而是可以参考国外无人驾驶车辆的相关算法[1518], 提高仿真程序的实用性; 2) 加入更多的环境因素, 缩小仿真结果与实际运行效果之间的误差.

参考文献
[1]
尤晓玲, 王能才. 基于RBF神经网络的智能车速度控制系统研究. 电气自动化, 2015, 37(1): 102-104, 110.
[2]
刘石红, 党超亮, 王能才. 基于PID神经网络的智能车舵机控制系统研究. 工业仪表与自动化装置, 2012(6): 97-101.
[3]
江善和, 申东日. 一种基于模糊神经网络的自适应PID智能控制器. 安庆师范学院学报(自然科学版), 2004, 10(2): 1-4.
[4]
郑怡, 王能才. 改进的单神经元自适应PID控制算法在智能车速度控制系统中的研究与应用. 自动化与仪器仪表, 2015(3): 98-99.
[5]
王宇, 董辉, 徐建明, 等. 一种新的智能小车控制策略. 浙江工业大学学报, 2012, 40(2): 217-221.
[6]
方兴, 杨明, 彭新荣. 智能车硬件在环仿真系统的设计与实现. 华中科技大学学报(自然科学版), 2008, 36(增刊I): 258-261.
[7]
周斌, 蒋荻南, 黄开胜. 基于虚拟仪器技术的智能车仿真系统. 电子产品世界, 2006(3): 132-134.
[8]
陆正辰, 杨明, 王冰, 等. 电磁导引智能车仿真平台设计与实现. 华中科技大学学报(自然科学版), 2011, 39(增刊II): 388-391.
[9]
吴秋轩, 赵俊晓, 刘碧川, 等. 摄像头智能车仿真平台的设计与实现. 华中科技大学学报(自然科学版), 2013, 41(增刊I): 392-395.
[10]
Yu Y, El Kamel A, Gong GH. Modeling intelligent vehicle agent in virtual reality traffic simulation system. Proceedings of the 2nd International Conference on Systems and Compu-ter Science. Villeneuve d’Ascq, France. 2013. 274–279.
[11]
Hung C, Yarali A. Wireless services and intelligent vehicle transportation systems. Proceedings of the 24th Canadian Conference on Electrical and Computer Engineering. Niagara Falls, ON, Canada. 2011. 63–68.
[12]
Collado JM, Hilario C, de la Escalera A, et al. Model based vehicle detection for intelligent vehicles. Proceedings of the 2004 IEEE Intelligent Vehicles Symposium. Parma, Italy. 2004. 572–577.
[13]
Guo CZ, Mita S. A semantic graph of traffic scenes for intelligent vehicle systems. IEEE Intelligent Systems, 2012, 27(4): 57-62. DOI:10.1109/MIS.2012.65
[14]
王功成. 汽车前轮摆振系统动力学分析与评价平台开发[硕士学位论文]. 合肥: 合肥工业大学, 2014.
[15]
郭孔辉, 刘青. 稳态条件下用于车辆动力学分析的轮胎模型. 汽车工程, 1998, 20(3): 129-134.
[16]
董刚. 智能小车运动控制系统研制[硕士学位论文]. 西安: 西安科技大学, 2009.
[17]
智能车竞赛秘书处. 竞速比赛规则. http://www.smartcar.au.tsinghua.edu.cn/upload_files/file/20170615/1497490624558090112.pdf. [2016-11-01].
[18]
NXP. KL46 sub-family reference manual. https://www.nxp.com/docs/en/reference-manual/KL46P121M48SF4RM.pdf?fsrch=1&sr=1&pageNum=1. [2013-07-03].