Примеры, использующие эти функции, можно найти в
и matlabroot
/ toolbox/simulink/blocks/tlc_c
. Соответствующий исходный код MEX S-функции расположен в matlabroot
/ toolbox/simulink/simdemos/simfeatures/tlc_c
или matlabroot
/ simulink/src
. MATLAB® файловые S-функции и исполняемые файлы MEX (для примера, matlabroot
/ toolbox/simulink/simdemos/simfeatures/src
) расположены в sfunction
.mex*
или matlabroot
/ toolbox/simulink/блоки
. При щелчке по одному из предыдущих имен папок в MATLAB будет отображено содержимое папки в браузере текущей папки MATLAB.matlabroot
/ toolbox/simulink/simdemos/simfeatures
Несколько функций берут похожие или идентичные аргументы. Чтобы упростить страницы с описанием, некоторые из этих аргументов подробно задокументированы здесь, а не на страницах с описанием.
Аргумент | Описание |
---|---|
Относится к входу или выходу индексу порта, начиная с 0. Для примера первый вход порт S-функции равен 0. | |
Переменная управления пользователем. Это расширенная функция, которая переопределяет | |
Контурная переменная управления. Это обычно генерируется | |
Индекс сигнала. Иногда упоминается как индекс сигнального элемента. При непосредственном доступе к конкретным элементам входного или выходного сигнала вызов различных библиотечных стандартных программ должен иметь Большинство функций, которые берут
Используйте Функции, которые принимают три аргумента | |
| Индекс параметра. Иногда упоминается как индекс элемента параметра. Обработка этого параметра очень похожа на |
Индекс состояния. Иногда упоминается как индекс элемента вектора состояний. Это должно быть целое число, с которого начинается первый элемент |
Индекс сигнала (sigIdx
иногда записывается как idx
) может быть перегружен при передаче в большинство библиотечных функций. Предположим, что вас интересует элемент 3 сигнала и ucv=""
, lcv=""
. Следующая таблица показывает
Значения sigIdx
Является ли сигнал, на который ссылается, комплексным
Какая функция используется sigIdx
возвраты
Пример возвращенной переменной
Тип данных возвращаемой переменной
Обратите внимание, что «контейнер» в следующей таблице относится к объекту, который инкапсулирует как действительную, так и мнимую части числа, например creal_T
, заданный в tmwtypes.h
.
sigIdx | Комплекс | Возвраты функции | Пример | Данные Напечатать |
---|---|---|---|---|
"re3" | Да | Действительная часть элемента 3 |
|
|
"im3" | Да | Мнимая часть элемента 3 |
|
|
"3" | Да | Комплексный контейнер элемента 3 |
|
|
3 | Да | Комплексный контейнер элемента 3 |
|
|
"re3" | Нет | Элемент 3 |
|
|
"im3" | Нет |
| Н/Д | Н/Д |
"3" | Нет | Элемент 3 |
|
|
3 | Нет | Элемент 3 |
|
|
Теперь предположим следующее:
Вы заинтересованы в элементе 3 сигнала.
(ucv = "i"
И lcv == ""
) ИЛИ (ucv = ""
И lcv = "i"
).
В следующей таблице показаны значения idx
, является ли сигнал комплексным, и какова функция, которая использует idx
возвращает.
sigIdx | Комплекс | Возвраты функции |
---|---|---|
"re3" | Да | Действительная часть |
"im3" | Да | Мнимая часть |
"3" | Да | Комплексный контейнер |
3 | Да | Комплексный контейнер |
"re3" | Нет | Элементный |
"im3" | Нет |
|
"3" | Нет | Элементный |
3 | Нет | Элементный |
Векторный индекс добавляется только для широких сигналов.
Если ucv
не является пустой строкой (""
), затем ucv
используется вместо sigIdx
в вышеприведенных примерах и обоих lcv
и sigIdx
игнорируются.
Если ucv
пуст, но lcv
не пуст, тогда функция возвращается "&y%<portIdx>[%<lcv>]"
и sigIdx
игнорируется.
Принято, что ролик объявил и инициализировал переменные, доступные внутри ролика. Переменные, доступные внутри ролика, должны быть заданы с помощью rollVars
как аргумент к %roll
директива.