Описана графическая нотация диаграмм состояний гибридных систем для среды моделирования ИСМА, разработан редактор диаграмм состояний, доработана грамматика языка LISMA для корректной трансляции диаграммы в код, выполнено тестирование соответствующих разработок.
Ключевые слова: гибридная система, редактор диаграмм, грамматика языка LISMA, среда моделирования ИСМА.
Одной из актуальных проблем в практике компьютерного моделирования систем в различных прикладных областях является наиболее корректное и эффективное проведение вычислительного эксперимента. Это относится и к гибридным системам. Для построения модели гибридной системы, состоящей из большого количества состояний, целесообразно использовать графический визуализатор. Это позволит лучше понимать работу машины состояний и быстро вносить изменения в уже имеющуюся модель. Графический редактор с элементами языка UML дает возможность создания моделей гибридных систем без необходимости знания пользователем элементов синтаксиса предметно-ориентированного языка.
Основными элементами диаграммы будем считать начальное состояние, состояние, составное состояние и условие перехода.
Начальное состояние определяет точку, в которой находится объект в начальный момент времени или при попадании в составное состояние. Переход из начального состояния содержит параметры инициализации. Обозначение начального состояния с соответствующим переходом представлено на рисунке 1.
Рис. 1. Пример начального состояния гибридной системы с параметрами инициализации
Элемент состояния на диаграмме соответствует некоторому качественному состоянию моделируемой системы и изображается прямоугольником с закругленными углам [1, с. 58] (см. рисунок 2).
Рис. 2. Пример состояния гибридной системы
Переход представляет собой отношение между двумя состояниями, обозначающее смену одного состояния другим при выполнении заданных условий. Пример перехода представлен на рисунке 3.
Рис. 3. Пример перехода гибридной системы
Составное состояние — сложное состояние, которое состоит из других вложенных в него состояний и переходов между ними. Пример составного состояния представлен на рисунке 4.
Рис. 4. Пример составного состояния гибридной системы
Для упрощения моделирования гибридных систем был разработан редактор диаграмм состояний с использованием вышеописанной нотации. Редактор позволяет транслировать диаграмму состояний на язык LISMA [2, с. 206].
Для корректной трансляции потребовалась доработка грамматики языка LISMA, что дало возможность задания разных условий переходов в одно и то же состояние. Ранее для каждого состояния была возможность задания только одного общего условия перехода.
Приведем часть грамматики, которая требовала доработки:
state
:'state' state_name LPAREN expression RPAREN state_body (state_from)? SEMI;
state_body
:LBRACE (equation | setter | for_cycle)* RBRACE;
state_from
:'from' state_name (COMMA state_name)*;
state_name
: Identifier | 'init';
Доработанная грамматика:
state
:'state' state_name transition_condition? state_body (state_from)? SEMI;
transition_condition
:LPAREN expression RPAREN;
state_body
:LBRACE (equation | setter | for_cycle)* RBRACE;
state_from
:'from' state_name transition_condition? (COMMA state_name transition_condition?)*;
state_name
: Identifier | 'init';
При парсинге синтаксического дерева будем учитывать правила:
1) результирующее условие перехода — конъюнкция общего условия перехода и частного;
2) если общее или частное условия переходов отсутствует, то оно заменяется на Истина (или же просто не учитывается).
В [3, c. 79–81] доказано, что грамматика языка LISMA относится к классу КС — грамматик типа LL(2).
Грамматика по-прежнему остается контекстно-свободной, так как была добавлена одна продукция, в левой части которой одиночный нетерминал.
Подкласс LL-грамматики остается прежним, так как:
1) Для общего условия перехода
transition_condition? ≡ LPAREN expression RPAREN | ɛ
Первый символ state_body LBRACE, следовательно, первый символ однозначно определяет, началось ли тело состояния или условие перехода.
2) Для частного условия перехода
После имени состояния может идти COMMA (далее идет следующее имя состояния), LPAREN (далее идет условие перехода), SEMI (состояние окончено), что однозначно определяет разбор.
Оценка полученных результатов.
Смоделируем поведение мячика, отпущенного на некоторой высоте от земли. Под силой тяжести он падает, соударяется с землей и снова взлетает вверх.
Создадим диаграмму состояний системы с учетом, что удар является абсолютно упругим (см. рисунок 5).
Рис. 5. Диаграмма состояний модели падающего мячика
График функции при выключенной функциональности обнаружения событий и шаге 0.08с представлен на рисунке 6. На графике можно заметить, что со временем высота при взлете достигает больших значений. Это связано с большим шагом интегрирования в пределах режима, но такой шаг позволит продемонстрировать корректное обнаружение событий при его включении. Необходимо отметить, что алгоритм проскакивает границу режима, и мяч уходит под землю приблизительно до отметки -1, что физически невозможно.
Рис. 6. Динамика модели прыгающего мяча без алгоритма обнаружения
При включении алгоритма обнаружения событий с параметром , максимальным шагом 0.08 с и минимальным — 0.001 с результат подтверждает корректность его работы (см. рисунок 7).
Рис. 7. Динамика модели прыгающего мяча с алгоритмом обнаружения
Результатом разработки, в соответствии с поставленными задачами, является создание редактора диаграмм с возможностью трансляции на язык LISMA. Для корректной трансляции изменена грамматика языка LISMA. Новые возможности позволят пользователю наиболее точно моделировать физическое поведение гибридных систем за меньший промежуток времени.
нЛитература:
- Колесов, Ю. Б. Моделирование систем. Динамические и гибридные системы [Текст] / Ю. Б. Колесов — СПб: БХВ-Петербург, 2006. — 224 с.
- Шорников, Ю. В. Прикладное математическое, алгоритмическое и программное обеспечение компьютерного анализа гибридных систем [Текст] / Ю. В. Шорников — дис. … д-ра техн. наук. Новосиб. гос. техн. университет, 2009.
- Бессонов, А. В. Символьная спецификация и анализ программных моделей гибридных систем [Текст] / А. В. Бессонов — дис. … канд. техн. наук. Новосиб. гос. техн. университет, 2016.