Примеры использования этих функций можно найти в разделе и matlabroot/toolbox/simulink/blocks/tlc_c. Соответствующий исходный код S-функции MEX находится в matlabroot/toolbox/simulink/simdemos/simfeatures/tlc_c или matlabroot/simulink/src. Файловые S-функции MATLAB ® и исполняемые файлы MEX (например ,matlabroot/toolbox/simulink/simdemos/simfeatures/src) расположены в sfunction.mex* или matlabroot/toolbox/simulink/blocks. Если щелкнуть одно из предыдущих имен папок, то эта папка изменится в 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 директива.