Каждая S-функция должна реализовать набор методов, названных методами коллбэка, что Simulink® механизм вызывает при симуляции модели, которая содержит S-функцию.
Методы коллбэка S-функции выполняют задачи, требуемые на каждом этапе симуляции. В процессе моделирования модели, на каждом этапе симуляции механизм Simulink вызывает соответствующие методы для каждого Блока s-function в модели.
Задачи, выполняемые методами коллбэка S-функции, включают:
Инициализация — До первого цикла симуляции, механизм инициализирует S-функцию, включая:
Инициализация SimStruct
, структура симуляции, которая содержит информацию о S-функции
Определение номера и размерностей портов ввода и вывода
Установка шагов расчета блока
Выделение областей хранения
Вычисление следующего демонстрационного хита — Если вы создали переменный блок шага расчета, этот этап, вычисляет время следующего демонстрационного хита; то есть, это вычисляет следующий размер шага.
Вычисление выходных параметров в главном временном шаге — После этого вызова завершено, все выходные порты блока допустимы для шага текущего времени.
Обновление дискретных состояний в главном временном шаге — В этом вызове, блок выполняет однажды на действия временного шага, такие как обновление дискретных состояний.
Интегрирование — Это применяется к моделям с непрерывными состояниями и/или не произвело нулевые пересечения. Если ваша S-функция имеет непрерывные состояния, механизм вызывает выход и производные фрагменты вашей S-функции на незначительных временных шагах. Это - так решатели, может вычислить состояния для вашей S-функции. Если ваша S-функция не произвела нулевые пересечения, механизм также вызывает выход и фрагменты нулевых пересечений вашей S-функции на незначительных временных шагах так, чтобы это могло определить местоположение нулевых пересечений.
Примечание
Смотрите Фазы Симуляции в Динамических системах для объяснения главных и незначительных временных шагов.
Некоторые методы коллбэка являются дополнительными. Механизм вызывает дополнительный коллбэк, только если S-функция задает коллбэк.
C S-функции MEX должен реализовать следующие методы коллбэка:
– Задает размеры различных параметров в mdlInitializeSizes
SimStruct
, такой как количество выходных портов для блока.
– Задает шаг (шаги) расчета блока.mdlInitializeSampleTimes
– Вычисляет выход блока.mdlOutputs
– Выполняет любые действия, требуемые при завершении симуляции. Если никакие действия не требуются, эта функция может быть реализована как заглушка.mdlTerminate
Следующие методы коллбэка являются дополнительными. Механизм вызывает дополнительный коллбэк, только если S-функция задает коллбэк.
Уровень 2 S-функции MATLAB должны реализовать следующие методы коллбэка:
Для получения информации о записи методов коллбэка смотрите Уровень 2 Записи S-функции MATLAB.
Следующие методы коллбэка являются дополнительными. Механизм вызывает дополнительный коллбэк, только если S-функция задает коллбэк.
Level-2 MATLAB S-Function | S-Function Builder | S-Function | MATLAB Function