exponenta event banner

Функции Simulink: блок функции Simulink, экспортированные графические функции Stateflow и функции MATLAB

Функции Simulink ® имеют интерфейс с входными и выходными аргументами, аналогичными языкам программирования. Определение функции для функции Simulink можно создать с помощью :

  • Блоки Simulink в функциональном блоке Simulink

  • Переход состояния Stateflow ® в графической функции, экспортированной из диаграммы Stateflow.

  • Код MATLAB ® в функции MATLAB, экспортированной из диаграммы Stateflow.

В следующих разделах показано, как создать функцию Simulink для функции y = timestwo(x). Функция умножает значение (x) от вызывающего абонента по 2, а затем отправляет вычисленное значение (y) обратно к вызывающему абоненту. Для вызова функции см. раздел Callers функции Simulink: Function Caller block, MATLAB Function block, Stateflow chart.

Чтобы открыть законченную модель с функциями Simulink и вызывающими функциями, см. раздел ex_simulink_functions_and_function_callers.

Создание функции Simulink с помощью функционального блока Simulink

Настройте блок Simulink Function для получения данных через входной аргумент от вызывающего функции, а затем передайте вычисленное значение обратно через выходной аргумент.

  1. Добавьте в модель функциональный блок Simulink.

  2. На грани блока введите прототип функции.

    y = timestwo(x)

  3. Дважды щелкните блок, чтобы открыть подсистему, определяющую алгоритм функции.

  4. Добавьте блок усиления и задайте для параметра «Усиление» значение 2.

Создание функции Simulink с помощью экспортированной графической функции из диаграммы Stateflow

Настройте графическую функцию на диаграмме Stateflow для получения данных через входной аргумент от вызывающего функции и передачи вычисленного значения обратно через выходной аргумент. Задайте параметры диаграммы для экспорта функции в модель Simulink.

Определение графической функции в диаграмме потока состояний

Создайте графическую функцию в диаграмме Stateflow. Определите интерфейс функции и определение функции.

  1. Добавьте диаграмму потока состояний в модель Simulink. Дважды щелкните блок-схему Simulink. В поле поиска введите chart, а затем в результатах поиска выберите Chart.

  2. Дважды щелкните, чтобы открыть диаграмму.

  3. Добавьте графическую функцию. На левой панели инструментов щелкните и перетащите значок графической функции на диаграмму.

  4. Определите интерфейс функции. В поле функции замените ? с функциональным интерфейсом y = timestwo(x).

  5. Определите алгоритм функции. Щелкните стрелку перехода и замените ? с{y = 2*x}.

Проверьте графическую функцию.  Перед экспортом в модель Simulink проверьте графическую функцию в диаграмме Stateflow.

  1. Добавьте переход по умолчанию в диаграмму для тестирования функции. На левой панели инструментов щелкните и перетащите стрелку перехода по умолчанию на диаграмму.

  2. Дважды щелкните стрелку и замените ? с {y1 = timestwo(x1)}.

  3. Добавьте входной порт к диаграмме. Откройте обозреватель моделей. На левой панели выберите Chart. В меню выберите Добавить > Данные. Задать для имени значение x1 и Объем по Input.

  4. Добавьте выходной порт к диаграмме. В меню выберите Добавить > Данные. Задать для имени значение y1 и Объем по Output.

  5. Добавьте блок синусоидальной волны, чтобы предоставить тестовые данные для ввода, и блок области для просмотра результатов вывода.

  6. Запустите моделирование.

Задать параметры аргумента для графической функции

Укажите размер, сложность и тип входных и выходных аргументов функции. Диаграмма может экспортировать только функции с полностью заданными прототипами.

  1. Откройте обозреватель моделей. На вкладке Моделирование (Modeling) и в разделе Модель (Design) выберите Обозреватель моделей (Model Explorer).

  2. На левой панели выберите графическую функцию.

  3. В списке «Вид столбца» на средней панели выберите Stateflow. Выберите значок фильтра, а затем в списке переключателей выберите Все объекты Stateflow. В таблице центральной панели выберите входной или выходной аргумент.

  4. На правой панели задайте для параметра «Размер» значение 1 (скаляр), для параметра «Сложность» - значение Off (вещественное число) и установите Тип в double.

  5. Повторить шаги 2 и 3 с аргументом функции вывода y.

Установка параметров функции экспорта для графической функции

Задайте параметры для экспорта графической функции в модель Simulink из диаграммы Stateflow во время моделирования.

  1. Откройте обозреватель моделей.

  2. На левой панели выберите диаграмму, содержащую графическую функцию.

  3. В правой части диалогового окна свойств установите флажок «Экспортировать функции на уровне диаграммы», нажмите кнопку «Применить» и установите флажок «Считать экспортированные функции глобально видимыми».

    При вызове экспортированной графической функции из другой диаграммы Stateflow (не из диаграммы, экспортировавшей графическую функцию) не требуется устанавливать флажок Рассматривать экспортированные функции как глобально видимые.

Создание функции Simulink с помощью экспортированной функции MATLAB из диаграммы Stateflow

Настройте функцию MATLAB на диаграмме Stateflow, чтобы получать данные через входной аргумент от вызывающего функции, а затем передавать вычисленное значение обратно через выходной аргумент. Задайте параметры диаграммы для экспорта функции в модель Simulink.

Определение функции MATLAB в диаграмме потока состояний

Создайте функцию MATLAB в диаграмме Stateflow. Определите интерфейс функции и определение функции.

  1. Добавьте диаграмму потока состояний в модель Simulink. Дважды щелкните по блок-схеме. В поле поиска введите chart, а затем в результатах поиска выберите Chart.

  2. Откройте диаграмму.

  3. Добавьте функцию MATLAB. На левой панели инструментов щелкните и перетащите значок графической функции на диаграмму.

  4. Определите интерфейс функции. В поле функции замените ? с функциональным интерфейсом y = timestwo(x).

  5. Дважды щелкните поле функции, чтобы открыть редактор кода MATLAB. Определите алгоритм функции с кодом MATLAB.

Протестируйте функцию MATLAB.  Перед экспортом в модель Simulink проверьте функцию MATLAB в диаграмме Stateflow.

  1. Добавьте переход по умолчанию в диаграмму для тестирования функции. На левой панели инструментов щелкните и перетащите стрелку перехода по умолчанию на диаграмму.

  2. Дважды щелкните стрелку и замените ? с {y1 = timestwo(x1)}.

  3. Добавьте входной порт к диаграмме. Откройте обозреватель моделей. На левой панели выберите Chart. В меню выберите Добавить > Данные. Задать для имени значение x1 и Объем по Input.

  4. Добавьте выходной порт к диаграмме. В меню выберите Добавить > Данные. Задать для имени значение y1 и Объем по Output.

  5. Добавьте блок синусоидальной волны, чтобы предоставить тестовые данные для ввода, и блок области для просмотра результатов вывода.

  6. Запустите моделирование.

Установка параметров аргумента для функции MATLAB

Укажите размер, сложность и тип входных и выходных аргументов функции. Диаграмма может экспортировать только функции с полностью заданными прототипами.

  1. Откройте обозреватель моделей. На вкладке Моделирование (Modeling) и в разделе Модель (Design) выберите Обозреватель моделей (Model Explorer).

  2. На левой панели выберите функцию MATLAB.

  3. В списке «Вид столбца» на средней панели выберите Stateflow. Выберите значок фильтра, а затем в списке переключателей выберите Все объекты Stateflow. В таблице центральной панели выберите входной или выходной аргумент.

  4. На правой панели задайте для параметра «Размер» значение 1 (скаляр), для параметра «Сложность» - значение Off (вещественное число) и установите Тип в double.

  5. Повторить шаги 2 и 3 с аргументом функции вывода y.

Установка параметров функции экспорта для функции MATLAB

Задайте параметры для экспорта функции MATLAB из диаграммы Stateflow во время моделирования.

  1. Откройте обозреватель моделей.

  2. На левой панели выберите диаграмму, содержащую функцию MATLAB.

  3. В правой части диалогового окна свойств установите флажок «Экспортировать функции на уровне диаграммы», нажмите кнопку «Применить» и установите флажок «Считать экспортированные функции глобально видимыми».

    При вызове экспортированной функции MATLAB из другой диаграммы Stateflow (не из диаграммы, экспортировавшей функцию MATLAB) не требуется устанавливать флажок Рассматривать экспортированные функции как глобально видимые.

См. также

Блоки

Связанные темы