Свяжите функцию Simulink с состоянием

Simulink® функции не поддерживаются в автономном Stateflow® графики в MATLAB®.

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

  • Вызовы функции могут произойти только в состояниях активности и на переходах в состоянии и его подсостояниях.

  • Когда состояние вводится, функция включена.

  • Когда из состояния выходят, функция отключена.

Например, следующая диаграмма Stateflow показывает функцию Simulink, которая связывает с состоянием.

Начиная с функционального queue находится в A1 состояния, функция связывает, чтобы утвердить A1.

  • A1 состояния и его подсостояния A2 и A3 может вызвать функциональный queue, но B1 состояния не может.

  • Когда A1 состояния вводится, queue включен.

  • Когда A1 состояния выходится, queue отключен.

Управляйте переменными подсистемы, когда функция Simulink будет отключена

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

  1. В функции Simulink дважды кликните триггерный порт, чтобы открыть диалоговое окно Block Parameters.

  2. Выберите опцию для States when enabling.

    ОпцияОписание
    heldСодержит значения переменных подсистемы из предыдущего выполнения
    resetСбрасывает переменные подсистемы к их начальным значениям

Привязка функции Simulink к состоянию

В этом примере показано, как функция Simulink ведет себя, когда связано с состоянием.

Функциональный queue содержит блок-схему, которая постепенно увеличивает счетчик к 1 каждому разу, когда функция выполняется.

Диалоговое окно Block Parameters для триггерного порта появляется следующим.

В диалоговом окне, установке Sample time type к periodic включает поле Sample time, который значения по умолчанию к 1. Эти настройки говорят функции выполняться для каждого временного шага, заданного в поле Sample time, в то время как функция включена.

Если вы используете решатель фиксированного шага, значение в поле Sample time должно быть целочисленным кратным размер фиксированного шага. Это ограничение не применяется к решателям переменного шага. Для получения дополнительной информации смотрите, Сравнивают Решатели (Simulink).

Поведение симуляции графика

Когда вы симулируете график, следующие действия происходят.

  1. График берет переход по умолчанию, чтобы утвердить A1, и локальные данные u1 установлен в 1.

  2. Когда A1 вводится, функциональный queue включен.

  3. Вызовы функции к queue происходите до условия after(5, sec) верно.

  4. Если условие верно, переход от A1 состояния к B1 происходит.

  5. Когда A1 выходится, функциональный queue отключен.

  6. После еще двух передач секунд, перехода от B1 к A1 происходит.

  7. Повторение шагов 2 - 6 до симуляции заканчивается.

Функциональное поведение, когда переменные сохранены

Если вы устанавливаете States when enabling на held, выход y1 следующие.

Когда A1 состояния становится неактивным в t = 5, функция Simulink содержит встречное значение. Когда A1 активен снова в t = 7, счетчик имеет то же значение, как это сделало в t = 5. Поэтому выход y1 продолжает постепенно увеличиваться в зависимости от времени.

Функциональное поведение, когда переменные сбрасываются

Если вы устанавливаете States when enabling на reset, выход y1 следующие.

Когда A1 состояния становится неактивным в t = 5, функция Simulink не содержит встречное значение. Когда A1 активен снова в t = 7, сбросы счетчика, чтобы обнулить. Поэтому выход y1 сброс также.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте