Применение S-функций в Simulink, страница 4

Выходы S-функции

М. Файл возвращает вектор выхода, содержащий следующие элементы:

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];

Определение Характеристик Блока S-функции

Для 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-функции

При вызове S-функции M-файла, Simulink всегда передает стандартные блочные параметры t, x, u, и флажок flag к S-функции как параметры функции . Simulink может передать дополнительные, блочно-определенные параметры, указанные пользователем  S-функции. Пользователь определяет параметры в поле параметров S-function блочного диалога параметра S-функции . Если блочный диалог определяет дополнительные параметры, Simulink передает параметры для S-функции как дополнительные  параметры функции. Дополнительные параметры следуют за стандартными параметрами в списке параметров S-функции в порядке, в котором соответствующие параметры появляются в блочном диалоге. Вы можете использовать эту блочно-определенную возможность параметра S-функции, чтоб позволить той же самой S-функции осуществлять различные варианты обработки. См. limintm.m пример в toolbox/simulink/blocks каталоге для примера S-функции , где используются блочные параметры, определенные этим способом.