在MATLAB中,Simulink是用来建模、仿真和分析动态多维系统的交互工具。可以使用Simulink提供的标准模型库或者自行创建模型库,描述、模拟、评价和精化系统行为,同时,Simulink和MATLAB之间的联系十分便捷,可以使用一个灵活的操作系和应用广泛的分析和设计工具。最后,除了可以使用Simulink建模和仿真之外,还可以通过其他软件联合来完成更多的分析任务,如CarSim、ADAMS、AMEsim等许多软件。 CarSim是专门针对车辆动力学的仿真软件,CarSim模型在计算机上运行的速度比实时快3-6倍,可以仿真车辆对驾驶员,路面及空气动力学输入的响应,主要用来预测和仿真汽车整车的操纵稳定性、制动性、平顺性、动力性和经济性,同时被广泛地应用于现代汽车控制系统的开发。CarSim可以方便灵活的定义试验环境和试验过程,详细的定义整车各系统的特性参数和特性文件。CarSim软件的主要功能如下:
可由Simulink导入到CarSim中的变量可达160多个,主要分为以下几部分: 控制输入 轮胎/路面输入 轮胎的力和力矩 弹簧及阻尼力 转向系统的角度 传动系的力矩 制动力矩及制动压力 风的输入 任意的力和力矩 图2.1 CarSim导入变量分类
我们可以在Simulink中定义变量,也可以在其他软件中定义并导入Simulink模型中,导入的变量将叠加到 CarSim内部相应的变量中。
导出变量可以应用于用户自定义的Simulink模型,CarSim的导出变量多达560之多,如车辆的位置、姿态、运动变量等。
图2.2 CarSim导出变量分类 图2.3为CarSim软件所提供的一个CarSim与Simulink联合仿真的例子 图2.3 简单驾驶员模型
以CarSim中所提供的与Simulink联合仿真的一个例子为例(稍有修改),来介绍CarSim与Simulink联合仿真的整个过程。 例 说明:选用同一车型的两辆汽车,同样的仿真工况,但其中一辆加入在Simulink中建立的ABS控制器,相当于一辆汽车带有ABS,而另一辆汽车没有带ABS,方便对比。
图2.4 选择数据库
图2.5 许可设置
图2.6 CarSim主界面 由图2.6可以看到在CarSim主界面中,主要有三大部分:车辆参数及仿真工况的设置、数学模型求解、后处理。用户可以修改车辆参数,根据需要来设置仿真工况,图2.6中所示为双移线仿真工况。在后处理部分,可以显示模型的仿真动画及绘制仿真曲线,如图2.7。
图2.7 仿真动画与曲线
图2.8 新建dataset
图2.9 第(4)步中所建的dataset
(a) (b) 图2.10 选择车型
( 1)点击图2.11中所示的工况,如图2.12所示。 图2.11 120km/h双移线仿真工况 图2.12 120km/h双移线仿真工况的主界面 2) 新建仿真工况,点击+ ,在图2.13中的文本框中依次输入‘ABS Example’和‘Split Mu’,点击‘Set’完成新建。 图2.13 新建仿真工况 3) 根据例子中的要求设置仿真工况: 初始车速为65km/h; 节气门开度为0; 2s后紧急制动; 档位控制选用闭环四档模式; 方向盘转角为0deg; 路面选择对开路面; 完成设置后,如图2.14所示。 图2.14 仿真工况设置 4) 设置仿真时间: 同样在设置仿真工况的主界面里,在如图2.15所示的文本框内输入‘10’。
图2.15 仿真时间设置 5) 选择前面新建的仿真工况:点击home ,返回CarSim的主界面,选择前面新建的‘Split Mu’工况,如图2.16。 图2.16 选择仿真工况 6) 设置仿真步长: 在CarSim主界面下,点击下拉菜单‘Tools’,选择‘Preferences’,出现如图2.17的界面,在图中红色圆角矩形框内,将仿真步长设为‘0.001s’。 图2.17 设置仿真步长
图2.18 仿真动画显示
图2.19 选择Simulink接口
图2.20 Link to New Dataset
图2.21 新建一个与Simulink联合的Dataset
图2.22 选择建立的‘ABS’dataset
注意到:①浏览工作路径:在这里选择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的主界面
点击如图2.25(a)所示的下三角,选择‘I/O Channels:Import’,然后按图2.25(b)、©新建导入变量; (a) (b)
c 图2.25 新建ABS input 点击 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导入变量
步骤同5) 定义CarSim的导入变量相同,首先新建名为ABS output的一个dataset。点击 ABS output,弹出如图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导出变量
图2.27 数学模型求解器 图2.28 MATLAB Command Window及ABS.mdl
图2.29 含有CarSim S-Function模块的Simulink Library Browser
图2.30 CarSim与Simulink联合仿真的ABS控制模型
说明:若对CarSim软件里的参数(车辆参数、仿真工况等)进了修改,则要再点击Run now ,运行结束后,然后点击 send to simulink,来重新读入修改后的参数,最后点击模型的 ,运行整个模型;若只在Simulink模型里作相应的修改,不影响CarSim中的参数,直接点击 即可。 图2.31加入ABS控制后,车速与各轮速的关系曲线
图2.32 带有ABS控制的仿真动画
图2.34 取消与Simulink联合仿真
图2.35选择dataset
图2.36 有无ABS控制的对比
写在最后欢迎加入我的自动驾驶仿真QQ交流群864462169
