许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Adams导入Matlab生成的FMU模型,联合仿真配置

Adams导入Matlab生成的FMU模型,联合仿真配置

阅读数 4
点赞 0
article_banner


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在此处还需要借助一些手段才能实现(实现方法有多种),造成了初学者甚至有一些软件使用经验人员的困难,为此,希望本文对大家有所帮助。




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空