Экспортируйте функции Stateflow для повторного использования

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

  • Графические функции

  • Функции MATLAB®

  • Таблицы истинности

Как экспортировать функции уровня графика

  1. Откройте график, где ваша функция находится.

  2. В Property Inspector откройте раздел Advanced.

  3. Выберите Export Chart Level Functions.

  4. Если ваша функция находится в графике библиотеки, соедините тот график со своей основной моделью.

Когда вы выбираете Export Chart Level Functions, можно вызвать экспортируемые функции при помощи блоков Вызывающей стороны Simulink с записью через точку, chartName.functionName. Чтобы вызвать экспортируемые функции в модели от любого Stateflow® или блока Simulink Caller, выберите Treat Exported Functions as Globally Visible. Не используйте запись через точку, чтобы вызвать эти функции. Вы не можете экспорты функций с тем же именем.

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

Правила для экспорта функций уровня графика

 Библиотека ссылок строит диаграмму к вашей основной модели, чтобы экспортировать функции уровня графика из библиотек

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

 Не экспортируйте функции Simulink

 Не делайте экспортов функций через контуры модели - ссылки

Экспортируйте функции уровня графика

Этот пример описывает как к экспортам функций в графиках библиотеки к вашей основной модели.

  1. Создайте эти объекты:

    • Добавьте модель под названием main_model с графиком под названием modChart.

    • Добавьте модель библиотеки под названием lib1 с графиком под названием lib1Chart.

    • Добавьте модель библиотеки под названием lib2 с графиком под названием lib2Chart.

  2. Создайте эти графические функции в графиках библиотеки:

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

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

    • В Model Explorer, для каждого из входных параметров функции и выходных параметров, a, b и c, устанавливают эти properties:.

      • Size к 1

      • Complexity к Off

      • Type к double

  3. Для modChart добавьте графическую функцию и переход по умолчанию с действием lib1_func.

  4. Для каждого графика выполните эти шаги:

    1. В Model Explorer, для каждого из входных параметров функции и выходных параметров, a, b, и c, набора:

      • Size к 1

      • Complexity к Off

      • Type к double

    2. Откройте диалоговое окно Свойств диаграммы.

    3. В диалоговом окне Свойств диаграммы выберите Export Chart Level Functions и Treat Exported Functions as Globally Visible.

    4. Нажмите OK.

  5. Перетащите lib1Chart и lib2Chart в main_model от lib1 и lib2, соответственно. Ваша основная модель должна выглядеть примерно так:

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

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

  7. В панели Model Hierarchy Model Explorer перейдите к main_model.

  8. Добавьте данные x и y к машине Stateflow:

    1. Выберите Add> Data.

    2. В столбце Name введите x.

    3. В столбце Initial Value введите 0.

    4. Используйте настройки по умолчанию для других свойств x.

    5. Выберите Add> Data.

    6. В столбце Name введите y.

    7. В столбце Initial Value введите 1.

    8. Используйте настройки по умолчанию для других свойств y.

    Этот шаг гарантирует, что входные и выходные данные заданы глобально, чтобы поддерживать экспортируемые графические функции.

  9. Откройте диалоговое окно Model Configuration Parameters.

  10. В диалоговом окне Model Configuration Parameters перейдите к панели Solver.

  11. В разделе Solver selection внесите эти изменения:

    1. Для Type выберите Fixed-step.

    2. Для Solver выберите Discrete (no continuous states).

  12. В разделе Solver details внесите эти изменения:

    1. Для Fixed-step size введите 1.

    2. Нажмите OK.

    Этот шаг гарантирует, что, когда вы моделируете свою модель, дискретный решатель используется. Для получения дополнительной информации смотрите Решатели (Simulink).

Что происходит во время симуляции

Когда вы моделируете модель, эти действия происходят во время каждого временного шага.

ФазаОбъект...Вызывает графическую функцию...Который...
1modChartlib1_funcЧтения два входных параметра x и y
2lib1_funclib2_funcПередает эти два входных параметра
3lib2_funcmod_funcДобавляют x и y и присваивают сумму x

Как просмотреть результаты симуляции

Чтобы просмотреть результаты симуляции, добавьте осциллограф в свою модель. Выполните эти шаги:

  1. Откройте браузер библиотеки Simulink.

  2. От Библиотеки Simulink/Приемников выберите блок Scope и добавьте его в main_model.

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

  4. В панели Model Hierarchy перейдите к modChart.

  5. Добавьте выходные данные z в график:

    1. Выберите Add> Data.

    2. В столбце Name введите z.

    3. В столбце Scope выберите Output.

    4. Используйте настройки по умолчанию для других свойств.

  6. Для modChart обновите действие перехода по умолчанию, чтобы читать можно следующим образом:

    {x = lib1_func(x,y); z = x;}
  7. В модели соедините выходной порт от modChart до импорта блока Scope.

  8. Дважды кликните блок Scope, чтобы открыть отображение.

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

  10. После концов симуляции щелкните правой кнопкой по осциллографу, отображают и выбирают Autoscale.

    Результаты выглядят примерно так: