Эта тема описывает, как сослаться на основанную на уровне модель в тестовой модели, и затем добавить периодические порты события вызова функции в тестовую модель для симуляции. Чтобы открыть завершенную модель тестовой обвязки, смотрите ex_model_test_harness_with_subsystems
.
Тестирование основанной на уровне модели включает ссылку на модель от блока Model в тестовой модели, добавление периодических портов события вызова функции с блоком Model и затем соединения вызовов функции к портам.
Создайте Simulink® модель.
Добавьте блок Model и откройте его диалоговое окно Block Parameters.
В поле Model name введите имя файла для основанной на уровне модели.
Установите флажок Schedule rates.
Периодические порты события вызова функции добавляются к блоку Model с шагами расчета, которые вы задали для блоков Inport, соединенных с блоками Subsystem.
Задайте уровень выполнения с помощью инициаторов вызова функции (блоки Function-Call Generator или Stateflow® графики). События вызова функции и планирование событий расположены за пределами блока Model, ссылающегося на основанную на уровне модель.
В этом примере добавьте блоки Function-Call Generator. Откройте диалоговые окна Block Parameters для блоков и задайте Sample time.
Подсистемы или модели, на которые ссылаются, в основанной на уровне модели с тем же шагом расчета должны иметь общего инициатора уровня. Это требование включает периодические запланированные подсистемы и событийно-управляемые блоки Function-Call Subsystem с тем же уровнем.
Используйте решатель фиксированного шага для симуляции. Установите параметры конфигурации Type на Fixed-step
, Solver к auto
, и Fixed-step size к auto
.
Симулируйте поведение основанной на уровне модели от тестовой модели.
Запустите симуляцию. Некоторая общая компиляция и ошибки времени выполнения вызываются:
Периодический порт события, который не соединяется с инициатором вызова функции с тем же заданным шагом расчета.
Запланированный блок Inport (набор параметров Sample time к значению) в модели компонента, на которую ссылаются, которая не задает одну из периодических скоростей порта события вызова функции (шаги расчета, заданные в таблице Port discrete rates).
Наблюдайте поведение модели компонента. Откройте блок Scope.