В процессе моделирования моделей, содержащих блоки 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
.
Это порядки вызова для методов FMI, которые вызывают методы коллбэка S-функции.
В конце компиляции блок FMU выполняет действия настройки путем вызова этих методов FMI:
fmiGetTypesPlatform
fmiGetVersion
fmiInstantiateModel
fmiSetTime
Для переменных со значениями запуска, fmiSetXXX
В начале симуляции блок FMU настраивает внутренние состояния и выполняет другие действия инициализации путем вызова fmiSetXXX
методы для настраиваемых параметров.
Во время этой фазы блок FMU вычисляет выходные параметры на шаге текущего времени путем вызова этих методов FMI:
Если вызов является первым шагом:
fmiSetXXX
fmiInitialize
Если событие имеет место, fmiEventUpdate
Если вызов не является первым шагом:
fmiSetTime
fmiSetXXX
(для входа)
fmiSetContinuousStates
fmiCompletedIntegratorStep
Если событие имеет место, fmiEventUpdate
Для выхода, fmiGetXXX
Блок FMU вычисляет состояния на шаге текущего времени и выполняет другие основные действия временного шага путем вызова fmiSetXXX
методы для входа.
Блок FMU вычисляет производные непрерывных состояний FMU путем вызова этих методов FMI:
fmiSetTime
fmiSetContinuousStates
fmiGetDerivatives
Блок FMU вычисляет вектор пересечения нулем из индикатора события FMU путем вызывания этих функций FMI:
fmiSetTime
fmiSetContinuousStates
fmiGetEventIndicators
В конце симуляции блок FMU выполняет действия прежде, чем отключить симуляцию путем вызова этих методов FMI:
fmiTerminate
fmiFreeModelInstance
Это порядки вызова для методов FMI, которые вызывают методы коллбэка S-функции.
В конце компиляции блок FMU выполняет действия настройки путем вызывания этих функций FMI:
fmiGetTypesPlatform
fmiGetVersion
fmiInstantiateModel
fmiSetTime
Для переменных со значениями запуска, fmiSetXXX
В начале симуляции блок FMU настраивает внутренние состояния и выполняет другие действия инициализации путем вызова их fmiSetXXX
методы для настраиваемых параметров.
Блок FMU вычисляет выходные параметры на шаге текущего времени путем вызывания этих функций FMI:
Если вызов является первым шагом:
fmiSetXXX
fmiInitialize
Если событие имеет место, fmiEventUpdate
Если вызов не является первым шагом, fmiDoStep
,
Для выхода, fmiGetXXX
Блок FMU вычисляет состояния на шаге текущего времени и выполняет другие основные действия временного шага путем вызова fmiSetXXX
методы для входа.
В конце симуляции блок FMU выполняет действия прежде, чем отключить симуляцию. Это вызовы метода эти методы:
fmiTerminate
fmiFreeModelInstance
Это порядки вызова для методов FMI, которые вызывают методы коллбэка S-функции.
В конце компиляции блок FMU выполняет действия настройки путем вызова этих методов FMI:
fmi2GetTypesPlatform
fmi2GetVersion
fmi2Instantiate
Для переменных со значениями запуска, fmi2SetXXX
В начале симуляции блок FMU настраивает внутренние состояния и выполняет другие действия инициализации путем вызова этих методов FMI:
Для переменных со значениями запуска, fmi2SetXXX
fmi2SetupExperiment
Во время этой фазы блок FMU вычисляет выходные параметры на шаге текущего времени путем вызова этих методов FMI:
Если вызов является первым шагом:
fmi2EnterInitializationMode
Для входа, fmi2SetXXX
fmi2InitializationMode
Если вызов не является первым шагом, fmi2DoStep
Для выхода, fmi2GetXXX
Во время этой фазы блок FMU вычисляет состояния на шаге текущего времени и выполняет другие основные действия временного шага. Это вызовы метода fmi2SetXXX
для входа.
В конце симуляции блок FMU выполняет действия прежде, чем отключить симуляцию путем вызова этих методов:
fmi2Terminate
fmi2FreeModelInstance
Это порядки вызова для методов FMI, которые вызывают методы коллбэка S-функции.
В конце компиляции блок FMU выполняет действия настройки путем вызова этих методов FMI:
fmi2GetTypesPlatform
fmi2GetVersion
fmi2Instantiate
Для переменных со значениями запуска, fmi2SetXXX
В начале симуляции блок FMU настраивает внутренние состояния и выполняет другие действия инициализации путем вызова этих методов FMI.
Для настраиваемых параметров, fmi2SetXXX
fmi2SetupExperiment
Блок FMU вычисляет выходные параметры на шаге текущего времени путем вызова этих методов FMI:
Если вызов является первым шагом:
fmi2EnterIntializationMode
Для входа, fmi2SetXXX
fmi2ExitIntializationMode
Если вызов не является первым шагом:
fmi1SetTime
Для непрерывного входа, fmi2SetXXX
fmi2SetContinuousStates
fmi2SetContinuousStates
fmi2CompletedIntegratorStep
Если событие имеет место:
fmi2EnterEventMode
Для входа, fmi2SetXXX
fmi2NewDiscreteStates
fmi2EnterContinuousTimeMode
Если событие имеет место:
fmi2EnterEventMode
Для входа, fmi2SetXXX
fmi2NewDiscreteStates
fmi2EnterContinuousTimeMode
Для выхода, fmi2GetXXX
Блок FMU вычисляет состояния на шаге текущего времени и выполняет другие основные действия временного шага путем вызова fmi2SetXXX
методы для входа.
Блок FMU вычисляет производные непрерывных состояний FMU путем вызова этих методов FMI:
fmi2SetTime
fmi2SetContinuousStates
fmi2GetEventIndicators
Блок FMU вычисляет вектор пересечения нулем из индикатора события FMU путем вызова этих методов FMI:
fmi2SetTime
fmi2SetContinuousStates
fmi2GetEventIndicators
В конце симуляции блок FMU выполняет действия прежде, чем отключить симуляцию путем вызова этих методов:
fmi2Terminate
fmiFreeInstance