Инициализация (mdlInitializesizes) - До первого цикла моделирования, Simulink инициализирует S-функцию. В течение этой стадии, Simulink:
Вычисление следующего момента времени выборки (mdlDerivatives) - Если Вы создали переменный типовой блок времени, эта стадия, вычисляет время следующего момента времени выборки, то есть вычисляет размер следующего шага.
Вычисление выходов в главном шаге времени (mdlOutputs) - После этого вызова все порты выхода блоков имеют правильные значения для текущего шага времени.
Модифицируйте дискретные состояния в главном шаге времени (mdlUpdate) - В этом вызове, все блоки должны исполнить действия " однажды в шаг времени " типа модифицирования дискретных состояний в каждом цикле моделирования.
Интегрирование - Это относится к моделям с непрерывными состояниями. Если ваша S-функция имеет непрерывные состояния, Simulink вызывает выход и производные вашей S-функции при малых шагах времени.
М S-функция Файла состоит из функции MATLAB следующей формы
[sys,x0,str,ts]=f(t,x,u,flag,p1,p2,...)
где f - название{имя} S-функции. В течение моделирования модели, Simulink
неоднократно вызывает f, используя параметр флажка, чтобы указать задачу (или задачи), чтобы быть
выполненный для специфического обращения. Каждый раз S-функция исполняет задачу и
возвращает результаты в векторе вывода.
Выполнение шаблона М. S-функция Файла, sfuntmpl.m, постоянно находится в
matlabroot/toolbox/simulink/blocks. Шаблон состоит из верхнего уровня
функция и набор скелетных подфункций, названных методами повторного вызова S-функции, каждый из
который соответствует специфическому значению флажка. Функция верхнего уровня просто вызывает
подфункция, обозначенная флажком. Подфункции исполняют фактические задачи, требуемые
S-функция в течение моделирования.
Simulink передает следующие параметры к S-функции:
t, текущее время
x, вектор состояния
u, входной вектор
flag-флажок, целочисленное значение, которое указывает задачу, которая будет выполнена S-функцией
Следующая таблица описывает значения, которые флажок может принять и описывает
передачу метода Callback S-функции для каждого значения.
Flag |
Подпрограммы S-функции (методы Callback) |
Описание |
0 |
mdlInitializesizes |
Определяет основные
характеристики блока |
1 |
mdlDerivatives |
Вычисляет производные для непрерывнх переменных состояния. |
2 |
mdlUpdate |
Обновляет дискретные переменные состояния, выборка времени сэмплирования для удовлетворения условия кратности его большему шагу квантования. |
3 |
mdlOutputs |
Вычисляет выходы S-функции. |
4 |
mdlGetTimeOfNextVarHit |
Вычисляет абсолютное время следующего вычисления (сэмплирования). Эта подпрограмма используется только, когда Вы определяете переменное дискретное время квантования в mdlInitializeSizes. |
9 |
mdlTerminate |
Исполняет любые необходимые действия при завершение задачи моделирования. |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.