Используйте график Stateflow®, чтобы обеспечить планировщик вызова функции, где можно полностью управлять процессом планирования для периодических (синхронных) или апериодических (асинхронных) последовательностей вызова.
Создайте новую модель Simulink®.
Добавьте блок Model, который ссылается на модель экспорта функций.
Задайте Входные параметры вызова функции с помощью диаграммы Stateflow.
Задайте вводы данных.
Запустите симуляцию.
Чтобы создать модель для этого примера, смотрите, Создают Модель Экспорта функций.
Чтобы открыть завершенную тестовую модель, смотрите ex_export_function_test_model_with_stateflow_chart.
Ссылка на модель экспорта функций от блока Model позволяет сложение событий вызовов функции от диаграммы Stateflow и логгирования сигналов данных для тестирования, не изменяя саму модель.
Добавьте блок Model в новую модель Simulink. В поле Model name введите export_function_model.
Добавьте блоки Outport в порты output_100ms и output_10ms для сохранения данных моделирования к MATLAB.
Добавьте блок Sine Wave, чтобы обеспечить ввод данных. Установите Amplitude на 2 и Sample time к 0.01. Соедините блок с входным портом input_10ms на блоке Model.

Создайте новую диаграмму Stateflow. Этот шаг требует лицензии Stateflow.
На вкладке Modeling и от раздела Design, выберите Model Explorer
. В панели Model Hierarchy выберите Chart.
Добавьте события вызова функции с выходными портами к графику. В меню выберите Add> Event. В поле Name введите out_100ms. Из списка Scope выберите Output to Simulink. Повторите шаг, чтобы создать событие вызова функции и выходной порт для out_10ms.

Откройте график путем двойного клика по блоку. Добавьте блок State и стрелу перехода По умолчанию.

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

Вы используете тестовую модель Simulink только для симуляции. После тестирования симуляции сгенерируйте код из модели экспорта функций, и затем интегрируйте экспортируемый функциональный код с внешне закодированным планировщиком.
Добавьте диаграмму Stateflow в свою тестовую модель.
Соедините Stateflow Chart выходные параметры с входными параметрами блока Model.

Если тестовая модель ссылается на модель экспорта функций, существуют некоторые ограничения, чтобы гарантировать непротиворечивость результатами симуляции.
Для тестовой модели:
Вызовы функции к входным портам на блоке Model должны следовать за порядком выполнения вызова функции корневого уровня блоки Inport в модели экспорта функций, на которую ссылаются.
Если тестовая модель вызывает функции модели, на которые ссылаются, не в порядке в любое время продвигаются, Simulink отображает ошибку. Для получения информации об отсортированном порядке выполнения смотрите Порядок выполнения Управления и Отображения. Чтобы отключить это ограничение, снимите флажок для параметра конфигурации Enable strict scheduling checks for referenced models.
Для модели экспорта функций:
Шаги расчета для вызова функции корневого уровня блоки Inport должны быть установлены в наследованный (-1) или совпадайте с шагом расчета вызовов функции от диаграммы Stateflow, которая управляет ими.
Симулируйте модель экспорта функций, чтобы протестировать и наблюдать ее поведение прежде, чем сгенерировать код.
Примечание
При использовании моделей экспорта функций в симуляциях топ-модели не изменяйте позволять/запрещать состояние модели в процессе моделирования. Включите его в начале симуляции и используйте вызовы функции вызвать его.
Установите параметры конфигурации для тестовой модели. На вкладке Modeling и от раздела Setup, выберите Model Settings
. Выберите Модель, Ссылающуюся на панель. Снимите флажок для параметра конфигурации Enable strict scheduling check for referenced models.
Проверьте параметры конфигурации, Solver Type установлен в Fixed-step, набор Solver к discrete (no continuous states) и размер Фиксированного шага (основной шаг расчета) набор к auto.
Щелкните правой кнопкой по сигналам выходного порта по блоку Model и выберите Log selected signal.
Запустите симуляцию.
Откройте Инспектора Данных моделирования путем нажатия на значок
.

После того, как вы протестируете свою модель, можно сгенерировать код для функций. Смотрите Генерируют Код для Модели Экспорта функций.