Simpack与Matlab/Simulink联合仿真之MatSim

精彩内容

与控制模型进行联合仿真是多体动力学软件的典型功能之一。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》文档。

作者水平有限,欢迎大家一起交流。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180323G07ZFY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励