exponenta event banner

Данные состояния блока доступа

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

Состояние блоков в состояниях на основе Simulink можно читать и записывать в действиях перехода диаграммы Stateflow. Состояние блоков можно читать и записывать текстуально на переходах диаграммы или с помощью блоков Simulink State Reader и State Writer.

Этот график Stateflow моделирует человека, проходящего через этапы прыжков с шестом. Первый этап - прогон подхода сводника, который моделируется состоянием на основе Simulink Run_up. На втором этапе сводник сажает столб и взлетает, что моделируется состоянием на базе Simulink Take_off. Заключительный этап происходит, когда сводник очищает штангу и освобождает столб, который моделируется состоянием на основе Simulink Fly.

Государства Run_up и Fly проще моделировать с помощью декартовых координат. Государство Take_off легче моделировать с помощью полярных координат. Функции Simulink InitTakeOff и InitFly используются для переключения с одной системы координат на другую. Дополнительные сведения об этой диаграмме см. в разделе Моделирование полюсного манипулятора с использованием состояний на основе симулинков.

Текстовый доступ

Эта подсистема находится в состоянии на основе Simulink Run_up. Для перехода от Run_up кому Take_off положение прыгуна с шестом вдоль оси x, p(1), должно быть больше, чем -4.

Путем установки имени состояния блока интегратора Position кому 'p', можно получить текстовый доступ к состоянию этого блока из диаграммы Stateflow. Для доступа к состоянию блока интегратора в условиях перехода введите [Run_up.p(1)> -4]. Когда это условие становится верным, переход принимается, и активное состояние становится Take_off.

На панели «Символы» видно, что состояние 'p' появляется под состоянием Run_up.

Графический доступ

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

Подключение блока чтения состояния к блоку владельца

Следующая подсистема содержится в функции Simulink InitTakeOff. Функция использует блоки чтения состояний для подключения к состоянию Run_up и читает p и v. Затем функция преобразует декартовы значения положения прыгуна с шестом и скорости в полярные координаты. r и theta и rdot и theta_dotсоответственно. Затем доступ к этим полярным координатам осуществляется с помощью блоков владельца состояния в состоянии. Take_off.

Когда происходит действие перехода, устройство чтения состояний блокирует InitTakeOff прочтите состояние блоков их государственных владельцев. После завершения выполнения функции Simulink устройство записи состояния блокирует запись в блоки владельца состояния в состоянии на основе Simulink. Take_off.

Чтобы подключить блок чтения состояния или блок записи состояния к блоку владельца в подсистеме Simulink, выполните следующие действия.

  1. Чтобы открыть свойства, дважды щелкните программу чтения состояний.

  2. В дереве выбора владельца состояния перейдите к блоку, который должен быть блоком владельца состояния. В этом примере путем выбора Position, вы подключаете блок State Reader к интегратору Position в состоянии Run_up.

  3. Путем подключения блока чтения состояния к Position блок интегратора, эта функция Simulink может использовать состояние интегратора Position для выполнения.

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