Создайте тестовую обвязку, чтобы сгенерировать вызовы функции

После того, как вы создаете компонент модели, чтобы инициализировать, сбросить и отключить состояние блоков (см., Настраивают, Инициализируют, Сброс, и Отключают Функции), можно поместить модель в тестовую обвязку моделирования. Тестовая обвязка является моделью Simulink, которую вы используете, чтобы разработать, тестируете, и отлаживаете компонент модели.

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

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

Модель экспорта функций содержит компонент модели для тестирования. Чтобы создать модель экспорта функций, смотрите, Создают Модель Экспорта функций.

  1. Создайте новую модель Simulink. Сохраните эту модель с именем Test_Model.

  2. Установите Образцовые Параметры конфигурации для Типа решателя к Fixed-step, Решателя к auto и размера Фиксированного шага к 1.

  3. Добавьте Блок модели. Откройте диалоговое окно Block Parameters. В текстовом поле Имени модели введите имя своей модели экспорта функций. В этом примере введите Model02.

  4. Протестируйте компонент модели, на который ссылаются, путем соединения Блока Function-Call Generator с портом Run. Соедините блок Constant с портом Signal In и блок Scope к порту Signal Out.

  5. Запустите моделирование, чтобы проверить, что ваша модель моделирует правильно от родительской модели. Когда модель моделируется без портов события, Инициализировать Функциональный блок выполняется в начале моделирования, и Оконечный Функциональный блок выполняется в конце моделирования.

  6. Представьте порты вызова функции на блоке модели. Щелкните правой кнопкой по Блоку модели и выберите Block Parameters. В диалоговом окне Block Parameters выберите модель Show, инициализируют порт, Показывают образцовый порт сброса и Показывают образцовые оконечные флажки порта.

  7. Удалите Блок Function-Call Generator и обновите модель путем нажатия Ctr-D.

    Когда вы активируете инициализировать порт вызова функции на Блоке модели, модель должна получить инициализировать вызов функции на порте initialize, прежде чем это сможет выполниться. Прием вызова функции инициировал выполнение образцовой программы инициализации по умолчанию, и затем выполнение Инициализировать содержимого Функционального блока.

    Прием вызова функции на порте Reset инициировал выполнение содержимого Функционального блока Сброса.

    Прием вызова функции на порте Terminate инициировал выполнение Оконечного содержимого Функционального блока, и затем выполнение модели по умолчанию отключает стандартную программу. Модель затем прекращает запускаться. Чтобы выполнить модель снова, необходимо повторно инициализировать модель путем отправки сигнала события в порт initialize.

Смоделируйте планировщик события

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

  1. Добавьте диаграмму Stateflow. Кликните по образцовой схеме и начните вводить Chart. Из поискового списка выбрать.

  2. Откройте график и добавьте блоки с двумя состояниями, один над другим.

  3. Добавьте переход по умолчанию и соедините его с главным блоком состояния. Отредактируйте метку:

    {step = 0}
  4. Добавьте переход от главного блока до нижнего слоя камня. Отредактируйте метку:

    [step == 2]/{Initialize}

  5. Добавьте переход от нижнего слоя камня и назад к нижнему слою камня. Отредактируйте метку:

    [step == 5]/{Reset}

  6. Добавьте переход от нижнего слоя камня до главного блока. Отредактируйте метку:

    [step == 9]/{Terminate}

  7. Отредактируйте содержимое главного блока:

    Inactive
    entry: step = step + 1;
    during: step = step + 1;

  8. Отредактируйте содержимое нижнего слоя камня:

    Running
    entry: step = step + 1; Run;
    during: step = step + 1; Run;

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

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

  1. Открытый Образцовый Проводник. Просмотрите> Образцовый Проводник> Образцовый Проводник.

  2. Создайте индексную переменную. Из меню выберите Add> Data. В диалоговом окне Data введите Step для Имени.

  3. Создайте порты вызова функции. Для каждого события вы создаете, выбираете Add> Event и в конечном счете диалоговое окно, входите и выбираете следующие значения.

    Войдите в текстовое поле событияУстановите осциллографУстановите триггер
    InitializeOutput to SimulinkFunction call
    СбросOutput to SimulinkFunction call
    TerminateOutput to SimulinkFunction call
    ЗапущенныйOutput to SimulinkFunction call

  4. Перейдите к верхнему уровню модели. Соедините Initialize, Reset, Terminate и порты Run на графике к initialize, reset, terminate и входным портам Run на Блоке модели.

  5. Запустите моделирование.

    Модель не может выполниться до шага второго раза, когда блочное состояние инициализируется к 4. На пятом временном шаге вызов функции сброса к порту сброса инициировал Функциональный блок Сброса, чтобы выполниться. На девятом временном шаге подсистема прекращает выполняться, и блочное состояние остается постоянным.

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

Смотрите также

Блоки

Похожие темы

Была ли эта тема полезной?