exponenta event banner

Связывание функции Simulink с состоянием

Функция Simulink ® - это графический объект, который заполняется блоками Simulink и вызывает действия состояний и переходов. Функции Simulink поддерживаются только в диаграммах Stateflow ® в моделях Simulink. Дополнительные сведения см. в разделе Повторное использование компонентов Simulink в диаграммах Stateflow.

Поведение привязки функции Simulink

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

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

  • При вводе состояния функция активируется.

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

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

Потому что функция queue находится в состоянии A1, функция связывается с этим состоянием.

  • Государство A1 и его подстанциях A2 и A3 может позвонить queue, но состояние B1 не может.

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

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

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

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

  1. В функции Simulink дважды щелкните порт триггера, чтобы открыть диалоговое окно «Параметры блока».

  2. Выберите параметр Состояния при включении.

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

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

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

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

Диалоговое окно «Параметры блока» для порта триггера отображается следующим образом.

В диалоговом окне установите для параметра Тип времени образца значение periodic включает поле Sample time, в котором по умолчанию установлено значение 1. Эти параметры определяют выполнение функции для каждого временного шага, указанного в поле 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 повторяются до окончания моделирования.

Поведение функции при удержании переменных

При установке состояний при включении held, выходные данные y1 является следующим.

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

Поведение функции при сбросе переменных

При установке состояний при включении reset, выходные данные y1 является следующим.

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

Связанные темы