Когда вы экспортируете функции уровня диаграммы, вы расширяете возможности своих функций для других блоков в Simulink® модель. Для получения примера см. Раздел «Совместное использование функций через Simulink и Stateflow». Можно экспортировать следующие функции:
Графические функции
MATLAB® функции
Таблицы истинности
Откройте график, где находится ваша функция.
В Property Inspector откройте раздел Advanced.
Выберите Export Chart Level Functions.
Если ваша функция находится в библиотечном графике, соедините этот график с вашей основной моделью.
Когда вы выбираете Export Chart Level Functions, можно вызвать экспортированные функции с помощью Simulink Caller блоков с запись через точку chartName.functionName
. Чтобы вызвать экспортированные функции по всей модели из любого Stateflow® или Simulink Caller блока выберите Treat Exported Functions as Globally Visible. Не используйте запись через точку для вызова этих функций. Вы не можете экспортировать функции с таким же именем.
Функции Simulink также могут быть определены непосредственно в холсте Simulink. Для получения дополнительной информации смотрите Simulink Function (Simulink).
Ссылка графиков библиотеки к основной модели, чтобы экспортировать функции уровня диаграммы из библиотек
Не экспортируйте функции уровня диаграммы, которые содержат неподдерживаемые входы или выходы
Этот пример описывает, как экспорты функций в библиотеке графиков к вашей основной модели.
Создайте следующие объекты:
Добавьте модель с именем main_model
, с именем графика modChart
.
Добавьте модель библиотеки с именем lib1
, с именем графика lib1Chart
.
Добавьте модель библиотеки с именем lib2
, с именем графика lib2Chart
.
Создайте следующие графические функции в библиотечных графиках:
Для lib1Chart
, добавьте эту графическую функцию.
Для lib2Chart
, добавьте эту графическую функцию.
В Model Explorer для каждого из входных параметров функции и выходов a
, b
, и c
, установите следующие свойства:.
Size
на 1
Complexity
на Off
Type
на double
Для modChart
, добавьте графическую функцию и переход по умолчанию с lib1_func
действие.
Для каждого графика выполните следующие шаги:
В Model Explorer для каждого из входных параметров функции и выходов a
, b
, и c
, установите:
Size
на 1
Complexity
на Off
Type
на double
Откройте диалоговое окно Свойства графика.
В диалоговом окне свойств графика» выберите Export chart level functions и Treat exported functions as globally visible.
Нажмите OK.
Перетащите мышью lib1Chart
и lib2Chart
в main_model
от lib1
и lib2
, соответственно. Ваша основная модель должна выглядеть примерно так:
Теперь каждый график определяет графическую функцию, которую имеет любой график main_model
может вызвать.
Откройте Model Explorer.
На панели Model Hierarchy Model Explorer перейдите к main_model
.
Добавьте данные x
и y
на машину Stateflow:
Выберите Add > Data.
В столбце Name введите x
.
В столбце Initial Value введите 0
.
Используйте настройки по умолчанию для других свойств x
.
Выберите Add > Data.
В столбце Name введите y
.
В столбце Initial Value введите 1
.
Используйте настройки по умолчанию для других свойств y
.
Этот шаг гарантирует, что входные и выходные данные определены глобально для поддержки экспортированных графических функций.
Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters).
В диалоговом окне Model Configuration Parameters перейдите к панели Solver.
В Solver selection разделе внесите следующие изменения:
Для Type выберите Fixed-step
.
Для Solver выберите Discrete (no continuous states)
.
В Solver details разделе внесите следующие изменения:
Для Fixed-step size введите 1
.
Нажмите OK.
Этот шаг гарантирует, что при моделировании модели используется дискретный решатель. Для получения дополнительной информации см. «Сравнение решателей (Simulink)».
Когда вы моделируете модель, эти действия происходят в течение каждого временного шага.
Фаза | Объект... | Вызывает графическую функцию... | Который... |
---|---|---|---|
1 | modChart | lib1_func | Читает два входных параметров x и y |
2 | lib1_func | lib2_func | Передает два входных параметров |
3 | lib2_func | mod_func | Добавляет x и y и присваивает сумму x |
Чтобы просмотреть результаты симуляции, добавьте возможности к модели. Выполните следующие действия:
Откройте браузер библиотеки Simulink.
В библиотеке Simulink/Sinks выберите блок Scope и добавьте его в main_model
.
Откройте Model Explorer.
На панели Model Hierarchy перейдите к modChart
.
Добавьте выходные данные z
на график:
Выберите Add > Data.
В столбце Name введите z
.
В Scope столбце выберите Output
.
Используйте настройки по умолчанию для других свойств.
Для modChart
, обновите действие перехода по умолчанию следующим образом:
{x = lib1_func(x,y); z = x;}
В модели соедините выходной порт из modChart
к входному порту блока Scope.
Дважды кликните блок Scope, чтобы открыть отображение.
Запустите симуляцию.
После завершения симуляции щелкните правой кнопкой мыши на отображении возможностей видимости и выберите Autoscale.
Результаты выглядят примерно так: