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

Используйте несколько блоков Function-Call Generator с различными шагами расчета и пусть Simulink® планируйте компоненты вызова функции для симуляции. Эта стратегия полезна, когда поведение планирования скорость-монотонное в Simulink подобно поведению целевой ОС.

  • Создайте новую модель Simulink.

  • Добавьте блок Model, который ссылается на модель export-function.

  • Задайте события вызова функции, используя блоки Function-Call Generator.

  • Задайте входы данных.

  • Запустите симуляцию.

Чтобы создать модель для этого примера, см. Раздел «Создание модели экспорта функций».

Чтобы открыть завершенную экспериментальную модель, см. ex_export_function_test_model_with_function_call_generators.

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

Ссылка на модель экспорта функций из блока Model позволяет добавлять события вызова функции и регистрировать сигналы данных для проверки, не меняя саму модель.

  1. Добавьте блок Model к новой модели Simulink. В Model name поле введите export_function_model.

  2. Добавьте Outport блоки к портам output_100ms и output_10ms на блоке Model.

  3. Добавьте блок Sine Wave, чтобы обеспечить вход данных. Установите Amplitude значение 2 и Sample time к 0.01. Соедините блок с input_10ms входным портом на блоке Model.

Создайте экспериментальную модель ( обвязку) для симуляции

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

  1. Добавьте блок Function-Call Generator. Установите Sample time значение 0.1. Соедините блок с function_call_100ms входным портом.

  2. Добавьте второй Function-Call Generator блок. Установите Sample time значение 0.01. Соедините блок с function_call_10ms входным портом.

Ограничения планирования для ссылочных моделей экспорта функций

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

Для экспериментальной модели:

  • Вы не можете использовать два блока Function-Call Generator с одним и тем же шагом расчета.

  • Вызовы функций к входным портам блока Model должны следовать порядку выполнения блоков function-call корневого уровня в Inport модели export-function. Function-Call Generator блоки с меньшими шагами расчета выполняйте сначала.

    Если экспериментальная модель вызывает функции модели-ссылки вне порядка в любой временной шаг, Simulink отображает ошибку. Для получения информации о отсортированном поручении на выполнение смотрите Управление и Отображение порядка выполнения. Чтобы отключить это ограничение, снимите флажок для параметр конфигурации <reservedrangesplaceholder0>.

  • Можно использовать блок Mux, чтобы соединить сигналы из блоков Function-Call Generator с различными шагами расчета, прежде чем соединять их с ссылочной моделью export-function. В диалоговом окне Параметры конфигурации снимите флажок для Treat each discrete rate as a separate task параметра.

Для модели экспорта функций:

  • Для блоков шагов расчета вызова функции корневого уровня должно быть задано Inport наследование (-1) или соответствовать шагу расчета блоков Function-Call Generator, которые управляют ими.

Симулируйте модель экспорта функций

Симулируйте модель экспорта функций, чтобы протестировать и наблюдать ее поведение перед генерацией кода.

Примечание

Simulink не моделирует прерывание вызовов функций.

  1. Установите параметры конфигурации для экспериментальной модели. На вкладке Modeling и из раздела Setup выберите Model Settings. Выберите панель Модели ссылок. Снимите флажок для параметр конфигурации <reservedrangesplaceholder0>.

  2. Проверьте, что для параметров конфигурации Solver Type задано значение Fixed-step, Решатель установлено в discrete (no continuous states), и Фиксированный размер шага (основной шаг расчета), установленный на auto.

  3. Настройте протоколирование сигналов. Щелкните правой кнопкой мыши выходные сигналы порта и выберите Log selected signal.

  4. Запустите симуляцию.

  5. Откройте Simulation Data Inspector, щелкнув значок на панели инструментов.

После тестирования модели можно сгенерировать код для функций. См. «Генерация кода для модели экспорта функций».

См. также

Блоки

Похожие темы