如何在64位Matlab / Simulink中使用FMIKit生成32位二进制FMU?

问题描述 投票:0回答:1

我已经在64位Matlab / Simulink(Matlab2017a)中成功使用FMIKit2.7(来自[https://github.com/CATIA-Systems/FMIKit-Simulink])生成了64位二进制FMU,这确实很有用。但是,现在其他仿真工具需要使用32位二进制FMU进行协同仿真,我遵循以下方式:[https://ww2.mathworks.cn/help/coder/ug/build-32-bit-dll-on-64-bit-windows(r)-platform-using-msvc-toolchain.html?s_tid=srchtitle]向64位Matlab添加了32位编译器工具链。此外,“硬件实现”选择为Intel-> x86-32(Windows32),“系统目标文件”选择为rtwsfcnfmi.tlc。 FMI选件将输出设置为协仿真类型FMU。

Hardware Implementation

System Target File

FMI Option

但是,实际上,FMIKit生成的FMU仍然是64位二进制FMU。

我的猜测是FMIKit在编译和链接过程中会自动选择64位编译器。我需要做什么来修改FMIKit配置文件(例如.tlc文件或其他文件)或Matlab / Simulink来生成32位二进制FMU?

matlab dll simulink fmi
1个回答
0
投票

您应该使用由rtwsfcn.tlc目标安装的grtfmi.tlc目标。然后,您要么配置cmake-build即可直接生成32位FMU。 (我对此并不熟悉。但是为不同的VisualStudio版本提供了不同的cmake生成器,其中一些的名称为64。其他的32bit也是吗?)enter image description here

作为替代:检查“在FMU中包括源”

enter image description here

然后您可以随后编译FMU,例如使用32位python版本的fmpy(命令行或gui->帮助->添加平台二进制文件)。您不能将Anaconda安装用于最新的32位fmpy版本,请参见https://github.com/CATIA-Systems/FMPy/issues/64

© www.soinside.com 2019 - 2024. All rights reserved.