Когда вы экспортируете функции уровня графика, вы расширяете осциллограф своих функций с другими блоками в модели 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.
Библиотека ссылок строит диаграмму к вашей основной модели, чтобы экспортировать функции уровня графика из библиотек
Не экспортируйте функции уровня графика, которые содержат неподдерживаемые вводы или выводы
Этот пример описывает как к экспортам функций в графиках библиотеки к вашей основной модели.
Создайте эти объекты:
Добавьте модель под названием main_model
, с графиком под названием modChart
.
Добавьте модель библиотеки под названием lib1
, с графиком под названием lib1Chart
.
Добавьте модель библиотеки под названием lib2
, с графиком под названием lib2Chart
.
Создайте эти графические функции в графиках библиотеки:
Для lib1Chart
, добавьте эту графическую функцию.
Для lib2Chart
, добавьте эту графическую функцию.
В Model Explorer, для каждого из входных параметров функции и выходных параметров, a
B
, и c
, установите эти properties:.
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.
Этот шаг гарантирует, что, когда вы симулируете свою модель, дискретный решатель используется. Для получения дополнительной информации смотрите, Сравнивают Решатели.
Когда вы симулируете модель, эти действия происходят во время каждого временного шага.
Фаза | Объект... | Вызывает графическую функцию... | Который... |
---|---|---|---|
1 | modChart | lib1_func | Чтения два входных параметра x и y |
2 | lib1_func | lib2_func | Передает эти два входных параметра |
3 | lib2_func | mod_func | Добавляет x и y и присваивает сумму x |
Чтобы просмотреть результаты симуляции, добавьте осциллограф в свою модель. Выполните эти шаги:
Откройте браузер библиотеки Simulink.
От Библиотеки Simulink/Приемников выберите блок 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.
Результаты выглядят примерно так: