Используйте несколько Блоков Function-Call Generator с отличными частотами дискретизации и позвольте Simulink® запланировать компоненты вызова функции для моделирования. Эта стратегия полезна, когда пропорциональное числу обращений поведение планирования в Simulink подобно целевому поведению ОС.
Создайте новую модель Simulink.
Добавьте Блок модели, который ссылается на модель экспорта функций.
Задайте времена вызова функции с помощью Блоков Function-Call Generator.
Задайте вводы данных.
Запустите моделирование.
Чтобы создать модель для этого примера, смотрите, Создают Модель Экспорта функций.
Ссылка на модель экспорта функций от Блока модели позволяет сложение сигналов вызова функции и журналирование сигналов, не изменяя саму модель.
Добавьте Блок модели к новой модели Simulink. В поле Имени модели введите export_function_model
.
Добавьте блоки Выходного порта к ouput_100ms и output_10ms портам на Блоке модели.
Добавьте блок Sine Wave, чтобы обеспечить ввод данных. Установите Амплитуду на 2
и Частоту дискретизации к 0.01
. Соедините блок с input_10ms входным портом на Блоке модели.
Вы используете экспериментальную модель Simulink только для моделирования. После тестирования моделирования сгенерируйте код от модели экспорта функций, и затем интегрируйте экспортируемый функциональный код с внешне закодированным планировщиком.
Добавьте Блок Function-Call Generator. Установите Частоту дискретизации на 0.1
. Соедините блок с function_call_100ms входным портом.
Добавьте второй Блок Function-Call Generator. Установите Частоту дискретизации на 0.01
. Соедините блок с function_call_10ms входным портом.
Если экспериментальная модель ссылается на модель экспорта функций, существуют некоторые ограничения, чтобы гарантировать непротиворечивость результатами симуляции.
Для экспериментальной модели:
Вы не можете использовать два Блока Function-Call Generator с той же частотой дискретизации.
Вызовы функции к входным портам на Блоке модели должны следовать за порядком выполнения вызова функции корневого уровня блоки Inport в модели экспорта функций, на которую ссылаются. Блоки Function-Call Generator с меньшими частотами дискретизации выполняются сначала.
Если экспериментальная модель вызывает образцовые функции, на которые ссылаются, не в порядке в любое время продвигаются, Simulink отображает ошибку. Для получения информации об отсортированном порядке выполнения смотрите Управление и Отображение Отсортированный Порядок. Чтобы отключить это ограничение, очистите флажок Model Configuration Parameters> Model Referencing> Enable строгие проверки планирования на модели, на которые ссылаются.
Можно использовать блок Mux, чтобы соединить сигналы от Блоков Function-Call Generator с различными частотами дискретизации прежде, чем соединить их с моделью экспорта функций, на которую ссылаются. В диалоговом окне Configuration Parameters очистите Обработку каждый дискретный уровень как отдельный флажок задачи.
Для модели экспорта функций:
Частоты дискретизации для вызова функции корневого уровня блоки Inport должны быть установлены в наследованный (-1
) или совпадать с частотой дискретизации Блоков Function-Call Generator, которые управляют ими.
Моделируйте модель экспорта функций, чтобы протестировать и наблюдать ее поведение прежде, чем сгенерировать код.
Simulink не моделирует вызовы функции вытеснения.
Очиститесь параметр конфигурации Включают строгую проверку планирования на модели, на которые ссылаются.
Проверьте, что параметры конфигурации для Типа Решателя установлены в Fixed-step
, набор Решателя к discrete (no continuous states)
и размер Фиксированного шага (основная частота дискретизации) набор к auto
.
Настройте журналирование сигналов. Щелкните правой кнопкой по сигналам выходного порта и выберите Log выбранный сигнал.
Запустите моделирование.
Откройте Моделирование Data Inspector путем нажатия на значок панели инструментов.
После того, как вы протестируете свою модель, можно сгенерировать код для функций. Смотрите Генерируют Код для Модели Экспорта функций.