以结构作为输入参数的c代码的FMU导出
我的研究项目组正在尝试将matlab代码导出为FMU。 我们提出的方法之一是从matlab脚本生成c代码,并将c代码导出为FMU。 我很好奇是否有任何工具可以将c代码打包为FMU?如果没有,是否有其他方法来实现这一点 在@mklingn的回答后更新问题以结构作为输入参数的c代码的FMU导出,c,fmi,C,Fmi,我的研究项目组正在尝试将matlab代码导出为FMU。 我们提出的方法之一是从matlab脚本生成c代码,并将c代码导出为FMU。 我很好奇是否有任何工具可以将c代码打包为FMU?如果没有,是否有其他方法来实现这一点 在@mklingn的回答后更新问题 我曾尝试使用bouncingball.c进行编辑,但我面临的问题是,在提供的每个示例中,变量都被视为布尔或双精度数据类型。在我的例子中,输入之一是结构,例如,我的c文件是生成的 #include "mult.h" /* Function Def
我曾尝试使用bouncingball.c进行编辑,但我面临的问题是,在提供的每个示例中,变量都被视为布尔或双精度数据类型。在我的例子中,输入之一是结构,例如,我的c文件是生成的
#include "mult.h"
/* Function Definitions */
/*
* Arguments : double u
* double v
* const struct0_T *m
* Return Type : double
*/
double mult(double u, double v, const struct0_T *m)
{
double y;
y = u * v * m->x[2];
/* fcn(u,v ,'parameter1',m,'parameter2',n) */
return y;
}
并且生成了.h文件
#ifndef MULT_H
#define MULT_H
typedef struct {
char y[6];
double x[6];
} struct0_T;
extern double mult(double u, double v, const struct0_T *m);
#endif
因此,根据您的第2点:FMI 2.0版不可能进行这种导出。我理解你的观点正确吗?你可以抓住这个机会。它有几个用C实现的示例,既用于协同仿真(我想这就是您想要的),也用于模型交换
您可以使用其中一个示例作为起点(例如,上面链接的zip文件中的fmu20/src/models/bouncingBall)。对其进行调整需要相当多的手工工作,但您对界面了解了很多
要记住两件事: