Когда вы экспортируете функции уровня диаграммы, вы расширяете возможности своих функций для других блоков в 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.
Результаты выглядят примерно так:
