Используйте S-функции в моделях

Обзор

Чтобы включить 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-параметры-функции Блока 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-функцию

Можно использовать S-функции для множества приложений, включая:

  • Создание новых блоков общего назначения

  • Добавление блокируется, которые представляют драйверы аппаратного устройства

  • Слияние существующего кода С в моделирование (см., Интегрирует Функции C Используя Legacy Code Tool),

  • Описание системы как набор математических уравнений

  • Используя графические анимации (см. инвертированный пример маятника, penddemo),

Наиболее популярный способ использования S-функций должен создать пользовательские блоки Simulink (см. Блочные Основы Создания). Когда вы используете S-функцию, чтобы создать блок общего назначения, можно много раз использовать его в модели, переменных параметрах с каждым экземпляром блока.

Смотрите также

| | |

Похожие темы

Была ли эта тема полезной?