М. Файл возвращает вектор выхода, содержащий следующие элементы:
sys, универсальный выходной параметр . Возвращенные значения зависят от значения флажка. Например, для флажка = 3, sys содержит выходы S-функции.
x0, начальные значения состояния (пустой вектор, если есть нет состояний в системе).
x0 игнорируется, кроме когда флажок = 0.
str, зарезервированный для будущего использования. М S-функция должна установить это на пустую матрицу, [].
ts, матрица в два столбца, содержащая время сэмплирования и смещения (чистого запаздывания) блока.
Непрерывным системам установили в нуль их время сэмплирования. Гибридный пример демонстрирует S-функцию с множественными временами сэмплирования (см. Пример - S-функции для гибридной системы ).
Времена сэмплирования должны быть объявлены в возрастающем порядке. Например, если Вы хотите, чтобы ваша S-функция выполнилась в [0 0.1 0.25 0.5 0.75 1.0 1.1 1.25, и т.д.], устанавливаете ts, равной следующей матрице в две строки.
ts = [0.25 0;
1.0 0.1];
Для Simulink, чтобы распознать S-функцию M-файла, Вы должны обеспечить это определенной информацией о S-функции. Эта информация включает номер входов, выходов, состояний, и других блочных характеристик.
Чтобы давать Simulink эту информацию, вызовите функцию simsizes в начале mdlInitializeSizes.
sizes = simsizes;
Эта функция возвращает неинициализированную структуру размеров. Вы должны загрузить структуру размеров информацией о S-функции. Таблица ниже перечисляет поля структуры размеров и описывает информацию, содержавшуюся в каждом поле.
Field Name |
Описание |
Description |
sizes.NumContStates |
Число непрерывных состояний |
Number of continuous states |
sizes.NumDiscStates |
Число дискретных состояний |
Number of discrete states |
sizes.NumOutputs |
Число выходов |
Number of outputs |
sizes.NumInputs |
Число входов |
Number of inputs |
sizes.DirFeedthrough |
Флажок для прямого прохода |
Flag for direct feedthrough |
sizes.NumSampleTimes |
Число времен квантования |
Number of sample times |
После того, как Вы инициализируете структуру размеров, вызовите simsizes снова.
sys = simsizes (размеры);
Это передает информацию о структуре размеров в sys, вектор, который содержит информацию для использования Simulink'ом.
При вызове S-функции M-файла, Simulink всегда передает стандартные блочные параметры t, x, u, и флажок flag к S-функции как параметры функции . Simulink может передать дополнительные, блочно-определенные параметры, указанные пользователем S-функции. Пользователь определяет параметры в поле параметров S-function блочного диалога параметра S-функции . Если блочный диалог определяет дополнительные параметры, Simulink передает параметры для S-функции как дополнительные параметры функции. Дополнительные параметры следуют за стандартными параметрами в списке параметров S-функции в порядке, в котором соответствующие параметры появляются в блочном диалоге. Вы можете использовать эту блочно-определенную возможность параметра S-функции, чтоб позволить той же самой S-функции осуществлять различные варианты обработки. См. limintm.m пример в toolbox/simulink/blocks каталоге для примера S-функции , где используются блочные параметры, определенные этим способом.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.