exponenta event banner

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

При экспорте функций на уровне диаграммы объем функций расширяется на другие блоки в модели Simulink ®. Пример см. в разделе Совместное использование функций в Simulink и Stateflow. Можно экспортировать следующие функции:

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

  • Функции MATLAB ®

  • Таблицы правды

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

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

  2. В инспекторе свойств откройте раздел «Дополнительно».

  3. Выберите Экспорт функций на уровне диаграммы.

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

При выборе параметра «Экспорт функций на уровне диаграммы» можно вызывать экспортированные функции с помощью блоков Simulink Caller с точечным обозначением. chartName.functionName. Чтобы вызвать экспортированные функции по всей модели из любого блока Stateflow ® или Simulink Caller, выберите «Рассматривать экспортированные функции как глобально видимые». Не используйте точечную нотацию для вызова этих функций. Нельзя экспортировать функции с тем же именем.

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

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

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

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

 Не экспортировать функции Simulink

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

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

В этом примере описывается, как экспортировать функции библиотечных диаграмм в основную модель.

  1. Создайте следующие объекты:

    • Добавление модели с именем main_model, с диаграммой с именем modChart.

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

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

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

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

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

    • В обозревателе моделей для каждого из входов и выходов функций: a, b, и c, задайте следующие свойства:.

      • Size кому 1

      • Complexity кому Off

      • Type кому double

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

  4. Для каждой диаграммы выполните следующие действия.

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

      • Size кому 1

      • Complexity кому Off

      • Type кому double

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

    3. В диалоговом окне Свойства диаграммы выберите Экспортировать функции уровня диаграммы и Считать экспортированные функции глобально видимыми.

    4. Нажмите кнопку ОК.

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

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

  6. Откройте обозреватель моделей.

  7. На панели Иерархия модели (Model Hierarchy) Обозревателя моделей (Model Explorer) перейдите к разделу main_model.

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

    1. Выберите Добавить > Данные.

    2. В столбце «Имя» введите x.

    3. В столбце «Начальное значение» введите 0.

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

    5. Выберите Добавить > Данные.

    6. В столбце «Имя» введите y.

    7. В столбце «Начальное значение» введите 1.

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

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

  9. Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters).

  10. В диалоговом окне Параметры конфигурации модели (Model Configuration Parameters) перейдите на панель Решатель (Solver).

  11. В разделе Выбор решателя внесите следующие изменения:

    1. Для параметра «Тип» выберите Fixed-step.

    2. Для параметра «Решатель» выберите Discrete (no continuous states).

  12. В разделе Сведения о решателе внесите следующие изменения:

    1. В поле «Фиксированный размер шага» введите 1.

    2. Нажмите кнопку ОК.

    Этот шаг обеспечивает использование дискретного решателя при моделировании модели. Дополнительные сведения см. в разделе Сравнение решателей (Simulink).

Что происходит во время моделирования

При моделировании модели эти действия выполняются в течение каждого временного шага.

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

Просмотр результатов моделирования

Чтобы просмотреть результаты моделирования, добавьте область в модель. Выполните следующие действия.

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

  2. В библиотеке Simulink/Sinks выберите блок Scope и добавьте его в main_model.

  3. Откройте обозреватель моделей.

  4. На панели Иерархия модели (Model Hierarchy) перейдите к modChart.

  5. Добавление выходных данных z к диаграмме:

    1. Выберите Добавить > Данные.

    2. В столбце «Имя» введите z.

    3. В столбце «Область» выберите Output.

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

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

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

  8. Дважды щелкните на блоке «Область», чтобы открыть экран.

  9. Начать моделирование.

  10. После завершения моделирования щелкните правой кнопкой мыши на отображении области и выберите «Автомасштабирование».

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