zoukankan      html  css  js  c++  java
  • CarSim与Simulink联合仿真

    2.1 Simulink接口

    1) 变量由Simulink导入CarSim(导入变量)

    可由Simulink导入到CarSim中的变量可达160多个,主要分为以下几部分:

    n       控制输入

    n       轮胎/路面输入

    n       轮胎的力和力矩

    n       弹簧及阻尼力

    n       转向系统的角度

    n       传动系的力矩

    n       制动力矩及制动压力

    n       风的输入

    n       任意的力和力矩                  

    图2.1 CarSim导入变量分类

    我们可以在Simulink中定义变量,也可以在其他软件中定义并导入Simulink模型中,导入的变量将叠加到 CarSim内部相应的变量中。

    2)变量由CarSim导入Simulink(导出变量)

    导出变量可以应用于用户自定义的Simulink模型,CarSim的导出变量多达560之多,如车辆的位置、姿态、运动变量等。

     

    图2.2 CarSim导出变量分类

    图2.3为CarSim软件所提供的一个CarSim与Simulink联合仿真的例子

     

    图2.3 简单驾驶员模型

    2.2 CarSim与Simulink联合仿真

    以CarSim中所提供的与Simulink联合仿真的一个例子为例(稍有修改),来介绍CarSim与Simulink联合仿真的整个过程。

    例:

    车型

    B-class,Hatchback:No ABS

    初始车速

    65km/h

    节气门开度

    0

    档位控制

    闭环四档模式

    制动

    2s后紧急制动

    方向盘转角

    0deg

    路面

    对开路面

    仿真时间

    10s

    仿真步长

    0.001s

    说明:选用同一车型的两辆汽车,同样的仿真工况,但其中一辆加入在Simulink中建立的ABS控制器,相当于一辆汽车带有ABS,而另一辆汽车没有带ABS,方便对比。

    (1) 双击桌面上CarSim的图标,运行CarSim,这里选用是的CarSim8.0版本; 

                                        

    图2.6 CarSim主界面

    由图2.6可以看到在CarSim主界面中,主要有三大部分:车辆参数及仿真工况的设置、数学模型求解、后处理。用户可以修改车辆参数,根据需要来设置仿真工况,图2.6中所示为双移线仿真工况。在后处理部分,可以显示模型的仿真动画及绘制仿真曲线,如图2.7。

     

    图2.7 仿真动画与曲线

    (4) 点击,来新建一组dataset,如图2.8,在两个文本框中分别输入'Example'和'ABS',然后点击'set',以完成新建。

     

    图2.8 新建dataset

    (5) 选择'datasets'下拉菜单,看有何不同,如图2.9。

     

    图2.9 第(4)步中所建的dataset

    (6) 点击图2.10(a)中的下三角,选择相应的车型,如图2.10(b)。

     

    (a)                                          

    (b)

    图2.10 选择车型

    (7)新建一个所要求的仿真工况:

      1)点击图2.11中所示的工况,如图2.12所示。

     

    图2.11 120km/h双移线仿真工况

     

    图2.12 120km/h双移线仿真工况的主界面

     2) 新建仿真工况,点击,在图2.13中的文本框中依次输入‘ABS Example’和‘Split Mu’,点击‘Set’完成新建。

     

    图2.13 新建仿真工况

    3) 根据例子中的要求设置仿真工况:

    l         初始车速为65km/h;

    l         节气门开度为0;

    l         2s后紧急制动;

    l         档位控制选用闭环四档模式;

    l         方向盘转角为0deg;

    l         路面选择对开路面;

    完成设置后,如图2.14所示。

     

    图2.14 仿真工况设置

    4) 设置仿真时间:

    同样在设置仿真工况的主界面里,在如图2.15所示的文本框内输入‘10’。

     

    图2.15 仿真时间设置

    5) 选择前面新建的仿真工况:

    点击,返回CarSim的主界面,选择前面新建的‘Split Mu’工况,如图2.16。

    图2.16 选择仿真工况

    6) 设置仿真步长:

    在CarSim主界面下,点击下拉菜单‘Tools’,选择‘Preferences’,出现如图2.17的界面,在图中红色圆角矩形框内,将仿真步长设为‘0.001s’。

     

    图2.17 设置仿真步长

    (8)       点击运行数学模型,计算结束后,点击,观看仿真动画,看一下无ABS车辆在对开路面上紧急制动的效果,如图2.18所示,也可以点击来绘制曲线。

                                         

    图2.18 仿真动画显示

    (9) 建立CarSim与Simulink联合仿真的模型:

      1) 点击如图2.19所示的下三角,选择‘Models:Simulink’。

     

    图2.19 选择Simulink接口

    2)点击如图2.20所示的下三角,选择‘[Link to New Dataset]’。

     

    图2.20 Link to New Dataset

    3) 此时将弹出一个如图2.21所示的对话框,在文本框中依次输入‘Example’和‘ABS’,点击完成新建,如图2.22。

     

    图2.21 新建一个与Simulink联合的Dataset

     

    图2.22 选择建立的‘ABS’dataset

    4)点击, 如图2.24所示,

    注意到:①浏览工作路径:在这里选择D:\Program Files\CarsimData;

    ②Simulink Model的路径:在D:\Program Files\CarsimData\Extensions\Simulink目录下新建一个空白的Simulink Model,命名为ABS.mdl。点击浏览ABS.mdl,如图2.23所示

     

    图2.23 选择路径

     

    图2.24 Simulink {Example}ABS的主界面

    5) 定义CarSim的导入变量:

    点击如图2.25(a)所示的下三角,选择‘I/O Channels:Import’,然后按图2.25(b)、(c)新建导入变量;

     

    (a)

     

    (b)

     

    (c)

    图2.25 新建ABS input

    点击,显示如图2.26,这里需要浏览找到Readme file for output,这里为Programs\solvers\ReadMe\i_i_imports_tab.txt。定义CarSim导入变量为4个车轮的轮缸压力,顺序依次为:IMP_PBK_L1(左前轮缸压力[MPa])、IMP_PBK_R1(右前轮缸压力[MPa])、IMP_PBK_L2(左后轮缸压力[MPa])、IMP_PBK_R2(右后轮缸压力[MPa]),记下导入顺序。

     

    图2.26 定义CarSim导入变量

    6)定义CarSim的导出变量:

    步骤同5) 定义CarSim的导入变量相同,首先新建名为ABS output的一个dataset。点击,弹出如图2.27所示的界面,这里需要浏览找到Readme file for output,这里为Programs\solvers\ReadMe\i_i_outputs_tab.txt。定义CarSim的导出变量依次为:Vx_L1(左前轮速[km/h])、Vx_R1(右前轮速[km/h])、Vx_L2(左后轮速[km/h])、Vx_R2(左前轮速[km/h])、Vx_SM(汽车质心处的速度[km/h])、Pbk_Con(主缸压力的控制输入[MPa]),记下导出顺序。

     

    图2.27 定义CarSim导出变量

    7) 点击,返回CarSim主界面,然后点击图2.27所示的,此时Matlab及前面所新建的空白的模型ABS.mdl将被打开,如图2.28。

     

    图2.27 数学模型求解器

     

    图2.28 MATLAB Command Window及ABS.mdl

    8)在MATLAB Command Window中键入simulink,回车,打开Simulink Library Browser,注意现在的Simulink Library Browser比单独运算MATLAB/Simulink时多了一个‘CarSim S-Function’,如图2.29所示,将拖拽到ABS.mdl里,显示为,注意此模块恰好有一个输入接口和一个输出接口,分别对应着CarSim的导入变量和导出变量 。

     

    图2.29 含有CarSim S-Function模块的Simulink Library Browser

    9) 在ABS.mdl中加入ABS控制策略,CarSim的导出量经过Simulink计算,决策出各个轮缸的压力,然后导入到CarSims模块里,如图2.30所示

     

    图2.30 CarSim与Simulink联合仿真的ABS控制模型

    10) 返回CarSim主界面,点击,运行结束后,再点击,弹出ABS.mdl,如图2.30,点击模型的,即可运行整个模型。

     说明:若对CarSim软件里的参数(车辆参数、仿真工况等)进了修改,则要再点击,运行结束后,然后点击,来重新读入修改后的参数,最后点击模型的,运行整个模型;若只在Simulink模型里作相应的修改,不影响CarSim中的参数,直接点击即可。

     

    图2.31加入ABS控制后,车速与各轮速的关系曲线

    11) 观察加入ABS控制后的车辆行驶,点击,查看动画,如图2.32,同样也可点击绘制曲线。

     

    图2.32 带有ABS控制的仿真动画

    (10) 在前述操作的基础上,为了更好的显示ABS控制效果,采用同样车型,同样的仿真工况,而其中一辆加入了ABS控制,另一辆不带ABS。

    1) 在CarSim主界面下,点击,新建一个dataset如图2.33所示,点‘Set’完成操作。

     

    图2.33 新建No ABS Control dataset

    2) 取消与Simulink联合仿真的选择,如图2.34,选择‘[No linked library]’。

     

    图2.34 取消与Simulink联合仿真

    3) 选择CarSim主界面右下方的,选择前面所建立的dataset,如图2.35,完成操作后,点击该处的,弹出ABS的CarSim的主界

     

    图2.35选择dataset

    4)完成上面3)操作后,点击该处的,弹出ABS的CarSim的主界面,同样按上面3)操作方法,选择在1)所建的‘No ABS Control’。在主界面右上角,选中,并设置为红色;

    5)点击主界面上的,运行模型,结束后,点击,查看仿真动画,如图2.36所示,其中红色车辆为不带ABS控制的车辆。

     

    图2.36 有无ABS控制的对比

  • 相关阅读:
    在Eclipse/STS里添加代码反编译器(.class)步骤
    关于页面添加字段
    关于jeesite Date和时间戳问题
    关于前端ajax通过实体类向后端传参报不存在问题
    引入字典
    关于添加主键
    简单的前后端分离项目 部署到 centos7
    Cenost7 Mysql5.7 安装 并打开远程访问
    npm install vue-cli -g 报错
    docker 笔记 docker 基础 docker 常用命令
  • 原文地址:https://www.cnblogs.com/xpvincent/p/2867432.html
Copyright © 2011-2022 走看看