首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FMI函数调用顺序(FMI2.0)

FMI函数调用顺序(FMI2.0)
EN

Stack Overflow用户
提问于 2019-09-24 09:27:33
回答 1查看 140关注 0票数 0

哪个呼叫顺序是正确的?

  1. fmi2SetReal/Integer/Boolean/String

fmi2SetupExperiment

fmi2EnterInitializationMode

  1. fmi2SetupExperiment

fmi2SetReal/Integer/Boolean/String

fmi2EnterInitializationMode

按照标准:

“在调用fmi2EnterInitializationMode函数之前,所有具有属性的变量必须在调用fmi2EnterInitializationMode之前至少调用一次”fmi2SetXXX“functions.fmi2SetupExperiment,以便定义startTime。”

但没有指定命令。

FMI标准中的伪代码有fmi2SetXXX和fmi2SetupExperiment

//通信步长

H= 0.01;

//设置所有变量开始值( "ScalarVariable // start")

S1_fmi2SetReal/整数/布尔/字符串(s1,.);

S2_fmi2SetReal/整数/布尔/字符串(s2,.);

//初始化奴隶

s1_fmi2SetupExperiment(s1,fmi2False,0.0,startTime,fmi2True,stopTime);

s2_fmi2SetupExperiment(s1,fmi2False,0.0,startTime,fmi2True,stopTime);

s1_fmi2EnterInitializationMode(s1);

哪个呼叫顺序是正确的,为什么?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-11-06 12:39:19

在第3.2.3节FMI标准版本2.0.1调用序列的状态机中,声明允许调用fmi2SetSEAfmi2SetupExperiment,其中SEA是一个变量的实、整数、布尔、字符串,变量的可变性不等于“常数”,在状态实例化时具有initial=“精确”或“大约”。

因此,顺序并不重要,FMI2.0支持工具的每个实现都必须支持这两种方式。

而且,由于fmi2SetupExperimentfmiSetSEA不更改相同的数据,所以只要不调用fmi2EnterInitializationMode,就不会有任何影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58077135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档