Методы обратного коллбэка S-функции

Обзор методов коллбэка

Каждая S-функция должна реализовать набор методов, называемых методами коллбэка, что Simulink® engine вызывает при симуляции модели, которая содержит S-функцию.

Методы коллбэка S-функции выполняют задачи, необходимые на каждом этапе симуляции. Во время симуляции модели на каждом этапе симуляции двигатель Simulink вызывает соответствующие методы для каждого блока S-Function в модели.

Задачи, выполняемые методами коллбэка S-функции, включают:

  • Инициализация - Перед первым циклом симуляции двигатель инициализирует S-функцию, включая:

    • Инициализация SimStruct, структуру симуляции, которая содержит информацию о S-функции

    • Установка количества и размерностей входа и выхода портов

    • Установка шагов расчета блока

    • Выделение складских площадей

  • Вычисление следующей выборки хита - Если вы создали блок переменного шага расчета, этот этап вычисляет время следующей выборки хита; то есть вычисляет размер следующего шага.

  • Вычисление выходов в основном временном шаге - после завершения этого вызова все выходные порты блоков действительны для текущего временного шага.

  • Обновление дискретных состояний в основном временном шаге - В этом вызове блок выполняет действия один раз в раз, такие как обновление дискретных состояний.

  • Интегрирование - Это относится к моделям с непрерывными состояниями и/или неавторизованными пересечениями нуля. Если ваша S-функция имеет непрерывные состояния, двигатель вызывает выходные и производные фрагменты вашей S-функции в незначительных временных шагах. Это значит, что решатели могут вычислить состояния для вашей S-функции. Если ваша S-функция имеет незащищенные пересечения нуля, двигатель также вызывает выходы и пересечения нулем фрагментов вашей S-функции в незначительных временных шагах, чтобы он мог определить местоположение пересечений нуля.

    Примечание

    Описание основных и незначительных временных шагов см. в разделе Фазы симуляции в динамических системах.

Некоторые методы коллбэка являются необязательными. Механизм вызывает дополнительный коллбэк, только если S-функция задает коллбэк.

Методы коллбэка для S-функций MEX C

Необходимые методы коллбэка

S-функции MEX C должны реализовывать следующие методы коллбэка:

  • mdlInitializeSizes - Определяет размеры различных параметров в SimStruct, например, количество выходных портов для блока.

  • mdlInitializeSampleTimes - Задает шаги (шаги) расчета блока.

  • mdlOutputs - Вычисляет выход блока.

  • mdlTerminate - Выполняет любые действия, необходимые при завершении симуляции. Если никаких действий не требуется, эта функция может быть реализована как заглушка.

Дополнительные методы коллбэка

Следующие методы коллбэка являются необязательными. Механизм вызывает дополнительный коллбэк, только если S-функция задает коллбэк.

Методы коллбэка для Level-2 S-функций MATLAB

Необходимые методы коллбэка

Level-2 MATLAB S-функции должны реализовать следующие методы коллбэка:

  • setup - Определяет размеры различных параметров в SimStruct, например, количество выходных портов для блока.

  • Outputs - Вычисляет выход блока.

  • Terminate - Выполняет любые действия, необходимые при завершении симуляции. Если никаких действий не требуется, эта функция может быть реализована как заглушка.

Для получения информации о записи методов коллбэка смотрите Запись Level-2 MATLAB S-Functions.

Дополнительные методы коллбэка

Следующие методы коллбэка являются необязательными. Механизм вызывает дополнительный коллбэк, только если S-функция задает коллбэк.

См. также

| | |

Похожие темы