设计仿真 | Adams导入Matlab生成的FMU
Adams概述
Adams的机电一体化功能,结合广泛使用的Matlab有丰富的应用场景。基于FMI协议接口实现了广泛的数据传输与关联,前面对Adams生成FMU导入Matlab已有文章描述,这里对Matlab生成FMU再导入Adams的操作流程进行阐述。相对前者,后面这一流程需要一些第三方辅助功能加以实现,本文针对整个过程进行说明。
Adams模型准备
所使用的模型为Adams安装路径下的模型,具体为:
将上述路径下的antenna.cmd和antenna.mdl拷贝到指定的工作路径下,二者分别对应Adams和Matlab/Simulink的模型。
AdamsMatlab准备及FMU生成
由于Matlab/Simulink中只有FMI导入功能,并没有现成的FMU生成功能,因此,需要一些外部辅助功能,这里以FMIkit-Simulink-3.1为例进行说明。
首先需要将FMIkit-Simulink-3.1压缩包进行解压,存放的位置随意,后面通过路径加载方式将其位置告知Matlab即可。
addpath('D:\msc_setup\matlab\fmi\FMIKit-Simulink-3.1')
上述代码完成FMIkit的加载,然后通过FMIKit.initialize()实现对其的初始化。至此,准备工作完成。
接着,打开控制模型antenna.mdl,对其进行子系统封装,将输入输出端口留好。这一步类似于Adams与Matlab传统关联的方式中Setio的命令功能,该命令会将用于本次联合仿真的输入输出端口留好,以备后面二者关联时使用。但是执行其之前,还是需要Adams导出M文件,并在Matlab主窗口中执行等操作。相对而言使用FMI接口就没有这些操作,Adams中没有输出M文件类似的操作,Matlab中也没有执行其它命令的操作,整体操作更加快捷高效。具体子结构的生成,对于有Matlab/Simulink使用经验的用户应该不是问题,可以在右键菜单中直接将选中模型进行子结构化,亦可以使用Simulink的子结构元件进行定义。子结构定义完成后,甚至还可以进行一些封装的定义,使得展现更直观等。具体如下所示:
打开模型参数设置对话框,求解器类型这里选择固定步长,如下所示:
由于FMU模型其核心就是DLL文件,将Simulink模型转化为动态链接库,本质上是一个代码编译、链接、生成的过程,因此会需要当前计算机上有合乎要求的编译器支持,比如VS系列版本或者其它类型编译器等。而整个过程是通过Matlab的RTW功能或者现在叫做Code Generation功能进行实现的。通过选择合适的目标语言编译器的系统目标文件,这里选择grtfmi.tlc按照特定的逻辑执行编译过程,将生成符合要求的FMU模型文件。
在FMI项中,可以选择将来生成的FMU中所包含的数据,如下所示中将会在FMU中具备模型图像和sources文件夹,而binaries和.xml文件是必备的内容。
利用CMake功能,基于选定的编译器和平台类型,完成整个编译过程。
最后一步,就是点击下图中的Build按钮完成这个过程,生成所需的FMU文件。
Adams导入FMU及计算
完成了FMU的生成,转入Adams中,启动多体模型,然后利用Adams/Controls中的Import功能,将改FMU文件导入,当然,其本质是导入其中的DLL文件。具体操作如下所示:按照一般状态方程的模式进行数据的转化,因此,需要定义一个一般状态方程的名称,将来所有相关数据都在该对象之下。另外,由于没有用Adams/Controls的输出,所以这里的Import I/O Signals from Existing Controls Plant按钮点击没有任何响应,可以直接利用下面的From Poutput/Pinput完成输入输出信息的关联。最后,可以按照实际要求设定交互时间等。确认后,将会收到相关的反馈信息。
下图中展示的是其相关物理量
上面两图为立柱的转角,只不过前一图是通过端口信号获得,没有单位,后一图为直接测量立柱的角速度获得,可以看到两者数值上是严格一致的。下图为角位移。
Adams总 结
Matlab或其它一维软件生成的FMU导入Adams中进行联合仿真应用,在实际工程中有丰富的应用场景,而且这种方式,由于以Adams为主展开仿真,因此,对于很多基于多体的仿真形式得以方便地实现,比如联合仿真下的变拓扑分析,虽然我们前面有文章描述将Adams模型导入Matlab中进行变拓扑分析的方法,但是,仍旧还是直接在Adams中实现更为方便,也更适合更广泛的用户全体的需求。只不过对于常规软件生成FMU看似必备的功能,而Matlab在此处还需要借助一些手段才能实现(实现方法有多种),造成了初学者甚至有一些软件使用经验人员的困难,为此,希望本文对大家有所帮助。
提交
会议通知 | 关于召开全国智能检测与先进制造行业产教融合共同体2024年会
线下培训 | PC-DMIS应用提升年终培训,12月28日-29日,青岛开班!
生产制造 | 数控加工仿真-NCSIMUL如何设置角度头刀具
线下培训 | VTD & Cradle CFD免费培训正在报名中
设计仿真 | Simufact Welding焊接工艺仿真网格划分技巧