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

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

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

  • MATLAB® функции

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

Когда вы экспортируете функции уровня графика, можно вызвать их в других диаграммах Stateflow и блоках Simulink Caller.

  • Экспортировать функции уровня графика, которые можно вызвать при помощи квалифицированного обозначения, такого как chartNameFunctionName , выберите свойство диаграммы Export chart level functions, как описано в Specify Properties для диаграмм Stateflow.

  • Чтобы экспортировать функции уровня графика, которые можно вызвать, не используя квалифицированное обозначение, выберите Export chart level functions, и затем выберите Treat exported functions as globally visible. Вы не можете экспорты функций с тем же именем.

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

В этом примере показано, как вызвать экспортируемые функции из других графиков в вашей модели Simulink. Эта модель содержит основную диаграмму Stateflow, mainChart, и два вспомогательных графика библиотеки, lib1Chart и lib2Chart. Каждый график содержит графическую функцию уровня графика и имеет обоих, функции уровня графика Экспорта и Обработка экспортировали функции, когда глобально видимые свойства диаграммы включили.

Основной график содержит два объекта данных, x и y, с начальными значениями 0 и 1, соответственно. Когда вы симулируете модель, переход по умолчанию в этом графике вызывает функциональный lib1_func использование этих значений в качестве аргументов.

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

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

Функциональный main_func задан в основном графике. Функция добавляет свои входные параметры и возвращает результат. Основной график хранит этот результат как выходные данные x. Последовательность вызовов функции повторяется в каждом временном шаге симуляции. Блок Scope показывает значение x увеличение во время симуляции.

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

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

Вы не можете экспортировать функцию уровня графика, когда вводы или выводы имеют любое из следующих свойств:

  • Тип данных с фиксированной точкой с размером слова, больше, чем 32 бита

  • Переменный размер

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

Если вы включаете свойство диаграммы Export chart level functions в графике, который содержит уровень графика функции Simulink, ошибка времени выполнения происходит. Чтобы разрешить ошибку, отключите свойство диаграммы Export chart level functions или переместите функции Simulink в более низкий уровень в иерархии графика.

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

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

Вы не можете экспорты функций из модели, на которую ссылаются, и вызывать функции от родительской модели.

Объединение Выход и функции обновления при генерации кода

Если вы генерируете код для модели, которая использует экспортируемые функции уровня графика, позвольте функции выхода/обновления Single параметра конфигурации модели (Simulink Coder) гарантировать сопоставимое поведение между симуляцией и генерацией кода.

Похожие темы