主要内容

FMU块调用序列

在包含FMU块的仿真模型,仿真软件万博1manbetx®通过不同的仿真软件引擎阶段,FMU块调用FMU联合万博1manbetx仿真和模型交换方法FMI版本1.0和2.0 (fmi*和fmi2*方法)。这个话题了FMI标准在这些阶段调用序列。

这个主题的用途:

  • fmiSetXXX(FMI版本1.0)fmi2SetXXX(FMI版本2.0)代表的方法:fmiSetReal/fmi2SetReal,fmiSetInteger/fmi2SetInteger,fmiSetBoolean/fmi2SetBoolean,或fmiSetString/fmi2SetString

  • fmiGetXXX(FMI版本1.0)fmi2GetXXX(FMI版本2.0)代表的方法:fmiGetReal/fmi2GetReal,fmiGetInteger/fmi2GetInteger,fmiGetBoolean/fmi2GetBoolean,或fmiGetString/fmi2GetString

联合仿真FMI版本1.0的调用序列

这些调用订单FMI s函数回调方法调用的方法。

设置阶段

编译,年底FMU块执行设置活动通过调用这些FMI方法:

  1. fmiGetTypesPlatform

  2. fmiGetVersion

  3. fmiInstantiateModel

  4. fmiSetTime

  5. 变量的值开始,fmiSetXXX

初始化阶段

的模拟,FMU块设置内部状态和执行其他通过调用初始化活动fmiSetXXX可调参数的方法。

输出阶段

在这个阶段,FMU块计算输出在当前时间步通过调用这些FMI方法:

  1. 如果调用是第一步:

    1. fmiSetXXX

    2. fmiInitialize

    3. 如果一个事件发生时,fmiEventUpdate

  2. 如果调用没有第一步:

    1. fmiSetTime

    2. fmiSetXXX(输入)

    3. fmiSetContinuousStates

    4. fmiCompletedIntegratorStep

    5. 如果一个事件发生时,fmiEventUpdate

  3. 为输出,fmiGetXXX

更新阶段

FMU块计算在当前时间步和执行其他主要通过调用时间步的活动fmiSetXXX输入的方法。

衍生品相

FMU连续状态的FMU块计算衍生品通过调用这些FMI方法:

  1. fmiSetTime

  2. fmiSetContinuousStates

  3. fmiGetDerivatives

讨论二阶导数过零信号相位

FMU块计算的零交点向量FMU事件通过调用这些FMI功能指标:

  1. fmiSetTime

  2. fmiSetContinuousStates

  3. fmiGetEventIndicators

终止阶段

在仿真结束时,FMU块执行活动之前终止仿真通过调用这些FMI方法:

  1. fmiTerminate

  2. fmiFreeModelInstance

模型交换调用序列FMI 1.0版

这些调用订单FMI s函数回调方法调用的方法。

设置阶段

编译,年底FMU块执行设置活动通过调用这些FMI功能:

  1. fmiGetTypesPlatform

  2. fmiGetVersion

  3. fmiInstantiateModel

  4. fmiSetTime

  5. 变量的值开始,fmiSetXXX

初始化阶段

的模拟,FMU块设置内部状态和执行其他初始化活动通过调用这些fmiSetXXX可调参数的方法。

输出阶段

FMU块计算输出在当前时间步通过调用这些FMI功能:

  1. 如果调用是第一步:

    1. fmiSetXXX

    2. fmiInitialize

    3. 如果一个事件发生时,fmiEventUpdate

  2. 如果调用没有第一步,fmiDoStep,

  3. 为输出,fmiGetXXX

更新阶段

FMU块计算在当前时间步和执行其他主要通过调用时间步的活动fmiSetXXX输入的方法。

终止阶段

在仿真结束时,FMU块之前终止仿真执行活动。这个方法调用这些方法:

  1. fmiTerminate

  2. fmiFreeModelInstance

联合仿真FMI版本2.0的调用序列

这些调用订单FMI s函数回调方法调用的方法。

设置阶段

编译,年底FMU块执行设置活动通过调用这些FMI方法:

  1. fmi2GetTypesPlatform

  2. fmi2GetVersion

  3. fmi2Instantiate

  4. 变量的值开始,fmi2SetXXX

初始化阶段

的模拟,FMU块设置内部状态和执行其他初始化活动通过调用这些FMI方法:

  1. 变量的值开始,fmi2SetXXX

  2. fmi2SetupExperiment

输出阶段

在这个阶段,FMU块计算输出在当前时间步通过调用这些FMI方法:

  1. 如果调用是第一步:

    1. fmi2EnterInitializationMode

    2. 为输入,fmi2SetXXX

    3. fmi2InitializationMode

  2. 如果调用没有第一步,fmi2DoStep

  3. 为输出,fmi2GetXXX

更新阶段

在此阶段,FMU块计算状态在当前时间步和执行其他主要时间步的活动。这个方法调用fmi2SetXXX为输入。

终止阶段

在仿真结束时,FMU块执行活动之前终止仿真通过调用这些方法:

  1. fmi2Terminate

  2. fmi2FreeModelInstance

模型交换调用序列FMI 2.0版

这些调用订单FMI s函数回调方法调用的方法。

设置阶段

编译,年底FMU块执行设置活动通过调用这些FMI方法:

  1. fmi2GetTypesPlatform

  2. fmi2GetVersion

  3. fmi2Instantiate

  4. 变量的值开始,fmi2SetXXX

初始化阶段

的模拟,FMU块设置内部状态和执行其他初始化活动通过调用这些FMI方法。

  1. 可调参数,fmi2SetXXX

  2. fmi2SetupExperiment

输出阶段

FMU块计算输出在当前时间步通过调用这些FMI方法:

  1. 如果调用是第一步:

    1. fmi2EnterIntializationMode

    2. 为输入,fmi2SetXXX

    3. fmi2ExitIntializationMode

  2. 如果调用没有第一步:

    1. fmi1SetTime

    2. 连续输入,fmi2SetXXX

    3. fmi2SetContinuousStates

    4. fmi2SetContinuousStates

    5. fmi2CompletedIntegratorStep

    6. 如果一个事件发生时:

      1. fmi2EnterEventMode

      2. 为输入,fmi2SetXXX

      3. fmi2NewDiscreteStates

      4. fmi2EnterContinuousTimeMode

      5. 如果一个事件发生时:

        1. fmi2EnterEventMode

        2. 为输入,fmi2SetXXX

        3. fmi2NewDiscreteStates

        4. fmi2EnterContinuousTimeMode

  3. 为输出,fmi2GetXXX

更新阶段

FMU块计算在当前时间步和执行其他主要通过调用时间步的活动fmi2SetXXX输入的方法。

衍生品相

FMU连续状态的FMU块计算衍生品通过调用这些FMI方法:

  1. fmi2SetTime

  2. fmi2SetContinuousStates

  3. fmi2GetEventIndicators

讨论二阶导数过零信号相位

FMU块计算的零交点向量FMU事件指标通过调用这些FMI方法:

  1. fmi2SetTime

  2. fmi2SetContinuousStates

  3. fmi2GetEventIndicators

终止阶段

在仿真结束时,FMU块执行活动之前终止仿真通过调用这些方法:

  1. fmi2Terminate

  2. fmi2FreeInstance

另请参阅

外部网站