Чтобы включить S-функцию MEX C или устаревшую S-функцию Level 1 MATLAB® в модель Simulink®, перетащите Блок s-function от Пользовательской библиотеки блоков Функций в модель. Затем задайте имя S-функции в поле S-имени-функции диалогового окна Block Parameters Блока s-function, как проиллюстрировано в следующей фигуре.
В этом примере модель содержит Блок s-function, который ссылается на экземпляр файла MEX на C для S-функции timestwo.c
c.
Если путь MATLAB включает файл MEX на C и файл MATLAB, ссылающийся на то же имя Блоком s-function, Блок s-function использует файл MEX на C.
Чтобы включить Уровень 2 S-функция MATLAB в модель, перетащите Уровень 2 Блок s-function MATLAB из библиотеки User-Defined Functions в модель. Задайте имя S-функции в поле S-имени-функции.
S-параметры-функции Блока s-function и Уровень 2 поля Parameters Блока s-function MATLAB позволяют вам задавать значения параметров, чтобы передать соответствующей S-функции. Чтобы использовать эти поля, необходимо знать параметры, которых S-функция требует и порядок, в котором функция требует их. (Если вы не знаете, консультируйтесь с автором S-функции, документацией или исходным кодом.) Вводят параметры, разделенные запятой, в порядке, требуемом S-функцией. Значения параметров могут быть константами, именами переменных, заданных в MATLAB workspace или рабочем пространстве модели или выражениях MATLAB.
Следующий пример иллюстрирует использование поля Parameters, чтобы ввести пользовательские параметры для Уровня 2 S-функция MATLAB.
Образцовый msfcndemo_limintm
в этом примере включает демонстрационную S-функцию msfcn_limintm.m
m.
S-функция msfcn_limintm.m
принимает три параметра: нижняя граница, верхняя граница и начальное условие. S-функция выводит интеграл времени входного сигнала, если интеграл времени между нижними и верхними границами, нижняя граница, если интеграл времени является меньше, чем нижняя граница и верхней границей, если интеграл времени больше, чем верхняя граница. Диалоговое окно в примере задает нижнюю и верхнюю границу и начальное условие -5
.0, 5.0
и 0
, соответственно. Осциллограф показывает получившийся вывод, когда входной параметр является синусоидой амплитуды 1.
Смотрите S-параметры-функции Обработки и Обработайте Ошибки в S-функциях для получения информации о как к заданным пользователями доступа параметрам в S-функции.
Можно использовать средство маскирования, чтобы создать пользовательские диалоговые окна и значки для Блоков s-function. Диалоговые окна маскированные могут облегчить задавать дополнительные параметры для S-функций. Для обсуждения маскирования смотрите, Создают Блочные Маски.
Можно использовать S-функции для множества приложений, включая:
Создание новых блоков общего назначения
Добавление блокируется, которые представляют драйверы аппаратного устройства
Слияние существующего кода С в моделирование (см., Интегрирует Функции C Используя Legacy Code Tool),
Описание системы как набор математических уравнений
Используя графические анимации (см. инвертированный пример маятника, penddemo
),
Наиболее популярный способ использования S-функций должен создать пользовательские блоки Simulink (см. Блочные Основы Создания). Когда вы используете S-функцию, чтобы создать блок общего назначения, можно много раз использовать его в модели, переменных параметрах с каждым экземпляром блока.
Уровень 2 S-функция MATLAB | Функция MATLAB | S-функция | Разработчик S-функции