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

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

  • Блоки Simulink в блоке Simulink Function

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

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

Следующие разделы показывают, как создать функцию Simulink для функционального y = timestwo(x). Функция умножает значение (x) от вызывающей стороны 2, и затем отправляет расчетное значение (y) назад вызывающей стороне. Чтобы вызвать функцию, смотрите, что Simulink функционирует вызывающие стороны: Функциональный блок Caller, блок MATLAB function, диаграмма Stateflow.

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

Создайте функцию Simulink использование Функционального блока Simulink

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

  1. Добавьте блок Simulink Function в свою модель.

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

    y = timestwo(x)

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

  4. Добавьте блок Gain и установите параметр Gain на 2.

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

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

Задайте графическую функцию В диаграмме Stateflow

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

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

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

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

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

  5. Задайте функциональный алгоритм. Кликните по стреле перехода и замените ? with{y = 2*x}.

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

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

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

  3. Добавьте входной порт в график. Откройте Model Explorer. На левой панели выберите Chart. В меню выберите Add> Data. Установите Name на x1 и Scope к Input.

  4. Добавьте выходной порт в график. В меню выберите Add> Data. Установите Name на y1 и Scope к Output.

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

  6. Запустите симуляцию.

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

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

  1. Откройте Model Explorer. На вкладке Modeling и от раздела Design, выберите Model Explorer .

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

  3. Из списка Column View в средней панели выберите Stateflow. Выберите значок фильтра, и затем из списка переключателей, выберите All Stateflow Objects. Из центральной таблицы панели выберите аргумент ввода или вывода.

  4. На правой панели, Размере набора к 1 (скаляр), Набор Complexity к Off (вещественное число) и набор Type к double.

  5. Повторение продвигается 2 и 3 с аргументом y выходной функции.

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

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

  1. Откройте Model Explorer.

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

  3. В диалоговом окне свойства на правой стороне установите флажок Export Chart Level Functions , нажмите кнопку Apply, и затем установите флажок Treat Exported Functions as Globally Visible.

    Если вы вызываете экспортируемую графическую функцию от другой диаграммы Stateflow (не график, который экспортировал графическую функцию), вы не должны устанавливать флажок Treat Exported Functions as Globally Visible.

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

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

Задайте функцию MATLAB в диаграмме Stateflow

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

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

  2. Откройте график.

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

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

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

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

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

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

  3. Добавьте входной порт в график. Откройте Model Explorer. На левой панели выберите Chart. В меню выберите Add> Data. Установите Name на x1 и Scope к Input.

  4. Добавьте выходной порт в график. В меню выберите Add> Data. Установите Name на y1 и Scope к Output.

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

  6. Запустите симуляцию.

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

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

  1. Откройте Model Explorer. На вкладке Modeling и от раздела Design, выберите Model Explorer .

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

  3. Из списка Column View в средней панели выберите Stateflow. Выберите значок фильтра, и затем из списка переключателей, выберите All Stateflow Objects. Из центральной таблицы панели выберите аргумент ввода или вывода.

  4. На правой панели, набор Size к 1 (скаляр), Набор Complexity к Off (вещественное число) и набор Type к double.

  5. Повторение продвигается 2 и 3 с аргументом y выходной функции.

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

Установите параметры, чтобы экспортировать функцию MATLAB от диаграммы Stateflow во время симуляции.

  1. Откройте Model Explorer.

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

  3. В диалоговом окне свойства на правой стороне установите флажок Export Chart Level Functions , нажмите кнопку Apply, и затем установите флажок Treat Exported Functions as Globally Visible.

    Если вы вызываете экспортируемую функцию MATLAB от другой диаграммы Stateflow (не график, который экспортировал функцию MATLAB), вы не должны устанавливать флажок Treat Exported Functions as Globally Visible.

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

Блоки

Похожие темы