Используйте диаграмму Stateflow ®, чтобы предоставить планировщик вызовов функций, в котором можно полностью управлять процессом планирования для периодических (синхронных) или апериодических (асинхронных) последовательностей вызовов.
Создайте новую модель Simulink ®.
Добавьте блок Model, который ссылается на модель export-function.
Укажите функцию - вызовите Inputs с помощью диаграммы Stateflow.
Укажите входные данные.
Запустить моделирование.
Чтобы создать модель для этого примера, см. раздел Создание модели Export-Function.
Сведения об открытии завершенной тестовой модели см. в разделе ex_export_function_test_model_with_stateflow_chart.
Ссылка на модель export-function из блока Model позволяет добавлять события function-calls из диаграммы Stateflow и регистрировать сигналы данных для тестирования без изменения самой модели.
Добавление блока модели в новую модель Simulink. В поле Имя модели (Model name) введите export_function_model.
Добавьте блоки Outport в порты output_100ms и output_10ms для сохранения данных моделирования в MATLAB.
Добавьте блок синусоидальной волны для ввода данных. Установить амплитуду в 2 и время выборки для 0.01. Подключите блок к input_10ms входному порту блока модели.

Создайте новую диаграмму Stateflow. Для выполнения этого шага требуется лицензия Stateflow.
На вкладке Моделирование (Modeling) и в разделе Модель (Design) выберите Обозреватель моделей (Model Explorer).
На
панели Иерархия модели (Model Hierarchy) выберите Chart.
Добавление событий вызова функции с портами вывода в диаграмму. В меню выберите Добавить > Событие. В поле «Имя» введите out_100ms. В списке «Область» выберите Output to Simulink. Повторите шаг для создания события function-call и выходного порта для out_10ms.

Откройте диаграмму, дважды щелкнув блок. Добавьте блок состояния и стрелку перехода по умолчанию.

Переименовать состояние в function_call_scheduler.
Добавление периодических вызовов функций каждые 10 и 100 миллисекунд. В блоке состояния введите следующие команды.
on every(10, tick):send(out_10ms); on every(100, tick):send(out_100ms);
Ключевое слово tick является неявным событием, которое подсчитывает количество шагов моделирования, пока send явное событие, которое выводит событие вызова функции на выходные порты.

Тестовая модель Simulink используется только для моделирования. После тестирования моделирования создайте код из модели export-function, а затем интегрируйте экспортированный код функции с планировщиком с внешним кодированием.
Добавьте диаграмму Stateflow к тестовой модели.
Подключите выходы диаграммы статофлоу к входам блоков модели.

Если тестовая модель ссылается на модель с функцией экспорта, существуют некоторые ограничения для обеспечения согласованности с результатами моделирования.
Для тестовой модели:
Вызовы функций к входным портам в блоке Model должны следовать порядку выполнения блоков Inport функции корневого уровня в ссылочной модели export-function.
Если тестовая модель вызывает ссылочные функции модели из строя на любом этапе времени, Simulink отображает ошибку. Сведения о сортированном порядке выполнения см. в разделе Управление и просмотр порядка выполнения. Чтобы отключить это ограничение, снимите флажок для параметра конфигурации Включить строгие проверки планирования для ссылочных моделей.
Для модели export-function:
Время выборки для блоков Inport функции-вызова корневого уровня должно быть задано как наследуемое (-1) или сопоставить время выборки вызовов функций из диаграммы Stateflow, которая управляет ими.
Смоделировать модель export-function для проверки и наблюдения за ее поведением перед созданием кода.
Примечание
При использовании моделей export-function в моделировании модели верхнего уровня не изменяйте статус включения/отключения модели во время моделирования. Включите его в начале моделирования и вызовите его с помощью функциональных вызовов.
Задайте параметры конфигурации для тестовой модели. На вкладке Моделирование (Modeling) и в разделе Настройка (Setup) выберите Параметры модели (Model Settings).
Выберите панель Привязка
модели (Model Referencing). Снимите флажок для параметра конфигурации Включить проверку строгого планирования для ссылочных моделей.
Убедитесь, что для параметра конфигурации «Тип решателя» установлено значение Fixed-step, Решатель имеет значение discrete (no continuous states) и фиксированный размер шага (время основной выборки), установленный на auto.
Щелкните правой кнопкой мыши сигналы выходного порта в блоке Model и выберите Log selected signal.
Запустить моделирование.
Откройте инспектор данных моделирования, щелкнув значок.![]()

После тестирования модели можно создать код для функций. См. раздел Создание кода для модели Export-Function.