Используйте Редактор Расписания, чтобы запланировать компоненты вызова функции для симуляции. Эта стратегия полезна, когда это необходимо, чтобы установить порядок выполнения для компонентов вызова функции и просмотреть зависимости по данным между компонентами.
Создайте новый Simulink® модель.
Добавьте блок Model, который ссылается на модель экспорта функций.
Задайте события вызова функции с помощью Редактора Расписания.
Задайте вводы данных.
Запустите симуляцию.
Чтобы создать модель для этого примера, смотрите, Создают Модель Экспорта функций.
Чтобы открыть завершенную тестовую модель, смотрите ex_export_function_test_model_with_schedule_editor
.
Тестовая модель Simulink используется только для симуляции. После тестирования симуляции сгенерируйте код из модели экспорта функций, и затем вручную интегрируйте экспортируемый функциональный код с внешне закодированным планировщиком. Ссылка на модель экспорта функций от блока Model позволяет сложение событий вызова функции и логгирование сигналов данных для тестирования, не изменяя саму модель.
Создайте новую модель Simulink.
На вкладке Modeling и от раздела Setup, выберите Model Settings .
На левой панели диалогового окна Configuration Parameters выберите Solver. На правой панели выберите стрелу деталей Решателя, чтобы отобразить дополнительные параметры. Установите флажки для Treat each discrete rate as a separate task и Automatically handle rate transition for data transfer.
Добавьте блок Model в свою модель
На вкладке Modeling выберите раздел Design, и затем выберите Property Inspector .
В поле Model name введите export_function_model
. Установите флажок Schedule rates. От Schedule rates выпадающий список выберите Schedule Editor
.
Добавьте блоки Outport в порты output_100ms и output_10ms на блоке Model.
Добавьте блок Sine Wave, чтобы обеспечить ввод данных. Установите Amplitude на 2
и Sample time к 0.01
. Соедините блок с входным портом input_10ms на блоке Model.
Используйте Редактор Расписания, чтобы обеспечить события вызова функции путем определения временных векторов, которые указывают, когда события имеют место для вызова функции корневого уровня блоки Inport
Откройте Редактор Расписания. На вкладке Modeling и от раздела Design, выберите Schedule Editor . Редактор Расписания делит вызов функции, Inport блокирует и называет разделы с помощью имен блока.
Выберите function_call_2 раздел. В поле Hit Times введите матрицу со значениями, которые начинаются в 0, периодически увеличиваются на 0,01 до 10. Вы могли также протестировать асинхронное поведение путем ввода матрицы со случайными значениями, которые являются множителями 0.01
.
Выберите function_call_1 раздел. В поле Hit Times введите матрицу со значениями, которые начинаются в 0, увеличение 0,1 к 10.
Симулируйте модель экспорта функций, чтобы протестировать и наблюдать ее поведение прежде, чем сгенерировать код.
Проверьте, что параметры конфигурации для Типа Решателя установлены в Fixed-step
, Набор решателя к discrete (no continuous states)
или auto (Automatic solver selected)
, и Fixed-step size (fundamental sample time) установлен в auto
.
Настройте логгирование сигналов данных. Щелкните правой кнопкой по сигналам выходного порта и установите флажок Log selected signal.
На вкладке Simulation выберите кнопку Run.
Откройте Инспектора Данных моделирования путем нажатия на значок панели инструментов.
После того, как вы протестируете свою модель, можно сгенерировать код для функций. Смотрите Генерируют Код для Модели Экспорта функций.