精彩内容
与控制模型进行联合仿真是多体动力学软件的典型功能之一。MatSim表示把Matlab/Simulink模型导入到Simpack中进行联合仿真,其详细操作过程如下:
1
仿真环境
操作系统:Windows7 64位
Simpack版本:2017版64位
Matlab版本:R2014b
编译器:VisualStudio 2012
注意:Matlab软件安装要求不带空格,如果带有空格
(例如D:\Program Files\MATLAB\R2014b)会导致编译时报错。
2
仿真模型
本例仿真模型使用SimpackDocumentation文档中实例模型。点击下图“here”进行下载。该模型已经存放在当前文件夹中,可直接使用。
Simpack模型如下,包含两个质量块,其中一个通过弹簧阻尼器力元连接。
本模型使用MatSIM仿真的目的是通过Simulink控制程序导入到Simpack中实现控制,具体来说,是Simulink控制程序导入Simpack中,实现FE04弹簧阻尼器力元的作用。
3
软件配置
在第一次进行MatSIM仿真之前,需要对Matlab进行配置,并安装必要的编译器。
(1)Matlab中设置Simpack路径
打开Matlab软件,点击“设置路径”按钮,在“设置路径”对话框中添加Simpack 2017安装路径下的matsim文件夹,如下图所示。点击“保存”后关闭该对话框。
(2)Matlab中设置编译器
在此步骤操作之前,确保计算机中已经安装了C语言编译器。
在Matlab命令窗口中输入mex –setup命令并设置Visual C++ 2012为C++语言编译器。
也可以使用其它编译器。
4
Matlab/Simulink中导出matsim文件
(1)设置Matlab工作路径
在Matlab中设置模型文件夹中的tutorial_matsim_I\simulink_model文件夹为工作路径,这样编译生成的文件将会保存在该文件夹中。
(2)设置Simulink模型中参数值
打开simulink_model文件夹中的tutorial_matsim_start_spr_dmp_01.mdl模型,可以看到模型中定义了两个参数变量Stiffness和Damping,为了获取这两个参数值,需要在Matlab命令窗口中输入下面两条命令,定义参数值。
>> Stiffness=10
>> Damping=1
完成后,在工作区窗口显示两个变量名称和数值。
(3)Simulink求解器设置
在Simulink窗口中点击Simulation菜单下的ModelConfiguration Parameters命令或相关按钮,打开该对话框。
在Solver页面中,Type选择“Variable-step”选项,其它保持默认如下图所示。
注意:不要选择Fixed-step,否则会报如下错误。
Optimization -> Signals and Parameters页面中,勾选InlineParameters项并点击Configure …按钮,选择左侧栏参数并点击“Add to table”按钮,添加到右侧栏中。
Code Generation页面中,通过点击Browse…按钮选择matsim.tlc,为目标文件类型,其它参数保持默认如下图所示。
在MatSIM Options页面中,可以设置生成的MatSIM文件的名称,推荐使用默认设置(即与模型名称保持一致)。
进行上述设置过程中,注意保存修改。
(4)导出Simulink代码
在完成上述设置并保存后,在Configuration Parameters对话框中的Code Generation页面中,点击Build按钮,生成控制模型的代码。
完成后,在simulink_model文件夹中生成相关文件和文件夹。tutorial_matsim_start_spr_dmp_01文件夹及包含的内容为Simpack所需的文件。
以上完成在Matlab中的操作。
5
在Simpack中进行MatSIM设置
(1)数据库配置
把Matlab生成的tutorial_matsim_start_spr_dmp_01文件夹复制到Simpack数据库\tutorial_matsim_I\database\mbs_db_matsim文件夹中,其目录结构如下图所示。
注意:mbs_db_matsim是关键字,MatSIM仿真必须使用mbs_db_matsim作为文件夹名称。若没有该文件夹,需要自己创建该文件夹。
(2)设置Search Path路径
在Simpack中打开main_model文件夹中的tutorial_matsim_start_01.spck模型,设置Search Path为database文件夹。
(3)创建控制传感器Sensor
创建控制传感器用来测量大地和$B_Mass_MatSIM质量块之间的位移和速度。创建一个Control Element的名称为$C_Kin_measurements
(4)创建MatSIM控制元件
创建名称为$C_MatSIM的控制元件,用于定义MatSIM控制,参数设置如下。MatSIM modelname为database\mbs_db_matsim文件夹中的tutorial_matsim_start_spr_dmp_01,点击钮选择输入。
(5)创建由控制驱动的力元
创建一个名称为$F_Spring_MatSIM的力元,作用在$B_Mass_MatSIM质量块上。其参数设置如下。
注意:第8个参数L:Drive constant L=K*(u1+u2)在2017版本及后续版本(如2018版)中设置为-1,在以前的老版本中(如9.10版本)设置为1.
6
在Simpack中进行MatSIM联合仿真并查看结果
完成上述设置后,在Simpack中进行MatSIM仿真。
首先在求解器中设置仿真时间和采样频率。
进行离线时域分析,仿真完成后,打开tutorial_matsim_start_01.spf后处理文件,在Simpack后处理中查看MatSIM仿真结果,并与FE04力元进行比较。
以上完成Simpack与Matlab/Simulink之间的MatSIM联合仿真操作。
注意:Simpack 2017版MatSIM仿真官方支持的MATLAB版本有:R2011a/b, R2012a/b,R2013a/b, R2014a/b,R2015a/b以及R2016a,其它版本需要测试验证.详细信息请查阅《Simpack_2017_InstallationGuide.pdf》文档。
作者水平有限,欢迎大家一起交流。
领取专属 10元无门槛券
私享最新 技术干货