在图4.10(a)所示的CarSim主界面中单击“新建”按钮,新建一组Dataset,如图4.10(b)所示,分别输入“Example”和“MPCtest1”,然后单击“Set”按钮,完成新建。
选择主菜单中的“Datasets”下拉菜单,如图4.11所示,会发现Example一栏中多出“MPCTest1”。
单击图4.12(a)中的下三角,选择相应的车型,如选择CS B-Class,Hatchback车型,如图4.12(b)所示。
单击如图4.13(a)所示新建工况,即出现如图4.13(b)所示的界面,在此界面新建满足要求的仿真工况。
图4.10 CarSim主界面
(a)CarSim主界面;(b)新建Dataset
图4.11 上一步所新建的Dataset
图4.12 选择车型
图4.13 仿真工况设置
(a)单击进入仿真工况界面;(b)仿真工况设置的主界面
新建仿真工况,在图4.14的文本框中依次输入“MPC Example”和“new-Split Mu”,单击“Set”按钮完成新建。
图4.14 新建仿真工况
然后,根据要求设置仿真工况如下。
(1)目标车速为18 km/h。
(2)无制动。
(3)挡位控制选用闭环AT六挡模式。
(4)无转向。
(5)路面选择为1 km2摩擦系数为1.0的方形路面。
(6)完成设置后,如图4.15所示。
图4.15 仿真工况设置
同样,在设置仿真工况的主界面设置仿真时间为30 s,将仿真步长设置为“0.001s”,如图4.16所示。
图4.16 仿真时间与仿真步长设置
单击如图4.17所示的Models选项,选择“Models:Simulink”,然后选择“[Link to New Dataset]”,在 弹 出 的 对 话 框 中 依 次 输 入“Example”和“MPCtest1”,单击“Create and Link”,完成新建,如图4.18所示。
单击如图4.19(a)所示的“MPCtest1”,将会弹出如图4.19(b)所示的Simulink{Example}MPCtest1的主界面,在其中选择相关路径。
(7)浏览工作路径:D:\Users\Public\Documents\CarSim_Data。
图4.17 选择Simulink接口和Link to New Dataset
(www.xing528.com)
图4.18 选择新建的“MPCtest1”
(8)Simulink Model的路径:D:\Users\Public\Documents\CarSim_Data\Extensions\Simulink\MPCtest1.mdl。
单击如图4.20(a)所示的“Import Channels”,定义CarSim的导入变量。选择“I/O Channels:Import”;然后单击如图4.20(b)所示的“[Copy and Link Dataset]”;输入“MPCtest1 input”,如图4.20(c)所示。
图4.19 设置工作路径和Simulink工程所在的路径
(a)单击“MPCtest1”;(b)Simulink{Example}MPCtest1的主界面
图4.20 新建MPCtest1 input
(a)选择I/O Channels:Import;(b)Copy and Link Dataset;(c)命名为MPCtest1 input
单击,显示如图4.21所示内容,这时需要浏览找到,这里为Programs\solvers\ReadMe\f_i_i__s_imports_tab.txt。定义CarSim的导入变量为车速和4个车轮的转角,顺序依次为IMP_SPEED(质心车速[km/h])、IMP_STEER_L1(左前 轮转角[°])、IMP_STEER_R1(右前轮转角[°])、IMP_STEER_L2(左后轮转角[°])、IMP_STEER_R2(右后轮转角[°]),如图4.21所示。
图4.21 定义CarSim导入变量
需要注意的是:CarSim的导入变量是和Simulink中MPC模型的输出量相对应的,所以这里的CarSim的导入变量应按照如图4.22的顺序排列选择。
图4.22 CarSim的导入变量
以同样的步骤定义CarSim导入变量相同。首先新建名为MPCtest1 output的一个dataset。单击,弹出如图4.23所示的界面。这时需要浏览找到,这 里 为Programs\solvers\ReadMe\i_i_outputs_tab.txt。定义CarSim的导出变量依次为X0(坐标系X轴的坐标值[m])、Y0(坐标系Y轴的坐标值[m])、Yaw(偏航角[°])、Vx(质心处的纵向车速[km/h])、Steer_SW(转向盘转角[°])。
图4.23 定义CarSim导出变量
需要注意的是:CarSim的导出变量(X0、Y0和Yaw)是和Simulink中MPC模型的输入量相对应的,CarSim的导出变量(Vx和Steer_SW)为观测量,所以这里的CarSim的导出变量应按照如图4.24的顺序排列选择。
图4.24 CarSim的导出变量
在CarSim的主界面单击“Send to Simulink”按钮,此时MATLAB及之前新建的空白 模型MPCtest1.mdl将被打开。将“CarSim S-Function”拖到MPCtest1.mdl中。完成上述设定后,CarSim通过外部接口将车辆模型发送至指定路径下的Simulink仿真文件中,CarSim模块即以S函数的形式增加到Simulink模型库中。
将Simulink Library Browser中的“S-Function”模块拖到MPCtest1.mdl中,并双击该图标,弹出如图4.25所示的对话框,在S-function name中输入“MY_MPCController3”。单击“Edit”按钮,将设计好的基于MPC的轨迹跟踪控制算法的M文件导入。注意此模块恰好有一个输入接口和一个输出接口,分别对应着轨迹跟踪控制器(MY_MPCController3)的导入变量和导出变量。
图4.25 S-Function对话框
其中,MY_MPCController3控制器模块的输入量为上一时刻CarSim模块的导出变量X0、Y0和Yaw。在如图4.26所示的Simulink/CarSim联合仿真平台中加入了延时模块。
图4.26 Simulink/CarSim联合仿真平台
MY_MPCController3控制器模块的输出量为v车速(m/s)和δ前轮偏角(deg),需对其转换成满足CarSim模块要求的导入变量:IMP_SPEED(质心车速[km/h])、IMP_STEER_L1(左前轮转角[°])、IMP_STEER_R1(右前轮转角[°])、IMP_STEER_L2(左后轮转角[°])、IMP_STEER_R2(右后轮转角[°])。所以在MY_MPCController3控制器模块的输出量与CarSim模块的导入变量之间加入转换函数。
定义:
在CarSim主界面,单击“Run Now”按钮,运行整个模型。说明:若对CarSim软件的参数(车辆参数、仿真工况等)进行修改,则再次单击,来重新读入修改后的参数,然后模型才能正常运行。若只在Simulink模型里作相应的修改,不会影响CarSim中的参数,直接单击模型。仿真运行结束后单击,可以查看仿真动画(图4.27)。同样,可单击绘制曲线。
图4.27 仿真动画
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。