Вызывающие последовательности блока FMU

В процессе моделирования моделей, содержащих блоки FMU, как Simulink® проходит через различные фазы механизма Simulink, блоки FMU вызывают Co-симуляцию FMU и методы Exchange Модели для Версий 1.0 и 2.0 FMI (fmi* и fmi2Методы. Эта тема представляет Стандартные последовательности вызова FMI в тех фазах.

Эта тема использование:

  • fmiSetXXX (Версия 1.0 FMI) и fmi2SetXXX (Версия 2.0 FMI), чтобы представлять любой из методов: fmiSetReal/fmi2SetReal, fmiSetInteger/fmi2SetInteger, fmiSetBoolean/fmi2SetBoolean, или fmiSetString/fmi2SetString.

  • fmiGetXXX (Версия 1.0 FMI) и fmi2GetXXX (Версия 2.0 FMI), чтобы представлять любой из методов: fmiGetReal/fmi2GetReal, fmiGetInteger/fmi2GetInteger, fmiGetBoolean/fmi2GetBoolean, или fmiGetString/fmi2GetString.

Последовательность вызова Co-симуляции для версии 1.0 FMI

Это порядки вызова для методов FMI, которые вызывают методы коллбэка S-функции.

Фаза Setup

В конце компиляции блок 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

Последовательность вызова Exchange модели для версии 1.0 FMI

Это порядки вызова для методов FMI, которые вызывают методы коллбэка S-функции.

Фаза Setup

В конце компиляции блок 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

Последовательность вызова Co-симуляции для версии 2.0 FMI

Это порядки вызова для методов FMI, которые вызывают методы коллбэка S-функции.

Фаза Setup

В конце компиляции блок 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

Последовательность вызова Exchange модели для версии 2.0 FMI

Это порядки вызова для методов FMI, которые вызывают методы коллбэка S-функции.

Фаза Setup

В конце компиляции блок 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. fmiFreeInstance

Смотрите также

Внешние веб-сайты