智能车仿真系统Plastid(以下简称Plastid)基于LabVIEW虚拟仪器技术开发完成用于智能车的算法仿真及分析。主要有以下几大特点:
赛道与赛车环境模拟系统对赛道与赛车分别建立了模型,使用者可以按照指示方便地自行设计赛道以及赛车将赛道设计成各种各样的直路、弯路、坡路将赛车设计成各种尺寸、形状从而使得系统的适用性更广泛。另一方面本软件更适用于没有条件制作试验赛道的参赛队伍他们可以在该系统中检测控制算法。
一、控制算法的仿真验证
系统可提供三种不同的控制算法仿真的方案:子VI(SubVI)算法仿真、C结点算法仿真以及单片机在线仿真。使用者可以选择其中最适合自己的仿真方法对自己的控制算法在系统的环境中进行验证。
二、路径识别的方案分析
系统提供了采用光感电路来识别路径的模型,使用者可以按照自己的想法设定传感器的个数、排列的位置在Plastid上反复作仿真试验从而定性得出哪种光感电路的排列效果较好。由于实地试验时要更换传感器排列较为耗时因此本系统给予了此种定性分析一个极其方便的试验平台。
三、离线/在线仿真相结合
系统不仅可以离线仿真还可以通过CAN通讯与单片机系统相连对系统进行虚拟赛道环境的在线仿真。
使用者通过该仿真系统可以反复对原始设计方案进行研究得到近似最优方案后再进行实车设计和实际赛道试验卜从而减少了开发的费用和时间成本大大提高智能车开发效率。
四、基本构架
整个仿真系统的构架图主要分为基本模型层、控制算法层、通讯层以及仿真环境层。
基本模型层包括赛车模型与赛道模型使用者可根据实际情况设定模型参数它为整个系统提供了底层的驱动了仿真结果都是在这两个模型的基础上计算得来的。
控制算法层为使用者提供了3种不同的仿真方案:SubVl、C结点以及单片机在线仿真具体在后文将会详述。使用者可选择其中一个方案输入或移植自己的控制算法。
通讯层只用于单片机的在线仿真,使用CAN模块可以使单片机与仿真系统进行即时的数据交流从而实现动态仿真。
动态仿真环境基于赛车、赛道模型以及控制算法所输出的控制信号(电机控制、转向控制及车速信号等)计算出车的行走路线并即时地将数据传回控制算法层(其计算周期可调)。凭借软件仿真的优势在仿真过程中系统可以方便地将各种变量记录下来特别是一些实际试验时无法测量的量(如赛车相对于赛道中心线的偏移量、前向角、加速度等)并保存于文件中。在回放模式中用户可以调用这些文件对其仿真结果进行后期分析和处理继而改进自己的赛车设置以及控制算法。费道、赛李、路径识别摸型。
我们知道一个具有高级控制策略的智能车应该在不同的赛道上都具有稳定的发挥,为了验证这一点就必须在不同的赛道上做试验。然而由于各方面的限制,我们不可能为赛车制作无数的赛道进行侧试。但这个问题却可在Plastid中轻易地得到解决:我们可以设计出不同的赛道,并将其保存成文件在仿真时将其调用即可。
图2是Plastid的赛道设计界面用户可以使用“点”来精确设定赛道曲线的下一点位置,使用“弧”则可以以圆心坐标、角度来绘制想要得到的弧线,更可以直接采用“手绘”用鼠标在屏幕上绘制赛道或从数据文件中导入曲线。其操作界面友好修改方便且易于上手和操作。图2中的赛道即根据韩国汉阳大学2004年智能车大赛采用的赛道设计而成。
为了仿真方便我们将赛车简化为一个四轮刚体模型除了一些基本的尺寸参数之外在前轮转向系统根据赛车的实际情况我们用“转向速度”与“最大转向角”两个参数来模拟。
对于路径识别系统Plstid给予使用者至多3个的光感传感器的坐标设定,使用者可以任意地安排传感器的个数和相对于车的排列坐标(将传感器安排成一条直线或者弧线等方一案)从而达到自己想要的识别效果。
对于加速的模拟目前系统暂时以直接加速度为控制量,在对实车进行测试和分析后,将构建相应的模型。
图3即赛车设计的操作界面,左边为赛车的基本参数,右边为传感器坐标设定、试验赛道生成以及传感器值得即时显示(试驾时用)。
使用者除了可以设定赛车参数外,还可以对所设定好的赛车进行试驾,当场检验所设计参数的优劣,并可将赛车信息保存于文件,供仿真时调入使用。
五、控制算法仿真
Plastid针对不同的使用者提供了三种不同的控制算法仿真方案子VI(SubVl),C结点以及单片机的在线仿真。
首先最接近于LabVIEW编程环境的即为SubVI方案。用户将自己的控制算法,移植为LabVIEW的d在仿真时即时地给该SubVI输入变量(车速、传感器值等)SubVI通过计算得出控制量并输送给Plastid仿真循环。SubVI方案对于熟悉LabVIEWG语言编程方法的使用者来说非常简单但它的缺点是移植性较差,由于C语言和G语言的差别较大因此将单片机的控制算法转换为子VI的程序需要一定的工作量。
其次C结点方案则更适合于采用C语言编程的使用者们其原理与SubVI方案类似但是其程序则可直接用C语言编写用VisualStudio旧任将其编译为dll文件系统在仿真时会自动调用该dll,从而实现与SubVI一样的控制和反馈。对于本方案使用者可以将其单片机的程序进行适当的修改后即可使用因此移植性较高。
最后利用CAN模块系统可以直接与单片机进行直接通讯并实现在线仿真。单片机方面只需要在其CAN接口即时地传送其控-制量(这在程序中很容易添加相应程序)而Plastid则通过CAN模块得到这些量,并传送反馈量给单片机。在这一方案单片机的程序修改不大但需要有CAN模块等硬件支持。
图4为系统动态仿真的界面使用者在加载完赛道与赛车文件后了即可进行动态的仿真。其中仿真周期表示系统每一次计算的时间可以根据单片机的运算周期进行设定但值得一提的是在仿真过程中,其真实的仿真周期会根据计算机的性能等因素而不同但其仿真的结果可以保证确实根据该仿真周期计算而得,从而保证其仿真的可靠性。
六、不足与改进
由于Plastid仿真系统还未与实车的仿真进行过深入比较且开发周期也较短了因此必然留有一些不足之处。
该系统目前还只能用于采用光感传感器路径识别方案的智能车对于CCD摄像头技术还不支持。
其次,在仿真过程中系统只是根据汽车的运动学模型(将车简化为一四轮刚体来处理)进行计算,并未考虑其侧滑以及路面摩擦力的影响。这将使其仿真结果与实际结果有一定差距,我们将在后续工作中根据实车的情况不断进行实车试验和对比从而提高其仿真真实度使其能尽可能地模拟出实际的情况。
最后计算速度也是系统必须面临的一大问题。对此我们将优化代码,并裁剪不必要的程序,从而提高系统的仿真速度。
综上所述本系统主要针对本次智能车大赛而开发将在这一届邀请赛过程中进行不断的优化和改进争取为广大参赛队伍更好地完成开发任务而服务。
(转载)