При экспорте функций на уровне диаграммы объем функций расширяется на другие блоки в модели Simulink ®. Пример см. в разделе Совместное использование функций в Simulink и Stateflow. Можно экспортировать следующие функции:
Графические функции
Функции MATLAB ®
Таблицы правды
Откройте диаграмму, в которой находится ваша функция.
В инспекторе свойств откройте раздел «Дополнительно».
Выберите Экспорт функций на уровне диаграммы.
Если функция находится в библиотечной диаграмме, свяжите ее с главной моделью.
При выборе параметра «Экспорт функций на уровне диаграммы» можно вызывать экспортированные функции с помощью блоков Simulink Caller с точечным обозначением. chartName.functionName. Чтобы вызвать экспортированные функции по всей модели из любого блока Stateflow ® или Simulink Caller, выберите «Рассматривать экспортированные функции как глобально видимые». Не используйте точечную нотацию для вызова этих функций. Нельзя экспортировать функции с тем же именем.
Функции Simulink также могут быть определены непосредственно в холсте Simulink. Дополнительные сведения см. в разделе Функция Simulink (Simulink).
Связывание библиотечных диаграмм с главной моделью для экспорта функций на уровне диаграмм из библиотек
Не экспортировать функции уровня диаграммы, содержащие неподдерживаемые входы или выходы
В этом примере описывается, как экспортировать функции библиотечных диаграмм в основную модель.
Создайте следующие объекты:
Добавление модели с именем main_model, с диаграммой с именем modChart.

Добавление библиотечной модели с именем lib1, с диаграммой с именем lib1Chart.

Добавление библиотечной модели с именем lib2, с диаграммой с именем lib2Chart.

Создайте следующие графические функции в диаграммах библиотеки:
Для lib1Chartдобавьте эту графическую функцию.

Для lib2Chartдобавьте эту графическую функцию.

В обозревателе моделей для каждого из входов и выходов функций: a, b, и c, задайте следующие свойства:.
Size кому 1
Complexity кому Off
Type кому double
Для modChart, добавьте графическую функцию и переход по умолчанию с помощью lib1_func действия.

Для каждой диаграммы выполните следующие действия.
В обозревателе моделей для каждого из входов и выходов функций: a, b, и c, установить:
Size кому 1
Complexity кому Off
Type кому double
Откройте диалоговое окно Свойства диаграммы.
В диалоговом окне Свойства диаграммы выберите Экспортировать функции уровня диаграммы и Считать экспортированные функции глобально видимыми.
Нажмите кнопку ОК.
Сопротивление lib1Chart и lib2Chart в main_model от lib1 и lib2соответственно. Ваша основная модель должна выглядеть примерно так:

Каждая диаграмма теперь определяет графическую функцию, которая любая диаграмма в main_model может позвонить.
Откройте обозреватель моделей.
На панели Иерархия модели (Model Hierarchy) Обозревателя моделей (Model Explorer) перейдите к разделу main_model.
Добавление данных x и y к машине Stateflow:
Выберите Добавить > Данные.
В столбце «Имя» введите x.
В столбце «Начальное значение» введите 0.
Использовать настройки по умолчанию для других свойств x.
Выберите Добавить > Данные.
В столбце «Имя» введите y.
В столбце «Начальное значение» введите 1.
Использовать настройки по умолчанию для других свойств y.
Этот шаг обеспечивает глобальное определение входных и выходных данных для поддержки экспортированных графических функций.
Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters).
В диалоговом окне Параметры конфигурации модели (Model Configuration Parameters) перейдите на панель Решатель (Solver).
В разделе Выбор решателя внесите следующие изменения:
Для параметра «Тип» выберите Fixed-step.
Для параметра «Решатель» выберите Discrete (no continuous states).
В разделе Сведения о решателе внесите следующие изменения:
В поле «Фиксированный размер шага» введите 1.
Нажмите кнопку ОК.
Этот шаг обеспечивает использование дискретного решателя при моделировании модели. Дополнительные сведения см. в разделе Сравнение решателей (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 Hierarchy) перейдите к modChart.
Добавление выходных данных z к диаграмме:
Выберите Добавить > Данные.
В столбце «Имя» введите z.
В столбце «Область» выберите Output.
Используйте параметры по умолчанию для других свойств.
Для modChartобновите действие перехода по умолчанию следующим образом:
{x = lib1_func(x,y); z = x;}В модели подключите исходящий порт из modChart к входу блока Scope.

Дважды щелкните на блоке «Область», чтобы открыть экран.
Начать моделирование.
После завершения моделирования щелкните правой кнопкой мыши на отображении области и выберите «Автомасштабирование».
Результаты выглядят примерно так:
