Основы событийного моделирования
Пакет Stateflow
Понятие о событийном моделировании
Как уже отмечалось, основное назначение пакета Simulink заключается в осуществлении имитационного моделирования систем и устройств [9, 15, 77, 78]. При этом воздействие внешних событий (ситуаций) на поведение систем и устройств не учитывается или учитывается на уровне временных зависимостей источников воздействия.
Между тем многие системы и устройства работают в условиях, когда возникновение тех или иных событий может существенным образом повлиять на их работу. Возьмем простой пример — источник энергии переменного тока (сигнала) подключен к нагрузке (индикатору). Моделирование покажет наличие на нагрузке соответствующего переменного напряжения. А теперь предположим, в духе нашего смутного времени, что поставщик электроэнергии неожиданно «вырубил рубильник» и отключил электроэнергию. Естественно, что работа нашей простой системы резко изменится — сигнал исчезнет и напряжение на нагрузке станет равным нулю.
Моделирование систем и устройств, поведение которых зависит от внешних событий (ситуаций), называется событийным или ситуационным моделированием. В системе Simulink + MATLAB оно реализуется с помощью специального расширения Stateflow. Это один из бурно развивающихся пакетов расширения — в MATLAB 6.5 SP1 он представлен версией Stateflow 5.1.1, а в MATLAB 7 уже версией Stateflow 6. В пределах начального знакомства с этим пакетом, составляющего цель данной главы, различие между версиями роли не имеет.
Назначение пакета Stateflow
Пакет событийного моделирования Stateflow основан на теории конечных автоматов. Он позволяет представить функционирование системы на основе цепочки правил, которые задают соответствие событий и действий, выполняемых в ответ на эти события. Пакет Stateflow предназначен прежде всего для анализа, моделирования и проектирования таких систем, как:
- • детерминированные системы управления;
- • диспетчерская служба различных транспортных средств (автомобильного, железнодорожного и воздушного движения);
- • периферийные устройства и контроллеры для компьютеров;
- • средства графического интерфейса пользователя (GUI);
- • элементы человеко-машинного интерфейса (Men Machine Interface — MMI);
- • гибридные системы на основе средств Simulink и ряда пакетов расширения (Control System, Digital Signal Processor и др.);
- • наглядные интерактивные уроки по моделированию и проектированию систем.
Пакет имеет свой графический интерфейс пользователя, позволяющий создавать SF-модели в виде графических SF-диаграмм динамического типа. Это означает, что в ходе моделирования на диаграмме отражаются все изменения модели: например, строятся диаграммы переходов, изменяются цвета блоков в зависимости от их активности и т. д. Это позволяет визуально отслеживать поведение системы в ходе моделирования. К сожалению, в примерах книги трудно в полной мере отразить динамику SF-диаграмм.
Графический интерфейс пользователя пакета Stateflow имеет следующие компоненты:
- • графический редактор SF-диаграмм;
- • обозреватель для анализа SF-диаграмм (Stateflow Explorer);
- • навигатор (Stateflow Finder) для поиска в SF-диаграммах нужных объектов;
- • отладчик SF-моделей;
- • генератор кодов для работы совместно с расширением для работы в реальном времени Real Time Workshop.
Эти компоненты обеспечивают интуитивно понятные и простые приемы работы с пакетом Stateflow.
Доступ к средствам Stateflow
Доступ к средствам Stateflow подобен уже описанному доступу к различным разделам библиотеки пакета Simulink. В окне библиотеки пакета Stateflow присутствует единственный блок Chart. Его можно перетащить мышью в окно модели Simulink для построения в дальнейшем SF-диаграммы. Для открытия окна с демонстрационными примерами надо выбрать пункт меню File ? Open и найти файл sf_exmples в папке toolboxstateflowsfdemos. При загрузке этого файла откроется окно с демонстрационными примерами.
Средства Stateflow могут использоваться как самостоятельно (см. ниже), так и в составе моделей Simulink. Все, что надо сделать для подключения блока Chart к модели в Simulink, — это перетащить его мышью в окно модели и подключить к нужному месту. Первоначально активизация этого блока вызывает пустое окно редакторе! SF-диаграмм. Его можно использовать для создания SF-диаграмм и их отладки с целью получения от них нужных функций. Совокупность всех SF-бло-ков, имеющихся в составе модели, образует Stateflow-машину.
Понятие о SF-диаграмме
SF-диаграмма — это графическая диаграмма, создаваемая средствами графического интерфейса пакета расширения Stateflow. SF-диаграмма служит для визуального представления работы моделируемой системы. Это достигается анализом всех стадий ее работы с указанием активных и пассивных в данное время блоков и переходов между ними по результатам анализа тех или иных условий. При этом блоки различаются цветом и толщиной линий, которыми они представлены. Последнее, кстати, позволяет дать представление о динамике работы SF-диаграмм даже в материалах книг с черно-белыми рисунками.
Прежде чем описывать средства создания конкретных SF-диаграмм, рассмотрим типичную SF-диаграмму некоей абстрактной системы. Такая диаграмма с обозначенными на ней объектами представлена на рис. 9.1.
На рис. 9.1 показаны основные типы объектов SF-диаграмм. Ниже мы рассмотрим их более подробно.

Рис. 9.1. Вид Stateflow-диаграммы