Примеры, использующие эти функции, можно найти в и 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 директива.