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

Вы используете тестовую модель Simulink только для симуляции. После тестирования симуляции сгенерируйте код из модели экспорта функций, и затем интегрируйте экспортируемый функциональный код с внешне закодированным планировщиком.
Добавьте блок Function-Call Generator. Установите Sample time на 0.1. Соедините блок с входным портом function_call_100ms.
Добавьте второй блок Function-Call Generator. Установите Sample time на 0.01. Соедините блок с входным портом function_call_10ms.

Если тестовая модель ссылается на модель экспорта функций, существуют некоторые ограничения, чтобы гарантировать непротиворечивость результатами симуляции.
Для тестовой модели:
Вы не можете использовать два блока Function-Call Generator с тем же шагом расчета.
Вызовы функции к входным портам на блоке Model должны следовать за порядком выполнения вызова функции корневого уровня блоки Inport в модели экспорта функций, на которую ссылаются. блоки Function-Call Generator с меньшими шагами расчета выполняются сначала.
Если тестовая модель вызывает функции модели, на которые ссылаются, не в порядке в любое время продвигаются, Simulink отображает ошибку. Для получения информации об отсортированном порядке выполнения смотрите Порядок выполнения Управления и Отображения. Чтобы отключить это ограничение, снимите флажок для параметра конфигурации Enable strict scheduling checks for referenced model.
Можно использовать блок Mux, чтобы соединить сигналы от блоков Function-Call Generator с различными шагами расчета прежде, чем соединить их с моделью экспорта функций, на которую ссылаются. В диалоговом окне Configuration Parameters снимите флажок для параметра Treat each discrete rate as a separate task.
Для модели экспорта функций:
Шаги расчета для вызова функции корневого уровня блоки Inport должны быть установлены в наследованный (-1) или совпадайте с шагом расчета блоков Function-Call Generator, которые управляют ими.
Симулируйте модель экспорта функций, чтобы протестировать и наблюдать ее поведение прежде, чем сгенерировать код.
Примечание
Simulink не симулирует вызовы функции вытеснения.
Установите параметры конфигурации для тестовой модели. На вкладке Modeling и от раздела Setup, выберите Model Settings
. Выберите Модель, Ссылающуюся на панель. Снимите флажок для параметра конфигурации Enable strict scheduling check for referenced models.
Проверьте, что параметры конфигурации для Типа Решателя установлены в Fixed-step, Набор решателя к discrete (no continuous states), и размер Фиксированного шага (основной шаг расчета) набор к auto.
Настройте логгирование сигналов. Щелкните правой кнопкой по сигналам выходного порта и выберите Log selected signal.
Запустите симуляцию.
Откройте Инспектора Данных моделирования путем нажатия на значок панели инструментов
.

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