基于虚拟仪器技术的智能车仿真系统

时间:2007-04-29

基于虚拟仪器技术的智能车仿真系统

周斌,蒋荻南,黄开胜

1. 赛道与赛车环境模拟

系统对赛道与赛车分别建立了模型,使用者可以按照指示方便地自行设计赛道以及赛车,将赛道设计成各种各样的直路、弯路、坡路,将赛车设计成各种尺寸、形状,从而使得系统的适用性更广泛。另一方面,本软件更适用于没有条件制作试验赛道的参赛队伍,他们可以在该系统中检测控制算法。

2. 控制算法的仿真验证

系统可提供三种不同的控制算法仿真的方案:子VI(SubVI)算法仿真、C结点算法仿真以及单片机在线仿真。使用者可以选择其中适合自己的仿真方法,对自己的控制算法在系统的环境中进行验证。

3. 路径识别的方案分析

系统提供了采用光感电路来识别路径的模型,使用者可以按照自己的想法设定传感器的个数、排列的位置,在Plastid上反复作仿真试验,从而定性得出哪种光感电路的排列效果较好。由于实地试验时要更换传感器排列较为耗时,因此本系统给予了此种定性分析一个极其方便的试验平台。

4. 离线/在线仿真相结合

系统不仅可以离线仿真,还可以通过CAN通讯与单片机系统相连,对系统进行虚拟赛道环境的在线仿真。

使用者通过该仿真系统可以反复对原始设计方案进行研究,得到近似方案后,再进行实车设计和实际赛道试验,从而减少了开发的费用和时间成本,大大提高智能车开发效率。

2 基本构架

图1是整个仿真系统的构架图,主要分为基本模型层、控制算法层、通讯层以及仿真环境层。

基本模型层包括赛车模型与赛道模型,使用者可根据实际情况设定模型参数,它为整个系统提供了底层的驱动,仿真结果都是在这两个模型的基础上计算的。

控制算法层为使用者提供了3种不同的仿真方案:SubVI、C结点以及单片机在线仿真,具体在后文将会详述。使用者可选择其中一个方案输入或移植自己的控制算法。

通讯层只用于单片机的在线仿真,使用CAN模块,可以使单片机与仿真系统进行即时的数据交流,从而实现动态仿真。

动态仿真环境基于赛车、赛道模型以及控制算法所输出的控制信号(电机控制、转向控制及车速信号等),计算出车的行走路线,并即时地将数据传回控制算法层(其计算周期可调)。

凭借软件仿真的优势,在仿真过程中,系统可以方便地将各种变量记录下来,特别是一些实际试验时无法测量的量(如赛车相对于赛道中心线的偏移量、前向角、加速度等),并保存于文件中。在回放模式中,用户可以调用这些文件,对其仿真结果进行后期分析和处理,继而改进自己的赛车设置以及控制算法。

3 赛道、赛车、路径识别模型

我们知道,一个具有控制策略的智能车应该在不同的赛道上都具有稳定的发挥,为了验证这一点,就必须在不同的赛道上做试验。然而,由于各方面的限制,我们不可能为赛车制作无数的赛道进行测试。但这个问题却可在Plastid中轻易地得到解决:我们可以设计出不同的赛道,并将其保存成文件,在仿真时将其调用即可。

图2是Plastid的赛道设计界面,用户可以使用“点”来设定赛道曲线的下一点位置,使用“弧”则可以以圆心坐标、角度来绘制想要得到的弧线,更可以直接采用“手绘”用鼠标在屏幕上绘制赛道或从数据文件中导入曲线。其操作界面友好,修改方便,且易于上手和操作。图2中的赛道即根据韩国汉阳大学2004年智能车大赛采用的赛道设计而成。

为了仿真方便,我们将赛车简化为一个四轮刚体模型,除了一些基本的尺寸参数之外,在前轮转向系统,根据赛车的实际情况,我们用“转向速度”与“转向角”两个参数来模拟。

对于路径识别系统,Plstid给予使用者至多8个的光感传感器的坐标设定,使用者可以任意地安排传感器的个数和相对于车的排列坐标(将传感器安排成一条直线,或者弧线等方案),从而达到自己想要的识别效果。

对于加速的模拟,目前系统暂时以直接加速度为控制量,在对实车进行测试和分析后,将构建相应的模型。

图3即赛车设计的操作界面,左边为赛车的基本参数,右边为传感器坐标设定、试验赛道生成以及传感器值的即时显示(试驾时用)。

使用者除了可以设定赛车参数外,还可以对所设定好的赛车进行“试驾”,当场检验所设计参数的优劣,并可将赛车信息保存于文件,供仿真时调入使用。

4 控制算法仿真

Plastid针对不同的使用者提供了三种不同的控制算法仿真方案:子VI(SubVI)、C结点以及单片机的在线仿真。

首先,接近于LabVIEW编程环境的即为SubVI方案。用户将自己的控制算法,移植为LabVIEW的SubVI,Plastid在仿真时即时地给该SubVI输入变量(车速、传感器值等),SubVI通过计算得出控制量并输送给Plastid仿真循环。SubVI方案对于熟悉LabVIEW G语言编程方法的使用者来说非常简单,但它的缺点是移植性较差,由于C语言和G语言的差别较大,因此将单片机的控制算法转换为子VI的程序需要一定的工作量。

其次,C结点方案则更适合于采用C语言编程的使用者们,其原理与SubVI方案类似,但是其程序则可直接用C语言编写,用Visual Studio IDE将其编译为dll文件,系统在仿真时会自动调用该dll,从而实现与SubVI一样的控制和反馈。对于本方案,使用者可以将其单片机的程序进行适当的修改后即可使用,因此移植性较高。

,利用CAN模块,系统可以直接与单片机进行直接通讯,并实现在线仿真。单片机方面只需要在其CAN接口即时地传送其控制量(这在程序中很容易添加相应程序),而Plastid则通过CAN模块得到这些量,并传送反馈量给单片机。在这一方案,单片机的程序修改不大,但需要有CAN模块等硬件支持。

图4为系统动态仿真的界面,使用者在加载完赛道与赛车文件后,即可进行动态的仿真。其中仿真周期表示系统每计算的时间,可以根据单片机的运算周期进行设定,但值得一提的是,在仿真过程中,其真实的仿真周期会根据计算机的性能等因素而不同,但其仿真的结果可以保证确实根据该仿真周期计算而得,从而保证其仿真的可靠性。

5 不足与改进

由于Plastid仿真系统还未与实车的仿真进行过深入比较,且开发周期也较短,因此必然留有一些不足之处。

该系统目前还只能用于采用光感传感器路径识别方案的智能车,对于CCD摄像头技术还不支持。

其次,在仿真过程中,系统只是根据汽车的运动学模型(将车简化为一四轮刚体来处理)进行计算,并未考虑其侧滑以及路面摩擦力的影响。这将使其仿真结果与实际结果有一定差距,我们将在后续工作中根据实车的情况,不断进行实车试验和对比,从而提高其仿真真实度,使其能尽可能地模拟出实际的情况。

,计算速度也是系统必须面临的一大问题。对此,我们将优化代码,并裁剪不必要的程序,从而提高系统的仿真速度。

综上所述,本系统主要针对本次智能车大赛而开发,将在这一届邀请赛过程中进行不断的优化和改进,争取为广大参赛队伍更好地完成开发任务而服务。



  
上一篇:USB2.0 闪存盘控制芯片“优芯II 号”的特点及应用电路
下一篇:数字式I2C总线温度传感器在温度检测中的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料