
- •Введение
- •1. Имитационное моделирование
- •1.1. Уровни абстракции в имитационном моделировании
- •1.2. Основные подходы в имитационном моделировании
- •2. Модель и ее назначение
- •2.1. Виды моделей
- •2.2. Этапы вычислительного эксперимента
- •2.3. Построение математической модели
- •2.4. Построение компьютерной модели
- •2.5. Оценка адекватности модели
- •2.6. Исследование модели
- •3. Динамическая система. Основные подходы к моделированию
- •3.1. Понятие динамической системы
- •3.2. Компонентное моделирование
- •3.3. Объектно-ориентированное моделирование
- •4. Гибридная система
- •4.1. Определение гибридной системы
- •4.2. Гибридное время
- •4.3. Гибридный автомат
- •4.4. События
- •5. Поведение гибридного автомата
- •5.1. Бесконечные траектории примитивного гибридного автомата
- •5.2. Вырожденное поведение
- •5.3. Гибридный автомат с несколькими длительными состояниями
- •6. Композиция гибридных автоматов
- •6.1. Изолированные системы
- •6.2. Открытый примитивный гибридный автомат
- •6.3. Блок-схемы открытых автоматов
- •6.4. Открытый гибридный автомат с контактами
- •7. Компонентные модели
- •7.1. Иерархические системы
- •7.2. Блоки и связи
- •7.3. Ориентированные блоки и связи
- •7.4. Совокупная система
- •7.5. Неориентированные блоки и связи
- •Оглавление
3.2. Компонентное моделирование
Написать итоговую систему уравнений для конкретной модели может оказаться достаточно сложно, хотя бы потому, что с ростом числа уравнений вероятность даже элементарных описок резко возрастает.
Рассмотрим описание поведения следящего дифференциатора в виде системы уравнений
,
,
.
и в виде структурной схемы (рис. 13), с интегратором, усилителем и сумматором.
Рис. 13. Структурная схема следящего дифференциатора
При ручном, «докомпьютерном» способе проектирования, эти два описания дополняли друг друга, и рисунком можно было воспользоваться лишь как подсказкой, для вывода уравнений.
Посмотрев на рисунок, можно обратить внимание на то, что сама структура системы несет ценную информацию о ней. Рисунок легче воспринимается и помогает надолго запомнить совет «не умеете дифференцировать - интегрируйте в обратной связи!», ведь на нем можно увидеть петлю обратной связи.
Структура системы может быть далеко не такой простой и «ручной» вывод эквивалентной системы уравнений может привести к ошибкам.
В этой схеме все звенья стандартные (интегратор, усилитель, блок сравнения) и появляется надежда, что вывод нужной системы уравнений можно сделать автоматически.
Возникает естественный вопрос: а нельзя ли поручить системе моделирования не только автоматически преобразовывать математическую модель системы в моделирующую программу, но и автоматически получать математическую модель всей моделируемой системы по математическим моделям ее отдельных компонентов и описанию связей между ними?
Большинство современных систем визуального моделирования позволяют просто нарисовать структурную схему моделируемой системы в специальном графическом редакторе. Все остальное, то есть получение эквивалентной математической модели, дело системы моделирования. Модель, показанная на рис. 5, может быть просто составлена из образов блоков, входящих в библиотеку стандартных компонентов. Любой новый компонент можно попытаться собрать из уже существующих или создать его самостоятельно на основании существующей математической модели. Проектирование новых компонентов из существующих обычно приводит к построению иерархической структурной схемы.
Более того, структурные схемы используют и на этапе прогона модели. Современная компьютерная модель становится больше похожа не на программу в традиционном смысле (как последовательность операторов), а на некоторую виртуальную квазиаппаратуру, включающую в себя параллельно функционирующие компоненты. Поддержка концепции виртуального стенда требует от системы моделирования реализации еще ряда возможностей:
интерактивного вмешательства в ход прогона модели (пользователь должен иметь возможность крутить «ручки» настроек, переключать «тумблеры», то есть активно вмешиваться в ход эксперимента);
визуализации результатов в ходе прогона, а не после него;
прикладной 2D- и 3D-анимации, позволяющей визуально оценивать динамику моделируемой системы.
3.3. Объектно-ориентированное моделирование
В следящем дифференциаторе (рис.13) каждый типовой блок используется только один раз. Однако в любом учебнике по теории автоматического управления, вы увидите структурные схемы, в которых одновременно используется несколько интеграторов, несколько сумматоров и усилителей. Аналогично этому, в любой сколько-нибудь сложной электрической схеме присутствуют десятки и сотни резисторов и конденсаторов.
Чем отличается один компонент, интегратор Int1, от другого компонента, интегратора Int2, если, как очевидно, математическая модель у них одна – уравнение
.
Это – просто два различных экземпляра интегратора с возможно различающимися значениями коэффициента усиления K. Вполне естественно ввести понятие обобщенного интегратора, в описании которого присутствуют внешние переменные x и y , параметр K , а также дифференциальное уравнение их связывающее. Такой обобщенный компонент, прототип всех возможных интеграторов, называется классом. Говоря о классах, нельзя ответить на вопрос, чему равны конкретные значения переменных x, y, K . Для обобщенного интегратора это – лишь прототипы переменных. Значения имеют только переменные конкретного интегратора – экземпляра класса обобщенного интегратора. Величина, которая играет особую роль – это параметр, значение которого может изменяться только в момент создания конкретного экземпляра, а затем остается неизменным на все время существования данного экземпляра.
Понятия класса и экземпляра являются базовыми для объектно-ориентированного моделирования (ООМ). Более сложными понятиями ООМ являются наследование и полиморфизм. Рассмотрим модификацию обобщенного интегратора, в котором коэффициент усиления зависит от температуры:
.
Этот новый класс – термоинтегратор – наследует все переменные класса интегратора, добавляет новую внешнюю переменную T, новый параметр KT и переопределяет уравнение динамики. Класс термоинтегратор является потомком класса интегратора, а последний является его предком. Для обозначения тех же отношений часто используются термины производный класс – базовый класс, подкласс – суперкласс. Ясно, любой экземпляр термоинтегратора может быть использован вместо любого интегратора в любой структурной схеме. Возможность использования любого потомка в контексте предка называется полиморфизмом.