Каждая S-функция должна реализовать набор методов, называемых методами обратного вызова, которые модуль Simulink ® вызывает при моделировании модели, содержащей S-функцию .
Методы обратного вызова S-функции выполняют задачи, необходимые на каждом этапе моделирования. Во время моделирования модели на каждом этапе моделирования механизм Simulink вызывает соответствующие методы для каждого блока S-функции в модели.
Задачи, выполняемые методами обратного вызова S-функции, включают в себя:
Инициализация - перед первым циклом моделирования механизм инициализирует S-функцию, включая:
Инициализация SimStruct, структура моделирования, которая содержит информацию о S-функции
Установка количества и размеров портов ввода и вывода
Установка времени образца блока
Распределение складских площадей
Расчет следующего попадания пробы - если вы создали переменный временной блок выборки, на этом этапе вычисляется время следующего попадания пробы; то есть вычисляется размер следующего шага.
Расчет выходов на основном временном шаге - после завершения этого вызова все выходные порты блока действительны для текущего временного шага.
Обновление дискретных состояний на основном временном шаге - в этом вызове блок выполняет действия один раз за шаг, такие как обновление дискретных состояний.
Интеграция - это относится к моделям с непрерывными состояниями и/или несамплированными пересечениями нулевого уровня. Если S-функция имеет непрерывные состояния, механизм вызывает выходную и производную части S-функции на второстепенных временных шагах. Это значит, что решатели могут вычислить состояния для вашей S-функции. Если S-функция не имеет отсчетов нулевых переходов, механизм также вызывает части выходных переходов и переходов нулевых переходов S-функции на второстепенных временных шагах, так что он может обнаружить переходы нулевых значений.
Примечание
Описание основных и второстепенных временных шагов см. в разделе Этапы моделирования в динамических системах.
Некоторые методы обратного вызова являются необязательными. Механизм вызывает необязательный обратный вызов только в том случае, если функция S определяет обратный вызов.
S-функции C MEX должны реализовывать следующие методы обратного вызова:
- Указывает размеры различных параметров в mdlInitializeSizesSimStruct, например, количество выходных портов для блока.
- указывает время выборки блока.mdlInitializeSampleTimes
- вычисляет выходной сигнал блока.mdlOutputs
- Выполняет все действия, необходимые для завершения моделирования. Если действия не требуются, эта функция может быть реализована как заглушка.mdlTerminate
Следующие методы обратного вызова являются необязательными. Механизм вызывает необязательный обратный вызов только в том случае, если функция S определяет обратный вызов.
Level-2 S-функции MATLAB должны реализовывать следующие методы обратного вызова:
setup - Указывает размеры различных параметров в SimStruct, например, количество выходных портов для блока.
Outputs - вычисляет выходной сигнал блока.
- Выполняет все действия, необходимые для завершения моделирования. Если действия не требуются, эта функция может быть реализована как заглушка.Terminate
Для получения информации о написании методов отзыва посмотрите, Пишут Уровню 2 MATLAB S-Functions.
Следующие методы обратного вызова являются необязательными. Механизм вызывает необязательный обратный вызов только в том случае, если функция S определяет обратный вызов.
Level-2 S-функция MATLAB | Функция MATLAB | S-функция | Построитель S-функций