Скачать... - MvStudium

advertisement
1. MvStudium – инструмент для исследования сложных динамических систем.
Пакет MvStudium разработан исследовательской группой «Моделирование сложных динамических систем» при факультете Технической Кибернетики Санкт-Петербургского Государственного Политехнического Университета
1.1. Назначение и решаемые задачи.
MvStudium - это интегрированная графическая оболочка для быстрого создания интерактивных визуальных моделей сложных динамических систем и
проведения вычислительных экспериментов с ними. Ключевыми проблемами
при разработке MVS являлись:
- поддержка
технологии
объектно-ориентированного
моделирования
(ООМ), совместимой с языком UML;
- возможность создания пользователем собственных компонентов;
- удобное и адекватное описание непрерывных, дискретных и гибридных
(непрерывно-дискретных) систем;
- обеспечение достоверности численного решения;
- поддержка активного вычислительного эксперимента;
- обеспечение моделирования, визуализации результатов и управления вычислительным экспериментов без написания какого-либо программного
кода.
Подробный анализ этих проблем, обоснование принятых решений и сравнение MvStudium с другими визуальными средствами моделирования изложен
в [1,2,3]. Пакет MvStudium решает следующие основные задачи:
- поддерживает интерфейс пользователя для создания математической модели исследуемой системы, а также обеспечивает контроль корректности
этой модели;
- обеспечивает автоматическое построение компьютерной модели, соответствующей заданной математической;
1
- обеспечивает корректное проведение активного вычислительного эксперимента с компьютерной моделью на уровне абстракции математической
модели.
1.2. Входной язык.
Входной язык MVL базируется на математической модели обобщенного гибридного автомата. Основной конструкцией языка является активный динамический объект. Он отличается от активного объекта UML тем, что взаимодействует с внешним окружением не через методы и сообщения, а через
внешние переменные и имеет непрерывное или гибридное поведение. Определение класса включает в себя имя класса, определение переменных и определение поведения (Рис. 1),
Рис. 1
Поведение объекта в общем случае задается синхронной композицией
системы уравнений, карты поведений и локальных компонентов с их связями
(Рис. 2). Различные комбинации этих составляющих поведения соответствуют типовым элементарным компонентам: непрерывному, дискретному, гибридному, компоненту-контейнеру. Экземпляры локальных классов, в которых видимы переменные объекта могут использоваться как деятельности в
карте поведений объекта.
2
Рис. 2
Системы уравнений задаются в свободной форме, а также в расширенной форме, включающей условные уравнения, уравнения с разрывными
функциями и формулы невещественных типов. Указанные уравнения автоматически преобразуются в эквивалентные гибридные автоматы, а вместо
исходной системы уравнений в модели используется синхронная композиция
вещественных уравнений и этих гибридных автоматов.
Определение переменной включает в себя имя переменной, тип значения переменной и начальное значение по умолчанию. Переменные могут
быть вещественного, целого, булевского и строкового типов, а также типов
«вектор», «матрица», «массив» фиксированной или переменной размерности,
типа «запись» или определяемого типа. Кроме типа переменная характеризуется своим «стереотипом»: параметр, константа, входная/выходная переменная, контакт, поток и т.п.
Алгоритмические процедуры и функции могут быть заданы либо с помощью алгоритмических операторов MVL, либо во внешнем программном
модуле с использованием подходящего языка программирования.
В общем случае класс является потомком (подклассом) некоторого суперкласса. Подкласс наследует все переменные и элементы поведения суперкласса. В описании подкласса могут быть добавлены новые переменные и
элементы описания поведения, а также переопределены уже имеющиеся.
3
При создании экземпляра класса могут быть указаны действительные значения параметров, а также новые начальные значения для переменных.
Статические параллельные композиции активных объектов можно задавать с помощью структурных схем. Динамические параллельные композиции активных объектов создаются и уничтожаются явно с помощью специальных операторов new и delete в мгновенных действиях, для работы с
ними используются списки и указатели на объекты. Динамические последовательные композиции активных объектов задаются картами поведений.
Проект в целом представляет собой пакет, содержащий определения
классов, констант, процедур и функций (Рис. 3). В проекте могут использоваться элементы из других пакетов. Новый проект содержит только один
специальный класс Model, который является «синглетным» (может иметь
только один экземпляр) и соответствует выполняемой модели, с которой будет проводиться вычислительный эксперимент. Пользователь имеет возможность начать исследование с определения в классе Model отдельной изолированной системы, отладить ее с помощью простых интерактивных экспериментов, а затем сохранить как один из классов проекта. После этого экземпляры этого класса можно использовать как структурный компоненты и деятельности в карте поведений.
Рис. 3
Возможности обобщенного гибридного автомата позволяют использовать
карту поведений в качестве визуального языка управления вычислительным
4
экспериментом. Идея состоит в том, что модель исследуемой системы становится деятельностью в одном или нескольких состояниях гибридного автомата, задающего алгоритм проведения вычислительного эксперимента. Сам
этот автомат является экземпляром класса «Model».
1.3. Структура пакета.
Для пользователя основным является визуальное представление модели, в
котором элементы описания (уравнения, карты поведений, структурные схемы) представляются в естественной графической форме. Для этого используются специальные редакторы: редактор уравнений, редактор карты поведений, редактор структурной схемы. В ряде случаев, однако, оказывается более удобным работать с текстовым представлением модели непосредственно
на языке MVL. В текстовом представлении информация о положении графических элементов задается с помощью специального оператора pragma.
Математическая модель как таковая является знаковой и непосредственно
может интерпретироваться лишь человеком. Для того, чтобы математическая
модель могла интерпретироваться компьютером, необходимо преобразовать
ее в специальную программу – выполняемую модель -, содержащую объекты
более низкого уровня абстракции.
Рис. 4
Выполняемая модель включает в себя программу конкретной модели и
исполняющую систему пакета моделирования. Компьютерная модель включает в себя выполняемую модель в совокупности с операционной системой и
5
аппаратной частью компьютера (Рис. 4). Компьютерная модель представляет
собой уже некоторое физическое устройство, способное имитировать моделируемую систему в реальном мире.
Каждому объекту математической модели (включая «неявные» объекты, такие как связи) в программе модели ставится в соответствие определенный программный объект в соответствии с синтаксисом объектноориентированного языка программирования, выбранного в качестве языка
реализации. Программа модели генерируется в пакете MVS автоматически.
Пакет MVS позволяет создавать выполняемые модели двух видов:
1) визуальную выполняемую модель;
2) «скрытую» выполняемую модель.
В визуальную выполняемую модель помимо минимального ядра исполняющей системы включены средства поддержки визуализации результатов и
активного вычислительного эксперимента. Эти средства включают в себя
средства построения временных и фазовых диаграмм, окон 2D и 3Dанимации (в т.ч. интерактивных), визуализацию динамики карт поведений, а
также отладочные средства, поддерживающие останов по заданному условию, по входу в заданное состояние или по срабатыванию перехода. Визуальная модель оформляется как самостоятельная выполняемая программа.
Визуальная модель актуальна для отладки математической модели и демонстрации различных аспектов ее поведения По выбору пользователя визуальная модель может являться внешним COM-сервером и поддерживать интерфейс IMVSAuto. Временные и фазовые диаграммы могут быть сохранены как
в виде изображений для помещения в отчет, так и в виде текстовых таблиц,
которые могут далее обрабатываться другими математическими пакетами.
«Скрытая» выполняемая модель не содержит никаких средств визуализации и оформляется как динамическая библиотека (DLL). «Скрытая» выполняемая модель актуальна для использования в составе других приложений,
поддерживающих свою собственную визуализацию (например, в составе
подсистемы оптимизации).
6
В рамках единой интегрированной среды MVS пользователь имеет возможность:
- редактировать математическую модель в интерактивном режиме с использованием инкрементного транслятора;
-
создать файл текстового представления математической модели на языке
MVL и редактировать его в любом текстовом редакторе;
- импортировать математическую модель из текстового представления;
- проверить корректность всего проекта в целом.;
- создать выполняемую модель (визуальную или скрытую) и при необходимости сохранить ее как независимый программный модуль;
- запустить визуальную выполняемую модель;
- прекратить выполнение визуальной модели;
- выполнить параметрическую оптимизацию математической модели.
Принципиальной особенностью архитектуры пакета MVS является использование внутреннего структурированного объектного представления математической модели в качестве основного. Внутреннее представление включает в
себя совокупность взаимосвязанных мета-объектов, отражающих содержание
и структуру математической модели на уровне абстракции языка MVL. Объекты внутреннего представления рассматриваются как долговременные (persistent) и сохраняются вместе со связями в объектно-ориентированной базе
данных mvBase [4]. В этой базе данных в качестве предопределенного поддерживается мета-класс «математическое выражение», позволяющий хранить
разобранные выражения в виде дерева. Схема данных базы данных проекта
соответствует грамматике языка MVL. Внутреннее представление является
единственной хранимой информацией о проекте (Рис. 5). Внешние представления – визуальное и текстовое – автоматически воссоздаются по внутреннему представлению при необходимости (например, открытии окна редактирования соответствующего объекта). Естественная структура данных внутреннего представления позволяет воссоздавать внешние представления, проверять контекст окружения и проводить автоматические преобразования
7
(например, символьное дифференцирование) достаточно быстро. Информация об импортируемых пакетах также берется из их внутреннего представления. При редактировании проекта может быть открыто одновременно несколько баз данных, но из них только одна – проект - на запись.
Рис. 5
Инкрементный транслятор преобразует законченную конструкцию MVL в
соответствующий объект внутреннего представления, учитывая контекст
окружения. В тех случаях, когда в результате редактирования изменяется интерфейс активного объекта, то проводится проверка корректности его окружения на следующем уровне вложенности (например, если изменяется сигнатура алгоритмической функции класса, то проверяется корректность класса,
если изменяется определение внешней переменной класса, проверяется корректность проекта в целом). Процесс трансляции выступает в качестве транзакции ООБД. В случае успешного завершения трансляции соответствующая
транзакция фиксируется и все изменения сохраняются в БД, в случае обнаружения ошибки выводится диагностика и транзакция откатывается. Наличие структурированного внутреннего представления позволят также наделять
специализированные редакторы визуального представления некоторыми
8
«интеллектуальными» чертами: например, редактор структурных схем просто не позволяет соединить связью внешние переменные, не совместимые по
типу.
Выполняемая модель соответствует экземпляру класса Model. Таким
образом, для класса Model, его локальных классов, их элементов, суперкласса, а также других активных динамических объектов, используемых в
структурной схеме класса Model, должны быть сгенерированы определения
соответствующих программных объектов на промежуточном объектноориентированном языке программирования, в качестве которого выбран язык
Delphi Object Pascal.
Генератор «кода» формирует (Рис. 6) отдельный модуль u_xxx.pas
для каждого активного объекта (в том числе и импортируемых), модуль
common.pas для констант и алгоритмических функций проекта, а также
констант и алгоритмических функций из импортируемых пакетов, и головной модуль model.dpr. В головном модуле определяется тип выполняемой
модели – визуальная или скрытая. Далее с помощью компилятора командной
строки dcc32 сгенерированные модули компилируются и объединяются с модулями исполняющей системы, содержащими определения базовых объектов
(Рис. 6). Поскольку перед генерацией кода проводится полный контроль корректности класса Model, ошибки при компиляции могут быть вызваны только ошибками в пакете моделирования.
В общем случае программный код формируется в соответствии не с исходным внутренним представлением, а с некоторым промежуточным, формируемым в процессе генерации (Рис. 6). Необходимость промежуточного
внутреннего представления модели связана прежде всего с преобразованиями уравнений. Глубина преобразований определяется двумя факторами:
- входит ли в состав выполняемой модели хотя бы один гибридный активный объект (т.е., объект с непустой картой поведений);
- используются ли в выполняемой модели ненаправленные связи.
9
Рис. 6
В случае, если выполняемая модель является чисто непрерывной, можно уже на стадии генерации кода сформировать полную систему уравнений
всей модели, провести ее анализ, определить искомые переменные и сделать
необходимые преобразования (разрыв алгебраических циклов, символьное
дифференцирование, символьное разрешение алгебраических уравнений). В
ходе этих преобразований может сильно измениться представление уравнений (в том числе и для импортируемых классов). В случае, если гибридные
объекты имеются, но в модели используются только направленные связи,
выполняется анализ и преобразование отдельных систем уравнений. Анализ
полной системы уравнений модели может быть выполнен только на стадии
исполнения модели после каждого переключения. При наличии гибридных
объектов в «код» модели при генерации встраивается дополнительная служебная информация о переменных, участвующих в уравнениях, которая будет необходима при анализе. Наконец, в случае наличия гибридных объектов
10
и использования ненаправленных связей на стадии генерации вообще ничего
сказать о совокупной системе уравнений нельзя. При выполнении гибридной
модели анализ новой совокупной системы уравнений проводится после каждого переключения. В результате анализа может выявиться необходимость в
символьном дифференцировании некоторых уравнений. В этом случае возможен возврат к генерации кода на основе сохраненного промежуточного
внутреннего представления.
Исполняющая система пакета моделирования MvStudium включает в
себя:
- определения базовых классов для программных объектов модели;
- численные библиотеки;
- блок продвижения модельного времени;
- средства поддержки активного вычислительного эксперимента.
Базовые классы исполняющей системы определяют обобщенные элементы выполняемой модели (активный объект, переменная, уравнение, система уравнений, карта поведений, состояние, переход и т.д.). При генерации
программы модели создаются определения конкретных программных классов, которые соответствуют классам, определяемым в проекте и являются
потомками базовых классов исполняющей системы. Определения базовых
классов исполняющей системы используются при компиляции модулей программы модели на промежуточном языке (Рис. 6).
В настоящее время практически все известные численные методы ориентированны на возможно более быстрое нахождение значений искомых переменных в определенные моменты времени для чисто непрерывных систем,
задаваемых системой дифференциальных, алгебраических или дифференциально-алгебраических уравнений. Имеются также специальные методы для
уравнений задержки. Непосредственно эти методы не могут быть использованы для моделирования гибридных систем. Даже для простейшей гибридной системы, задаваемой фиксированной системой уравнений с изменяющимися правыми частями, непосредственное использование стандартных чис11
ленных методов может приводить к значительным ошибкам. Поэтому при
моделировании гибридных систем необходимо создание специальной
надстройки над стандартными численными методами, которая занималась бы
дискретными аспектами решаемой задачи. В MvStudium использованы готовые программные реализации стандартных методов, а в качестве надстройки
выступает блок продвижения модельного времени.
Численные библиотеки пакета MVS [2] оформлены в виде отдельной
динамической библиотеки _mathmvs.dll. Эта динамическая библиотека
написана на языке Фортран и содержит программные реализации всех элементарных функций, включенных в язык MVL, некоторых внутренних математических функций, а также численных методов решения систем дифференциальных, алгебраических и дифференциально-алгебраических уравнений. Идеология языка MVL такова, что для вычисления фазовой траектории
модели на участках непрерывности не требуется каких-то специальных численных методов и можно использовать существующие хорошо апробированные численные методы, предназначенные для непрерывных систем (с некоторой неизбежной адаптацией программных интерфейсов). Для каждой
группы уравнений реализован метод – «автомат», используемый по умолчанию, и некоторый набор специализированных методов. Для каждого типа
уравнений пользователь может выбрать метод решения. «Автомат» предназначен для автоматического выбора наиболее походящего численного метода
для решения данной конкретной задачи в данной точке фазовой траектории.
«Автомат» предоставляет пользователю максимальную информацию о
встреченных трудностях. Анализируя эти сообщения, пользователь может
выбрать наиболее эффективный для своей задачи специализированный метод. «Автомат» предпочтительно использовать на начальной стадии отладки
модели, когда ее численные свойства еще не вполне ясны пользователю, а затем следует выбрать подходящий специализированный метод. Специализированные методы предназначены для эффективного решения задач определенного типа (нежестких, жестких, колебательных и т.п). Ядро исполняющей
12
системы в начальной точке и затем после каждого переключения определяет
тип совокупной системы уравнений и использует выбранный пользователем
для данного типа системы уравнений численный метод. Используемые в
MvStudium численные методы приведены в Таблица 1
Задача
Автомат
Конкретные программы
Решение систем Automatic
нелинейных алгебраических
уравнений
Различные модификации метода Ньютона (Fast
Newton, Modified Newton,
Classical Newton) Гибридные методы (Hybrid Powell
method)
Решение систем Automatic
дифференциальных уравнений
Нежесткие задачи: - явные методы Рунге-Кутта
(RKF45, RKF78, RKF853); методы Адамса (Adams
methods). Жесткие задачи:
- неявные методы РунгеКутта (Implicit RungeKutta method); - методы,
основанные на формулах
дифференцирования назад
(DDASSL, RADAU5). Отладка: - явный и неявный методы Эйлера с автоматическим выбором шага (Simple
automatic); - метод Рунге-Кутта четвертого порядка с постоянным шагом
(RK4)
Решение систем Automatic
алгебродифференциальных уравнений
Явные методы
(RKF45+Newton,
RKF78+Newton,
RKF853+Newton) Неявные
методы (DDASSL, RADAU5)
Таблица 1
1.4. Основные сценарии использования.
Предполагается, что в общем случае разработка модели включает в себя
два этапа. На первом этапе осуществляется создание математической модели
и ее отработка путем проведения ряда активных вычислительных экспериментов с визуальной компьютерной моделью. Активный вычислительный
эксперимент предусматривает визуализацию результатов моделирования не
13
после эксперимента, а во время эксперимента; а также возможность интерактивного вмешательства пользователя или другого внешнего процесса в ход
вычислительного эксперимента. По завершению этого этапа при необходимости может быть выполнена параметрическая оптимизация с помощью
встроенной подсистемы оптимизации. Полученные входе экспериментов
данные могут быть обработаны с помощью специальных математических
программ. Для автономных моделей работа на этом завершается. Некоторые
модели могут быть помещены в библиотеки классов как типовые объекты
для последующего использования.
Более сложные модели предназначены для использования в составе других приложений. В случае, если это приложение поддерживает специальную
визуализацию и специальный диалоговый режим, целесообразно использовать «скрытую» модель, предварительно отлаженную в визуальном режиме.
Это максимально эффективный вариант по производительности и размеру
модели. В случае, если желательно использовать стандартную визуализацию
и диалоговые возможности MvStudium, целесообразно использовать визуальную модель в режиме внешнего сервера COM.
1.5. Интеграция с другими приложениями.
Как было указано выше, для интеграции с другими приложениями необходимо использовать либо «скрытую» модель, либо визуальную модель в
режиме внешнего COM-сервера, поддерживающего интерфейс IMVSAuto.
Внешний интерфейс «скрытой» модели и интерфейс IMVSAuto предоставляют разработчику приложения набор процедур и функций, которые позволяют:
- управлять извне «прогоном» модели (выполнить модель до указанного
значения непрерывного времени, выполнить до условия, выполнить до
останова, остановить, сбросить в исходное состояние);
14
- получить информацию об иерархической структуре объектов в выполняемой модели, а также о наборе переменных в каждом объекте, их идентификаторах и типе значения;
- прочитать текущее значение любой переменной модели;
- установить новое допустимое значение любой переменной модели (если
эта переменная является параметром объекта, то автоматически будут пересчитаны и начальные значения всех зависимых от этого параметра переменных).
Эти процедуры и функции подробно описаны в справочной системе пакета.
1.6. Условия выполнения.
Пакет MvStudium работает на Intel-совместимых компьютерах в среде MS
Windows-95/98/NT/2000/Millenium/XP. Для установки пакета требуется примерно 25 Мб на жестком диске. При работе в среде MS Windows-95 для нормальной работы 3D-анимации необходимо вручную установить на компьютере библиотеку OpenGL.
1.7. Литература.
1. Колесов Ю.Б. Объектно-ориентированное моделирование сложных динамических
систем. СПб.: Изд-во СПбГПУ, 2004. - 239с.
2. Сениченков Ю.Б. Численное моделирование гибридных систем. СПб.: Изд-во
СПбГПУ, 2004. - 206с.
3. Бенькович Е.С., Колесов Ю.Б., Сениченков Ю.Б. Практическое моделирование
сложных динамических систем. СПб.: БХВ, 2001. - 441с.
4. Колесов Ю.Б. Свидетельство об официальной регистрации программы для ЭВМ
«MVBase версия 8.0» №2001610183. – Москва, Роспатент, 21.02.2001.
15
Download