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

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

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

  • Функции MATLAB®

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      • Size к 1

      • Complexity к Off

      • Type к double

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

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

    1. В Model Explorer, для каждого из входных параметров функции и выходных параметров, aB, и 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.

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