Каждая 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 должны реализовать следующие методы обратного вызова:
настройка
Задает размеры различных параметров в SimStruct
, такие как количество выходных портов для блока.
Выходные параметры
Вычисляет вывод блока.
– Выполняет любые действия, требуемые при завершении моделирования. Если никакие действия не требуются, эта функция может быть реализована как тупик.Terminate
Для получения информации о записи методов обратного вызова смотрите Уровень 2 Записи S-функции MATLAB.
Следующие методы обратного вызова являются дополнительными. Механизм вызывает дополнительный обратный вызов, только если S-функция задает обратный вызов.
Уровень 2 S-функция MATLAB | Функция MATLAB | S-функция | Разработчик S-функции