После того, как вы создаете компонент модели, чтобы инициализировать, сбросить и отключить состояние блоков (см. Используя, Инициализируют, Сброс и Оконечные Функции), можно поместить модель в тестовую обвязку симуляции. Тестовая обвязка является моделью Simulink, которую вы используете, чтобы разработать, тестируете, и отлаживаете компонент модели.
Чтобы создать тестовую обвязку, сошлитесь на модель экспорта функций, содержащую компонент модели в новой модели, и затем добавьте график Stateflow®, чтобы смоделировать планировщик события вызова функции.
Модель экспорта функций содержит компонент модели для тестирования. Чтобы создать модель экспорта функций, смотрите, Создают Модель Экспорта функций.
Создайте новую модель Simulink. Сохраните эту модель с именем Test_Model
.
Установите параметры конфигурации для решателя Type к Fixed-step
, Решатель к auto
, и Fixed-step size к 1
.
Добавьте блок Model. Откройте диалоговое окно Block Parameters. В текстовом поле Model name введите имя своей модели экспорта функций. В этом примере введите Model02
.
Протестируйте компонент модели, на который ссылаются, путем соединения Блока Function-Call Generator с Run
порт. Соедините блок Constant с Signal In
порт и блок Scope к Signal Out
порт.
Запустите симуляцию, чтобы проверить, что ваша модель симулирует правильно от родительской модели. Когда модель симулирована без портов события вызова функции, блок Initialize Function выполняется в начале симуляции, и блок Terminate Function выполняется в конце симуляции.
Отсоедините входные порты вызова функции на блоке модели. Щелкните правой кнопкой по блоку Model и выберите Block Parameters. В диалоговом окне Block Parameters выберите Show model initialize port, Show model reset port и флажки Show model terminate port.
Удалите блок Function-Call Generator и обновите модель путем нажатия Ctr-D.
Когда вы активируете инициализировать входной порт вызова функции на блоке Model, модель должна получить инициализировать вызов функции на initialize
порт, прежде чем это сможет выполниться. Прием вызова функции инициировал выполнение программы инициализации модели по умолчанию, и затем выполнение содержимого блока Initialize Function.
Прием вызова функции на Reset
порт инициировал выполнение содержимого Функционального блока Сброса.
Прием вызова функции на Terminate
порт инициировал выполнение содержимого блока Terminate Function, и затем выполнение модели по умолчанию отключает стандартную программу. Модель затем прекращает запускаться. Чтобы выполнить модель снова, необходимо повторно инициализировать модель путем отправки события вызова функции в initialize
порт.
Используйте диаграмму Stateflow, чтобы смоделировать расписание события и сгенерировать инициализирование и оконечные сигналы вызова функции.
Добавьте диаграмму Stateflow. Кликните по диаграмме модели и начните вводить Chart
. Из поискового списка выбрать.
Откройте график и добавьте блоки с двумя состояниями, один над другим.
Добавьте переход по умолчанию и соедините его с главным блоком состояния. Отредактируйте метку:
{step = 0}
Добавьте переход от главного блока до нижнего слоя камня. Отредактируйте метку:
[step == 2]/{Initialize}
Добавьте переход от нижнего слоя камня и назад к нижнему слою камня. Отредактируйте метку:
[step == 5]/{Reset}
Добавьте переход от нижнего слоя камня до главного блока. Отредактируйте метку:
[step == 9]/{Terminate}
Отредактируйте содержимое главного блока:
Inactive entry: step = step + 1; during: step = step + 1;
Отредактируйте содержимое нижнего слоя камня:
Running entry: step = step + 1; Run; during: step = step + 1; Run;
Создайте выходные порты вызова функции на графике, чтобы управлять и запустить компонент модели.
Открытый Model Explorer. На вкладке Modeling и от раздела Design, выберите Model Workspace ..
Создайте индексную переменную. В меню выберите Add> Data. В диалоговом окне Data введите Step
для Name.
Создайте выходные порты вызова функции. Для каждого события вызова функции вы создаете, выбираете Add> Event и в конечном счете диалоговое окно, входите и выбираете следующие значения.
Войдите в текстовое поле события | Установите осциллограф | Установите триггер |
---|---|---|
Initialize | Output to Simulink | Function call |
Reset | Output to Simulink | Function call |
Terminate | Output to Simulink | Function call |
Run | Output to Simulink | Function call |
Перейдите к верхнему уровню модели. Соедините Initialize
сброс
, Terminate
, и Run
порты на графике к initialize
сброс
, terminate
, и Run
входные порты на блоке Model.
Запустите симуляцию.
Модель не может выполниться до шага второго раза, когда состояние блока инициализируется к 4. На пятом временном шаге вызов функции сброса к порту сброса инициировал блок Reset Function, чтобы выполниться. На девятом временном шаге подсистема прекращает выполняться, и состояние блока остается постоянным.
Если модель получает вызов функции запуститься, прежде чем инициализировать вызов функции, ошибка симуляции произойдет.