Министерство образования и науки Российской Федерации САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Ю...
154 downloads
242 Views
2MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования и науки Российской Федерации САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Ю.Б. Сениченков
Численное моделирование гибридных систем
Санкт-Петербург Издательство Политехнического университета 2004 1
УДК 681.3.06 ББК 32.973.26-018.2 С 311 Рецензенты: Доктор технических наук, профессор, директор информационноаналитического центра ОАО «Аэрофлот» Е.П. Курочкин Доктор технических наук, профессор государственного университета аэрокосмического приборостроения Е.А. Крук Сениченков Ю.Б. Численное моделирование гибридных систем. СПб.: Изд-во Политехн. ун-та, 2004. 206 c.
В монографии рассматривается актуальная проблема разработки математического обеспечения для численного моделирования гибридных систем. Гибридные или сложные динамические системы - это иерархические, событийно-управляемые системы переменной структуры. Для их моделирования создаются специальные программные комплексы, требующие сложно организованных численных библиотек и специализированного математического обеспечения для формирования, анализа и решения итоговых систем алгебро-дифференциальных уравнений различного вида. В монографии подробно описывается структура численной библиотеки семейства графических оболочек Model Vision, основой графического языка которых служат открытые гибридные автоматы. Монография предназначена для научных работников, инженеров, аспирантов и студентов, интересующихся проблемами современного компьютерного моделирования сложных динамических систем. Табл. 35. Ил. 48. Библиогр.: 154 назв. Печатается по решению редакционно-издательского совета СанктПетербурского государственного политехнического университета.
ISBN 5 -7422 – 0730 - 1
© Санкт-Петербургский государственный политехнический университет, 2004 © Сениченков Ю.Б., 2004 2
ВВЕДЕНИЕ. Литература
7 22
ГЛАВА 1. ГИБРИДНЫЕ СИСТЕМЫ КАК ОБОБЩЕНИЕ КЛАССИЧЕСКИХ ДИНАМИЧЕСКИХ СИСТЕМ. 24 1.1 Гибридный автомат как обобщение таймированного автомата. 26 1.2
Гибридный
автомат
как
обобщение
классических
динамических систем.
31
1.3 Современные подходы к компьютерному моделированию сложных динамических систем.
46
1.3.1 Математические пакеты. Однокомпонентные модели.
46
1.3.2 Многокомпонентные модели.
48
1.3.3 Графические оболочки на базе гибридных автоматов.
51
1.3.4 Автоматическое формирование итоговой системы.
53
1.3.5 Численные методы для решения гибридных АДУ.
54
1.3.6 Динамический графический образ.
56
1.3.7 Язык проведения вычислительного эксперимента.
57
Литература
59
Глава 2. Композиция открытых гибридных автоматов 2.1 Предпосылки.
62 66
2.2 Изолированный примитивный гибридный автомат.
75
2.3 Траектории примитивного гибридного автомата.
81
2.4 Вырожденное поведение. Автомат Зенона.
84
2.5 События, сигналы.
90
2.6 Примитивный гибридный автомат с несколькими переходами. 91 2.7 Гибридный автомат с несколькими длительными состояниями. 94 2.8 Композиция гибридных автоматов. 2.9 Открытый примитивный гибридный автомат 3
97 100
2.10 Блок-схемы открытых автоматов.
102
2.11 Открытый гибридный автомат с контактами.
115
2.12 Частичная синхронизация гибридных автоматов.
117
2.13 О практической ценности примитивных автоматов.
118
Литература
119
Глава 3. Формирование итоговой продвижение модельного времени. 3.1 Структурный анализ уравнений.
системы
уравнений и 121 125
3.2 Структура анализатора в пакете MVS. 3.2.1 Вычислимые последовательности формул.
136 137
3.2.1 Структурно невырожденные системы нелинейных алгебраических уравнений
140
3.2.3 Системы нелинейных алгебраических уравнений с подстановками.
142
3.3.4 Системы дифференциальных уравнений.
143
3.3 Поиск точки переключения
144
3.3.1 Поиск в условиях, когда можно вычислить только значение предиката в окрестности точки переключения.
147
3.3.2 Поиск в условиях, когда можно вычислить не только значение функции, определяющей точку переключения, но и ее производную.
148
3.3.3 Поиск в условиях, когда точка переключения определяется как корень уравнения на решении, описывающем поведение. 149 3.4 Построение графиков функций.
151
3.4.1 Проблемы, возникающие при построении графиков.
152
3.4.2 Аккуратные графики
157
3.4.3 Синхронное и асинхронное построение графиков
159
Синхронный способ. Возможные алгоритмы
163
Литература
163
4
Глава 4. Библиотека пакета MVS 4.1 Организация библиотеки
165 166
4.2. Структура решателей
167
Автоматические решатели.
168
Решатели для задач конкретного типа
168
Решатели для отладки.
169
4.3 Системы нелинейных алгебраических уравнений.
170
Программы для решения нелинейных уравнений
170
Программа автомат
174
4.4 Дифференциальные уравнения.
175
Программы для решения нежестких уравнений.
177
Программы для решения жестких уравнений.
179
Программа автомат.
181
Отладочные программы
182
4.5 Алгебро-дифференциальные уравнения
183
Явный способ
184
Неявный способ
186
Программа - автомат для решения алгебро-дифференциальных уравнений 4.6
Об
187
использовании
тождеств
при
построении
примеров. Проверочные
тестовых 187
примеры
систем
нелинейных
алгебраических
уравнений
189
Системы линейных уравнений для оценки точностных характеристик.
191
Системы линейных уравнений для оценки временных характеристик.
191
Системы нелинейных уравнений.
192
Нелинейное скалярное уравнение
192
Системы нелинейных уравнений
192
5
Литература
198
ПРИЛОЖЕНИЕ
201
Список сайтов и зарубежных публикаций по вопросам визуального моделирования и численного исследования гибридных систем 201 Сайты 201 Отечественные.
201
Зарубежные
201
Конференции и тематические сборники статей
202
Истоки
203
Обзоры
204
6
ВВЕДЕНИЕ. Компьютерное моделирование - это научное направление, связанное - с разработкой языков моделирования и проведения вычислительного эксперимента и поддерживающих их программных сред; -
созданием
математического
обеспечения,
гарантирующего
качественное воспроизведение поведения построенных моделей и обеспечивающего всестороннее исследование их свойств; - построением новых способов визуализации трудно воспринимаемых человеком абстрактных моделей; Разработка пакетов для численного моделирования и исследования сложных
динамических
систем
является
одним
из
направлений
компьютерного моделирования. Во многих пакетах, таких как Simulink, Stateflow, SimMechanics, SimPowerSystems, Dymola, Model Vision Studium, AnyLogic используются графические входные языки. В последнее время интерес к графическим языкам моделирования настолько вырос, что их стали рассматривать независимо от реализующих их программных сред. Появились языки, претендующие на звание универсальных. Это – Универсальный Язык Моделирования (UML) [1] и язык физического моделирования Modelica [2]. UML позволяет создавать модели исследуемого объекта практически любого вида. Modelica ограничивает пользователя системой алгебродиффренциальных уравнений, называемой авторами языка «hybrid DAE» гибридной
системой
алгебро-диффренциальных
уравнений.
Использование языков, приводящих к малоизученным математическим моделям, естественно отнести к искусству, в то время как применение языков с достаточно хорошо известными моделями является основой современных промышленных технологией.
7
Широко
используемая
сегодня
технология
визуального
моделирование включает в себя не только легко воспринимаемый человеком графический входной язык, но и графические языки отладки, проведения и визуализации результатов вычислительного эксперимента. Современный
язык
моделирования,
позволяющий
строить
иерархические модели событийно-управляемых динамических систем переменной собирать
структуры,
модель
в
предоставляет
основном
из
пользователю
библиотечных
возможность
компонентов
и
разрабатывать только относительно небольшие, принципиально новые блоки. Совокупная система уравнений многокомпонентной модели строится автоматически. Построенная система передается «решателю» модулю, который автоматически выбирает подходящий для данного случая численный метод и настраивает его параметры на конкретную задачу. Найденное решение автоматически визуализируется выбранным пользователем способом. Процесс построения совокупной системы уравнений оказывается достаточно сложным, так как форма представления входной информации ориентирована на пользователя и существенно отличается от внутреннего, машинного представления, необходимого для работы
численных
результатов,
методов.
приходится
Для
получения
автоматически
удовлетворительных
исследовать
построенную
математическую модель: определять конкретный тип решаемых уравнений и их совместность, возможно, преобразовывать уравнения до вызова решателя, анализировать их численные свойства, и только после этого выбирать подходящий метод решения. На этапе проектирования новой программной среды визуального моделирования, желательно отчетливо представлять, с каким классом математических моделей придется столкнуться разработчикам численной библиотеки, поддерживающей среду. Однако, как это часто бывает, графические языки появляются раньше, чем у их авторов и пользователей возникает четкое представление о математических моделях, которые могут 8
быть построены с их помощью. Так был создан знаменитый язык карт состояний Харела. Харел сначала предложил общую графическую схему языка [3], и лишь затем появилось его текстовое представление и описание семантики [4-5]. То же самое произошло и с гибридными автоматами [6]. Широко распространенный
графический
язык пакета
Simulink
предназначался для построения непрерывных, дискретных и непрерывнодискретных моделей, последние из которых рассматривались авторами языка как механическое объединение непрерывных и дискретных моделей. Авторы языка, как представляется, также шли от языковых форм к моделям. Они сначала реализовали язык, а только много позже осознали какого типа модели лежат в его основе и какое математическое обеспечение
необходимо
дифференциальных
для
уравнений
их
поддержки.
первого
Начав
порядка,
с
систем
разрешенных
относительно производных, правая часть которых записывалась в традиционной фортрановской форме, программы ODE45 и окна для построения графиков (Matlab), они перешли к графическим «схемам в переменных состояния» [7] (Simulink), и пришли к языку карт состояния Харела (Stateflow). В результате пользователь получил возможность графически представлять и решать с помощью современных численных методов системы уравнений с кусочно-постоянными коэффициентами, которая оказывается системой алгебро-дифференциальных уравнений (о чем он, скорее всего, и не догадывается). Пытаясь обеспечить совместимость новых и старых компонентов, авторы Matlab оказались в затруднительном положении. Язык новых компонентов оказался сложным и запутанным, что может служить дополнительным источником ошибок. Те же проблемы возникли и при реализации «физического подхода к моделированию»,
а
именно
компонентов
SimMechanics
и
SimPowerSystems. Разработчики
языка
[http://www.modelica.org]
«физического и
моделирования»
поддерживающего 9
его
Modelica
программного
комплекса Dymola [http://www.Dynasim.se] оказались в более выгодном положении, так как к моменту создания языка был накоплен большой опыт компонентного конструирования электронных схем и механических систем. В качестве примера отечественных разработок смотри [8]. Методы построения и свойства совокупной системы алгебро-дифференциальных уравнений, полученной на основании топологических и компонентных уравнений,
изучаются
достаточно
давно.
Существуют
надежно
работающие программные реализации численных методов, способных справиться с такого сорта задачами. Как пишут авторы языка во введении, язык
Modelica
является
объектно-ориентированным
языком
моделирования, унаследовавшим многие черты своих предшественников, языков ASCEND, Dymola, gPROMS, NMF, ObjectMath, Omola, SODOPS, Smile, U.L.M., VHDL-AMS. Тип модели в языке строго фиксирован – итоговая система представляет собой системы дифференциальных или алгебро-дифференциальных уравнений большой размерности. Программные среды Simulink и Modelica показывают хорошие результаты при работе с моделями, чья структура практически не зависит от времени. Однако событийно-управляемые модели с переменной структурой являются отличительной чертой современных практически важных задач. Потребность моделировать событийно-управляемые и меняющие во времени свою структуру объекты привела авторов Matlab к необходимости ввести еще один компонент - Stateflow. Следует отметить, что в среде Model Vision 2.1 на несколько лет раньше был реализован этот подход, но в последствии от него пришлось отказаться, именно из-за сложности входного языка, которой обладает и компонент Stateflow. Первоначально авторы языка Modelica [Modelica 1.1. Language specification,
http://www.modelica.org]
предполагали,
что
в
рамках
физического моделирования удастся строить и решать системы, форма и размерность которых может меняться в процессе решения. Однако им не 10
удалось справиться с трудностями, возникающими в этом случае при формировании совокупной системы, и возможности изменения уравнений были
сильно
ограничены
[Modelica
2.0.
Language
specification,
http://www.modelica.org]. Системы, форма и размерность которых может меняться в процессе решения, возникают при моделировании большинства современных реальных
объектов.
Примером
являются
программно-аппаратные
комплексы, реализующие различные режимы управления в зависимости от внутренних или внешних условий. В таких системах естественно возникает разделение протекающих в них процессов на мгновенные, реализующие программное управление, и медленные, свойственные реакции объектов управления на воздействие. Такого типа устройства сейчас можно найти и в бытовых приборах, и системах военного и космического
назначения.
моделирования
в
пакетах
Именно
они
особенно
Simulink,
Modelica
и
трудны
многих
для
других,
базирующихся на тех же принципах. Для моделирования событийно-управляемых систем переменной структуры в 90-х годах прошлого столетия была предложена модель гибридной системы. Как это не удивительно, данный формализм давно широко используется в теории, и практически только сейчас стал воплощаться
в
программных
продуктах.
Первыми
программными
комплексами в нашей стране, где был реализован этот подход, стали продукты семейства Model Vision: Model Vision 2.X [9-10], Model Vision 3.X [11-12], а также AnyLogic [13]. За рубежом одновременно с семейством Model Vision появился пакет для моделирования дорожного движения SHIFT
[http://wwww.path.berkeley.edu/shift],
использующий
гибридный
автомат как основную математическую модель, а позже пакеты Ptolemy II [http://wwww.path.berkeley.edu/shift]
и
[http://www.cis.upenn.edu/mobies/charon ].
11
Charon
Книга посвящена моделированию событийно-управляемых систем переменной структуры с помощью гибридных автоматов семейства графических оболочек Model Vision. В книге четыре главы и приложение. Каждая глава имеет свою собственную нумерацию формул и рисунков и свой список цитированной литературы. В приложение вынесен список зарубежных статей, посвященных гибридным системам, а так же список сайтов, где можно найти программное обеспечение. Эти списки представляют самостоятельную ценность, так как, несмотря на обилие публикаций по гибридным системам, практически нет работ, где все необходимые для понимания основных проблем сведенья были бы собраны воедино. В первой главе приводится обзор работ зарубежных и отечественных авторов, посвященных гибридным системам. Анализируются различные определения гибридных систем. Дается обзор современных программных средств для моделирования сложных динамических систем и предлагается классификация компьютерных моделей, положенная в основу последней версии пакета Model Vision 4.X . Отмечается, что существуют два подхода к исследованию гибридных систем. Первый подход базируется на обобщении конечных автоматов, сводящемуся к оснащению гибридного автомата различными моделями непрерывного времени. Несмотря на существующие успехи на этом пути, его возможности пока еще ограничены и могут быть использованы для анализа достаточно простых систем. Второй подход основан на обобщении классических динамических систем. Этот подход давно уже развивается отечественными учеными (Лурье, Цыпкин, Бромберг, Анронов, Уткин, Емельянов, Филлипов, Глушков, Бусленко) и пригоден для исследования практически важных, сложных динамических систем. Приводится краткий обзор основных отечественных работ в области гибридных систем, больше известных в нашей стране как непрерывно-дискретные системы. Ценность этого 12
обобщения заключается, прежде всего, в том, что появляется возможность применять методы исследования, присущие непрерывным системам. Помимо этого, графическое представление гибридных систем в виде гибридных автоматов, может быть положено в основу современных графических языков. На сегодняшний день существует много различных программных средств для моделирования и исследования сложных динамических систем. Среди пакетов можно выделить специализированные, направленные на решение конкретных прикладных задач, и универсальные, способные справиться
практически
с
любой
исследовательской
задачей.
Универсальные пакеты обычно лишены уникальных численных методов и библиотек моделей, специальной графики и средств поддержки больших проектов, что и отличает их от специализированных. Семейство Model Vision относится к универсальным пакетам. Среди универсальных пакетов также существуют несколько групп, отличающиеся
методами
математические
пакеты,
изолированных
классических
компонентного
моделирования с блоками с входами выходами и с
блоками
с
построения наиболее
контактами,
и
типами
приспособленные
динамических предназначенные
моделей. для
систем, для
и
Это
изучения пакеты
моделирования
иерархических систем. Новые пакеты семейства Model Vision объединяют свойства как математических пакетов, так и пакетов компонентного моделирования. Программное обеспечение пакетов компонентного моделирования решает по сравнению с математическими пакетами другие математические и технические задачи. К новым математическим задачам относятся задачи: -
автоматического синтеза совокупной, итоговой АДУ из уравнений
отдельных компонент с учетом связей блоков, проверки корректности
13
итоговой системы и преобразования ее форме, необходимой численному решателю; -
автоматического выбора численного метода для воспроизведения
поведения системы; -
достоверного автоматического воспроизведения численного решения
на всем промежутке наблюдения. К числу новых научно-технических задач относятся: -
разработка современных языков моделирования и проведения
вычислительного эксперимента; -
создание новых средств визуализации поведения динамических
систем; -
создания
библиотек инструментов
для исследования
свойств
динамических систем. Блоки, или компоненты, из которых строится модель, в современных пакетах могут быть различного типа, и от их типа и способа объединения зависит тип итоговой системы и методы ее решения. В последней версии пакета Model Vision используется следующая классификация моделей, с которыми он способен работать: -
однокомпонентные системы с непрерывным поведением,
-
однокомпонентные системы с гибридным поведением,
-
многокомпонентные системы с компонентами типа «вход-выход-
состояние», -
многокомпонентные
системы
с
компонентами,
взаимодействующими через контакты, -
многокомпонентные системы с переменным числом компонентов. Основной
проблемой
компонентного
моделирования
является
автоматическое построение итоговой системы из блоков заданного типа, а необходимым условием успешного численного исследования построенных моделей – обеспечение нахождения решения с заданной точностью систем ДАУ с изменяющейся во времени структурой. 14
Во второй главе строится модель открытого гибридного автомата с синхронизацией во временной щели по непрерывному типу. В современной литературе, посвященной гибридным системам, в основном
изучаются
однокомпонентные
изолированные
системы.
Изолированные гибридные системы являются достаточно узким классом моделей, хотя и представляют большой теоретический интерес. Более широким является класс многокомпонентных моделей. При моделировании многокомпонентных систем возникает несколько дополнительных проблем, не характерных для однокомпонентных. Основная проблема связана с автоматическим формированием итоговой системы из уравнений компонентов, с учетом связей и преобразованием их к виду, пригодному для численного интегрирования. И здесь становится важным,
что
следует
понимать
под
поведением
параллельно
функционирующих отдельных компонентов обменивающихся между собой информацией, или иными словами, что лежит в основе композиции открытых гибридных автоматов. При моделировании компонентных систем, чья структура не меняется во
времени,
итоговая
система
оказывается
системой
алгебро-
дифференциальной и остается только указать решателю ее конкретный вид -
система
алгебраических,
дифференциальных,
или
алгебро-
дифференциальных уравнений. При моделировании систем, в которых происходит смена уравнений, и в эти моменты выполняются параллельные дискретные операции, композиция
параллельно
работающих
компонентов
может
быть
определена по-разному, в результате чего модель будет обладать различным
поведением.
Мгновенные
процессы,
происходящие
во
временной щели, можно считать последовательными и упорядочивать в произвольном порядке (синхронизация по дискретному типу), а можно считать одновременными (синхронизация по непрерывному типу).
15
В семействе Model Vision применяется последний тип синхронизации и только для компонентов со связями по вещественным переменным, так как в противном случае возникают системы уравнений, численное решение которых может вызывать значительные трудности. До сих пор во всех пакетах по умолчанию применялась синхронизация по дискретному типу. Во второй главе строятся необходимые для дальнейшего изложения определения гибридных систем их композиции: - примитивного гибридного автомата; - открытого примитивного автомата «вход-выход-состояние»; - композиции примитивных открытых гибридных автоматов; - открытого примитивного автомата с обратной связью; - открытого примитивного автомата c контактами; композиции открытых примитивных автоматов с контактами; В третьей главе рассматриваются проблемы предварительного анализа структуры совокупной системы и проблемы продвижения модельного времени. Для структурного анализа уравнений предлагаются методы, используемые для решения систем больших разреженных систем линейных алгебраических уравнений. Приводятся используемые в пакете методы для поиска точки переключения для предикатов различного вида и предлагается формула, позволяющая строить различные модификации метода установления, применяемого для поиска точки переключения. Обсуждаются стратегия выбора шага для визуализации поведения. При блочном моделировании достаточно сложно предсказать заранее, какую форму примет и какого типа окажется итоговая система уравнений. В тоже время от формы и типа уравнений во многом зависит эффективность решения. Анализом формы итоговой системы в MVS занимается блок предварительного анализа уравнений. Требования вычислительного
к
решению
эксперимента
формируются
при
проведении
пользователь
может
потребовать
-
максимально возможной скорости решения без визуализации поведения 16
или детального графического воспроизведения решения. Эти задачи возложены на блок продвижения модельного времени, который содержит чрезвычайно важный для гибридных систем блок поиска точек смены поведения - точек переключения. С практической точки зрения важно предоставить пользователю как можно больше свободы при описании поведения отдельных компонентов и не заставлять его использовать трудно воспринимаемые синтаксические формы, свойственные процедурным языкам программирования. Под свободной формой, будем понимать форму, в которой уравнения первого порядка не разрешены относительно первых производных
F(
ds , s, t ) = 0 . Ориентация на свободную форму оправдана еще и тем, что dt
это не только удобная форма представления исходной информации, но и форма,
естественным
образом
возникающая
при
«физическом»
моделировании. Свободная форма редко используется в программных реализациях численных A( s )
методов.
Более
распространенной
является
форма
ds = f ( s, t ) , с возможно вырожденной матрицей A(s ) . dt В каждом конкретном случае систему, передаваемую решателю,
следует автоматически проверять и приводить к наиболее простой форме. Эту работу в Model Vision Studium выполняет блок предварительного, структурного
анализа
уравнений.
Структурному
анализу
можно
подвергать как системы отдельного блока, так и всю, совокупную систему уравнений. Пакетом анализируются и преобразуются к нужному виду: -
вычислимые последовательности формул;
-
системы нелинейных алгебраических уравнений;
-
системы нелинейных алгебраических уравнений с подстановками;
-
системы дифференциальных уравнений.
17
Для структурного анализа все типов уравнений предлагается использовать методы, используемые для структурного анализа больших разреженных систем линейных алгебраических уравнений. Сформированная система передается решателю, задача которого найти численное решение в конкретной временной точке. Выбор этой конкретной точки определяется блоком продвижения модельного времени и зависит от режима работы пакета. Таких режимов два – решение с визуализацией поведения и решение без визуализации. В первом случае требование качества визуализации накладывает
ограничение
на
выбор
возможной
величины
шага
продвижения модельного времени, так как необходимо воспроизвести графики с учетом всех особенностей поведения, во втором – ограничений на величину шага не существует. Второй случай характерен для решения задач оптимизации и любых других расчетов большого числа вариантов с различными
значениями
параметров,
когда
нас
интересуют
не
промежуточные, а конечные результаты. Особенность первого режима в пакете Model Vision заключается в том, что визуализация поведения осуществляется по ходу решения. Как в первом, так и во втором случае возникает еще одно требование, связанное с моделированием гибридных систем – при численном интегрировании в любом режиме должны быть правильно определены точки смены поведения, или точки переключения. К основным проблемам поиска точки переключения следует отнести: - Построение надежного алгоритма локализации очередной точки переключения с заданной точностью (глобальный поиск). - Построение быстрого алгоритма поиска локализованной точки (локальный поиск). Первая проблема связана с выбором величины шага модельного времени. Решение второй проблемы зависит от того, какая информация о свойствах решения доступна численному алгоритму. 18
В гибридных системах поиск точки переключения может осложняться тем, что точка смены поведения может лежать на границе множества допустимых значений фазового вектора: Предлагается использовать различные алгоритмы для поиска точки переключения. Поиск в условиях, когда можно вычислить только значение предиката в окрестности точки переключения. В данном случае в семействе Model Vision применяется метод деления отрезка пополам и в качестве нового значения модельного времени выбирается значение правой точки окончательного локализующего интервала. Поиск в условиях, когда можно вычислить не только значение функции, определяющей точку переключения, но и ее производную. В этом случае, после того как точка переключения локализована, вместо предикатов формируются уравнения, и применяются различные модификации метода Ньютона. Поиск в условиях, когда точка переключения определяется как корень уравнения на решении, описывающем поведение. Здесь используются те же алгоритмы, что и в предыдущем пункте, только теперь уравнения уже заданы, и формировать их не нужно. Одним из способов поиска в условиях непродолжаемости решения за точку переключения является
переход от поиска корня нелинейного
алгебраического
к
уравнения
поиску
стационарного
режима
дифференциального уравнения, для которого положение равновесия является корнем исходного алгебраического уравнения. В вычислительной математике такой прием называется поиском корня методом установления. Очевидным достоинством этого приема является то, что автоматически обеспечивается невозможность перейти за точку переключения. В четвертой главе приводится описание структуры библиотеки и структуры конкретных решателей. 19
Для решения каждой из основных задач (систем нелинейных алгебраических,
дифференциальных
и
алгебро-дифференциальных
уравнений), пользователю предлагается на выбор несколько программных реализаций численных методов. Указать заранее наиболее подходящий метод решения конкретной задачи удается редко, поэтому важной особенностью современных графических оболочек является простота процедуры смены численного метода. В MVS это можно делать даже в процессе решения. В тоже время существует значительная категория пользователей, которой безразлично, каким методом будет получено решение,
лишь
бы
оно правильно
отражало
поведение
объекта.
Аналогичное отношение к численным методам наблюдается и на этапе отладки. При отладке, когда модель демонстрирует "необъяснимое" поведение, бывает важно просто "двигать" время вперед любым доступным
способом
переменными.
и
смотреть,
Программные
что
произойдет
реализации
с
ключевыми
численных
методов,
гарантирующие получение решения с заданной точностью, не способны, как правило, справиться с задачами, возникающими при отладке, и приходится применять очень примитивные решатели, вплоть до методов с постоянным шагом. В Model Vision Studium, пользователю предлагаются три вида программных реализаций численных методов. 1.
Автоматические
решатели.
Их
назначение
-
автоматически
осуществить подбор наименее трудоемкой программной реализации численного метода для решения конкретной задачи, а в случае неудачи, предоставить пользователю максимально подробную информацию о встреченных
трудностях.
Анализируя
поведение
автоматического
решателя, пользователь может затем выбрать конкретный метод. 2.
Программные реализации для решения задач конкретного типа. Если
пользователю известен тип решаемой задачи, то достаточно просто выбрать один из предлагаемых на выбор методов соответствующего 20
класса.
Однако
и
в
непосредственно
с
программной
систематизированной
этом
случае,
пользователь
реализацией
коллекции,
а
с
из
имеет
дело
не
соответствующей
управляющей
программой,
анализирующей коды завершения вызываемой подпрограммы и, в случае необходимости, меняющей ее параметры так, чтобы обеспечить получение решения на всем интервале моделирования. Например, если программная реализация не может обеспечить получение решения с указанной пользователем точностью, то управляющая программа сначала попытается изменить точность, а если это не поможет, то только тогда прекратит счет и выдаст аварийное сообщение. 3.
Программные реализации для отладки. Цель этой группы методов
продвигать модельное время вперед как можно дальше, чтобы дать возможность пользователю понять природу ошибок. К этой группе, для решения дифференциальных уравнений, относятся явный и неявный методы Эйлера с автоматическим выбором шага и метод Рунге-Кутта четвертого порядка с постоянным шагом. Выбор диалоговом
конкретного режиме,
использованию
осуществляется
метода
простейший
"метода
по
вариант
умолчанию".
В
пользователем
которого качестве
в
сводится
к
"метода
по
умолчанию" предлагается автоматический решатель. Автоматический решатель в заданной последовательности перебирает включенные в него методы, чтобы обеспечить получение решения на всем временном промежутке. Аварийная
остановка
любого
метода
сопровождается
диагностическим сообщением. В случае аварийного завершения работы, можно попытаться сменить метод, но лучше устранить причину прекращения счета. "Плохие" численные задачи, конечно же, существуют, но практика показывает, что плохо сформулированных задач гораздо больше.
21
В приложении приводится список зарубежных работ и программного обеспечения для моделирования и исследования гибридных систем. Литература
1.
Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство
пользователя. М.: ДМК, 2000. 2.
Introduction to physical modeling with Modelica. Edited by M. Tiller.
The Kluwer international series in engineering and computer science, V. 615. 2001, 368 pp. 3.
D. Harel. Statecharts: a visual formalism for complex systems. Sci.
Comput. Prog. 8 (1987), pp. 231-274. 4.
Harel, D., A. Pnueli, J.P. Schmidt and R. Sherman. On the formal
semantics of Statecharts. Proc. 2nd IEEE Symp. On Logic in Computer Science, IEEE Press, New York, 1987, pp.54-64. 5.
D. Harel and A. Naamand. The STATEMATE semantics of statecharts.
ACM Trans. Soft. Eng. Method. 5:4(Oct. 1996). 6.
Y. Kesten, A. Pnueli. A. Timed and hybrid statecharts and their textual
representations. Technical report. Department of Applied Mathematics, Weizmann Institute, Rehovot, Israel, 1993. 7.
Ю.Ту. Современная теория управления. М.: Машиностроение, 1971.
8.
Е.А.
Арайс,
В.М.
Дмитриев.
Автоматизация
моделирования
многосвязных механических систем. М.: Машиностроение, 1987, 238 стр. 9.
Model Vision. Руководство пользователя./М. А. Инихова, Д.Б.
Инихов, Ю.Б. Колесов, Ю.Б. Сениченков. Спб., 1995. 10. Веселова И.Ю., Сениченков Ю.Б. Моделирование. Вычислительный практикум. 1999. Изд. СПбГТУ. С.-Петербург. 107 стр. 11. Колесов Ю.Б., Сениченков Ю.Б. Визуальное моделирование сложных динамических систем. СПб, Изд «Мир и Семья&Интерлайн», 2000, 234 стр.
22
12. Е.С. Бенькович, Ю.Б Колесов, Ю.Б. Сениченков. Практическое моделирование сложных динамических систем. С. Петербург, БХВ, 2001. ISBN: 5-94157-099-6, 441 стр. 13. A. Borshchev, Yu. Kolesov, Yu. Senichenkov. Java engine for UML based hybrid state machines./In Proceedings of Winter Simulation Conference, Orlando, California, USA, 2000. p. 1888-1897. 14. R. Alur and D.L. Dill. Automata for modeling real-time systems. ICALP 90: Automata, Languages, and Programming. LNCS 443, 1990, p 322-335. 15. Yu. Kolesov, Yu. Senichenkov. A composition of open hybrid automata. EUROCON 2003. IEEE Catalog Number: 03EX665, ISBN: 0-7803-7763-X, Library of Congress: 2002117046. 16. Колесов Ю.Б., Сениченков Ю.Б. Синхронизация событий при использовании гибридных автоматов для численного моделирования сложных динамических систем. Научно-Технические ведомости, 1’ 2004, стр. 202-207. 17. Visual Specification language intended for event-driven hierarchical dynamical systems with variable structure. /Yu. Kolesov, Yu. Senichenkov. ICI&C’97. International conference on Informatics and Control. St. Petersburg, 1997. pp. 704-711 18. Библиотека программ для решения ОДУ. / Ю.Б. Колесов, Ю.Б Сениченков./ В сб. Труды ЛПИ 462, 1996, стр. 116-122. 19. Model Vision’s 3.0 ODE Solver. / Yu. Kolesov, E. Pariajskaj, Yu. Senichenkov. Differential equations and applications. The second International conference. St. Petersburg, 1998. pp. 122-124. 20. Model Vision 3.0 for WINDOWS 95/NT - graphical environment for complex dynamic systems modeling. / Yu. Kolesov, Yu. Senichenkov. COLOS’98. Maribor 1998, pp.34-41. 21. Колесов Ю.Б., Сениченков Ю.Б. Программная поддержка активного вычислительного эксперимента. Научно-Технические ведомости, 1’ 2004, стр. 177-182. 23
ГЛАВА
1.
ГИБРИДНЫЕ
СИСТЕМЫ
КАК
ОБОБЩЕНИЕ
КЛАССИЧЕСКИХ ДИНАМИЧЕСКИХ СИСТЕМ.
Термин «гибридные системы» много лет использовался как синоним названия аналогово-цифровых аппаратных систем и в некоторых случаях сохранил это значение и до сих пор. Например, в словарях [1] можно встретить словосочетание «hybrid computer» в качестве названия цифровых компьютеров, в которых одновременно используются и аналоговые устройства. Сейчас термин используется и для обозначения любых непрерывных систем, управляемых компьютерами, или систем со встроенными цифровыми регуляторами, и класса моделей, в которых одновременно моделируется как дискретное, так и непрерывное поведение объекта.
Именно
последнее
значение
и
будет
использоваться
в
дальнейшем. При исследовании систем с дискретным и непрерывным поведением, в зависимости от сложности непрерывных и дискретных компонентов и возможности максимально упростить одну из них, можно построить несколько типов моделей: -
модель в виде динамической системы с дискретным временем и
явными зависимостями для описания непрерывного поведения («простая динамика») – полет и отскок мячика от поверхности, уравнения движения которого выписаны в виде явных формул; -
модель в виде динамической системы с непрерывным временем и
кусочно-непрерывными
правыми
частями
(«простые
дискретные
процессы») - полет и отскок мячика от поверхности, моделируемых с помощью дифференциальных уравнениях, в которых в момент отскока скачком меняются значения скоростей; -
или же совместить дискретное и непрерывное время в рамках одной
модели и получить гибридную систему, в которой сложное дискретное поведение сопутствует сложному непрерывному (сложные дискретные и 24
непрерывные процессы) – движение ракеты за целью, когда получение информации о цели и изменение характеристик полета осуществляется только в дискретные моменты времени. Исторически, к определению гибридных систем подходили с двух сторон – в процессе оснащения конечных автоматов различными моделями непрерывного времени: • O. Maler, Z. Manna, and A. Pnueli. From timed to hybrid systems. In J.W. de
Bakker, K. IIuizing, W.-P. de Roever, and G. Rozenberg, editors, Real Time: Theory in Practice, Lecture Notes in Computer Science 600, pages 447-484. Springer-Verlag, 1992. • X. Nicollin, J. Sifacis, and S. Yovine. From ATP to timed graphs and hybrid
systems. In J.W. de Bakker, K. IIuizing, W.-P. de Roever, and G. Rozenberg, editors, Real Time: Theory in Practice, Lecture Notes in Computer Science 600, pages 549-572. Springer-Verlag, 1992. и поиска ответа на вопрос, как анализировать и что следует считать решением динамических систем с разрывными правыми частями: • А.А. Андронов, Е. А. Леонтович, М.И. Гордон, А. Г. Майер.
Качественная теория динамических систем 2-го порядка. М.: Наука, 1966. 568 стр. • П. В. Бромберг. Матричные методы в теории релейного и импульсного
регулирования. М.: Наука, 1967. 323 стр. • Филлипов А.Ф. Дифференциальные уравнения разрывной правой
частью. Математический сборник, т.51, № 1, 1960» Долгое время эти два подхода развивались практически независимо, хотя очевидно, что речь идет об исследовании одной и той же модели различными способами: • Ю.Б Колесов, Ю.Б. Сениченков. Визуальное моделирование сложных
динамических систем. С. Петербург, «Мир и семья и Интерлайн», 2000. ISBN: 5-9212-0018-2, 240 с.
25
• Е.С. Бенькович, Ю.Б Колесов, Ю.Б. Сениченков. Практическое
моделирование сложных динамических систем. С. Петербург, БХВ, 2001. ISBN: 5-94157-099-6, 441 с. • A.S. Matveev and A.V. Savkin. Quality theory of hybrid dynamical systems.
Birkauser Boston, 2000. Хотя термины гибридные системы и гибридные автоматы пришли к нам из-за рубежа в результате развития теории автоматов, неоспорим вклад отечественных ученых в разработку теории гибридных автоматов, рассматривавших гибридные автоматы как особый класс динамических систем с непрерывным временем. 1.1 Гибридный автомат как обобщение таймированного автомата.
Автоматный подход привел к выделению гибридных систем в отдельный класс динамических систем сразу же несколькими группами авторов: • Alur, Rajeev, Costas Courcoubetis, Thomas A. Henzinger, and Pei-Hsin Ho.
1993. Hybrid automata: An algorithmic approach to the specification and verification of hybrid systems. In Lecture notes in computer science, edited by R. L. Grossma, A. Nerode, A. P. Ravn, and H. Rischel, vol. 736, pp. 20929. New York: Springer-Verlag. • Xavier Nicollin, Alfredo Olivero, Joseph Sifakis, Sergio Yovine: An
Approach to the Description and Analysis of Hybrid Systems. In R.L. Grossman, A. Nerode, A. P. Ravn, and II. Rischel, editors, Hybrid Systems I, Lecture Notes in Computer Science 736, pages 149-178. Springer-Verlag, 1993. • Maler, Z. Manna, and A. Pnueli. A formal approach to hybrid systems. In
Proceedings of REX workshop: Real Time: Theory in Practice, Lecture Notes in Computer Science 600, Springer-Verlag, 1992. Как пишут авторы первой из перечисленных работ [Alur, Rajeev,…], предложенный ими «гибридный автомат можно рассматривать как обобщение
таймированного
автомата 26
[3],
в
котором
изменение
переменных
в
каждом
состоянии
описывается
системой
дифференциальных уравнений». В работе неявно введено понятие
τ j = {τ 0j ,τ 1j ,....}
реализации
гибридного
времени
τ = {τ 0 ,τ 1 ,...} , как
покрытия неотрицательной полуоси ℜ + конечной или бесконечной последовательностью
упорядоченных
открытых,
полуоткрытых
или
замкнутых интервалов. Активностями называются элементы конечного множества
гладких
вещественных
функций
F = { f k , k = 1, N } ,
определенных на ℜ + . Каждая реализация τ j = {τ 0j ,τ 1j ,....} гибридного времени связана с кусочно-непрерывной траекторией гибридной системы, заданной
в
виде
последовательности
f 0 (τ 0j ), f1 (τ 1j ), f 3 (τ 3j )...., f l ∈ F .
Заданное множество траекторий определяет гибридную систему, которая может быть представлена в виде гибридного автомата. Гибридный автомат или графическое представление гибридной системы - это конечное множество состояний, с каждым из которых связана правая часть системы линейных дифференциальных уравнений первого порядка, с решениями из множества F , и множество переходов, между состояниями. Каждому переходу поставлены в соответствие условие завершения активности и функция инициализации новых начальных условий. Примером гибридного автомата может служить граф, представленный на Рис. 1. На рисунке 2 представлен гибридный автомат, с помощью которого описан алгоритм поддержания температуры x некоторого объекта в заданных пределах m ≤ x ≤ M . Во второй работе [Xavier Nicollin,…] предложено определение композиции двух гибридных автоматов, каждый из которых снабжен своими независимыми часами и имеет общие переменные. Выбор моделей активностей авторами статьи в виде линейных дифференциальных уравнений связан с попыткой разработать алгоритмы верификации гибридных автоматов, отвечающих на вопрос, существует ли для заданных 27
начальных условий – начального состояния и начальных значений переменных, допустимое поведение, или иными словами траектория, на которой определен инвариант, характеризующий заданные свойства системы. Авторы второй статьи дают практически такое же определение автомата, но при этом обсуждают различные стратегии покидания текущего узла,
в случае если ему приписано несколько исходящих
переходов. Автоматы в обеих работах совпадают, если узел покидается немедленно, как только стал истинным предикат на одном из исходящих переходов («асинхронные гибридные автоматы»). Приводится пример недетерминированного автомата, у которого предикаты становятся истинными одновременно. Графическая нотация для гибридного автомата ближе к современной, чем в первой работе.
Рисунок 1. Пример гибридного автомата из статьи [2]
Рисунок 2. Пример гибридного автомата из статьи [2] На рисунке 3 приведен гибридный автомат для задачи о кошке и мышке. 28
Кошка следит за пробегающей с постоянной скоростью мышкой и в некоторый момент бросается ей наперерез по прямой линии. Требуется выяснить, успеет ли кошка, находящаяся в заданной точке, догнать мышь, прежде чем та спрячется в норе, если скорости обеих постоянны.
Рисунок 3. Пример гибридного автомата из статьи [4] Авторы третьей из перечисленных статей [Maler, Z. Manna…] используют модифицированную графическую нотацию Харела для карт состояния, что позволяет им сразу же поставить вопрос о композиции гибридных автоматов. Графическое представление задачи о кошке и мышке, рассматриваемых как два независимых параллельных процесса с общими переменными показано на Рисунке 4. В 1994 году появляется совместная статья [6], где уточняется определение детерминированного гибридного автомата, приспособленное для решения задач верификации линейных гибридных автоматов. Итоги исследований в период с 1991 по 1995 год подведены в работе [7]. Основные результаты, полученные в эти годы, связаны с поиском таких гибридных автоматов, которые можно исследовать методами, применимыми к конечным или таймированным автоматам. Объектом исследования оказываются линейные и прямоугольные автоматы, для которых строятся символьные методы исследования. Символьные методы используются в различных программных комплексах для символьной верификации гибридных систем, наиболее известным из которых является HyTech. В работе дается определение композиции гибридных автоматов, синхронизированных по общим событиям, и упоминается о возможности 29
взаимодействия
параллельно
работающих
автоматов
через
общие
переменные. Формулируется задача о проверке условия, является ли данный автомат автоматом Зенона, иными словами имеет ли гибридное время конечную предельную точку, и задача достижимости заданного состояния, как проблема поиска начального состояния гибридного автомата, приводящего его к заданному. Это направление продолжает развиваться и сейчас, однако трудности сведения гибридного автомата к таймированному или прямоугольному делают этот подход практически мало применимым. В современной редакции [8] определение гибридного автомата, предлагавшееся в цитированных статьях, выглядит так: ОПРЕДЕЛЕНИЕ. Гибридным автоматом H называют кортеж H=(Q, X,
Init, f, Inv, E, G, R), где • Q - конечное множество дискретных переменных. • X - множество непрерывных переменных. • Init ⊆ Q × X - множество начальных состояний. •
f : Q × X → X - вектор функция, являющаяся правой частью системы
обыкновенных дифференциальных уравнений первого порядка относительно x ∈ X , зависящая от дискретных переменных. • Inv : Q → 2 X множество инвариантов, связанных с каждым значением
переменной q ⊂ Q . • E ⊂ Q × Q - множество дискретных переходов. • G : E → 2 X - множество предохраняющих предикатов, присвоенных каждому переходу e = (q, q ' ) ∈ E . • R : E × X → 2 X - множество правил переопределения начальных условий, заданных на каждой дуге e = (q, q' ) ∈ E для непрерывных переменных x ∈ X . Переменные x ∈ X называются непрерывными, так как они являются решением
дифференциальных
уравнений, 30
а
переменные
q⊂Q
–
дискретными, определяющими конечное множество режимов работы или состояний автомата. Под состоянием гибридного автомата H понимается пара (q, x) ∈ Q × X . Предполагается, что правая часть дифференциальных уравнений удовлетворяет условиям Липшица по x ∈ X . Ни в одной из работ «автоматного» направления этого периода не рассматривалась возможность численного моделирования гибридных систем. 1.2 Гибридный автомат как обобщение классических динамических систем.
В тоже время в теории динамических систем и теории управления модели, описываемые различными уравнениями в различных областях фазового пространства известны очень давно. Не ставя своей целью указать первые работы1, где исследуются такие системы, сошлемся только на две книги, появившиеся в середине прошлого столетия, где уже не только формулируются основные проблемы, но и делается попытка построить
методы
исследования
гибридных
систем.
Это
уже
упоминавшиеся монографии [9] и [10], в которых можно найти ссылки на более ранние работы: • Лурье А.М. Некоторые нелинейные задачи в теории автоматического регулирования. Гостехиздат, 1951. • Цыпкин Я. З. Теория релейных систем автоматического регулирования. Гостехиздат, 1955. • Цыпкин Я. З. Теория импульсных систем. Гостехиздат, 1958. Можно сказать, что гибридные системы выделились в особый класс динамических систем благодаря невозможности получить в явном виде (замкнутой форме) и исследовать решение многих практически важных 1
В работе В.И. Уткина [12] отмечается, что «в интересной работе Бернштейна [13], посвященной применению методов теории колебаний для исследования вибрационных регуляторов, приводится краткий обзор и анализ первых публикаций в этой области». 31
нелинейных дифференциальных уравнений. Однако это можно сделать,
Рисунок 4. Автомат для задачи о кошке и мышке из работы [5] если нелинейные функции аппроксимировать кусочно-линейными или кусочно-постоянными,
построить
решения
получившихся,
обычно
линейных, систем (аппроксимация уравнений) и «склеить» их в единое целое на всем интервале, обеспечив возможную степень гладкости (припасовывание).
Бромберг
[10]
отмечает,
что
в
припасовывания использовался еще Жуковским Н.Е. [11].
32
России
метод
В первой книге [А.А. Андронов,..], в главе 3, «Неконсервативные системы», ставится вопрос о существовании автоколебаний в нелинейных моделях, в частности в моделях: 1. Осциллятора с сухим трением
⎧ 2 dx + a ω , <0 0 ⎪⎪ d x dt 2 + ω0 x = ⎨ 2 dt ⎪− aω 2 , dx > 0 0 ⎪⎩ dt 2 k / m = ω0 2
f 0 / m = aω 02 где f 0 - трение Кулона, m - масса тела, k - жесткость пружины. 2. Лампового генератора с кусочно-постоянной зависимостью анодного тока от напряжения на сетке dx ⎧ 2 ω0 I s , <0 ⎪ d x dx ⎪ dt 2 + 2h + ω 0 x = ⎨ dx dt 2 dt ⎪0, >0 ⎪⎩ dt h = R / L; 1 / LC = ω02 ; I s = Mω02 2
3. Часов с различными типами мгновенного удара спускового механизма ⎧ ⎪⎪+ f 0 , d x +x=⎨ dt 2 ⎪− f , ⎪⎩ 0 2
dx <0 dt dx >0 dt
где f 0 - постоянная сила трения, отнесенная к единице массы. Удар либо подчиняется
предположению
о
постоянстве
количества
движения
v1 − v0 = const , либо предположению, что кинетическая энергия системы
mv 21 mv 2 0 − = const . Здесь при ударе изменяется на одну и туже величину 2 2
v1 ,v0 скорости после и до удара. 33
В последней модели особенно хорошо видно, что она наделена как дискретным, так и непрерывным временем. В ней явно различимы мгновенные (удар) и длительные (колебания) действия. В модели с часами, наблюдается разбиение фазовой плоскости на две области: в первой постоянные колебания не возможны и осциллятор, совершив несколько колебаний, приходит в область неустойчивых точек равновесия (численное поведение показано на Рисунке 5), а во второй возможно установление устойчивых колебаний различного типа, в зависимости от типа удара (Рис. 6).
Рис. 5. Численное поведение часов в области неустойчивых точек равновесия (точек «застоя»). Предположение о бесконечно большой мощности спускового механизма в момент мгновенного удара хоть и является явной идеализацией, свойственной всем гибридным системам, однако позволяет построить качественно верную модель часов.
Рис. 6 Устойчивые колебания часов 34
Однако наиболее интересным является описание «разрывных» колебаний и изучение условий их возникновения в дифференциальных уравнениях. Авторы приходят к выводу, что колебания возможны, если а) в модели в заданные моменты времени принудительно скачком меняются значения переменных (колебания шарика между двумя абсолютно упругими ограничителями) или б) функция правой части становится неоднозначной (релаксационные колебания). Первый случай и представляет, как и модель часов, гибридный автомат с одним длительным состоянием и одним переходом, приводящим к смене начальных условий (примитивный гибридный автомат). Таким образом, мы видим, что авторы исследуют модели, которые описываются гибридными автоматами. Вторая книга [10] может быть названа введением в теорию линейных гибридных автоматов. Бромберг рассматривает системы вида: dx = P ⋅ x + h ⋅ ϕ (σ ) + g dt σ = γ ′⋅ x h, x, g , γ ∈ ℜ n ; P ∈ ℜ n×n где вещественная функция ϕ (σ ) вещественного аргумента σ является кусочно-постоянной периодической функцией периода T=T1+T2, где T1 и T2 временные отрезки, на которых функция ϕ (σ ) принимает не нулевое и нулевое значение соответственно (импульсная функция). Замечая, что на каждом отрезке, где функция ϕ (σ ) постоянна, можно построить решение линейной системы обыкновенных дифференциальных уравнений в явном виде (возмущение g ( x, t ) в этом случае полагается нулевым) и перейти к разностному уравнению первого порядка, позволяющему исследовать устойчивость решения:
x(mT ) = P * x((m − 1)T ) P* = KM (T ) K −1 + KM (T2 ) N (T1 ) K −1 hγ 35
Здесь
M (t )
-
каноническая
форма
матричного
экспоненциала
e Pt = Ke Jt K −1 = KM (t ) K −1 , J - жорданова форма матрицы P,
а
N (t ) = J −1 ( M (t ) − E )) , где E – единичная матрица. Это позволяет автору сформулировать различные критерии устойчивости импульсных систем (читай линейных гибридных автоматов). Примером может служить приводимая им система стабилизации курса нейтрального самолета ([10] -автопилот прерывистого действия, стр. 170):
d 2ϕ dϕ = −M − Nη 2 dt dt d 2η dη Θ 2 =− + hψ (σ ) dt dt dϕ d 2ϕ σ = ϕ + α1 +α2 2 dt dt где функция ψ (σ ) определяется графиком, приведенным на Рис. 7. Анализ этой системы позволяет в пространстве параметров (α 1 , α 2 ) в зависимости от значений M , h, Θ выделить области устойчивости системы (Рис. 8) . Рассматривая поведение релейных систем: dx = P ⋅ x + h ⋅ sign(σ ) dt σ =γ′⋅ x Бромберг
описывает
три
вида
поведения
фазовых
траекторий
в
непосредственной близости от плоскости переключения σ = γ ′ ⋅ x = 0 :
• Нормальное переключение – по обе стороны плоскости переключения фазовые траектории имеют одинаковое направление, и скорость σ& может меняться скачком ± 2γh (жесткое переключение, в отличие от мягкого, когда γh = 0 ).
• Режим скольжения - когда по обе стороны плоскости переключения фазовые траектории направлены к плоскости переключения.
36
• Неустойчивое
равновесие
-
когда
по
обе
стороны
плоскости
переключения фазовые траектории уводят точку от плоскости в разные стороны. ψ (σ )
σ
t
Рис. 7. Импульсное управление
Рис. 8. Поведение автопилота в области устойчивости Примером существования всех видов переключений в зависимости от значения параметров может служить модель автопилота с релейным сервомотором:
d 2ϕ dϕ = −M − hψ (σ ) + g 2 dt dt dϕ σ = ϕ + α1 dt g = cont Ее поведение при α 1 = 0 показано на Рис. 9. 37
Рис. 9 . Поведения автопилота с сервомотором в области линии переключения Отмечается, что явление скольжения для функции sign
приводит к
бесконечной скорости переключения реле (автомат Зенона), и чтобы избежать этого явления предлагается доопределить специальным образом уравнения в зоне скольжения dx 1 = Px − hγPx . dt γh Указывается, что конечные скорости переключения реле наблюдаются при переключениях, имеющих форму петли гистерезиса (стр. 186). Благодаря использованию матричного аппарата, Бромбергу удается ответить на вопрос о возникновении собственных периодических движений и автоколебаний (Рис. 10) в релейных системах – с идеальной релейной
характеристикой
нечувствительности
и
(функция
колебаниях,
sign),
люфтом
возникающих
под
и
зоной
внешним
воздействием. Фактически работа Бромберга является первой, где применен, выражаясь сегодняшним языком, символьный подход к анализу гибридных систем. Дальнейшее развитие теории гибридных систем связано с решением задач стабилизации и слежения с помощью регуляторов, структура которых зависит от времени. Этому подходу посвящены работы:
38
• Е. А. Барбашин. Введение в теорию устойчивости. М.: Наука, 1967, 223 стр. • Е.
А.
Барбашин,
В.А.
Табуева.
Динамические
системы
с
цилиндрическим фазовым пространством М.: Наука, 1969, 299 стр. • Е.С. Емельянов. Системы автоматического управления с переменной структурой. М.: Наука, 1967, 335 стр. • Теория систем с переменной структурой./ Под редакцией Е. С. Емельянова. М.: Наука, 1970, 590 стр.
Рис. 10. Появление автоколебаний при релейном управлении автопилотом. В этих книгах можно найти ссылки на более ранние работы: • Ю.В. Долголенко. Скользящие режимы релейных систем непрямого регулирования. Тр. Второго Всесоюзного совещания по теории автоматического регулирования, 1, М.-Л., АН СССР. • Ю.И.
Неймарк.
О
скользящем
режиме
релейных
систем
автоматического регулирования. Авт. и телемех., 1957 18, 1, 27-33. • А.М. Летов. Условно устойчивые регулируемые системы (об одном классе оптимальных регулируемых систем) Авт. и телемех., 1957 18, 7. В указанных
работах вводится понятие системы
переменной
структуры (тот же гибридный автомат) и исследуются свойства возникающих в них особых режимов, названных скользящими2 режимами. 2
В работе В.И. Уткина [12] находим: «необходимо отметить, что скользящие движения были обстоятельно исследованы для конкретных случаев систем 39
Системы переменной структуры описываются системами обыкновенных дифференциальных уравнений с разрывными коэффициентами. Возможности применения систем переменной структуры в теории управления в работе [14] иллюстрируются на примере линейной системы второго порядка: dx1 = x2 dt dx2 = − a2 x2 − a1 x1 − bu dt u = Ψx1 ⎧α , x1 s > 0 Ψ=⎨ ⎩β , x1 s < 0 s = x2 − cx1 a1 , a2 , b = const , b > 0; c > 0,α > β Если при Ψ = α система оказывается колебательно неустойчивой, а при Ψ = β - апериодически неустойчивой, то в зависимости от величины
коэффициента c в системе возможны три типа движения – режим движения
по
вырожденным
траекториям,
режим
постоянного
переключения и скользящий режим (Рис. 11). Как отмечают авторы, основное достоинство скользящего режима заключается в том, что его свойства не зависят от характеристик управляемого объекта. Таким образом, если в системе переменной структуры существуют скользящие режимы, и удается обеспечить выход на прямую (гиперплоскость) скользящего режима из любой начальной точки, то система попадает в точку устойчивого равновесия. В работе подробно рассмотрены методы управления линейными системами с постоянными и перемеренными коэффициентами второго
регулирования в работах [15-16] в довоенный период. Работа Никольского Г.Н.[15], повидимому, является первой публикацией по этому вопросу». 40
порядка
и
особенности
применения
линейных
регуляторов
для
нелинейных объектов специального вида.
Рис 11. Режим движения по вырожденным траекториям (верхний правый), скользящий режим (верхний левый) и режим постоянного переключения (нижний). Практически такую же структуру имеет и работа [17] . В работе [18] наиболее полно изложены результаты, достигнутые в теории систем переменной структуры. Рассмотрены вопросы управления линейными переменными
объекты
переменной
коэффициентами
структуры
с
произвольной
постоянными
и
размерности,
их
устойчивость, исследованы вопросы, касающиеся их вынужденных движений. Сформулированы теоремы, указывающие при каких условиях возникают скользящие режимы, и как обеспечить выход на них из любой 41
точки фазового пространства. Дальнейшее развитие этого подхода можно найти в работе [19]. В работе • В.И. Уткин Скользящие режимы и их применение
в системах с
переменной структурой. М.: Наука, 1974, 272 с. а также в работах: • В.И. Уткин. Скользящие режимы в задачах оптимизации и управления. М.: Наука, 1981, 368 с. • В.И. Уткин, Ю.В. Орлов. Теория бесконечномерных систем управления на скользящих режимах. М.: Наука, 1990, 133 с. обсуждается, чрезвычайно важный вопрос об идеальном и неидеальном скольжении, и утверждается, что идеальное скольжение может быть получено в результате предельного перехода в моделях с учетом любого вида неидеальных релейных элементов. Основной математической моделью, как для гибридного автомата, так и релейного и импульсного управления, являются дифференциальные уравнения с разрывными коэффициентами. В таких системах, если решение принадлежит поверхности разрыва, то после попадания на нее изображающей
точки
дальнейшее
движение
может
оказаться
невозможным, так как правая часть не определена на поверхности разрыва. В этом случае правая часть требует доопределения. В работе Филлипова А.Ф.
«дифференциальные
уравнения
разрывной
правой
частью.
Математический сборник, т.51, № 1, 1960» было предложено формально доопределять правую часть способом, который сейчас носит название доопределение Филлипова. Доопределение Филлипова, предполагает, что для скалярного уравнения с разрывной правой частью ds = f ( s, t ) dt движение
вдоль
линии
скольжения
sl (s )
определяется
вектором
f 0 = μ ⋅ f + + ( μ − 1) ⋅ f − , 0 ≤ μ ≤ 1 , направленным по касательной к ней и равным в каждой точке сумме векторов f + и f − фазовой скорости в 42
рассматриваемой точке, принадлежащим полуплоскостям, где
ds ≥0 и dt
ds ≤ 0 соответственно. Если sl ( s ) = 0 - линия скольжения и движение dt осуществляется по касательной к ней, то коэффициент μ выбирается из условия
d sl ( s ) = grad ( sl ) ⋅ f 0 = 0 , что приводит к уравнению идеального dt
скольжения ds grad ( sl ) ⋅ f − grad ( sl ) ⋅ f − + = f − f −, − + − + dt grad ( sl ) ⋅ ( f − f ) grad ( sl ) ⋅ ( f − f ) или в нашем случае к уравнению ds = 0, s (t*) = c , dt где t* - момент прихода изображающей точки на линию скольжения. Уткин в своей работе ставит вопрос об обоснованности именно такого доопредеделения и его
соотношения с реальным поведением
объектов. Предложенный им самим способ доопределения, названный методом эквивалентного управления, носит конструктивный характер, и может быть использован для получения уравнений движения на поверхности разрыва. Его суть поясняется в работе Уткина на примере системы, линейной по управлению: ds = f ( s, t ) + B( s, t ) ⋅ u; x, f ∈ ℜ n , B ( s, t ) ∈ ℜ n×m , u ∈ ℜ m , dt в которой управление u претерпевает разрывы на поверхности sl ( s ) = 0 ⎧⎪ui+ , sli ( s ) > 0 , u i ( s, t ) = ⎨ − ⎪⎩ui , sli ( s ) < 0
Для
нахождения
d sl ( s ) = 0 , dt
уравнения
которое
в
силу
скольжения исходной
43
используется системы
уравнение
принимает
вид
Gf + GBu~ = 0 , где G - матрица размерности m × n , строки которой являются векторами-градиентами функций sli (s) . Находя значение u~ u~ = −(GB) −1 Gf и подставляя его
в исходное уравнение, получаем
уравнение идеального скольжения ds = f − B(GB) −1 Gf . dt Таким образом, изучение идеального скольжения требует нахождения поверхностей, на которых возможно скольжение, и построения тем или иным способом уравнений скольжения. С точки вынужденные
зрения Уткина, реальные движения
на
режимы
поверхности
скольжения
разрыва,
или
описываемые
дифференциальными уравнениями с непрерывными правыми частями, должны быть сколько угодно близки к идеальным, при предельном переходе от реальных движений к идеальным. Более того, использовать уравнения идеальных движений для практических нужд можно только тогда, когда они являются предельными для любого вида неидеальностей, то есть определяются однозначно при предельном переходе для заданного класса неидеальных элементов. Уткин анализирует различные способы доопределения, вводит понятие
эквивалентного
доопределения,
управления
показывает
в
каких
как
конструктивного
случаях
оно
метода
совпадает
с
доопределением Филлипова, доказывает, что идеальное скольжение является предельным для любого вида неидеальностей при определенных, но весьма общих ограничениях, и применяет его для анализа скользящих режимов при скалярном и векторном управлении. Таким образом, для создания систем управления со скользящими режимами, необходимо обеспечить выход системы на поверхность скольжения, а дальше воспользоваться построенными уравнениями вынужденного движения. Предложенный Уткиным способ относится к аналитическим методам исследования гибридных систем, и впрямую не 44
применим для их численного исследования, так как движение по поверхности скольжения сопровождается эффектом Зенона. Необходимость
доопределения
поведения
гибридного
автомата
на
поверхности разрыва отмечается и в работе [21-22]. Введение нового состояния,
с
уравнениями
движения,
подсказанными
реальным
поведением объекта, часто устраняет причину возникновения эффекта Зенона в окрестности линии скольжения при численном интегрировании. Численный метод ведет себя как звено с запаздыванием – условия переключения находятся не точно, что позволяет изображающей точке переходить из одной плоскости в другую. В гибридном автомате это происходит независимо от скорости движения изображающей точке в окрестности
поверхности
скольжения.
В
реальных
объектах,
при
уменьшении скорости движения из-за изменения, например, характера сил трения, меняются уравнения движения. Учет этого и может помочь избежать появления эффекта Зенона. Отдельно следует выделить работу А.Ф. Филлипова [20]. В этой работе дается определение, что считать решением системы уравнений с разрывной правой частью, определяются условия существования решения, и
выясняется
какие
свойства
классических
динамических
систем
сохраняются, при появлении разрывов в правой части, а какие нет. Особенно важной с точки зрения понимания поведения гибридных автоматов, является глава, посвященная динамическим системам с разрывными правыми частями на плоскости. В заключение можно сказать, что мы имеем дело с весьма типичным случаем, когда один и тот же объект изучается с помощью различных подходов. К сожалению, приверженцы автоматного подхода, а это в основном это зарубежные авторы, практически не используют опыт отечественных ученых. Справедливости ради надо отметить, что и в нашей стране практически никто не пытается установить связь между двумя
45
подходами, унифицировать терминологию, и использовать все то лучшее, что есть в обоих направлениях исследований. 1.3
Современные
подходы
к
компьютерному
моделированию
сложных динамических систем.
Существующие
программные
среды
для
моделирования
динамических систем, или для краткости пакеты в дальнейшем, сегодня уже представляют собой повседневный, достаточно развитый и мощный инструментарий
инженера,
естественным
образом
исследования
сложных
научного
пришли
на
работника смену
динамических
и
педагога.
«ручным»
систем,
Они
технологиям
рассмотренных
в
предыдущих параграфах и ранним пакетам, когда вычислительные машины не могли работать с графическими операционными системами и входными языками. Среди пакетов можно выделить специализированные, направленные на решение конкретных прикладных задач, и универсальные, способные справиться
практически
с
любой
исследовательской
задачей.
Универсальные пакеты обычно лишены уникальных численных методов и библиотек моделей, специальной графики и средств поддержки больших проектов, что и отличает их от специализированных. Существующие подходы и наиболее важные проблемы, возникающие при разработке и использовании всех типов пакетов, хорошо видны уже на примере универсальных программных средств. Среди универсальных пакетов также существуют несколько групп, отличающиеся методами построения и типами моделей. 1.3.1 Математические пакеты. Однокомпонентные модели.
Прежде всего, это математические макеты MAPLE, MATHEMATICA, MathCAD, MATLAB и любые другие, позволяющие решать системы обыкновенных
дифференциальных
уравнений
(ОДУ)
и
алгебро-
дифференциальных уравнений (АДУ). Именно системы АДУ в основном и характеризуют современные сложные динамические системы, однако не во 46
всех перечисленных пакетах имеется возможность решать их. В тоже время
возможность
решения
и
визуализации
решений
ОДУ
предусматривается в таких пакетах всегда. Математические пакеты лучше всего приспособлены для решения систем
небольшой размерности, с
достаточно гладкой правой частью, уравнения которые можно написать вручную. Такие системы можно классифицировать как изолированные, однокомпонентные динамические системы, с заданной в явном виде системой уравнений. Моделировать системы с разрывными правыми частями или переменной структуры, когда меняются не только правые части, но и число уравнений, в математических пакетах затруднительно по двум причинам. Во-первых, входные языки математических пакетов не имеют выразительных средств для описания систем этого типа, поэтому описание становится очень трудоемким процессом. Применяемые способы описания
приводят
к
громоздким
и
трудно
воспринимаемым
пользователями текстам, что является потенциальной причиной многих ошибок. Во-вторых, что более важно, при наличии разрывов в системе или изменении структуры решаемого уравнения, точки, где это происходит, принято предварительно находить с разумной точностью и отдельно решать две системы – до точки разрыва и после нее. Чаще всего решать эти системы приходится различными численными методами, если при переходе через поверхность разрыва существенно меняются свойства системы. Реализовать такой подход в математических пакетах сложно, так как отсутствуют встроенные механизмы локализации разрывов, заданных уравнениями или предикатами, и автоматической смены численных методов. В тоже время математические пакеты прекрасно справляются с традиционными задачами моделирования: созданием и изучением новых моделей, базирующихся на системах ОДУ, и новых численных методов для их решения, если только пользователь обладает достаточными математическими знаниями и опытом программирования.
47
1.3.2 Многокомпонентные модели.
Пакеты
компонентного
моделирования,
зарубежные:
семейство
надстроек над пакетом Matlab – Simulink, StateFlow, SimMechanics, SimPowerSystems, пакеты Dymola, Vissim, и отечественные: MBTY, AnyLogic, Model Vision Studium, Stratum, позволяют автоматически создавать
и
исследовать
иерархические
модели.
Учитывая,
что
исследуемые реальные объекты обычно имеют иерархическую структуру и, чаще всего, переменную, зависящую от происходящих событий, то основным
инструментом
их
исследования
становятся
пакеты
компонентного моделирования. Системное
программное
обеспечение
пакетов
компонентного
моделирования решает по сравнению с математическими пакетами другие математические и технические задачи. К новым математическим относятся задачи: - автоматического синтеза совокупной, итоговой АДУ из уравнений отдельных компонент с учетом связей блоков, проверки корректности итоговой
системы
и
преобразования
ее
форме,
необходимой
численному решателю; - автоматического выбора численного метода для воспроизведения поведения системы; - достоверного автоматического воспроизведения численного решения на всем промежутке наблюдения. К числу новых научно-технических задач относятся: - разработка
современных
языков
моделирования
и
проведения
вычислительного эксперимента; - создание новых средств визуализации поведения динамических систем; - создания
библиотек
инструментов
динамических систем.
48
для
исследования
свойств
Блоки, или компоненты, из которых строится модель, в современных пакетах могут быть различного типа, и от их типа и способа объединения зависит тип итоговой системы и методы ее решения. Таким образом, основной проблемой компонентного моделирования становится автоматическое построение итоговой системы из блоков заданного типа, а необходимым условием успешного численного исследования построенных моделей – обеспечение нахождения решения систем ДАУ с изменяющейся во времени структурой с заданной точностью. В современных пакетах используются блоки: 1)
Предопределенные и произвольные блоки «вход-выход-состояние
или блоки с направленными связями. Графический язык функциональных схем
и
предопределенные
блоки
«вход-выход-состояние»
пакетов
Simulink, Vissim, МВТУ, восходит к схемам, применявшимся еще на аналоговых машинах. Использовать предопределенные блоки это типа выгодно, если структура модели проста и все необходимые блоки уже присутствуют в базовом наборе. Набирать же произвольную сложную систему уравнений с помощью интеграторов, сумматоров и усилителей подобно тому, как это делалось на аналоговой машине, неудобно. Графический образ модели становится ненаглядным и, главное, не отражает естественной структуры моделируемого объекта. Еще одна трудность возникает при создании новых базовых блоков, которые приходится конструировать, используя операторы «низкого уровня» традиционных процедурных языков, что, как показывает практика, оказывается непосильной задачей для большинства пользователей. Однако, несмотря на отмечаемые всеми недостатки, это подход развивается
и
его
совершенствование
связано,
прежде
всего,
с
моделированием гибридных систем. Примером может служить Simulink, который в последних версиях Matlab дополнен подсистемой Stateflow, позволяющей использовать карты состояния совместно с традиционными 49
непрерывными
блоками,
и
моделировать
событийно-управляемые
системы. Трудности, связанные с формированием новых, не базовых блоков, и достаточно низкий уровень абстракции блоков пакета Simulink, привел к тому, во многих современных пакетах «блочного типа» появился блок «вход-выход-состояние»,
предусматривающий
задание
произвольных
уравнений самим пользователем, что позволяет создавать новые блоки, не выходя за рамки входного языка. 2)
Блоки-компоненты с ненаправленными связями (язык Modelica),
позволяющие собирать устройства из компонент, аналогично тому, как собирается электрическая схема из сопротивлений, конденсаторов, индуктивностей
и
источников
питания.
Авторы
этого
подхода
справедливо утверждают, что не для всех компонентных моделей удобно использовать
ориентированные
связи
между
компонентами.
Для
«физического моделирования» (термин авторов языков Modelica), когда связи между компонентами отражают реальные электрические или механические соединения узлов, предположение об отсутствии обратного влияния приемника на источник оказывается нереалистичным. Подход «физического моделирования» весьма привлекателен, имеет много сторонников, но его обобщение на произвольные системы наталкивается на две трудности – трудности численного интегрирования и отсутствие эффективных алгоритмов построения системы в случае, когда структура объекта меняется во времени. Наиболее полно и последовательно этот подход реализован в языке Modelica, поддерживаемом пакетом Dimola. К числу достоинств языка можно отнести то, что новые компоненты модели описываются с помощью только языка Modelica, что используются также неориентированные связи наряду с ориентированными и разрешается запись систем уравнений в произвольной форме. Язык моделирования Modelica
претендует на роль стандарта в области моделирования
«физических» систем. Привлекательность этого подхода и прикладная 50
значимость
электрических,
механических,
гидравлических
систем,
заставила авторов пакета Simulink создать еще две надстройки SimMichanicks и SimPowerSystems, для моделирования объектов этого класса. Блоки с ненаправленными связями, так и блоки с направленными связями
рассмотренных
пакетов
плохо
приспособлены
для
воспроизведения поведения гибридных систем. Поведение гибридных систем достаточно наглядно описывается в терминах состояний и событий, приводящих к смене поведения. Под состоянием в гибридных системах понимаются отрезки фазовых траекторий, соответствующие системе уравнений с неизменной по структуре правой частью, а событиями называют значения фазового вектора, в которых происходят изменения в правых частях. В динамических системах с дискретным временем для описания
событийно-управляемых
систем
давно
применяют
карты
состояний, предложенные Харелом. Их обобщение, приспособленное для описания гибридных систем, получило название гибридных автоматов. В современных пакетах используются, как и модификации карт поведения, так и гибридные автоматы (карты поведения). 1.3.3 Графические оболочки на базе гибридных автоматов.
Графическая форма гибридной системы в виде графа – гибридного автомата (карты поведения) – используется для описания поведения гибридных систем в графических языках пакетов Model Vision Studium, AnyLogic, Ptolemy II. Она же лежит в основе описания поведения в языке UML. Наиболее
простой
формой
гибридного
автомата
является
примитивный гибридный автомат (дифференциальный автомат) – автомат с одним узлом и приписанной ему классической динамической системой, у которой при возникновении событий меняются только начальные условия. Уже он демонстрирует достаточно сложное поведение, отличное от поведения классических динамических систем. В пакетах чаще всего 51
используются гибридные автоматы со многими узлами, и сейчас идет активное изучение свойств этого типа динамических систем, таких как устойчивость, достижимость произвольного узла, сохранение инвариантов на решении. К числу достоинств гибридного автомата относится наглядность, что чрезвычайно важно при моделировании сложных систем. К числу достоинств относится также и то, что с помощью гибридного автомата можно описать как «чисто дискретные» динамические системы с дискретным, так и «чисто непрерывные» - с непрерывным временем. Действительно, если исследуемая система входит в новое состояние и мгновенно его покидает (предикат, позволяющий покинуть состояние, становится истинным уже в начальной точке), гибридный автомат ведет себя как обычная карта состояний, являющаяся стандартной формой задания дискретного поведения в языке UML. С другой стороны, при отсутствии событий, приводящих к смене поведения,
карта состояния
вырождается в единственный узел, которому приписана система АДУ – традиционная форма задания непрерывного поведения. Все это вместе дает описание непрерывно-дискретных систем. Эти свойства гибридного автомата чрезвычайно важны, например, для моделирования современных технических систем, со встроенными ЭВМ и микропроцессорами. В этом случае
программное
обеспечение
и
аппаратура
разрабатываются
одновременно, и на ранних этапах разработки обе составляющих могут быть представлены очень похожими компьютерными моделями – дискретными для программного обеспечения и гибридными - для аппаратуры. Давно известно, что большинство самых трудно устранимых ошибок при проектировании систем делается именно на ранних этапах разработки и только тщательный анализ функциональных спецификаций позволяет их избежать, поэтому крайне важным является совместное моделирование программного обеспечения и аппаратуры на ранних этапах разработки. 52
Это можно сделать с помощью языка UML, ставшим стандартом de-facto для описания программного обеспечения и вычислительных систем на ранних стадиях проектирования. Несовместимость с UML в части описания дискретного поведения является одним из недостатков языка Modelica. 1.3.4 Автоматическое формирование итоговой системы.
Задача синтеза совокупной системы успешно решается всеми пакетами, если блоки пакета представляют собой блоки «вход-выход-состояние» и общая структура системы не изменяется во времени. Если используются блоки «вход-выход-состояние» и система меняет свою структуру, то возникают проблемы с формированием совокупной системы для пакетов компилирующего типа, когда необходимо заранее формировать код для всего множества возможных систем, порождаемых выключением или включением работающих блоков (отдельных ветвей схемы). Если отказаться от требования формировать весь, часто и не реализуемый в конкретном формировать
эксперименте, нужную
код
систему
заранее только
(статический в
момент
подход),
и
возникновения
соответствующего события (динамический подход), то удается найти приемлемое решение, если изменение структуры описывать различными модификациями карт состояния, предложенных Харелом. И, наконец, все пакеты,
использующие
блоки
с
контактами
и
моделирующие
динамические системы переменной структуры испытывают различные трудности при формировании совокупной системы – в первую очередь это связано с необходимостью автоматического преобразования системы, подразумевающего символьные вычисления. Наибольшие проблемы при формировании итоговой системы возникают при использовании блоков с контактами. Контакт, или равенство двух переменных
в
различных
блоках,
порождает
дополнительное
алгебраическое уравнение. Первая трудность связана с необходимостью численного
или
аналитического
дифференцирования. 53
Легко
себе
представить ситуацию, когда контактом объявляется переменная одного из блоков, чья производная используется во втором блоке. Если об этом известно заранее, то можно написать выражение для соответствующей производной и объявить новую выходную переменную, ей равную. Если же соединение таких блоков осуществляется динамически, то приходится либо применять численное дифференцирование, со всеми вытекающими из этого последствиями, либо запоминать состояние модели, возвращаться на уровень исходного описания, выполнять символьное дифференцирование, генерировать новую модель и продолжать вычислительный эксперимент с прерванной
точки.
К
сожалению,
анализировать
чувствительность
гибридных систем пока не представляется возможности, и поэтому правомерность численного дифференцирования можно проверить только экспериментально. Второй трудностью является поиск начальных условий алгебраических уравнений для новой, очередной, АДУ. Возможность найти
согласованные
начальные
условия,
то
есть
условия,
удовлетворяющие системе алгебраических уравнений в начальной точке, существенно зависит от начального приближения, которое в системах с переключениями обычно неизвестно. Более того, возникающие системы уравнений могут не иметь решения, или иметь несколько решений. Диагностика таких ситуаций отсутствует во всех пакетах. Еще более сложной оказывается ситуация, когда в момент переключения приходится решать не систему алгебраических уравнений, а, например, систему алгебро-логических или системы с целочисленными переменными. Такие уравнения возникают при использовании языка Modelica, и фактически решаются прямым перебором. 1.3.5 Численные методы для решения гибридных АДУ.
Любые изменения в правых частях дифференциальных уравнений могут приводить к изменению свойств необходимости
решения, и как следствие, к
менять либо параметры программной реализации
численного метода, либо сам численный метод. Например, относительную 54
или абсолютную погрешность можно задавать для каждой компоненты решения, либо единую для всех, вычислять матрицу Якоби для неявных методов можно численно или аналитически, и учитывать или не учитывать ее разреженность. При традиционном вычислительном эксперименте, информация о свойствах решения накапливается
постепенно, и в
результате либо подбираются нужные параметры численного метода, либо принимается решение об его неприменимости. В пакетах это приходится делать по ходу решения, и возникает естественный вопрос, какие свойства решения нужно учитывать для правильного выбора метода, и как сократить неизбежные при этом накладные расходы. На сегодняшний день в программные реализации численных методов встраиваются лишь процедуры оценки жесткости. Возможность смены поведения порождает проблему локализации «точек переключения» - или обнаружению событий, приводящих к смене поведения. Здесь возможны два случая. Когда события заданы предикатом, то кроме биссекции трудно что-либо предложить. Если мы имеем дело с уравнением, то появляется возможность ускорить процесс поиска корня после локализации за счет применения методов с более высокой скоростью сходимости. В любом случае, необходимо сначала локализовать событие, а затем найти его с нужной точностью. Реализованный в ODEPACK способ локализации корней функции на решении дифференциального уравнения, как и любой из современных алгоритмов, может привести к пропуску корней, особенно если шаг интегрирования становится достаточно большим, а перемена знака происходит на относительно небольшом промежутке. Проблема управления шагом численного метода приобретает новое звучание – теперь необходимо не столько экономить на вычислении правых
частей
на
промежутке
интегрирования,
сколько
надежно
вычислять корни уравнения. Аналогичная ситуация возникает и при построении графиков решений. Легко представить себе достаточно гладкое решение с изредка возникающими острыми и большими по 55
абсолютной величине пиками. Если условие смены поведения заключается в превышении решением заданного конкретного значения, возникающего на пиках, то при неправильном выборе точек выдачи решения (между пиками), решение в указанных точках будет вычислено с требуемой точностью, и в тоже время и сами пики, и условия смены поведения будут пропущены. Точно так же, если мы хотим видеть эти пики на графиках, то необходимо выбирать шаг так, чтобы не пропустить эти пики. Очевидно, что ни одна из процедур «плотной выдачи», существующие в современных программных реализациях, не решает этой проблемы. Еще более опасная ситуация возникает, если пакет используется для поиска оптимальных значений параметров, и каждое вычисление функционала должно вычисляться с максимальной скоростью, что требует максимально большого
шага
интегрирования.
Возможным,
но
еще
нигде
не
реализованным способом надежно искать точки переключения, является подход,
позволяющий
автоматически
по
исходной
системе
дифференциальных уравнений и уравнению для точки переключения, построить новую систему, с неподвижной точкой, совпадающей с точкой переключения. И, наконец, чрезвычайно важной становится задача о чувствительности решения гибридной систему АДУ. Оценка чувствительности видится единственным способом гарантировать уж если не точность, то хотя бы качество численного решения. 1.3.6 Динамический графический образ.
Компьютерное моделирование имеет еще одну очень важную особенность, а именно возможность связывать с поведением динамически изменяющийся графический образ любой природы, позволяющий лучше понять суть моделируемого объекта. Таким графическим образом может быть временная или фазовая диаграмма, функциональная схема, с образами
индикаторов,
измерительных
приборов,
управляющих
элементов, наконец, реалистическое или схематическое изображение, 56
меняющееся во времени. Образ объекта может отображать как изменение поведения, так и структуры. При объектно-ориентированном подходе возникает желание реализовывать динамический образ, в той или иной его форме, так же в виде класса. При использовании блока, с локальным классом «динамический образ», как элемента составного блока, анимация элемента, должна автоматически встраиваться в анимацию всей системы, что позволит, если эта задача будет решена, легко строить изображения, например движения маятника, в движущемся лифте, используя уже готовые динамические образы маятника и лифта. 1.3.7 Язык проведения вычислительного эксперимента.
Разработчики
инструментов
компьютерного
моделирования
в
основном сосредотачивают свои усилия на создании визуальных оболочек и
языков
моделирования
и
реже
обращают
свое
внимание
на
автоматизацию проведения вычислительного эксперимента. В результате в современных программных средах моделирования (Simulink, Dymola, Model Vision Studium, AnyLogic) имеются достаточно мощные визуальные средства и языки моделирования и достаточно бедные возможности для планирования вычислительного эксперимента. На
практике
вычислительного предполагает
применяются
эксперимента.
возможность
две
Первая
менять
-
стратегии «настрой
параметры
проведения и
посмотри»,
модели
только
непосредственно перед началом выполнения модели (Simulink). Эта стратегия
соответствует
«пассивному»,
заранее
спланированному
вычислительному эксперименту. «Пассивный» эксперимент удобен при изучении большого числа режимов модели с различными наборами параметров, подборе оптимальных значений параметров, а также при контроле модели после многочисленных изменений. Вторая – «смотри и настраивай», дает возможность активно вмешиваться в ход наблюдаемого эксперимента во время выполнения модели (Model Vision Studium, AnyLogiс). Эта стратегия позволяет замыкать обратную связь через 57
экспериментатора
и
соответствует
«активному»
вычислительному
эксперименту. Возможность проведения активного вычислительного эксперимента особенно важна для исследовательского моделирования, когда модель только создается и ее понимание происходит по мере накопления материалов компьютерного эксперимента. Рассмотрим в качестве примера управление вычислительным экспериментом в пакете Model Vision Studium (MVS). В MVS поддерживается как активный вычислительный эксперимент, так и пассивный. Возможности активного вычислительного эксперимента в MVS достаточно широкие. Прежде всего, следует отметить, что визуализация
поведения
происходит
одновременно
с
численными
расчетами в модельном времени. Скорость модельного времени можно менять. При достаточной производительности компьютера эксперимент может проводиться в реальном времени, в том числе и с обменом данными с реальной внешней аппаратурой. В любой момент вычисления могут быть приостановлены, и выбран новый численный метод. В точке приостановки также можно ввести и вычислить новое выражение над переменными модели, что чрезвычайно удобно при отладке. Свободные входы модели могут быть связаны с такими активными графическими элементами управления, как движки, вращающиеся ручки или кнопки. Таким образом, пользователь по ходу эксперимента может вручную изменять значение нужной переменной, в том числе и непрерывно. Для проведения чрезвычайно важного варианта активного вычислительного эксперимента –
отладки
предусмотрен
специальный
графический
отладчик,
позволяющий проверять вычисления по тактам гибридного времени и одновременно
видеть
происходящее
в
нескольких
параллельных
процессах. Основой графического языка отладчика являются исходные карты состояний параллельно работающих компонент модели любого уровня иерархии. Предусмотрена приостановка модели при входе в указанное состояние, срабатывании указанного перехода, а также по 58
истинности заданного логического предиката, что позволяет проводить отладку, следя за событиями, происходящими в системе. Следует отметить, что сам визуальный интерфейс модели в MVS также создается во время ее выполнения. В отличие от, например, Simulink окна графиков и анимации не являются блоками модели, а создаются пользователем по мере надобности, а отображаемые переменные не подаются на входы через связи, а переносятся между окнами методом «drag-and-drop». Пользователь
также
может
программировать
временные
последовательности внешних воздействий на модель. В создаваемой версии MVS 4.x используется новый формализм обобщенного гибридного автомата, в котором в качестве деятельности в длительном состоянии используется активный объект – экземпляр некоторого класса, который автоматически создается при входе в данное состояние и уничтожается при выходе из этого состояния. Такой подход открывает новое «измерение» в компонентном моделировании: сложная модель
строится
не
как
параллельная,
а
как
последовательная
совокупность компонент, взаимодействующих через начальные условия. Логика сложного вычислительного эксперимента отделена от модели исследуемой системы и приписана предопределенному классу Model. Модель исследуемой системы становится составляющей локального поведения в одном или нескольких состояниях обобщенного гибридного автомата,
задающего
алгоритм
проведения
вычислительного
эксперимента. Литература
1. Dictionary of Computing. Oxford University Press, 1986. 2. Alur, Rajeev, Costas Courcoubetis, Thomas A. Henzinger, and Pei-Hsin Ho. 1993. Hybrid automata: An algorithmic approach to the specification and verification of hybrid systems. In Lecture notes in computer science,
59
edited by R. L. Grossma, A. Nerode, A. P. Ravn, and H. Rischel, vol. 736, pp. 209-29. New York: Springer-Verlag 3. O. Maler, Z. Manna, and A. Pnueli. From timed to hybrid systems. Real Time: Theory in Practice. LNCS 600, 1992, p. 447-484 4. Xavier Nicollin, Alfredo Olivero, Joseph Sifakis, Sergio Yovine: An Approach to the Description and Analysis of Hybrid Systems. In R.L. Grossman, A. Nerode, A. P. Ravn, and II. Rischel, editors, Hybrid Systems I, Lecture Notes in Computer Science 736, pages 149-178. Springer-Verlag, 1993. 5. Maler, Z. Manna, and A. Pnueli. A formal approach to hybrid systems. In Proceedings of REX workshop: Real Time: Theory in Practice, Lecture Notes in Computer Science 600, Springer-Verlag, 1992 6. Alur, R., C. Courcoubetis, N. Halbwachs, T. A. Henzinger, P.-H. Ho, X. Nicollin, A. Olivero, J. Sifakis, and S. Yovine. The algorithmic analysis of hybrid systems. In Proceedings of the 11th International Conference on Analysis and Optimization of Discrete Event Systems. 1994 7. T.A. Hezinger. The theory of hybrid systems. In Proceedings of 11th annual symposium on logics in computer science. p. 278-292. IEEE Computer Society Press, 1996 8. A. Nilim, J. Lygeros, ee291E: Lecture 3 9. А.А. Андронов, Е. А. Леонтович, М.И. Гордон, А. Г. Майер. Качественная теория динамических систем 2-го порядка. М.: Наука, 1966. 568 стр. 10. П. В. Бромберг. Матричные методы в теории релейного и импульсного регулирования. М.: Наука, 1967. 323 стр. 11. Жуковскй Н.Е. Теория регулирования хода машин, изд-во МВТУ, 1909 12. В.И. Уткин. Скользящие режимы и их применение в системах с переменной структурой. М.: Наука, 1974, 272 стр.
60
13. Бернштейн С.И. Теория вибрационных регуляторов электрических машин.
Труды
второго
Всесоюзного
совещания
по
теории
автоматического регулирования, т. 1. Изд-во АН СССР, 1955 14. Е.С.
Емельянов.
Системы
автоматического
управления
с
переменной структурой. М.: Наука, 1967, 335 стр. 15. Никольский Г.Н. К вопросу об автоматической устойчивости корабля на заданном курсе. Труды центральной лаборатории проводной связи, № 1, 1934 16. Дудников Е.Г. Введение в теорию непрямого регулирования с постоянной скоростью закрытия. Автоматика и телемеханика, № 6, 1939 17. Е. А. Барбашин. Введение в теорию устойчивости. М.: Наука, 1967, 223 стр. 18. Теория систем с переменной структурой./ Под редакцией С. В. Емельянова. 19. С.В. Емельянов, С.К. Коровин. Новые типы обратной связи. М.: Наука, 1997. 352 стр 20. Филлипов А.Ф.Дифференциальные уравнения с разрывной правой частью. М.:Наука, 1985. 223 стр. 21. L. Tavernini, "Differential automata models of hysteresis", in Models of Hysteresis (A.Visintin, Ed.), Longman, Harlow (1993), 163-174. 22. L. Tavernini, "Numerical methods for ODEs with hysteresis", in Proceedings of The First World Congress of Nonlinear Analysts (V.Lakshmikantham, Ed.), de Gruyter, Berlin (1996), 765-773.
61
Глава 2. Композиция открытых гибридных автоматов
В предыдущей главе были рассмотрены вопросы, связанные с исследованием однокомпонентных изолированных систем, базирующихся на модели гибридного автомата. Изолированные системы являются достаточно узким классом моделей и возникают при исследовании небольших моделей аналитическими методами, когда сложный реальный объект в первом приближении можно представить в виде единственной, существующей независимо, изолированной системы уравнений, связанной с окружением только через параметры модели. Более широким является класс многокомпонентных моделей. Исследование
сложных
дифференциальных
моделей,
уравнений.
требует
Одним
из
анализа
приемов,
нелинейных позволяющих
проводить исследование, является аппроксимация сложных нелинейных функций
в
правых
непрерывными
частях
или
даже
уравнений,
более
простыми
кусочно-линейными,
что
кусочнопозволяет
аппроксимировать сложное исходное уравнение несколькими более простыми и сшить решения на границах. В ряде случаев решения аппроксимирующих уравнений могут быть получены в замкнутой форме, но построение итогового решения может оказаться очень громоздкой процедурой, даже если для этого применяется техника символьных вычислений. В этих случаях приходиться использовать численные методы. Численное решение уравнений с разрывными коэффициентами или гибридных уравнений само по себе может вызывать трудности, и представляет
новую,
самостоятельную
задачу
вычислительной
математики. Однако
чаще
всего
исходные
непрерывные
системы
не
рассматриваются вовсе. Модель сразу же записывается в виде некоторого гибридного автомата, или другими словами набора правил, по которому можно определять, какое дифференциальное уравнение с непрерывными 62
правыми частями следует интегрировать в данный момент времени, и при каких начальных условиях [1-6]. В этом случае бессмысленно говорить о близости решений непрерывных уравнений и уравнений с разрывными коэффициентами, и для доказательства правомерности использования численного решения следует привлекать дополнительную информацию. Во многих случаях вполне обоснованно выделять два самостоятельных этапа – численное решение гибридных уравнений и доказательство правомерности использования полученного уравнения для объяснения поведения реального объекта. Современные
моделируемые
системы
–
это
иерархические
многокомпонентные системы, объединенные различными типами связей и меняющие свою структуру во времени. При моделировании таких систем возникает несколько дополнительных проблем, не характерных для однокомпонентных систем. Основная проблема связана с автоматическим формированием итоговой системы из уравнений компонентов, с учетом связей. И здесь важно, что понимать под поведением параллельно функционирующих отдельных компонентов обменивающихся между собой информацией, или иными словами, что понимать под композицией открытых гибридных автоматов. Построенная автоматически итоговая система редко может быть непосредственно численно проинтегрирована. Приходится
автоматически
подготавливать
полученную
систему
к
численному интегрированию. В этой главе будет рассмотрено, что понимается в семействе пакетов Model Vision под композицией открытых гибридных автоматов, а в последующих, как формируется и анализируется итоговая система и как организована его численная библиотека. Скорее
всего,
исторически
первым
пакетом
для
численного
исследования гибридных систем является пакет НЕДИС, разработанный под руководством В.М. Глушкова:
63
1. В.М. Глушков, В.В. Гусев, Т.П. Марьянович, М.А. Сахнюк. Программные
средства
моделирования
непрерывно-дискретных
систем. Киев: «Наукова думка», 1975. -240c. Несколько
позже
появилась
работа,
где
для
моделирования
многокомпонентных систем использовались блоки с контактами: 2. Е.А.
Арайс,
В.М.
Дмитриев.
Автоматизация
моделирования
многосвязных механических систем. М.: “Машиностроение”, 1987.240с. Их объединяет то, что впервые на интуитивном уровне были решены многие проблемы, свойственные компонентному моделированию. К сожалению, эти пакеты, в силу отсутствия в тот период соответствующей вычислительной техники, не имели графических входных языков, и не получили такого распространения, как получил позже Simulink. При моделировании компонентных систем, чья структура не меняется во времени, вопрос о композиции блоков с учетом связей решается достаточно просто – необходимо указать, какого типа оказывается итоговая
система,
в
нашем
случае
алгебро-дифференциальной,
и
проанализировать ее совместность. Желательно, чтобы системы уравнений компонентов имели бы тот же тип, что и итоговая система. Как для блоков «вход-выход-состояние», так и для блоков с контактами, композиция блоков, приводит к системе алгебро-дифференциальных уравнений с непрерывными коэффициентами, и здесь в трактовке композиции нет разногласий. При моделировании систем, в которых происходит смена уравнений, и в эти моменты выполняются параллельные дискретные операции, композиция
параллельно
работающих
компонентов
может
быть
определена по-разному, в результате чего итоговая система будет обладать различным поведением. Здесь уже нет единого мнения, прежде всего из-за новизны этого понятия. Далее будет введены понятия открытого гибридного
автомата
с
направленными 64
(входы-выходы)
или
ненаправленными
связями
(контакты),
и
гибридного
времени,
используемые в семействе пакетов Model Vision, и, с их помощью, определено понятие композиции открытых гибридных автоматов. Как уже отмечалось, первыми отечественными пакетами компонентного моделирования с использованием блоков, базирующихся на гибридных автоматах, было семейство универсальных графических оболочек Model Vision. В современной версии пакета Model Vision 4.X предусматриваются следующие типы блоков: - однокомпонентные системы с непрерывным поведением, - однокомпонентные системы с гибридным поведением, - многокомпонентные системы с компонентами типа «вход-выходсостояние», - многокомпонентные системы с компонентами с контактами, - многокомпонентные системы с переменным числом компонентов. Методика разработки графических языков и поддерживающих их численных библиотек еще только создается. Практически для каждого пакета, вводящего новый формализм для описания поведения, приходится заново определять композицию блоков, или другими словами доказывать совместность и численную разрешимость получаемых уравнений. Наиболее ранней зарубежной работой, посвященной композиции гибридных автоматов, является работа: N. Lynch, R. Segala, F. Vaandrager, and H.Weinberg. Hybrid I/O automata. In R. Alur, T. A.Henzinger, and E. D. Sontag, editors, Hybrid Systems III, Verification and Control, volume 1066 of Lecture Notes in Computer Science, pages 496–510. Springer, 1996. В последние годы появились еще два пакета, Charon и Ptolemy II, также использующих гибридные автоматы, авторам которых, как и авторам пакетов семейства Model Vision, пришлось вводить понятие композиции и анализировать свойства итоговой системы. 65
Более подробно о пакете Charon (Deparment of Computer and Information
Science,
University
of
Pennsylvania.
Homepage:
http://www.cis.upenn.edu/mobies/charon) можно прочесть в статьях: 1. R. Alur, T. Dang, J. Esposito, Y. Hur, F. Ivancic, V. Kumar, I. Lee, P, Mishra, G. J. Pappas, and 0. Sokolsky. Hierarchical modeling and analysis of embedded systems. Proceedings of the IEEE, 91(1): 11-28, January 2003 2. R.Alur, I. Lee, O. Sokolovsky. Compositional Refinement for hierarchical hybrid systems. 3. R. Alur, R. Grosu, Y. Hur, V. Kumar, and I. Lee. Modular specification of hybrid systems in Charon, Hybrid Systems: Computation and Control, Lecture Notes in Computer Science, volume 1790, Springer 2000. Более подробно о пакете Ptolemy II (Department of EECS, UC Berkeley. Homepage: http://ptolemy.eecs.berkeley.edu/ptolemyII ) можно прочесть в работах: 1. J. Liu, X. Liu, T. Koo, J. Sinopoli, S. Sastry, and E. Lee. A hierarchical hybrid system model and its simulation. In Proceedings of the 38th IEEE Conference on Decision and Control, pages 3508–3513, Phoenix, AZ, December 1999. 2. J. Liu,X. Liu, Tak-Kuen J. Koo, B. Sinopolli,Sh. Sastry, and E. A. Lee. A hierarchical hybrid system model and its simulation. Рассмотрим, как вводится понятие композиции в семействе Model Vision. 2.1 Предпосылки.
События, управляющие поведением непрерывно-дискретной модели, можно связать с моментами дискретного времени. Точки это дискретного времени можно рассматривать как образы промежутков непрерывного времени, в которые вместо сложных, очень быстрых непрерывных процессов рассматриваются их упрощенные, дискретные модели.
66
ОПРЕДЕЛЕНИЕ. Под динамической системой понимают семейство
отображений x = x(t ; x 0 ) любого множества в себя, если выполняются условия: 1. Непрерывности x по совокупности переменных; 2. x(0; x 0 ) ≡ x 0 ; 3. x(t 2 ; x(t1 ; x 0 )) ≡ x(t1 + t 2 ; x 0 ) ; в частности система дифференциальных уравнений: dx = f ( x); x ∈ ℜ n ; x(0)=x0 , dt
(1)
правая часть которой определена во всем пространстве x и удовлетворяет условию Липшица по всем своим аргументам называется динамической системой. Специальная вещественная переменная t играет роль времени. Будем считать, что 0 ≤ t < ∞ , то есть решение системы, заведомо существующее в некоторой окрестности точки t=0, продолжаемо на всю полуось. Если это не так и решение в некоторой точке T начинает неограниченно возрастать, то всегда можно перейти к новой системе, с теми же траекториями, но другими скоростями их прохождения: n dx = f ( x) ∗ v( x); v(x) = 1 + ∑ f i2 x ∈ ℜ n ; x(0)=x0 dt 1
Можно
также расширить синтаксическую форму представления
динамических систем, разрешив системе быть неавтономной: dx = f (t , x); x ∈ ℜ n ; x(0)=x0 dt помня о том, что неавтономную систему можно привести к системе автономной, увеличив размерность фазового вектора х на единицу:
dx = f ( y, x); x ∈ ℜ n ; x(0) = x 0 dt ′ . dy = 1; y ∈ ℜ1 ; y(0) = 0; dt ′ 67
Таким образом, динамическая система может быть представлена следующими различными формами: - в виде явной функциональной зависимости; - в виде автономной системы обыкновенных дифференциальных уравнений; - в виде неавтономной системы. Пример 1. Предположим, что мы хотим использовать эту модель для изучения полета тела, брошенного под углом α к горизонту с начальной скоростью
V0 (Рис. 1). Обозначим через s и f (s ) векторы ⎡l (t ) ⎤ ⎢h(t )⎥ ⎥; s=⎢ ⎢Vh ⎥ ⎢ ⎥ ⎣Vl ⎦ где l (t ) - дальность полета,
⎡Vl ⎤ ⎢V ⎥ f (s) = ⎢ h ⎥ ⎢− g ⎥ ⎢ ⎥ ⎣0 ⎦
h(t ) - высота, (Vl ,Vh ) - соответствующие
скорости, l (0) = h(0) = 0 и Vl (0) = V0 cos(α ); Vh (0) = V0 sin(α ) . Решение написанных уравнений можно интерпретировать как длительный полет тела на промежутке [0, T ] до момента падения на землю. h(t)
α t
Рис. 1. Полет тела, брошенного под углом к горизонту. Пример 2. Теперь предположим, что мы хотим не только следить за полетом, но и моделировать отскок тела от земли, предполагая, что удар абсолютно упругий. Это допущение в модели реализуется следующим образом: мы выделяем некое особое состояние – касание тела земли, и разрешаем 68
вертикальной составляющей скорости в момент его наступления мгновенно сменить знак на противоположный Vh = −Vh , после чего снова начинаем интегрировать исходную систему с новыми начальными условиями (Рис. 2). Таким образом, поведение реального объекта может быть вполне удовлетворительно описано последовательностью из «склеенных» между собой решений дифференциального уравнения на отдельных промежутках. На стыках длительных полетов мы пренебрегли как длительностью реального отскока, превратив временной промежуток в точку, так и сложными реальными процессами, происходящими в эти короткие, по сравнению с полетом, промежутки, предположив, что для наших целей достаточно считать, что скорость мгновенно меняет знак. Решение уравнения на конкретном промежутке зависит от начальных условий, которые в свою очередь зависят от наступивших событий и поведения решения на предыдущем интервале. Эта последовательность решений и является той моделью, которой мы будем заниматься в дальнейшем. Порождающий ее механизм вполне может быть назван автоматом.
h(t)
t*: h ( t ) = 0 & V h < 0
t
Рис. 2. Прыгающий мячик. При возникновении событий в моделях, где длительное поведение описано с помощью обыкновенных дифференциальных уравнений, могут измениться: • начальные условия; • значения параметров в правых частях;
69
• сами правые части или число уравнений. Самые простые системы, аналогичные модели прыгающего мячика и у которых
могут
меняться
только
начальные
условия,
могут
демонстрировать достаточно сложное поведение. Пример 3. Разобьем область, где мы ищем решение заданного дифференциального уравнения, на заданное число подобластей. Зададим в каждой из них правило формирования начальных условий, условия нахождения в подобласти и последовательность обхода подобластей. Время нахождения в отдельной подобласти свяжем с достижением границы, заданной в виде кривой (поверхности) внутри подобласти. Таким образом, мы определяем последовательность задач для одного и того же дифференциального уравнения, у которых при переходе из одной подобласти в другую меняются только начальные условия. Сначала рассмотрим линейную систему дифференциальных уравнений на плоскости ℜ2 с особой точкой типа «седло»: ⎡λ 0 ⎤ dx = Λx; Λ = ⎢ 1 ⎥ ; λ1 , λ2 ≥ 0 ; 0 λ dt ⎣ 2⎦ − a ≤ x1 ≤ a; − b ≤ x 2 ≤ b; a, b > 0 и соответствующими подобластями:
1 ⇒ x1 > 0; x2 > 0; 2 ⇒ x1 < 0; x2 < 0; 3 ⇒ x1 < 0; x 2 > 0; 4 ⇒ x1 > 0; x2 < 0; В начальный момент времени система начинает движение в первой области с начальными условиями x = [x10 , b] , а далее обходит подобласти T
по правилу 1⇒ 2 ⇒ 3 ⇒ 4 ⇒ 1, меняя начальные условия:
70
1 → 2 : x0 = [− x2 ,−b]T 2 → 3 : x0 = [ x2 , b]T
,
3 → 4 : x0 = [ x2 ,−b]T 4 → 1 : x0 = [− x2 , b]T
где x2 – значение второй компоненты вектора x , при переходе границы. Время t* нахождения системы в конкретной подобласти при выбранной системе координат определяется только начальным значением первой компоненты вектора решения и равно t* =
1
λ1
ln
a . При этом вторая x1 (0)
компонента, при достижении новой границы в момент t*, будет равна x 2 (t*) = exp(−λ2 ⋅ t*)b . В зависимости от значений параметров λ1 , λ2 , a, b, x10 время обхода T подобластей 1-2-3-4 может стремиться к либо к бесконечности, либо к нулю. Вырождение системы в чисто дискретную происходит при T=0 (движение по углам прямоугольника, ограничивающего область задания гибридной системы). Циклическое движение возможно, если x1(0) удовлетворяет уравнению ⎛ a ⎞ ⎜⎜ ⎟⎟ x ( 0 ) ⎝ 1 ⎠
λ1 λ2
=
b x ( 0) 1
Очевидно, что в квадратной области и равных по модулю собственных числах, любое начальное значение удовлетворяет этому уравнению. На Рис. 3 показан пример фазовой траектории рассмотренной системы и зависимость координат решения от времени. Теперь выберем линейную систему на плоскости ℜ2 с особой точкой типа устойчивый «фокус»: ⎡ μ -ν ⎤ dx = Λ c x; Λ c = ⎢ ⎥ ; μ < 0,ν > 0 ; ν μ dt ⎣ ⎦ r ≤ x ≤ R; x(0) = R;
71
При достижении точки x = r; вектору присваиваются новые начальные условия x(t + ) := x(t − ) / x(t − ) * R; При специальном выборе параметров
ν = 2 kν π ; r = e − kr R; kν , k r > 0
можно
обеспечить
периодичность
решения. На Рис. 4 показана фазовая траектория системы при одном из возможных выборов параметров.
Рис. 3. Поведение гибридной системы для линейной системы с особой точкой «седло».
Рис. 4. Поведение гибридной системы для линейной системы с особой точкой «фокус». Во многих задачах изменение характера поведения связано с мгновенными изменениям параметров правой части динамических систем. Пример 4. Рассмотрим электрическую цепь (Рис.5), у которой в зависимости от положения ключа может меняться значение сопротивления. Поведение этой цепи описывается уравнением 72
di 1t L + iR * + ∫ idτ = E dt c0 и если R* меняется периодически R*(t)=R*(t+T), например, при T=2 ⎧R R* = ⎨ 1 ⎩ R2
t ∈ [0,1) t ∈ [1,2]
то мы получим систему с мгновенным изменением параметров.
Рис. 5. Элементарная электрическая цепь с ключом Преобразуем ее к виду 1t di du 1 L + iR * +u = E; u = ∫ idτ ; = i dt c0 dt c
и дополним новым дифференциальным уравнением di 1 du 1 = (−(iR * +u ) + E ); = i; dt L dt c dR * = 0; t = 0; R* = R1 ; t = 1; R* = R2 ,.... dt Последняя система будет эквивалента предыдущей, если мы будем рассматривать ее как набор систем, у которых периодически меняются начальные условия последнего уравнения в точках t=1,2,3….. В этих точках координаты i, u – «склеиваются», образуя непрерывные функции, а R* - меняется скачком, то есть ведет себя как
кусочно-непрерывная
функция. Это общий прием, позволяющий говорить о таких системах также как о системах с неизменной правой частью и меняющимися только начальными
условиями.
Действительно,
любую
систему
дифференциальных уравнений с кусочно- постоянным параметром P 73
dx = f ( x, P , t ) dt ⎧с в области V1 P=⎨ 1 ⎩с 2 в области V2 можно записать в виде dx = f ( x, P , t ) dt . ⎧ P(0) = с1 в области V1 dP =0 ⎨ dt ⎩ P(0) = с 2 в области V2 Изменение правой части дифференциальных уравнений возникает во многих практических задачах. В задачах механики, например, это часто связано с законом изменения возмущающей силы. Рассмотрим колебания маятника,
подверженного
воздействию
периодической
кусочно-
постоянной (релейного маятника) d 2x dx + a + f ( x) = 0 2 dt dt ⎧ b1 при 0 < x ≤ π f ( x) = ⎨ ⎩− b2 при - π < x < 0, или осциллирующей функции d 2x dx + a + f ( x) = 0 2 dt dt ⎧ b1 * sin(t) при 0 < x ≤ π f ( x) = ⎨ ⎩− b2 * cos(t) при - π < x < 0, В теории управления кусочно-постоянные функции возникают при так называемом релейном управлении. Пусть, например, теперь то же самое d2y dy = F (t ) ,где m- масса уравнение описывает движение корабля m 2 + μ dt dt
судна, μ – лобовое сопротивление, F(t) – усилие, создаваемое двигателем. Предположим, что мы хотим, находясь в точке y(0)=y0, y’(0)=y’0 через указанный момент времени T совершить маневр и оказаться в точке y(T)=yT, y’(T)=y’T, при этом можно дополнительно потребовать, чтобы, 74
например, расход топлива оказался минимальным. Решение подобных задач
может
приводить
к
кусочно-постоянным
функциям
F(t),
обеспечивающим решение задачи минимизации. Всегда формально можно ввести новые коэффициенты k1 и k2, меняющиеся скачком в соответствующих областях d 2x dx + a + k1 f 1 ( x ) + k 2 f 1 ( x ) = 0 2 dt dt f1 ( x) = { b1 при 0 < x ≤ π , k1 = 1,k 2 = 0
f 2 ( x) = { − b2 при - π < x ≤ 0,k1 = 0, k 2 = 1
или
f1 ( x) = { b1sin(t) при 0 < x ≤ π , k1 = 1,k 2 = 0
f 2 ( x) = { − b2 cos(t) при - π < x ≤ 0,k1 = 0, k 2 = 1 и перейти к новой системе d 2x dx + a + k1 f 1 ( x ) + k 2 f 1 ( x ) = 0 dt dt 2 dk1 =0 , dt dk 2 =0 dt у которой в точках t = ± kπ , k = 0,1,2,3... меняются
только начальные
условия. 2.2 Изолированный примитивный гибридный автомат.
При изучении реальных систем нам часто требуется проверять некоторые, присущие конкретному объекту свойства, которые должны сохраняться либо на всем решении, либо на заданных временных промежутках – будем называть их инвариантами и обозначать
Inv(t , s (t )) . Для модели
«прыгающий мячик» инвариантами являются очевидные свойства решения - ∀t , l (t ) ≥ 0 & h(t ) ≥ 0 . Члены
последовательности
решений
исходного
дифференциального
уравнения «отделены» друг от друга событиями, которые могут быть описаны
предикатами,
определенными 75
на
решении
уравнений
-
pred (t , s (t )). В дальнейшем такие события будут называться событиями, приводящими к смене поведения, а предикаты – условиями смены поведения. При изучении полета с отскоком, смена начальных условий происходит
в
моменты
времени,
когда
выполняется
условие
t * : h(t ) = 0 & Vh < 0 . И, наконец, выбор новых начальных условий на новом временном промежутке в его левой, начальной точке t +* может зависеть от значения решения в правой, конечной точке t −* предыдущего промежутка. Будем называть функцию, с помощью которой задаются новые начальные условия, функцией инициализации Init : s (t +* ) = Init ( s (t −* )) . При отскоках мячика без потери энергии новые начальные условия всегда выбираются одними
и
теми
же
-
l (t +* ) = l (t −* ); h(t +* ) = h(t −* ); Vl (t +* ) = Vl (t −* ); Vh (t +* ) = −Vh (t −* ) . Рассмотренную нами систему будем называть гибридной системой и обозначать ее буквой H. Из предыдущего рассмотрения гибридной системы видно, что мы имеем дело с математическим объектом,
H = {s, f ( s), g ( s), S 0 , pred (t , s(τ )), Inv(t , s(τ )), Init ( s(τ ))} где • s∈ ℜ n - вектор переменных состояния размерности n ; •
f ( s ), g ( s ) ∈ ℜ n −
заданные вектор-функции или правая
часть
алгебро-дифференциального уравнения ds1 = f (t , s1 , s 2 ), dt 0 = g (t , s1 , s 2 ) s = {s1 , s 2 }; s (0) = s 0 ∈ S 0 , t ∈ [0, ∞), со свойствами, обеспечивающими существование и единственность решения
s (t ) . Составляющие вектора
дифференциальной
и
алгебраической
s1 , s2
часто называют
компонентами
решения
соответственно. Учитывая, что любая неавтономная система может 76
быть приведена к автономной, мы в дальнейшем не будем различать их, и записывать правые части уравнений в приведенной выше форме. • S 0 - множество начальных условий, включающее в себя все начальные условия, порождаемые функций инициализации в процессе функционирования гибридной системы; •
pred (t , s (t )) : ℜ1 × ℜ n → { false, true}
-
булевская
функция,
определенная на решениях алгебро-дифференциального уравнения, выделяющая особые состояния, или события, приводящие к смене поведения; • Inv(t , s (t )) : ℜ1 × ℜ n → { false, true}
-
булевская
функция,
определяющая свойства решения; • Init ( s (t )) : ℜ n → ℜ n - вещественная функция, ставящая в соответствие значению
решения
в
правой,
конечной
точке
t −*
текущего
промежутка интегрирования значение новых начальных условий на новом временном промежутке в его левой, начальной точке t +* : s (t + ) = Init ( s (t − )) . *
*
• τ - гибридное время. В
классической
динамической
системе
роль
времени
выполняла
независимая переменная t. Время было упорядочено, непрерывно и равномерно пробегало значения от нуля до бесконечности [0, ∞) . В гибридной
системе
рассматриваются
решения
уравнения
на
последовательно расположенных отрезках времени, поэтому естественно назвать эту последовательность временных отрезков временем. В нашем примере это были конечные отрезки. Эта последовательность, может превращаться в конечное множество, и даже в один единственный полуоткрытый справа интервал [t N , ∞) , в случае, если гибридная система вырождается в классическую динамическую систему. 77
Определим гибридное время τ либо как конечную последовательность
τ H = {τ i }1N , где τ i = (Pr e _ gapi , [t i*−1 , t i* ], gapi ), i = 1, 1..N ; t 0* = 0 и [ti*−1 , ti* ] являются замкнутыми интервалами и только последний интервал полуоткрытый - τ N = [t N* , ∞) , либо как последовательностьτ H = {τ i }1∞ , состоящую
только
последовательности
из
замкнутых
упорядочены
конечных
естественным
интервалов.
Члены
образом,
внутри
а
каждого отрезка сохраняется упорядоченность вещественных чисел, так что свойство упорядоченности времени обеспечивается. Элементы гибридного времени Pr e _ gapi , Post_gapi назовем временными щелями очередного такта (тика) τ i = (Pr e _ gapi , [t i*−1 , t i* ], Post _ gapi ) τ = {τ 1 ,τ 2 ,....} гибридного времени где t * - время срабатывания перехода или первая точка, в которой становится истинным предикат, pre( s (t * )) - значение функции на правом pre(t * ) (конечном) конце текущего временного интервала, post ( s (t * )) − значение функции на левом post (t * ) (начальном) конце следующего временного интервала, Pr e _ gapi - временная щель для вычисления согласованных начальных условий и проверки предиката на левом конце нового промежутка [t i*−1 , t i* ] = [t i*−1 , pre(t i* )] очередного длительного поведения, [ti*−1 , ti* ] - временной интервал текущего длительного поведения (непрерывное поведение), Post _ gapi - временная щель для вычисления новых начальных условий
на
правом
конце
текущего
промежутка
[t i* , t i*+1 ] = [ post (t i* ), t i*+1 ] очередного длительного поведения. Гибридную систему удобно изображать в виде графа - гибридного автомата (Рис. 6): 78
Pred1/Init1
Do: Inv:
Рис. 6. Примитивный гибридный автомат где:
Init
• поименованный
прямоугольник
со
спрямленными краями обозначает длительные процессы,
связанные
с
решением
дифференциального уравнения; •
стрелка, с приписанным ей условием и
функцией инициализации, указывает на новое Pred/Init
длительное состояние, в которое переходит автомат,
после
возникновения
событий,
приводящих к смене поведения; • ломаная линия указывает на интегрируемую систему (do:) и функцию - инвариант (Inv:), Do:
определяющую свойства решения;
Inv:
•
указатель
начального
состояния:
если
длительных состояний в автоматах другого типа окажется несколько, то этим символом выделяется начальное состояние автомата. Замечание. Состояния, названные длительными, могут протекать так же мгновенно, как инициализируются начальные условия. Дело в том, что в 79
гибридной системе, если pred (t * , s (t * )) становится истинным уже в левой точке очередного промежутка, то начальная точка и есть решение на промежутке [t +* , t +* ] нулевой длительности. Гибридный автомат начинает вести себя также как дискретное отображение, до тех пор, пока не будут найдены подходящие начальные условия. Работу примитивного автомата можно следующего алгоритма: Алгоритм работы примитивного автомата. Инициализация. 1.
описать
с
помощью
t 0* = 0; i := 0; ; post ( s1 (t 0* )) := pre( s1 (t 0* )) := s10 ; post ( s 2 (t 0* )) := pre( s 2 (t 0* )) := s 20 здесь s 20 или согласованное начальное условие для алгебраической составляющей, либо только начальное приближение к нему. 2. Pr e _ gapi : Начинается текущий промежуток гибридного времени τ i
Вычисление новых согласованных начальных условий и
проверка предиката. i := i + 1; Решаем уравнение 0 = g (t i*−1 , post ( s10 (t i*−1 )), post ( s 20 (t i*−1 ))) относительно post ( s 20 (t i*−1 )) с начальным приближением pre( s 20 (t i*−1 ) . Æ Аварийный выход: не смогли найти согласованные начальные условия. Вычисляем предикат на левом конце текущего промежутка pred ( post ( s (t i*−1 )) Если предикат истинен pred ( post ( s (t i*−1 )) = true , то завершается текущий интервал гибридного времени τ i t i* := t i*−1 ; pre( s (t i* )) := post ( s (t i*−1 )); переходим к 4. иначе начинается текущее длительное поведение [t i*−1 , t i* ] : Текущее длительное поведение. 3. Решение уравнений ds10 = f (t , s10 , s 20 ); dt 0 = g (t , s10 , s 20 ) 80
c согласованными начальными условиями, до тех пор, пока не станет истинным предикат pred ( s (t )) . Æ Аварийный выход: не смогли найти решить уравнения. Как только предикат стал истинным, выполняем завершается текущий интервал гибридного времени τ i t i* := t : pred ( s (t )) = true ; pre( s (t i* )) := s (t ) Завершающее 4. Post _ gap i : Инициализация
начальных
мгновенное
условий
поведение.
для
нового
интервала: post ( s (t i*−1 )) := Init ( pre( s (t i*−1 ))) ; здесь post ( s10 (t i*−1 )) - новое начальное условие для дифференциальной составляющей, a post ( s 20 (t i*−1 )) - возможно только приближение к нему. Переходим к 2. Конец Алгоритма работы примитивного автомата. 2.3 Траектории примитивного гибридного автомата. Траекторией множество,
гибридной
системы
либо
будем
называть
либо
последовательность
конечное решений
H τ = {( s 0 (t ), t ∈ τ 0 ), ( s 1 (t ), t ∈ τ 1 ),...} заданного алгебро-дифференциального уравнения, обладающих требуемыми свойствами на всех промежутках временной последовательности τ H . Строя некоторый математический формализм мы стремимся в качестве его прототипа выбрать некоторый класс реальных объектов, свойства которых он должен воспроизводить. Примером содержательного поведения гибридного
автомата
может
служить
полет
и
отскок
мячика.
Характерными особенностями рассматриваемых нами реальных процессов и соответствующих им моделей являются их бесконечное развитие во времени и детерминированность. Возможность бесконечного движения системы и детерминированность свойственна естественно и классической динамической
системе,
что
обеспечивается
существованием
и
единственностью решения в окрестности начальной точки и его продолжаемостью на всю временную ось. Возникает вопрос, при каких условиях эти свойства будут и у траекторий гибридной системы.
81
Очевидно, что в примитивном гибридном автомате бесконечное движение системы будет наблюдаться либо при бесконечном срабатывании перехода, либо при вырождении системы в некоторый момент времени в классическую динамическую систему. При очевидном условии, что инвариант будет истинным на решении с любым начальным условием, выбранным с помощью функции Init . В противном случае поведение автомата следует считать недопустимым, и он должен вырабатывать специальный символ, говорящий о невозможности дальнейшей работы. В этом случае, с
точки зрения внешнего наблюдателя, происходит, как
иногда говорят, блокировка автомата. Для вырождения в классическую динамическую систему достаточно, чтобы на очередном временном промежутке при истинности инварианта на решении при выбранных начальных условиях никогда бы не стал истинным предикат, обеспечивающий очередное срабатывание перехода. Будем называть примитивный автомат реализуемым на множестве S 0 , если для любых начальных условий ∀s0 ∈ S 0 , вырабатываемых функцией Init , существует единственное решение задачи (1), удовлетворяющее заданным с помощью функции Inv свойствам. Или иначе, - функция Init вырабатывает только допустимые в указанном смысле начальные условия. Множество
начальных
условий
S0
можно
разбить
на
два
непересекающихся подмножества S 0 d и S 0 c , называемых подобластями длительных (непрерывных) и вырожденных длительных состояний, таких что
pred ( S 0 d ) = true
и
pred ( S 0 c ) = false . Существование непустого
подмножества S 0 d может приводить к тому, в последовательности
τ H = {τ k }∞0 может найтись номер N , начиная с которого i ≥ N все τ i окажутся нулевыми, и автомат начнет демонстрировать чисто дискретное поведение. Для этого достаточно, чтобы в множестве S 0 d существовало инвариантное подмножество функции Init
82
и одна из точек этого
подмножества стала бы начальной в некоторый момент гибридного времени. Пример 5. Изолированный дискретным
примитивный
поведением.
гибридный
Рассмотрим
автомат
с
следующий
начальным
примитивный
гибридный автомат ds = a * s; dt 0 = y − s; s (0) = p > 0; y (0) = y 0 ≠ p; p = 1; a = −1; с
предикатом
инициализации
pred ( s (t ), y (t )) : s (t ) ≥ c = 5; c ≥ p новых
начальных
условий
и
функцией
после
Init
срабатывания
перехода: post ( s (t * )) := pre( s (t * )) + p . Этот автомат начинает свою работу в t = 0 , сразу же обнаруживает, что предикат при заданных начальных условиях, истинен, и вычисляет новые начальные условия. Так продолжается до шестого такта когда
начальное
post ( s (t 6* )) := 6
гибридного
времени,
значение
становится
таким, что появляется возможность начать длительное
поведение. С этого момента мы наблюдаем периодическое изменение переменной состояния s (t ) (Рис. 7). Как мы видим, примитивный гибридный автомат может демонстрировать, тем
самым,
как
нетривиальное
непрерывное
поведение,
так
и
нетривиальное дискретное, сводящееся не только к назначению новых начальных условий, но и поиску начальных условий, приводящих к новому длительному поведению. Несмотря на это замечание, мы, все равно непрерывное
поведение
автомата,
связанное
с
решением
дифференциальных уравнений, будем называть длительным. Во многих языках моделирования, для описания длительных и мгновенных действий применяются
различные
синтаксические
83
конструкции:
длительные
поведения описываются функциональными зависимостями и различными уравнениями, а дискретные – алгоритмически. 2.4 Вырожденное поведение. Автомат Зенона.
Одной из «крайних» форм существования примитивного гибридного автомата, как уже отмечалось, является его «вырождение» в классическую динамическую систему, когда первое же выбранное начальное условие, приводит к решению, на котором всегда истинен инвариант и всегда ложен предикат, приводящий к смене начальных условий.
Рис. 7 . Чисто дискретное, переходящее в периодическое, поведение изолированного примитивного автомата. Пример 6 Для дифференциального уравнения ds b = a * s + b; s (0) = s 0 ; c ≥ − ; inv := s (t ) ≤ c; pred := s (t ) = c; dt a при выборе любого
s0 < c написанный предикат никогда не будет
истинным, и построенный таким образом гибридный автомат будет вести себя как классическая динамическая система. Второй вариант «крайнего» поведения реализуется, если на всем множестве начальных условий одновременно истинен инвариант и предикат, приводящий к смене начальных условий. В этом случае примитивный гибридный автомат можно интерпретировать как конечный, реализующий заданное дискретное отображение. Обычно такое поведение считают недопустимым, ссылаясь на «остановку» непрерывного времени. 84
В тоже время, если рассматривать этот процесс в гибридном времени, то мы наблюдаем его бесконечное течение. Пример 7 Для дифференциального уравнения ds b = a * s + b; s (0) = s 0 ; c ≥ − ; inv := s (t ) ≤ c; pred := s (t ) = c; dt a при выборе начального условия в виде s 0 = c , написанный предикат становится истинным уже на начальном условии, и если положить S 0 ≡ s 0 , то построенный таким образом гибридный автомат будет вести себя как тождественное дискретное отображение. Однако возможен и третий случай, когда бесконечное движение точки в фазовом пространстве в гибридном автомате возникает при аномальном поведении гибридного времени. Пример 8. Рассмотрим линейное уравнение dx b = ax + b; x(0) = x0 < c < ; dt a
⎧1 a=⎨ ⎩− 1
и построим примитивный автомат, который при достижении решением значения x(t ) ≥ c меняет одновременно и начальные условия и вид правой части: t * : x(t ) = c ⇒ x := x0 ; a := −a . Теперь попробуем изменить алгоритм вычисления начальных условий: 1. x0k = c −
c − x0 c − x0 c − x0 k ; 2. x0k = c − ; 3 . x = c − ; k = 1,2,3.... 0 k +1 (k + 1) 2 (k + 1) 3
и проследим за характером изменения гибридного времени, суммируя все отрезки времени, соответствующие длительному поведению. Рисунки 810, иллюстрируют характер изменения поведения системы с ростом показателя степенной зависимости и показывают, как останавливается «непрерывное время» для второго и третьего случая.
85
Поведение Зенона обычно связывают с существованием для последовательности TH = {τ 0 ,τ 1 ,τ 2 ,...,τ i ,...}, i = 0,1,2.... конечного предела суммы s (TH ) = lim ∑τ i . i
Пример 9 Приведем пример системы [http://robotics.eecs.berkeley.edu] для которой этот предел можно вычислить явно (Рис . 11)
Рис. 8. «Естественное» течение времени
Рис. 9. Возникновение предельной точки
Рис. 10. Практически мгновенное «замирание» времени 86
Рассмотрим два бака одинаковых размеров, с выходными трубами, из которых вытекает вода со скоростью v1 и v2 соответственно. Для каждого бака существует свой предельный уровень воды r1 и r2 , после чего следует начинать доливать воду в баки. Кран для доливки воды один и из него вода поступает в любой бак со скоростью w .
Рис. 11. Управление уровнем воды в системе двух баков Предположим, что мы начинаем доливать воду в момент, когда вода в первом баке достигла критического уровня, а во втором его превышает. Доливка воды в первый бак будет продолжаться до тех пор, пока уровень воды во втором баке не достигнет критического уровня, после чего начнется пополнение второго бака. Гибридный автомат H будет иметь два состояния с уравнениями: q = 0; x2 ≤ r2 dx1 dx = w − v1 ; 2 = −v1 ; dt dt q = 1; x1 ≤ r1 dx1 dx = −v1 ; 2 = w − v1 ; dt dt Положим r1 = 0 и r2 = 0 . Начальным будем считать состояние, когда x1 = 0; x 2 = h > 0 . Пусть max{v1 , v 2 } < w < v1 + v 2 . При первом переключении будет иметь место:
τ 0 = 0;τ 1 =
h h ; x1 (τ 1 ) = ( w − v1 ) ; x2 (τ 1 ) = 0 v2 v2
При втором 87
τ 2 = τ 1 + ( w − v1 )
h h ; x1 (τ 2 ) = 0; x 2 (τ 2 ) = ( w − v1 )( w − v 2 ) v1v 2 v1v 2
Окончательно имеем ∞
∑ (τ i =0
i +1
−τ i ) =
h ( w − v1 )h ( w − v1 )( w − v 2 )h + + + ... v2 v1v 2 v1v 2 v 2
h ∞ ⎛ ( w − v1 ) ⎞ ⎟ = [∑ ⎜⎜ v 2 i =1 ⎝ v1 ⎟⎠
i
⎛ (w − v2 ) ⎞ ⎟⎟ ⎜⎜ ⎝ v2 ⎠
i −1
⎛ ( w − v1 ) ⎞ ⎟ + ∑ ⎜⎜ v1 ⎟⎠ i =0 ⎝ ∞
i
i
⎛ (w − v2 ) ⎞ ⎟⎟ ] ⎜⎜ ⎝ v2 ⎠
i
∞ ⎛ ( w − v1 ) ( w − v 2 ) ⎞ 1 h ( w − v1 ) hw ⎟⎟ = [ ]= = [ + 1]∑ ⎜⎜ v2 v1 v1 v 2 ⎠ v1v 2 ⎛ ( w − v1 ) ( w − v 2 ) ⎞ i =0 ⎝ ⎟⎟ 1 − ⎜⎜ v v ⎠ ⎝ 1 2 h = v1 + v 2 − w
Графики для h = 4; w = 2.5; v1 = 2; v2 = 1 приведены на Рис. 12.
Рис. 12. Эффект Зенона в системе двух баков Будем
называть
примитивный
автомат
автоматом
Зенона,
если
объединение всех интервалов последовательности, образующей гибридное время, не совпадает с положительной вещественной осью ∞
TH = Uτ i ≠ [0, ∞)
(2) .
i =0
Это условие также записывают в виде W = lim ∑ w(τ i ) ≠ ∞ i →∞
(3) ,
i
где w(τ i ) = t i − t i −1 - длительность текущего состояния. Последнее условие (3) можно интерпретировать как переключение автомата с бесконечной скоростью в окрестности некоторой временной точки. 88
Таким
образом,
автомат
Зенона
реализуется,
либо
если
в
последовательности τ H = {τ k }∞0 найдется номер N , начиная с которого i ≥ N все τ i окажутся либо нулевыми, либо будут выполняться условия (2) или (3). Пример 10. Пример автомата Зенона, для которого последовательность локальных длительностей текущего состояния имеет предельную точку, отличную от нуля, легко построить уже для линейного уравнения первого порядка, если предикат выбирать не в виде условия достижения решением заданного состояния, а в виде ограничения на время пребывание в текущем длительном состоянии. Выберем очередную длительность
w(τ i ) , например, равной w(τ i ) = t i − t i −1 =
1 (i + 1) 2
и получим в (3)
конечное предельное значение. Для построения более сложного автомата достаточно так подобрать новое очередное начальное условие, чтобы решение достигало нужного состояния с требуемой для выполнения условий сходимости ряда скоростью. Покажем это на примере того же дифференциального уравнения
первого
порядка.
Пусть
b ds = a * s + b; s (0) = s 0 ; c ≤ − ; inv := s (t ) ≤ c; pred := s (t ) = c и на i -том a dt срабатывании перехода было выбрано новое начальное условие s i0 . Так как решение уравнения s i (t ) в очередном длительном состоянии равно b s i (t ) = e at s0i + (e at − 1) , то предикат s i (t ) = c станет истинным в точке a
b 1 a . = ln b a si0 + a c+
t i +1
Достаточно
новые
89
начальные
условия
выбрать,
например
равными
si0 = c * (1 −
1 ), 2i
чтобы
получить
автомат
с
требуемыми свойствами. 2.5 События, сигналы.
В общем случае отдельная траектория s ( s0 ;τ ) гибридного автомата представляет собой разрывную, многозначную функцию на вещественной оси (Рис. 13) и разрывную, однозначную функцию на гибридном времени (Рис. 14). След вектора s в фазовом пространстве гибридного автомата естественно назвать фазовой траекторией. Отдельную точку в фазовом пространстве, как и обычно, будем называть состоянием. Таким образом, длительное состояние – это множество состояний, соответствующих решению дифференциального уравнения на промежутке τ i . Длительные состояния могут вырождаться в отдельную точку, что совпадает с определением состояния классической динамической системы. Событиями, как и обычно, в фазовом пространстве назовем любые специальным образом помеченные состояния. Обычно метка представляет собой
текстовый
литерал.
Событиями
в
расширенном
фазовом
пространстве назовем пару (t * ∈τ i , s (t * )) , первую координату которой будем называть временем наступления события, а вторую – сутью (сущностью, значением) события. Каждому событию можно сопоставить сигнал, или булевскую функцию на решении, принимающую значение
true только на событии, и значение false на всех остальных точках фазового пространства. Сигнал может быть определен по-разному: ⎧true signal ( s (t ), s ( s 0 ; t )) = ⎨ ⎩ false
s (t * ) = s ( s 0 ; t )
*
, во всех остальных случаях
⎧true signal ((t , s(t )), s ( s 0 ; t )) = ⎨ ⎩ false *
*
90
t = t * & s (t * ) = s ( s0 ; t )
, во всех остальных случаях
⎧true signal (t , s( s 0 ; t )) = ⎨ ⎩ false
t = t* . во всех остальных случаях
*
Первый тип сигнала можно назвать сигналом по значению, а третий – сигналом по времени. В моделях, где траектории представляют собой кусочно-постоянные функции, под событиями часто понимают точки разрыва, и выработку сигнала связывают именно с этими моментами, моментами смены длительных состояний:
t : s (t −* ) ≠ s (t +* ), t −* ∈ τ i ; t +* ∈ τ i +1
⎧true signal ( s ( s 0 ; t )) = ⎨ ⎩ false
во всех остальных случаях
,
По своей сути любой сигнал должен иметь привязку к гибридному времени. Чтобы найти место сигналу, определенному выше, на гибридном времени, и вводят понятие «временной щели». Иногда, помимо сигнала
false до момента
вводят также и функцию «сообщение», равную наступления события, и true - после его наступления. s ( s0 ; t )
τ
1
τ τ
2 3
τ
4
τ τ
5 6
Рис. 13. Проекция траектории на непрерывное время 2.6 Примитивный гибридный автомат с несколькими переходами.
В рассмотренном нами примитивном гибридном автомате был возможен только один переход. Такой автомат лишен каких-либо параллельных действий. В тоже время смена длительных состояний может быть описана 91
с помощью нескольких предикатов, или нескольких переходов (Рис.15). И естественно
возникает
вопрос,
может
ли
быть
такой
автомат,
представленный уже мульти-графом, сведен к примитивному гибридному автомату.
s( s 0 ;τ )
τ τ
1
τ
2
τ
3
τ
4
Рис. 14. Проекция траектории на гибридное время В таком автомате возникает возможность одновременного срабатывания двух переходов. Реализация срабатывания переходов зависит от трактовки одновременности.
Pred2/Init2
Pred1/Init1
Inv: Do:
Рис. 15. Примитивный автомат с несколькими переходами. Припишем
узлу
поведение
dsi b = a * si + b; si (0) = si 0 = s0 ; i = 1,2; s0 < c < - и выберем предикаты и dt a функции инициализации в виде pred1 := ( s1 ≥ c) / Init1 : s1 := s 2 := 2 * s0 и
pred 2 := ( s 2 ≥ c) / Init 2 : s1 := s 2 := −2 * s0 . Так как функции инициализации трактуются как мгновенные действия, то мы при записи применяем 92
символику, принятую в языках программирования. Здесь два условия выполняются одновременно. То есть наступают одновременно два события внутри одного такта гибридного времени на первом же интервале. Возможны следующие стратегии обработки одновременных событий – «дискретная» и «непрерывная». В первом случае, сразу же обрабатывается первое обнаруженное событие, например, Event1 : pred1 := ( s1 ≥ c) и выполняется мгновенное действие
Init1 : s1 := s 2 := 2 * s0 ,
что
в
дальнейшем
приводит
к
периодическому движению (Рис. 16). s1 (t ) −b/a
c
t s0
2 s0
Рис. 16. Периодическое движение Если порядок обнаружения будет другим, и первым будет обнаружено событие
Event 2 : pred 2 := ( s 2 ≥ c) ,
Init 2 : s1 := s 2 := −2 * s0 ,
то
мы
а
затем
получим
выполнено
действие
апериодическое
движение
(Рис.17). Во втором случае, выявляются все сработавшие переходы, их мгновенные
действия
объединяются
Init1 : s1 := s 2 := 2 * s0
и
Init 2 : s1 := s 2 := −2 * s0 , и в этом случае они должны трактоваться как уравнения. В данном конкретном случае мы получаем противоречивую систему, и дальнейшее движение автомата становится невозможным.
93
Выбор той или иной стратегии, вплоть до запрещения одновременных событий, зависит от разработчика языка.
s1 ( t )
− 2 s0 −b/a
c
s0
t
Рис. 17. Апериодическое движение. 2.7 Гибридный автомат с несколькими длительными состояниями.
В большинстве языков моделирования гибридный автомат вводится как автомат с несколькими состояниями (Рис.18).
2
1 3
Рис. 18. Гибридный автомат с несколькими длительными состояниями В том случае под гибридной системой H следует понимать объект,
H = {s, F ( s), G ( s), S 0 , pred (t , s(t )), Inv(t , s(t )), Init ( s(t ))} где: • s∈ ℜ n - вектор переменных состояния размерности n ; 94
• F ( s ) − {f k ( wk ) ∈ ℜ k , g k ( wk ) ∈ ℜ k ,}1
K ≤n
правых
частей
- множество вектор-функций или
алгебро-дифференциальных
уравнений
для
локального вектора переменных состояния wi = {wi1 , wi2 } , размерность которого не превышает максимально возможной размерности n , где
wi1 , wi2 и дифференциальная и алгебраическая составляющие dwi1 = f i ( wi1 , wi2 ), dt 0 = g i ( wi1 , wi2 ) wi (0) = wi 0 ∈ S 0 , t ∈ [0, ∞], wi ⊂ s; f i , g i ∈ F ( s ), 1 ≤ i ≤ K Вектор wi может содержать не обязательно все, а только некоторые компоненты вектора s . • S 0 - множество начальных условий для всех возможных систем и
функций инициализаций; •
pred (t , w(t ))
{pred
-
множество
булевских
(t , w(t )) : ℜ1 × ℜ m → { false, true}, w ⊂ s}1 , M
m
функций
определенных
на
решениях дифференциальных уравнений, выделяющих особые состояния, или события, приводящие к смене поведения; • Inv(t , w(t ))
{Inv
-
множествo
булевских
(t , w(t )) : ℜ1 × ℜ p → { false, true}}1 , P
p
определяющих
функций свойства
решения отдельных дифференциальных уравнений; • Init ( w(t )) -
множество
{Init (w(t )) : ℜ l
n
вещественных
функций
L → ℜl }1 , ставящих в соответствие значению решения
в правой, конечной точке t −* текущего промежутка интегрирования значение
новых
начальных
условий
на
новом
временном
промежутке в его левой, начальной точке t +* : w(t +* ) = Initl ( w(t −* )) .
95
• V - множество поименованных длительных состояний, каждому из
которых предписано одно дифференциальное уравнение и один инвариант. • E - множество переходов, с предписанными им предикатами и
функциями инициализациями. Граф, соответствующий гибридной системе с несколькими длительными состояниями, с приписанными узлам системами дифференциальных уравнений
и
дугами,
помеченными
предикатами
функциями
инициализации, называется картой поведения или гибридным автоматом. Гибридный автомат называется детерминированным, если в каждый момент гибридного времени может стать истинным только один предикат, или, как говорят, может «сработать» только один переход. Любой детерминированный гибридный автомат может быть сведен к примитивному гибридному автомату. Рассмотрим технику сведения на примере. Пример 12. Припишем каждому узлу автомата, изображенному на Рис. 18 линейное дифференциальное
уравнение
ds = a * s + bi ; s (0) = s 0 ; с dt
различными
коэффициентами bi . Выберем для примера значения коэффициентов равными a = −1; b1 = 1; b2 = −1; b3 = 1. Припишем переходам предикаты и функции инициализации, как указано в таблице 1. Таблица 1 Переход
Предикат
1-2
s ≥ c1
s(t +* ) = − s0
2-3
s ≤ c2
s(t +* ) = s(t −* )
3-1
s ≥ c3
s (t +* ) = s0
И положим s 0 = 0.1; c1 = 0.9; c 2 = −0.9; c3 = 0 . В этом случае мы будем наблюдать периодическое решение порядка 3. 96
Для сведения данного гибридного автомата к примитивному гибридному автомату введем новые дополнительные переменные состояния b, c, i и образуем систему
ds db dc di = a * s + b; = 0; = 0; = 0 со следующими dt dt dt dt
начальными условиями s(0) = s0 ; b(0) = b1 ; c(0) = c1 ; i (0) = 1; и припишем ее единственному узлу примитивного автомата. Построим новый предикат
pred := ( s ≥ c1 & i = 1) ∨ ( s ≤ c2 & i = 2) ∨ ( s ≥ c3 & i = 3) ,
а
функцию
инициализации выразим в алгоритмической форме ⎧i = mod 3 (i + 1); ⎪ * * * ⎪if i = 1 then s (t + ) = s 0 ; b(t + ) = b1 ; c(t + ) = c1 endif ⎪ Init := ⎨if i = 2 then s (t +* ) = − s 0 ; b(t +* ) = b2 ; c(t +* ) = c 2 endif ⎪ * * * ⎪if i = 3 then s (t + ) = 0; b(t + ) = b3 ; c(t + ) = c3 endif ⎪⎩i (t +* ) = i Таким образом, у построенного
примитивного автомата, основные
переменные ведут себя также как и в исходном гибридном автомате. Обобщение на произвольное число узлов очевидно. Фактически все три возможных варианта изменения дифференциального уравнения – изменение начальных условий, наличие кусочно-постоянных и кусочно-непрерывных функций в правых частях мы свели к изменениям только начальных условий некоторых дополнительных переменных, ценою введения не относящихся непосредственно к модели уравнений. 2.8 Композиция гибридных автоматов.
В примитивном гибридном автомате недетерминированность может быть вызвана только одновременным срабатыванием двух переходов на одном интервале внутри очередного такта гибридного времени. Для разрешения этой неопределенности возможны две стратегии – дискретная и непрерывная. Дискретная
стратегия
выбора
одного
их
переходов,
готовых
к
срабатыванию, приводит к тому, что воспроизводимость процесса начинает зависеть от порядка опроса предикатов (и от точности 97
вычислений). Возможный случайный выбор переходов, приводит нас к совершенно другому классу моделей. Непрерывная
стратегия
удовлетворение
требует
переменных
трактовать
системе
одновременность
уравнений.
Очевидно,
как что
зависимость от точности вычислений будет проявлять себя и в этом случае, что приводит к необходимости оценивать чувствительность автомата к изменению его параметров. Дискретная стратегия применяется во всех современных пакетах, за исключением семейства Model Vision. В семейства Model Vision приняты следующие определения. Композицией
H 1 H 2 двух независимых изолированных примитивных
гибридных автоматов H 1 = { f1 (t , s11 , s 12 ), g1 (t , s11 , s 12 ), S 01 , pred1 (t , s 1 ), Inv1 (t , s 1 ), Init1 (t , s1 )} ; H 2 = { f 2 (t , s12 , s 22 ), g 2 (t , s12 , s 22 ), S 02 , pred 2 (t , s 2 ), Inv2 (t , s 2 ), Init 2 (t , s 2 )} ; называется автомат с объединенной системой уравнений ds11 = f1 (t , s11 , s 12 ) dt 0 = g1 (t , s11 , s 12 ); ds12 = f 2 (t , s12 , s 22 ) dt 0 = g 2 (t , s12 , s 22 ); и двумя предикатами, и доопределенными функциями инициализации, в том случае, если предикаты срабатывают не одновременно. Необходимость в доопределении функций инициализации возникает изза необходимости синхронизации исходных автоматов, то есть переходу к единому для них гибридному времени. H H Две последовательности τ 1 и τ 2 равны, если они равны почленно.
Синхронизация
двух
различных
98
последовательностей
τH и 1
τH 2
заключается в построении новой последовательности τ 3 , по следующему H
алгоритму.
Pred1/Init1
Pred2/Init2
Inv1: Do1:
Inv2: Do2:
Pred1/Init1
Pred2/Init2
Inv1&2: Do1&2:
Рис. 19. Композиция двух примитивных автоматов. Алгоритм синхронизации. Начиная с первых двух несовпадающих отрезков
τ1H,k
первой
последовательности
и
τ 2H,k
второй
последовательности, представляем отрезок с большей длительностью
w1 = w(τ1H,k ) , пусть для определенности это будет отрезок первой последовательности, в виде двух отрезков. Первый отрезок совпадает H с отрезком τ 2,k
разностью
второй последовательности, а второй является
τ1H,k −τ 2H,k .
Отрезок
τ 2H,k
мы
включаем
в
новую
последовательность τ 3 с соответствующим номером. H
Дальнейшая работа алгоритма происходит с отрезком, равным разности
τ1H,k −τ 2H,k из первой последовательности и новым τ 2H,k+1 отрезком второй последовательности.
99
s 1 (τ )
s2 (τ )
τ1
s 3 (τ )
τ
τ 13
τ 23
τ 33
τ 43
τ3
Рис. 20. Построение единого гибридного времени 2.9 Открытый примитивный гибридный автомат
В рассмотренном изолированном примитивном автомате, все переменные состояния были равноправными. Для того чтобы иметь возможность строить модели из компонентов, в примитивном гибридном автомате H = {w, F ( w), G ( w),W0 , pred (t , w(t )), Inv (t , w(t )), Init ( w(t ))} ,
представим множество переменных w в виде трех непересекающихся множеств
w = In ∪ Out ∪ S
и
In ∩ Out ∩ S = ∅ , и будем называть
элементы x множества In входами, элементы y множества Out 100
выходами, а элементы s множества S - переменными состояния. Запишем уравнения длительных состояний в виде: ds1 = f ( s1 , s 2 , x, t ) . dt 0 = g ( s1 , s 2 , y, x, t ); s = {s1 , s 2 ,} ∈ S ; x ∈ In; y ∈ Out Полученный примитивный автомат назовем открытым примитивным автоматом «вход-выход-состояние». Открытый гибридный автомат принято рисовать в виде прямоугольника со стрелками, изображающими входы и выходы (Рис. 21).
Pred / Init
Do:
X
Y
Inv:
Рисунок 21. Примитивный открытый гибридный автомат Два открытых примитивных автомата «вход-выход-состояние» Hio1O и Hio2O называются объединенными в блок-схему Hio1O Hio2O , если хотя бы один выход или вход одного их них равен входу или выходу другого (связаны между собой). Соответствующие пары переменных называются связными. Не связные переменные называются свободными. Два открытых примитивных автомата «вход-выход-состояние» Hio1O и Hio2O называются независимыми, если все их входы и выходы свободны. Композицией Hio1O Hio2O
двух независимых примитивных открытых
гибридных автоматов «вход-выход-состояние»
Hio1O = {w1 , f 1 (t , x1 , s11 , s 12 ), g 1 (t , x1 , y1 , s11 , s 12 ), S 01 , pred1 (t , w1 ), Inv1 (t , w1 ), Init1 (t , w1 )} 101
;
Hio2O = {w2 , f 2 (t , x2 , s11 , s12 ), g 2 (t , x2 , y 2 , s11 , s12 ), S 02 , pred 2 (t , w2 ), Inv2 (t , w2 ), Init 2 (t , w2 )}
;
w = {x, y, s} ; называется примитивный автомат с объединенной системой уравнений ds11 = f1 (t , s11 , s12 , x1 ) dt 0 = g1 (t , s11 , s12 , x1 , y1 ); ds12 = f 2 (t , s12 , s22 , x2 ) dt 0 = g 2 (t , s12 , s22 , x2 , y 2 ); двумя предикатами исходных автоматов и доопределенными функциями инициализации. Доопределение происходит так же, как и в случае изолированных автоматов. Имея определение композиции, можно очевидным образом построить H расширение каждого из автоматов на новое гибридное время τ 3 . Для этого
достаточно
доопределить
предикат,
обеспечивающий
построение
требуемой временной последовательности и функции инициализации. У исходного автомата и его расширения, траектории, спроецированные на вещественную
ось
(объединение
всех
интервалов
новой
последовательности), совпадают, в тоже время гибридные времена различаются. 2.10 Блок-схемы открытых автоматов.
Образование блок-схем, или связывание открытых гибридных автоматов «вход-выход-состояние» по входам и выходам, определяется следующими правилами. 1. Любой выход может быть связан с любым числом входов. 2. Любой вход можно быть связан только с одним выходом. Примитивный гибридный автомат «вход-выход-состояние» может быть охвачен обратной связью.
102
Открытым примитивным автоматом «вход-выход-состояние» с обратной связью H @ называется автомат H @ = {w, f (t , x, s ), g (t , x, s), S 0 , pred (t , w), Inv(t , w), Init (t , w)} с новой системой уравнений ds1 = f ( s1 , s 2 , x, t ) dt 0 = g ( s1 , s 2 , y, x, t ); x1 = y1 ; где - x1 ∈ In - вектор связных входов, компоненты которого являются подмножеством множества In , - y1 ∈ Out - вектор связных выходов, компоненты которого являются подмножеством Out . Автомат «вход-выход-состояние» с обратной связью - это тот же примитивный автомат, но в нем изменилось число составляющих во всех трех компонентах вектора
w = {x, y, s} ,
при сохранении суммарной
размерности, и к существующей системе алгебро-дифференциальных уравнений добавились уравнения связи. Композицией Hio1O Hio2O двух открытых примитивных автоматов «входвыход-состояние» H 1O и H 2O H 1O = {w1 , f1 (t , x1 , s11 , s12 ), g1 (t , s11 , s12 , x1 , y1 , ), S 01 , pred1 (t , w1 ), Inv1 (t , w1 ), Init1 (t , w1 )}
;
H 2O = {w2 , f 2 (t , x2 , s12 , s22 ), g 2 (t , s12 , s22 , x2 , y 2 ), S 02 , pred 2 (t , w2 ), Inv2 (t , w2 ), Init 2 (t , w2 )} называется автомат - с объединенной системой уравнений
ds11 = f1 (t , s11 , s12 , x1 ) dt 0 = g1 (t , s11 , s12 , x1 , y1 ); 103
;
ds12 = f 2 (t , s12 , s22 , x2 ) dt 0 = g 2 (t , s12 , s22 , x2 , y 2 ); - и новыми уравнениями связи x11 = y12 ; x12 = y11 ; где - x11 и x12 - векторы, составленные из связных входов первого и второго автоматов, y11 и y12 векторы, составленные из связанных выходов, - двумя предикатами, и новой функцией инициализации, зависящей от трактовки одновременности событий. Как и в случае примитивных изолированных автоматов, возможны различные трактовки одновременности событий – непрерывная и дискретная. Их различия для гибридных автоматов хорошо видны уже на простейших примерах [8-9]. Рассмотрим функциональную схему двух открытых блоков «вход-выходсостояние» B1 и B2, и назовем ее «кольцом», если выход y1 первого блока B1 подан на вход x2 второго блока B2, а его выход y 2 , в свою очередь, подается
на
вход
x1
первого
(Рис.
22).
Рис. 22. Блок-схема «кольцо» Блоки в кольце могут быть непрерывными - C и гибридными - H. В непрерывном случае модель кольца в виде алгебро-дифференциальных уравнений для блоков C1 и C2, функционирующих в непрерывном 104
времени T = [0, ∞) , естественным образом упорядочивает все состояния в обоих блоках, так как в любой момент времени все переменные совокупной системы однозначно удовлетворяют уравнениям (4). В чисто дискретном случае, когда блоки кольца представляют собой открытые конечные автоматы D1 и D2, функционирующие в дискретном времени T = {0,1,2...} , алгоритмические операции отдельных блоков, связанные с формированием выходной последовательности, внутри одного такта дискретного времени упорядочиваются произвольным образом, если их порядок
не влияет на окончательный результат. Если же порядок
влияет на результат, вводят дополнительные правила упорядочивания «одновременных» операций.
ds 1 = f1 ( t , s1 , x1 ) dt y1 = g1 ( t , s1 , x1 ) ds 2 = f ( t , s , x ) 2 2 2 dt y 2 = g 2 ( t , s 2 , x2 ) y1 = x2 ; y2 = x1
(4)
Таким образом: -
в непрерывном случае одновременность означает, что все переменные в заданной момент времени удовлетворяют совокупной системе уравнений, получающейся объединением уравнений компонент, с учетом связей.
-
в
дискретном
времени
одновременность
событий
неявно
подразумевает независимость связанных с ними операций, что в свою очередь означает, что все мгновенные действия можно выполнять последовательно в любом порядке, и хотелось бы, чтобы результат не зависел от очередности их выполнения. В случае если блоки представляют собой гибридные автоматы H1 и H2, то, очевидно, что при их вырождении в чисто непрерывные системы должна 105
обеспечиваться полная синхронизация непрерывных систем. Отличия от рассмотренной
схемы
синхронизации
изолированных
автоматов
возникают из-за появления связей. Рассмотрим два примитивных открытых гибридных автомата H1 и H2 с заданным непрерывным поведением в виде дифференциальных уравнений. Для простоты рассмотрим линейное дифференциальное уравнение первого порядка для первого автомата H1 ds1 = a11 s1 + a12 x1 dt y1 = d11 s1 + d12 x1 и аналогичное уравнение припишем второму автомату H2 ds2 = a21 s2 + a22 x2 dt y 2 = d 21s2 + d 22 x2 . Пусть каждый автомат начинает движение с одного и того же начального значения si (0) = s 0 и, при достижении одного и того же заданного значения s i (t*) = c в момент времени t * , вновь возвращается в исходное состояние:
Init1 : post ( s1 (t*)) ≡ s1 (t +* ) = s0 ; pre( s1 (t*)) ≡ s1 (t +* ) = c; Init 2 : post ( s 2 (t*)) ≡ s 2 (t +* ) = s0 ;
,
pre( s 2 (t*)) ≡ s 2 (t +* ) = c; где t * - это любая точка смены поведения или точка переключения. Автоматы H1 и H2, рассмотренные отдельно, периодически повторяют свое
поведение
первого
τ 1 = (Pr e _ gap1 ,[0, t −* ], gap1 ) : дифференциальное
на
уравнение,
такта
гибридного
отрезке
[0, t −* ]
затем
во
«временной
времени
интегрируется щели»
gap1
вычисляются новые начальные условия Initi : post ( si (t*)) = s0 (Рис. 23). Теперь, свяжем автоматы в кольцо, дополнив совокупную систему 106
уравнениями связи y1 = x2 ; y 2 = x1 , и положим
в автоматах H1 и H2
значения коэффициентов aij равными a11 = a21 = −1; a12 = a22 = 0 , что обеспечит одинаковые значения переменных состояния s1 и s 2 в любой момент времени независимо от входов. Выберем коэффициенты d ij : d11 = d 21 = d 22 = 1; d12 = −1 так, чтобы уравнения связи y1 = x2 ; y 2 = x1 или x1 + x2 = s1 (t ) x1 − x2 = s2 (t )
имели бы решение x1 = s1 (t ); x2 = 0 . Сохраним мгновенные действия такими, какими они были при независимой работе автоматов: post ( s1 (t*)) = s0 ; post ( s2 (t*)) = s0 .
Рис. 23 Периодическое поведение независимых автоматов Оба блока хоть и связаны в кольцо, но при выбранных значениях коэффициентов входы влияют только на значения выходных переменных, а переменные состояний s1 и s2 не зависят друг от друга. Достижение состояний s 1 = c и s 2 = c происходило бы одновременно, если бы мы рассматривали один автомат с совокупной системой уравнений и предикатом s1 (t * ) = c OR s 2 (t * ) = c . Рассмотрим, как одновременность реализуется во «временной щели» gap1 «гибридного кольца». С точки зрения дискретного подхода в кольце 107
возникает
event _ 1 : s1 (t*) = c
два события:
event _ 2 : s 2 (t*) = c
во
втором.
обнаружено событие
в первом автомате, и
Предположим,
что
сначала
было
event _ 1 , при этом выполнились мгновенные
действия на переходе первого автомата - post ( s1 (t*)) = s0 , и осталось без изменения значение переменной s 2 : pre( s 2 (t*)) = c во втором автомате, а затем
event _ 2
post ( s 2 (t*)) = s0 .
-
и
изменилось
Очевидно,
что
значение
второй
последовательность
переменной событий
и
последовательность связанных с ними действий в данном случае не имеет никакого значения для переменных s1 и s 2 . В тоже время значения входов и выходов уже зависит от порядка обработки событий, приводящих к смене поведения (Таблицы 3,4). Таблицы 3-4
EVENT_1, EVENT_2
EVENT_2, EVENT_1
time
s1
s2
x1
x2
time
s1
s2
x1
t −*
c
c
c
0
t −*
c
c
c
s0
c
c
t +*
s0
c
Gap_2
s0
s0
t +**
s0
s0
Gap_1
t +* Gap_2
t +**
c
s0
c
s0
s0 s0
Gap_1
c
0
s0
c + s0 2 c + s0 2
c − s0 2 c − s0 2
s0
s0
0
c + s0 2 c + s0 2
x2 0 0
c − s0 2 c − s0 − 2 −
s0
0
Совсем другая ситуация возникает, если мгновенные действия зависят от значений входных переменных: post ( s1 (t * )) = pre( s1 (t * )) + pre( x1 (t * )) + p1 post ( s 2 (t * )) = pre( s2 (t * )) + pre( x2 (t * )) + p2
(5)
где p1 , p 2 - произвольные константы. Выберем
теперь
константы
p1 , p 2
p1 = s 0 − 2c, p 2 = s 0 − c , чтобы 108
в
(3)
таким
образом
pre( s1 (t * )) + pre( x1 (t * )) + p1 = s0
(6)
pre( s 2 (t * )) + pre( x2 (t * )) + p2 = s0
Казалось бы, следует ожидать что и post ( s1 (t * )) = s0 ; post ( s2 (t * )) = s0 . Однако напомним, что с точки зрения дискретного подхода, в кольце возникает
event _ 1 : s1 (t*) = c
два события:
в первом автомате, и
event _ 2 : s 2 (t*) = c во втором. Каждое из них порождает инициализацию начальных условий и вычисление новых значений связей, но теперь связи влияют на новые начальные значения. И мы уже больше не будем наблюдать периодического движения. В
таблицах
периодического
(Таблицы
5,6)
поведения,
мы
видим
не
только
но
зависимость
отсутствие
поведения
от
последовательности обработки событий, приводящих к смене поведения. Таблицы 5-6 EVENT_1, EVENT_2
EVENT_2, EVENT_1
time
s1
s2
x1
t −*
c
c
c
s0
c
c
0
c
s0
c + s0 2
c − s0 2
3s0 − c 2
s0
c + s0 2
c − s0 2
3s 0 − c 2
s0
5s0 − c 2
c − s0 2
Gap_1
t +*
Gap_2
t +**
x2 0
time
s1
s2
x1
t −*
c
c
c
s0
c
c
0
s0
c
c + s0 2
s0 − c 2
s0
3s 0 − c 2
c + s0 2
s0 − c 2
3s 0 − c 2
5s 0 − c 2
c − s0 2
Gap_1
t +* Gap_2
t +**
s0
x2 0
Работа автоматов с дискретной схемой синхронизации может быть представлена следующим алгоритмом. Алгоритм_D работы функциональной схемы из двух примитивных автоматов с традиционной дискретной синхронизацией одновременных событий. Начало Алгоритма_D 109
1. Инициализация. Начинается первый промежуток τ 1 t 0* = 0 post ( sk (t 0* )) := pre( s k (t 0* )) := sk 0 ; post ( xk (t 0* )) := pre( xk (t 0* )) := xk 0 ; post ( y k (t 0* )) := pre( y k (t 0* )) := y k 0 k = 1,2 здесь - y k 0 или согласованное начальное условие, либо только начальное приближение к нему. 2. Pr e _ gapi : Вычисление новых согласованных начальных условий и проверка предиката. i := i + 1; Решаем уравнения 0 = g k (t i*−1 , post ( s k (t i*−1 )), post ( xk (t i*−1 )), post ( y k (t i*−1 ))) k = 1,2; дополненные уравнениями связи post ( x1 (t i*−1 )) = post ( y 2 (t i*−1 )); post ( x 2 (t i*−1 )) = post ( y1 (t i*−1 )); относительно post ( y k (t i*−1 )) с начальным приближением pre( y k (t i*−1 )) . Æ Аварийный выход: не смогли найти согласованные начальные условия.
Вычисляем последовательно предикаты на левом конце текущего промежутка, например, в порядке номеров автоматов pred k ( post ( s (t i*−1 )), post ( x(t i*−1 )), post ( y (t i*−1 )); k = 1,2 и если хотя бы один предикат стал истинен pred k ( post ( s(t i*−1 )), post ( x(t i*−1 )), post ( y (t i*−1 )) = true , то завершается текущий интервал гибридного времени τ i t i* := ti*−1 110
pre( s k (t i* )) := post ( s k (t i* )); pre( xk (t i* )) := post ( xk (t i* )); pre( y k (t i* )) := post ( y k (t i* )); переходим к 4. Иначе 3. [t i*−1 , ti* ] : Длительное поведение. Решение уравнений ds k = f k (t , s k , xk ) dt 0 = g k (t , s k , xk , y k ) x1 = y 2 ; x2 = y1 k = 1,2 от согласованных начальных условий, до тех пор, пока не станет истинным хотя бы один предикат pred k ( s k (t ), xk (t ), y k (t )) . Æ Аварийный выход: не смогли найти решить уравнения.
Как только хотя бы один предикат стал истинным, выполняем: завершается старый интервал гибридного времени τ i t i* := t : pred k ( s (t ), x(t ), y (t )) = true
pre( s k (t i* )) := s k (t ); pre( xk (t i* )) := xk (t ); pre( y k (t i* )) := y k (t ); начинается новый интервал гибридного времени τ i +1 Переходим к 2. 4. Post _ gapi : Завершающие мгновенные действия. Если a) pred1 = true и pred 2 = false то post ( s1 (t i*−1 )) := ( Init1 ( pre( s1 (t i*−1 )), pre( x1 (t i*−1 )), pre( y1 (t i*−1 )) post ( s 2 (t i*−1 )) := pre( s 2 (t i*−1 )) переходим к d) 111
здесь post ( y k (t i*−1 )) - новое начальное приближение для поиска новых начальных условий. Если b) pred1 = false и pred 2 = true то post ( s1 (t i*−1 )) := pre( s1 (t i*−1 )) post ( s 2 (t i*−1 )) := Init 2 ( pre( s 2 (t i*−1 )), pre( x 2 (t i*−1 )), pre( y 2 (t i*−1 ))
переходим к d) d)
post ( xk (t i*−1 )) := pre( xk (t i*−1 )); post ( y k (t i*−1 )) := pre( y k (t i*−1 )) k = 1,2 Переходим к 2. Конец алгоритма_D. Если бы формулы (5) вычислялись бы одновременно, то есть сначала бы вычислялись новые значения начальных условий на всех одновременно сработавших переходах, и только потом новые значения связей, то мы бы вновь получили периодическое движение по обеим компонентам. Именно так реализована обработка событий, приводящих к смене поведения в последней версии Model Vision Studium. Непрерывная
стратегия
синхронизации
может
быть
представлена
следующим образом. Алгоритм_С работы функциональной схемы из двух примитивных автоматов с непрерывной синхронизацией одновременных событий Начало Алгоритма_C 1. Инициализация. Начинается первый промежуток τ 1 t 0* = 0
112
post ( sk (t 0* )) := pre( s k (t 0* )) := sk 0 ; post ( xk (t 0* )) := pre( xk (t 0* )) := xk 0 ; post ( y k (t 0* )) := pre( y k (t 0* )) := y k 0 k = 1,2 здесь - y k 0 или согласованное начальное условие, либо только начальное приближение к нему. 1. Pr e _ gapi : Вычисление новых согласованных начальных условий и проверка предиката. i := i + 1;
Решаем уравнения 0 = g k (t i*−1 , post ( s k (t i*−1 )), post ( xk (t i*−1 )), post ( y k (t i*−1 ))) k = 1,2;
дополненные уравнениями связи post ( x1 (t i*−1 )) = post ( y 2 (t i*−1 )); post ( x 2 (t i*−1 )) = post ( y1 (t i*−1 ));
относительно post ( y k (t i*−1 )) с начальным приближением pre( y k (t i*−1 )) . Æ Аварийный выход: не смогли найти согласованные начальные условия.
Вычисляем предикаты (одновременно) на левом конце нового промежутка pred k ( post ( s (t i*−1 )), post ( x (t i*−1 )), post ( y (t i*−1 ))
Если хотя бы один предикат истинен pred k ( post ( s(t i*−1 )), post ( x (t i*−1 )), post ( y (t i*−1 )) = true ,
то завершается текущий интервал гибридного времени τ i t i* := t i*−1
pre( s k (t i* )) := post ( s k (t i* )); pre( xk (t i* )) := post ( xk (t i* )); pre( y k (t i* )) := post ( y k (t i* )); переходим к 4. Иначе 113
3. [t i*−1 , t i* ] : Длительное поведение. Решение уравнений ds k = f k (t , s k , xk ) dt 0 = g k (t , s k , xk , y k ) x1 = y 2 ; x2 = y1 k = 1,2 от согласованных начальных условий, до тех пор, пока не станет истинным предикат хотя бы один предикат pred k ( s k (t ), xk (t ), y k (t )) . Æ Аварийный выход: не смогли найти решить уравнения.
Как только хотя бы один предикат стал истинным, вычисляем все предикаты (одновременно) на правом конце промежутка и выполняем завершается старый интервал гибридного времени τ i t i* := t : pred k ( s (t ), x(t ), y (t )) = true pre( s k (t i* )) := s k (t ); pre( xk (t i* )) := xk (t ); pre( y k (t i* )) := y k (t ); начинается новый интервал гибридного времени τ i +1 Переходим к 2. 4. gapi : Завершающее мгновенное поведение. a) pred1 = true и pred 2 = false post ( s1 (t i*−1 )) := ( Init1 ( pre( s1 (t i*−1 )), pre( x1 (t i*−1 )), pre( y1 (t i*−1 )) post ( s 2 (t i*−1 )) := pre( s 2 (t i*−1 )) переходим к d) здесь post ( y k (t i*−1 )) - новое начальное приближение для поиска новых начальных условий. b) pred1 = false и pred 2 = true post ( s1 (ti*−1 )) := pre( s1 (ti*−1 )) post ( s 2 (t i*−1 )) := Init 2 ( pre( s 2 (t i*−1 )), pre( x 2 (t i*−1 )), pre( y 2 (t i*−1 ))
переходим к d) 114
c) pred1 = true и pred 2 = true post ( s1 (t i*−1 )) := ( Init1 ( pre( s1 (t i*−1 )), pre( x1 (t i*−1 )), pre( y1 (t i*−1 )) post ( s 2 (t i*−1 )) := ( Init 2 ( pre( s1 (t i*−1 )), pre( x 2 (t i*−1 )), pre( y 2 (t i*−1 ))
переходим к d) d) post ( xk (t i*−1 )) := pre( xk (t i*−1 )); post ( y k (t i*−1 )) := pre( y k (t i*−1 )) k = 1,2 Переходим к 2. Конец алгоритма_C. Очевидно, что выбор частного случая блок-схемы в виде кольца, не влияет на работу обоих алгоритмов для произвольных схем. Все отличия связаны только с выбором первого обрабатываемого события для первого, и проверкой всех переходов, исходящих из текущего узла – во втором. 2.11 Открытый гибридный автомат с контактами.
Компонентные модели можно строить, используя не только «входывыходы», но и контакты. В изолированном примитивном гибридном автомате H = {w, f ( w), g ( w),W0 , pred (t , w(t )), Inv(t , w(t )), Init ( w(t ))} w = {s1 , s 2 }
,
с системой уравнений ds1 − f ( s1 , s 2 , t ) = 0; dt g ( s1 , s 2 , t ) = 0 где s1 «дифференциальные» и s2 «алгебраические» составляющие вектора переменных состояний w , представим множество переменных w в виде двух непересекающихся множеств w = Cont ∪ S и Cont ∩ S = ∅ , и будем называть элементы z множества Cont контактами, а элементы s множества S - переменными состояния. Точно так же как в автомате с входами и выходами, переменные состояния s автомата с контактами 115
инкапсулированы в нем и не могут изменяться извне. Связывание автоматов в блок-схемы происходит с помощью контактов z . В отличие от входов и выходов, место которых строго фиксировано в структуре уравнений - а именно входы и выходы могут входить только в правые части дифференциальных уравнений и формул, контактом может быть названа любая переменная состояния автомата. Два открытых примитивных автомата с котактами называются объединенными в блок-схему
Hс1O
и
Hс2O
Hс1O Hс2O , если хотя бы
контакт одного их них равен контакту другого (связаны между собой). Соответствующие пары переменных называются связными. Не связные переменные называются свободными. Композицией Hс10 Hс20 двух примитивных автоматов Hс1O и Hс1O с контактами z1 и z 2 называется автомат с новой системой уравнений dz1d − f11 ( w1 , t ) = 0; dt ds1d − f12 ( w1 , t ) = 0; dt g1 ( w1 , t ) = 0 dz 2 d − f 21 ( w2 , t ) = 0; dt ds2 d − f 22 ( w2 , t ) = 0; dt g 2 ( w2 , t ) = 0 дополненной уравнениями контактов: z1c = z 2 c ; z1c ∈ z1 ; z 2 c ∈ z 2 , с
новым
предикатом,
представляющим
объединение
предикатов
pred 1 (t , w1 (t )) or pred 2 (t , w1 (t )) и новой функцией инициализации, где
через s1d , s2 d , z1d , z 2 d обозначены дифференциальные компоненты векторов состояния. Выделение в отдельную группу дифференциальных уравнений
116
относительно неизвестных контактов обусловлено только тем, что при этом возникают новые задачи при построении совокупной системы. Прежде всего, при построении итоговой системы мы получаем готовую к реализации модель, ее уравнения можно передавать непосредственно решателям. Блоки с контактами имеют другое назначение – это компоненты
схем,
и
итоговая
система
обычно
должна
быть
предварительно преобразована. Исходная система для компоненты обычно оказывается переопределенной. В отдельных блоках может полностью отсутствовать
информация
о
том,
какие
переменные
считать
неизвестными. Например, рассмотрим блок с контактами z1 и z 2 , и уравнением z1 −
dz 2 = 0 . В нем отсутствует информация о том, следует ли dt
считать написанное уравнение дифференциальным -
dz 2 = z1 относительно dt
переменной z 2 и правой частью z1 или формулой - z1 =
dz2 , в которой dt
переменная z1 является производной от некоторой функции z 2 . Таким образом, фактически композиция для блоков «вход-выходсостояние» и блоков с контактами оказывается одной и той же, однако итоговая система для блоков с контактами тредует дополнительного преобразования. 2.12 Частичная синхронизация гибридных автоматов.
В предыдущих параграфах рассматривались композиция автоматов H 10 и H 20 , подразумевавших полную их синхронизацию в гибридном
времени. Однако во многих случаях полная синхронизация является слишком жестким требованием – реальные объекты и их модели могут обмениваться информацией только в определенные моменты своего гибридного времени. И только в эти моменты, моменты частичной синхронизации и могут влиять друг на друга гибридные автоматы. В тоже время между автоматами может не происходить обмена информации 117
вовсе. Поэтому целесообразно ввести еще одно понятие – совместно работающую пару частично синхронизированных автоматов H 1O ⊕ H 2O , подразумевая под этим, что каждый автомат работает в своем гибридном времени τ 1 и τ 2 , и нет возможности установить одновременность любых двух событий в этих автоматах. Это крайний случай интересен тем, что решаемые системы уравнений не связаны между собой, и их можно решать параллельно различными численными методами в своем модельном времени. Для того чтобы ввести понятие частичной синхронизации, рассмотрим
τ1 = {( pre_ gapk ,[tk , tk +1 ], gapk )}∞0
последовательности
τ 2 = {( pre _ gapj ,[t j , t j +1 ], gapj )}∞0 синхронизирующей
двух
последовательностью
τ s = {(gapk ∈τ 1 , gapj ∈τ 2 ) m ,}∞0 ,
где
gapk ∈τ 1
автоматов.
и Назовем
последовательность и
gap j ∈ τ 2
пар
являются
упорядоченными по возрастанию подпоследовательностями в своем гибридном времени. Назовем два примитивных изолированных или открытых гибридных автомата H 10 и H 20 парой частично синхронизированных автоматов, понимая под этим автомат, определенный на дискретном времени T = {0,1,2...} с вектором переменных отображением
ws = [ w1 , w2 ] и неявно заданным
F : wsm+1 = F ( wsm ) , определяемым уравнениями каждого
отдельного гибридного автомата на своих подпоследовательностях gap k ∈ τ 1 и gap j ∈ τ 2 . 2.13 О практической ценности примитивных автоматов.
Примитивные
гибридные
автоматы
могли
бы
представлять
лишь
теоретическую ценность, если бы в программном комплексе требовалось бы сводить автоматы со многими состояниями и образованные из них блок-схемы к примитивным автоматам. На счастье этого делать не надо,
118
так как сама природа гибридных автоматов подсказывает иное, очевидным образом более экономичное решение. Представленные выше автоматы с несколькими состояниями представляют последовательные процессы – в каждый момент времени текущим является только один узел. Следовательно, текущий узел и принадлежащие ему выходные переходы полностью определяют поведение гибридного автомата в каждый момент. Таким образом, в каждый момент автомат с несколькими состояниями эквивалентен примитивному автомату. Если учесть, что в детерминированном автомате с нескольким узлами может одновременно
сработать
только
один
переход,
то
мы
получаем
«динамическую» модель, для работы которой необходима только композиция
примитивных
гибридных
автоматов.
При
этом
нет
необходимости анализировать структуру графа и сводить его к трудно проверяемой теоретической схеме. Литература
1. Колесов Ю.Б., Расторгуев И.В., Сениченков Ю.Б. Современное программное
обеспечение
для
проведения
вычислительного
эксперимента./ В сб. «Труды Технического университета», № 468, 1997, стр. 95-98. 2. Yu. Kolesov, Yu. Senichenkov. Model Vision 3.0 for Windows 95/NT. The graphical environment for complex dynamic system design. ICI&C’97. International conference on Informatics and Control. St. Petersburg, 1997. pp. 764-768. 3. Yu. Kolesov, Yu. Senichenkov. Visual Specification language intended for event-driven hierarchical dynamical systems with variable structure ICI&C’97. International conference on Informatics and Control. St. Petersburg, 1997. pp. 704-711.
119
4. Yu. Kolesov, Yu. Senichenkov. Model Vision 3.0 for WINDOWS 95/NT -graphical environment for complex dynamic systems modeling. / COLOS’98. Maribor 1998, pp.34-41. 5.
Колесов
Ю.Б.,
Сениченков
Ю.Б.
Семейство
Model
Vision.
«Информационные технологии в моделировании и управлении». II Межд. Конференция, С.-Петербург, 2000, стр.188-190 6.
Колесов
Ю.Б.,
компьютерному
Сениченков
моделированию
Ю.Б.
Современные
динамических
подходы
систем.
к
Научно-
технические ведомости СПбГТУ, 3' 2002. с.93-102. 7. Yu. Kolesov, Yu. Senichenkov. A composition of open hybrid automata. EUROCON 2003. IEEE Catalog Number: 03EX665, ISBN: 0-7803-7763-X, Library of Congress: 2002117046. 8. Колесов Ю.Б., Сениченков Ю.Б. Компьютерное моделирование в научных исследованиях и в образовании, Exponenta_Pro. Математика в приложениях. 1' 2003. с.4-11 9. Колесов Ю.Б., Сениченков Ю.Б. Синхронизация событий при использовании гибридных автоматов для численного моделирования сложных динамических систем. Научно-Технические ведомости, 1’ 2004, стр. 202-207
120
Глава 3. Формирование итоговой системы уравнений и продвижение модельного времени.
Состав библиотеки численных методов существенно зависит от типа и формы уравнений, передаваемых решателю, требований, предъявляемых к численному решению и набора инструментов, используемых при исследовании свойств модели. При блочном моделировании достаточно сложно предсказать заранее, какую форму примет и какого типа окажется итоговая система уравнений. В тоже время от формы и типа уравнений во многом зависит эффективность решения. Анализом формы итоговой системы в MVS занимается блок структурного анализа уравнений. Требования вычислительного
к
решению
эксперимента
-
формируются
при
проведении
пользователь
может
потребовать
максимально возможной скорости решения без визуализации поведения или детального графического воспроизведения решения. Эти задачи возложены на блок продвижения модельного времени, который содержит чрезвычайно
важный
для
гибридных
систем
блок
поиска
точек
переключения (смены поведения). Набор инструментов для исследования свойств модели определяется входным языком MVL. Эти инструменты либо входят в базовое программное обеспечение, либо оформляются пользователем в виде специальных библиотек (DLL). С практической точки зрения важно предоставить пользователю как можно больше свободы при описании поведения отдельных компонентов и не заставлять его использовать трудно воспринимаемые синтаксические формы, свойственные процедурным языкам программирования. Первыми типами блоков, использовавшимися в семействе Model Vision, были блоки «вход-выход-состояние». Принятой формой описания поведения такого блока является система уравнений
121
ds = f ( x, s, t ), dt y = g ( s , x, t ) где s - вектор переменных состояния, x – входной, а y – выходной векторы. В ранних версиях пакета предполагалось, что пользователь пишет уравнения именно в такой форме, приемлемой для любого численного метода, из числа существующих в библиотеке MVS. Однако соединение таких блоков в функциональные схемы может приводить к алгебродифференциальным уравнениям ds = f ( x, s , t ) , dt 0 = g ( y , s , x, t ) что заставило считать последнюю форму также допустимой. При использовании программ, реализующих явные методы, она требует всего лишь
дополнительно
программных
реализаций
методов
решения
нелинейных уравнений и может быть непосредственно передана решателю при использовании программных реализаций неявных методов. Появившиеся позже блоки с контактами привели к свободной форме F(
ds , s, t ) = 0 , dt
в которой уравнения первого порядка не разрешены относительно первых производных. Очевидно, что системы уравнений более высокого порядка d ns ds F ( n ,..., , s, t ) = 0 dt dt приводятся к свободной форме автоматически. Ориентация на свободную форму оправдана еще и тем, что это не только удобная форма представления исходной информации, но и форма, естественным образом возникающая при «физическом моделировании» [1].
122
Свободная форма редко используется в программных реализациях численных методов [2]. Более распространенной является форма A( s )
ds = f ( s, t ) , dt
с возможно вырожденной матрицей A(s ) . Тем не менее, свободную форму представления целесообразно считать допустимой для всех типов блоков, но в каждом конкретном случае систему, передаваемую решателю, следует автоматически приводить к наиболее простой форме и проверять, можно ли эту систему решить. Эту работу в Model Vision Studium и выполняет блок предварительного, структурного анализа уравнений. Структурному анализу можно подвергать как системы отдельного блока, так и всю, совокупную систему уравнений. На уровне отдельного блока наиболее часто возникает следующая ситуация. Разработка блока начинается с создания класса «Система уравнений», в котором переменные еще не делятся на входы, выходы, контакты и внутренние переменные. Система
уравнений
может
оказаться
недоопределенной
или
переопределенной, и можно либо потребовать от пользователя уточнения списка искомых переменных, после чего проверить ее разрешимость, либо можно попытаться построить все возможные разрешимые системы, и показать их пользователю. На уровне отдельного блока последняя постановка вполне реалистична, так как обычно число переменных и уравнений отдельного блока не очень велико. Такой подход принят в пакете ABACUSS [3]. Сформированная система передается решателю, задача которого найти численное решение в конкретной временной точке. Выбор этой конкретной точки определяется блоком продвижения модельного времени и зависит от режима работы пакета. Таких режимов два – решение с визуализацией поведения и решение без визуализации. В первом случае требование качества визуализации 123
накладывает
ограничение
на
выбор
возможной
величины
шага
продвижения модельного времени, так как необходимо воспроизвести графики с учетом всех особенностей поведения, во втором – ограничений на величину шага не существует. Второй случай характерен для решения задач оптимизации и любых других расчетов большого числа вариантов с различными
значениями
параметров,
когда
нас
интересуют
не
промежуточные, а конечные результаты. Особенность первого режима в пакете Model Vision заключается в том, что визуализация поведения осуществляется по ходу решения. Как в первом, так и во втором случае возникает еще одно требование, связанное с моделированием гибридных систем – при численном интегрировании в любом режиме должны быть правильно определены точки смены поведения, или точки переключения. Основная
стратегия
выбора
шага
современных
программных
реализаций численных методов заключается в выборе максимально возможного шага при заданных требованиях к погрешности. Неявно предполагается, что если пользователю нужны более мелкие шаги, чем предлагает решатель, например, для построения графиков, то значения в требуемых точках получаются интерполяцией. Такая стратегия оправдана требованием эффективности и вполне допустима при проведении вычислительного эксперимента самим исследователем, когда он может активно вмешиваться в процесс численного решения, и, если необходимо, самостоятельно управлять величиной шага. Однако при автоматическом управлении экспериментом она приводит к тому, что временные диаграммы, и особенно фазовые, даже в самых именитых пакетах, могут выглядеть правдоподобно, но не быть правильными, и могут ввести в заблуждение даже опытного пользователя. Управлять величиной шага продвижения модельного времени приходится и при определении точки переключения (блок поиска точки переключения). Здесь цена ошибки пропуска очередной точки переключения неизмеримо выше, чем цена не 124
увиденного на графике локального пика, или угловатость фазовой диаграммы. Ошибки в определении точки переключения приводят к качественно другим траекториям. Рассмотрим работу отдельных блоков подробнее. 3.1 Структурный анализ уравнений.
Рассмотренная во второй главе форма представления уравнений примитивных автоматов чрезвычайно сложна для восприятия человеком. Пользователю обычно трудно самостоятельно построить и проверить систему достаточно большой размерности с вспомогательными, не «содержательными» переменными. Как показывает практика, любые сложные формы представления исходной информации являются главным источником ошибок при построении и анализе моделей. Альтернативная форма представления в виде автомата со многими длительными состояниями проще для восприятия. Это объясняется тем, что каждому узлу приписана обычно легко узнаваемая система уравнений небольшой размерности, а структура графа отражает внутреннюю логику поведения изучаемого объекта. Одного этого достаточно, чтобы отказаться от
использования
примитивных
автоматов
в
качестве
основной
конструкции графического языка. Однако есть еще более важное обстоятельство – как уже отмечалось, при использовании гибридных автоматов со многими состояниями в каждый момент смены состояния заново формируется, а затем решается система небольшой размерности без
дополнительных
вспомогательных
уравнений,
что
приносит
значительный вычислительный эффект. Таким образом, автомат со многими состояниями, удобный для пользователя, в каждый отдельный момент времени можно заменить текущим узлом и рассматривать лишь локальную систему уравнений, приписанную ему. Расплачиваться за такой подход приходится тем, что в каждый момент смены состояния необходимо заново формировать совокупную систему. Количество дополнительной работы, требуемой для 125
формирования совокупной системы из локальных систем, должно быть относительно мало, так как она выполняется на этапе исполнения. Процедура формирования совокупной системы и ответ на вопрос о ее разрешимости зависят от типа используемых блоков. В MVS возникают следующие типы блок-схем: •
несвязанные между собой блоки с входами-выходами или контактами,
•
блок-схемы из связанных блоков с входами-выходами,
•
блок-схемы из связанных блоков с контактами,
•
блок схемы из блоков произвольного типа. Композиция несвязанных между собой блоков любого типа приводит
к разрешимой совокупной системе уравнений, если локальные системы разрешимы. Композиция блоков с входами-выходами определена так, что если исходные системы уравнений отдельных блоков разрешимы, то разрешимость совокупной системы зависит только от разрешимости уравнений связи. При объединении блоков с контактами, возможность численного интегрирования уравнений совокупной системы имеющимися методами может быть проверена только на этапе исполнения, когда сформирована итоговая система. Чрезвычайно привлекательным выглядит подход, когда на вход численного решателя подаются задачи того класса, которые он решает наиболее
эффективным
предварительный
анализ
образом.
В
правильности
этом
случае
написанной
необходим
пользователем
системы уравнений и ее численных свойств. В работе [4] приводятся наиболее распространенные формы записи и канонические формы для систем алгебро-дифференциальных уравнений. Первый и наиболее простой тип систем - это системы линейных уравнений A*
ds + B * s = f (t ) с постоянными коэффициентами. Будем считать, что dt
матрицы
входящие
в
эти
уравнения
126
являются
вещественными
квадратными матрицами. Это форма называется неявной или формой с неразрешенными относительно производных линейными уравнениями. Более
сложным
являются
коэффициентами A(t ) *
линейные
уравнения
с
переменными
ds + B (t ) * s = f (t ) . В обоих случаях вводят еще и dt
полуявную форму ds1 + B11 (t ) ⋅ s1 + B12 (t ) ⋅ s 2 = f1 dt B21 (t ) ⋅ s1 + B22 (t ) ⋅ s 2 = f 2 выделяя в векторе неизвестных s дифференциальные s1 и алгебраические s2 переменные. Нелинейные системы обычно представляют в свободной форме
F(
ds , s, t ) = 0 и ее модификации dt
A*
ds + g ( s ) = f (t ) ,когда для dt
разрешения системы относительно производных требуется решение системы линейных алгебраических уравнений. Любая из приведенных форм может вызывать трудности у численного решателя, если не проводить предварительного анализа систем и не преобразовывать их к специальному виду. Рассмотрим две системы, состоящие из двух уравнений: dx −x− y =0 dt 0 = x + 2 y + f (t ) и dx dy + − f1 (t ) = 0 dt dt 0 = x + y 2 − f 2 (t ) Первая из них может быть непосредственно передана решателю, а вторая требует дифференцирования второго уравнения dy d dx + 2 y + f 2 (t ) = 0 . dt dt dt
127
После чего, подставляя значение уравнения (2 y − 1)
в
новое,
находим
dx из исходного дифференциального dt −
dy d dy + f1 (t ) + 2 y + f 2 (t ) = 0 dt dt dt
или
d dy = − f1 (t ) − f 2 (t ) . В обеих формах речь идет об одном dt dt
«независимом» дифференциальном уравнении и одной функциональной зависимости, но во втором случае требуется анализ и дополнительное предварительное преобразование. Еще более ярким является пример системы [5]
dx dy + − x = f (t ) dt dt dx dy + +y=0 dt dt с решением x(t ) = − f (t ) −
d f (t ) dt
d y (t ) = f (t ) dt
.
В данном случае исходная система из двух дифференциальных уравнений на самом деле оказывается уравнением и функциональной зависимостью. Уравнения dx + y = f1 (t ) dt x = f 2 (t ) вообще не содержат ни одного дифференциального уравнения. При «физическом» подходе к моделированию, системы, аналогичные рассмотренным выше, появляются практически всегда [6]. Рассмотрим приводимый авторами Modelica пример. Пусть мы имеем два готовых устройства — электродвигатель постоянного тока M и пропеллер P — и хотим построить из них систему-вентилятор, соединив их жестким валом (рис. 1) 128
Рис. 1. Соединение мотора и пропеллера в единую систему-вентилятор В данном примере мы имеем два очевидных блока — двигатель M и пропеллер P, поведение которых упрощенно задается следующими уравнениями: ⎧ dω k1 I + T ⎪ dt = J ⎪ a (M) ⎨ ⎪ dI = V − k 2ω − Ra I ⎪⎩ dt La
⎧ dω T − k pω , (P) ⎨ = Jp ⎩ dt
где ω , T - угловая скорость и момент на валу двигателя и пропеллера, V — напряжение на двигателе, I — ток якоря, J a , Ra , La — момент инерции, омическое и индуктивное сопротивление якоря соответственно, J p момент инерции пропеллера,
k1 , k 2 , k p - специальные коэффициенты.
Очевидно, что переменные M .V , M .ω , M .T являются внешними для блока M, а переменные P.ω , P.T — для блока P, в том смысле, что мы имеем модели «мотора, вращающего нагрузку» и «нагрузки, вращаемой мотором». И если задать коэффициенты дифференциальных уравнений мотора и нагрузки, то мы получим классические динамические системы независимых физических объектов. Теперь попробуем соединить их в единое устройство, имитируя процесс создания вентилятора из двух готовых типовых элементов. При соединении двигателя и пропеллера абсолютно жестким валом возникают еще два уравнения: ⎧M .ω = P.ω ⎨ ⎩M .T + P.T = 0 129
Полученная итоговая система является алгебро-дифференциальной и требует дифференцирования одного из уравнений. Одним
из
возможных
способов
решения
систем
алгебро-
дифференциальных уравнений рассмотренного типа является приведение исходной системы к новой системе дифференциальных уравнений дифференцированием алгебраических уравнений. Число необходимых дифференцирований, после которых полученная новая система будет системой дифференциальных уравнений относительно всех входящих в нее неизвестных, называется индексом системы. Например, для системы dx1 dx2 + = sin(T ) dt dt x1 + 2 x 2 = 0 1 x1 (0) = 1; x2 (0) = − x1 (0); 2 индекса 1, новой системой будет dx1 dx2 + = sin(T ) dt dt dx1 dx +2 2 =0 dt 1 dt 1 x1 (0) = 1; x2 (0) = − x1 (0); 2 Полученная в результате дифференцирования система дифференциальных уравнений содержит как частный случай решение исходной системы алгебро-дифференциальных уравнений, получающееся при специально выбранных начальных условиях. На сегодняшний день программные реализации численных методов могут работать с системами алгебро-дифференциальных уравнений индекса ноль и единица, и частными случаями систем индекса два и выше. Для организации эффективных автоматических вычислений необходимо – 1. Определить тип решаемой системы. 2. Найти ее индекс и построить систему, передаваемую решателю. 3. Найти согласованные начальные условия для построенной системы. 130
В зависимости от типа системы: 1.
линейная с постоянными коэффициентами,
2.
линейная с зависящими от времени коэффициентами,
3.
линейная относительно вхождения производных и нелинейными алгебраическими уравнениями,
4.
нелинейная общего вида
возможен различный предварительный анализ. Для линейных систем с постоянными коэффициентами существует каноническая форма, позволяющая одновременно и определить индекс системы и построить ее решение. Любая система это типа может быть приведена к форме dy + PBQy = f dt ⎡E 0 ⎤ ⎡C 0⎤ PAQ = ⎢ PBQ = ; ⎥ ⎢0 E ⎥ ⎣0 N ⎦ ⎣ ⎦ PAQ
где P, Q - квадратные невырожденные матрицы, E - единичная, N нильпотентная матрица, индекса k . Это позволяет представить исходную систему в виде dy1 + Cy1 = f1 dt Ny 2 + y 2 = f 2 где первая система – это система обыкновенных дифференциальных уравнений, а вторая – набор формул
k −1
y 2 = ∑ (−1) i N i f 2(i ) , где i =0
f 2(i ) -
производные вектора правой части. Каноническую форму трудно построить численно. Для практического использования
могут
быть
применены
следующие
преобразования
системы. Рассмотрим систему алгебро-дифференциальных уравнениях вида A
dx + Bx = f , x, f ∈ ℜ n , A, B ∈ ℜ n ,n dt 131
с
постоянными
коэффициентами
и
будем
рассматривать
только
квадратные матрицы, так как случай прямоугольных матриц не вносит никаких особенностей. Если матрица А не вырождена, то написанную систему линейных уравнений,
не
разрешенную
относительно
производных,
можно
непосредственно передавать решателю, не меняя ее формы, так как практически все современные решатели могут справляться с этой задачей. Рассмотрим случай, когда ранг матрицы отличен от нуля и меньше числа уравнений. Введем обозначения
vi =
dxi ; C = [ A, B]; z = [v, x]T и будем dt
приводить к треугольному виду матрицу C системы Cz = f . Так как ранг матрицы C меньше числа уравнений, то она примет следующий вид показанный на Рис.2. Обозначим матрицы A и B и вектор f после преобразования через A1 , B1, f1 соответственно. Если матрица B21 , состоящая из последних m строк матрицы B1 , имеет ранг m, то систему 1
B21 x = f m можно разрешить относительно m компонентов вектора x и подставить A11
найденные
выражения
в
полученную
систему
dx + B11 x = f n1−m , где A11 , B11 - матрицы, содержащие первые n-m строк dt
матриц A1 , B1, а вектор f n1−m - первые n-m компонентов вектора f1. Если матрица A11 , меньшая чем исходная A, снова окажется вырожденной, то придется снова приводить ее к треугольному виду. В конце концов, матрица при производных окажется не вырожденной, и процесс завершится. В результате будет построена система дифференциальных уравнений, имеющая единственное решение, и система явных выражений, для остальных компонентов. Однако, если матрица B21 не является матрицей полного ранга, то здесь возможны два случая:
132
•
При приведении матрицы B21 к трапециевидной
появляются
нулевые строки и соответствующие им нулевые компоненты вектора правой части. В этом случае система не доопределена. •
При приведении матрицы B21 к трапециевидной появляются нулевые строки и соответствующие им не нулевые компоненты вектора правой части. В этом случае система не совместна.
A
B
n n 0
m
0
m Рис 2. Вид матрицы С после первого преобразования у треугольному виду. Таким образом, за конечное число шагов либо будет построена система, имеющая единственное решение, дополненная
системой формул, либо
показано, что систему нельзя передавать решателю. Линейные системы с постоянными коэффициентами являются практически важным случаем, поэтому имеет смысл предусмотреть предварительное преобразование системы к указанному виду. К сожалению, в общем случае можно проанализировать только структуру уравнений, ответив на вопрос, не является ли написанная система системой структурного
ранга больше единица. При этом
используется только информация о вхождении переменных в то или иное уравнение,
но
не
собственно
коэффициенты,
что
приводит
к
необходимости говорить о структурном ранге. Примером подобного анализа является предварительный анализ структурной вырожденности 133
больших систем линейных алгебраических уравнений [8]. Напомним, что система линейных алгебраических уравнений с разреженной квадратной матрицей
A:
определитель коэффициентов,
Ax = b называется структурно вырожденной, если ее равен или,
нулю
при
по-другому,
любых если
ее
значениях ранг
не
ненулевых совпадает
с
размерностью системы при любых значениях ненулевых коэффициентов. Структура системы определяется матрицей инцидентности, строки которой соответствуют уравнениям системы, столбцы – неизвестным. Элементы матрицы имеют нулевые значения в соответствующем столбце, если данная переменная не входит в рассматриваемое уравнение, и единицы – в противном случае. В нашем случае цель анализа несколько шире - необходимо не только определить структурный ранг системы, но и автоматически сформировать итоговую систему, передаваемую решателю. Итоговая форма уравнений определяет, какой из численных методов может быть использован для получения решения. Уравнения в свободной форме F ( MVS только программе
ds , s, t ) = 0 могут быть переданы в dt
DASSL. Уравнения в полуявной форме
(дифференциальные уравнения с ограничениями или система индекса 1 в форме Хессенберга) ds = f (t , s, y ) dt 0 = g (t , s, y ) при невырожденной матрице
∂g , могут быть переданы любому ∂z
численному методу, из числа имеющихся в библиотеке. Часто рассматривают также практически важный случай систем индекса 2 в форме Хессенберга
134
ds = f (t , s, y ) , dt 0 = g (t , s ) однако эта система уже требует дифференцирования. Полуявная форма может также быть представлена в виде (метод фиктивных производных) [8] dw =y dt ds dw = f (t , s, ) . dt dt dw 0 = g (t , s, ) dt Для того чтобы интегрировать уравнения в свободной форме любым численным методом, их преобразуют к полуявной форме [8] ds =z , dt 0 = f (t , s, z ) при этом индекс увеличивается на единицу по отношению к исходной системе. Вопрос о предварительном автоматическом анализе и преобразовании уравнений, возникающих при моделировании гибридных систем, был рассмотрен в статье: Constantios C. Pantelides. The consistent initialization of differential-algebraic systems. SIAM J. Sci. Stat. Comput. Vol.9, № 2, March 1988. В этой работе ставится вопрос о том, какое минимальное число уравнений исходной системы надо продифференцировать, чтобы найти независимые дифференциальные
уравнения
и
функциональные
зависимости,
и
предлагается следующая форма исходных уравнений, которая для системы dx1 dx2 + = sin(T ); dt dt x1 + 2 x2 = 0;
1 x1 (0) = 1; x2 (0) = − x1 (0); 2 135
будет выглядеть так dx2 dx ; z1 = 1 ; z1 + z 2 = sin(T ); dt dt 1 x1 + 2 x2 = 0; x1 (0) = 1; x2 (0) = − x1 (0) 2
z2 =
Эта система после анализа и переформирования превратиться в систему, dx2 dx1 ; = z1 ; z1 = sin(T ) − z 2 ; dt dt , 1 x1 + 2 x2 = 0; x1 (0) = 1; x2 (0) = − x1 (0); 2
z2 =
требующую либо явного выражения только для производной
dx 2 , либо dt
численного дифференцирования только переменной x2 и специального 1 начального условия x2 (0) = − x1 (0) для второй переменной. 2
Новые уравнения содержат производные, для которых может быть не задано явное выражение, и эту операцию придется выполнять численно, так
как
предусмотреть
их
появление
заранее
не
представляется
возможным. При обнаружении таких уравнений можно рекомендовать пользователю выполнить символьное дифференцирование и внести соответствующие изменения в модель. Предложенный в статье алгоритм позволяет провести структурный анализ и указать, какие начальные условия являются независимыми, а какие являются
следствием
алгебраических
уравнений.
В
матричном
представлении он сводится к поиску трансверсали для матрицы инцидентности. В MVS предлагается работать не только со свободной формой, но с дополнительными частными случаями возможных форм уравнений и использовать единый прием анализа и преобразования уравнений. 3.2 Структура анализатора в пакете MVS.
Анализатор пакета старается выделить типы уравнений, к которым можно применить наиболее простой и эффективный способ анализа и построить 136
уравнения, к которым можно применить как можно большее число программных реализаций численный методов, из числа имеющихся в пакете.
Разнообразие
методов
позволяет
пользователю,
в
случае
возникновения сомнений, сравнить решения между собой. 3.2.1 Вычислимые последовательности формул.
Рассмотрим
вектор
s
размерности
n,
а
также
вектор-функцию
g ( s ) : ℜ n → ℜ m , n ≠ m . Будем говорить об упорядоченных формулах или последовательности формул si = g i ( s ); i = 1, m , если формулы следует вычислять в заданном порядке. Разделим компоненты вектора s на два подвектора s1 и s 2 , размерности n1 , n2 , n1 + n2 = n соответственно, и будем называть компоненты вектора s1 данными, а компоненты вектора s 2 вычисляемыми
переменными.
Назовем
последовательность
формул
s k2 = g k ( s1 , s 2 ), k = 1, n 2 вычислимой, если для каждого k в правую часть
формулы входят только данные s1 или ранее вычисленные переменные вектора
s2 .
Наша
задача
определить,
является
ли
конкретная
последовательность формул вычислимой, а если нет, то можно ли переупорядочить ее так, чтобы она таковой стала. Для ответа на эти вопросы введем матрицу структуры Q , столбцам которой соответствуют вычисляемые переменные, взятые в том же порядке, как они появляются в последовательности формул, а строкам – формулы последовательности. Пометим вхождение i-той компоненты вектора s 2 в k-тую формулу единицей в матрице структуры q k ,i = 1, и нулем ее отсутствие - q k ,i = 0 . Одним
из
возможных
способов
определение
вычислимости
последовательности формул связано с возможностью приведения ее к нижнему треугольному виду. Пример 1. Вычислимая последовательность формул и ее матрица структуры Q . 137
s 22
s32
s32 = f1 = s11 + s12 s22 s12
= f2 =
s12
= f3 =
s13
− s32
s12
f1
0
0
1
f2
1
0
0
f3
0
0
0
Результат приведения матрицы структуры Q к нижнему треугольному виду. s12 s32 = f1 = s11 + s12 s 22
= f2 =
s12
−
s32
s12 = f 3 = s31
s 22
s32
f3
0
0
0
f1
1
0
0
f2
0
1
0
Вычислимая последовательность: f 3 , f1 , f 2 Условия
вычислимости
последовательности
формул
можно
сформулировать следующим образом. Для того чтобы последовательность формул
была
вычислимой
(структурно
невырожденной),
должна
существовать матриц перестановок P1 , такая, чтобы матрица P1 (Q) P1T имела бы блочно-диагональную структуру, и каждый блок являлся бы строго нижней треугольной матрицей (то есть матрицей с нулевой диагональю). Действительно, существование блочно-диагональной матрицы со строго нижними
треугольными
блоками
и
обеспечивает
возможность
последовательно вычислять формулу за формулой, опираясь либо только на данные, либо на уже вычисленные переменные. Конструктивный способ построить нужную форму может быть записан в виде алгоритма. Обозначим через i номер строки матрицы структуры. 138
Алгоритм_3.1 определения вычислимости последовательности формул i =1 До тех пор, пока i ≠ n − 1 Найти все строки у которых q kj = 0, j = i, n и расположить их последовательно, начиная с i -той строки. При перемещении каждой найденной строки на новое место, а) размещенную там строку помещать на место найденной, б) менять местами столбцы с номерами, соответствующими старому положению найденной строки и новому. Увеличить значение i на число перемещенных строк. Конец цикла Этот же алгоритм может быть реализован с меньшими затратами. Алгоритм_3.2 определения вычислимости последовательности формул i =1 До тех пор, пока i ≠ n − 1 Найти строку, у которой q kj = 0, j = 1, n − i + 1 , и поместить ее номер в массив p (i ) = k . Вычеркнуть из матрицы k -тую строку и k -тый столбец, образовав новую матрицу меньшей размерности. i = i +1 Конец цикла Завершение работы алгоритма приведет либо к построению блочной нижней треугольной, либо блочной матрицы. В первом случае будет построена вычисляемая последовательность формул, во втором – вычислимая последовательность максимально возможной длины и система уравнений. Замечание. Формулы редко образуют последовательность с полностью заполненной треугольной матрицей. Скорее всего, эта матрица окажется разреженной, и тогда те же алгоритмы должны быть написаны с 139
применением соответствующих схем упаковки и техники работы с разреженными матрицами. 3.2.1 Структурно невырожденные системы нелинейных алгебраических уравнений
Рассмотрим вектор
s
размерности
n
и вектор-функцию v(s )
размерности m . Значение m не обязательно совпадает со значением n . Будем называть систему v( s ) = 0 - формально определенной, если число уравнений равно числу неизвестных - n = m ; переопределенной, если число уравнений больше числа уравнений - n > m ; и недоопределенной, если
число
уравнений
меньше
числа
неизвестных
-
n < m.
Переопределенные и недоопределенные системы назовем структурно вырожденными.
Рассмотрим
задачу
об
определении
структурной
невырожденности формально определенной системы уравнений v( s ) = 0 , где v вектор-функция размерности n . Сопоставим формально определенной системе v( s ) = 0 квадратную матрицу структуры
Q , строкам которой соответствуют уравнения
системы, а столбцам – компоненты вектора s . Пометим вхождение i-той компоненты вектора s в k-тое уравнение единицей в матрице структуры q k ,i = 1 , и нулем ее отсутствие - q k ,i = 0 . Очевидно, что структурная невырожденность системы связана с рангом матрицы Q , и если rank (Q) = n , то система структурно не вырожденна. Конструктивный способ определить структурную невырожденность системы
заключается
в
возможности
последовательно
выражать
компоненты вектора неизвестных si = g i ( s1 ,..si −1 , si +1 ,...s n ), i = 1, n , начиная с первого уравнения системы, и подставлять в оставшиеся j = i + 1, n (прямой ход процесса подстановки) до тех пор, пока не будет построено уравнение, зависящее только от одной переменной. Для определения структурной невырожденности необязательно уметь явно строить явно определенную
140
подстановку
si = g i ( s1 ,..si −1 , si +1 ,...s n ) ,
нужна
только
информация
о
вхождении неизвестных в соответствующее уравнение. Прямой ход процесса подстановки, можно описать последовательностью матриц Qi , i = 0, n − 1; Q0 = Q . Каждая из матриц, начиная с i = 1 , совпадает по форме с матрицей, соответствующей исключению i-той неизвестной
в
методе
Гаусса
при
решении
систем
линейных
алгебраических уравнений. Единственным отличием процесса исключения в методе Гаусса и процесса проверки невырожденности является правило формирования новых строк в подматрице (i − 1) × (i − 1) на каждом шаге. При «подстановке» i-той неизвестной в оставшиеся j = i + 1, n уравнения при проверке невырожденности, в новом уравнении число единиц может только увеличится – к уже существующим единицам j-той строки добавляются не совпадающие по положению единицы i-той строки. Этот процесс в точности эквивалентен процессу появления новых ненулевых элементов в методе Гаусса при использовании любого ненулевого элемента в столбце в качестве ведущего, что позволяет использовать для определения
невырожденности
уже
существующее
программное
обеспечение. Таким образом, если существует матрица перестановок P1 , такая что матрицу P1Q нелинейной алгебраической системы описанным выше алгоритмом формальной подстановки можно привести к верхней треугольной матрице, то система уравнений структурно невырождена. Пример 2 . Система уравнений и ее матрица структуры, где - x, y, z , w неизвестные, ci - константы.
x + y − c1 = 0 = f 1 x * y − c3 = 0 = f 3
f1 f2 f3
z * w − c4 = 0 = f 4
f4
x − y − c2 = 0 = f 2
y
x
1 1 1 0
141
w
z
1 1 1 0
0 0 0 1
0 0 0 1
Результат работы алгоритма псевдо-исключения показывает, что данная система структурно вырождена. y
x
x + y − c1 = 0 = f 1 x * y − c3 = 0 = f 3
f1 f2 f3
z * w − c4 = 0 = f 4
f4
x − y − c2 = 0 = f 2
1 0 0 0
w
z
1 1 0 0
0 0 0 1
0 0 0 1
Пример 3. Структурно-невырожденная система может быть численно вырожденной. Исходная система и ее матрица структуры.
x + y − c1 = 0 = f 1 z * w − c3 = 0 = f 3
f1 f2 f3
z * w − c4 = 0 = f 4
f4
x + y − c2 = 0 = f 2
y
x
1 1 0 0
w
z
1 1 0 0
0 0 1 1
0 0 1 1
Результат псевдо-исключения, показывает что система и структурноневырождена, однако конкретный набор коэффициентов делает ее числено вырожденной.
x + y − c1 = 0 = f 1 z * w − c3 = 0 = f 3
f1 f2 f3
z * w − c4 = 0 = f 4
f4
x + y − c2 = 0 = f 2
y
x
1 0 0 0
w
z
1 1 0 0
0 0 1 0
0 0 1 1
3.2.3 Системы нелинейных алгебраических уравнений с подстановками.
Обычно при записи уравнений часто используются формулы как подстановки. Подстановки вводит сам пользователь, но целесообразно их
142
пытаться находить и автоматически, так это есть ничто иное, как оптимизация за счет однократного вычисления общих выражений. В языке MVL нет типа данных «уравнение» и «формула». Это объясняется следующим. Исходное представление пользователем выражений в виде уравнений и формул не всегда оказывается таким же в итоговой системе уравнений. Достаточно привести в качестве примера блок-схему кольца для двух блоков с формулами y = f (x) , y = g (x) , x1 = y 2 , x2 = y1 , чтобы убедиться,
в
том,
алгебраических
что
в
уравнений.
итоге В
возникает
некоторых
система
пакетах,
нелинейных
все
формулы
превращаются в уравнения, но это не целесообразно. Если все-таки формула
в
результате
оказывается
уравнением,
формируется
предупреждение о том, что желание пользователя не может быть удовлетворено, и необходимо либо проверить описание задачи, либо согласится «с мнением» компилятора. Очевидно,
что
для
нелинейных
алгебраических
уравнений
с
использованием подстановок, матрица структуры должна быть приводима к блочно-треугольной форме, где диагональный блок, соответствующий формулам,
должен
быть
строго
нижним
треугольным,
а
блок,
соответствующий искомым переменным – верхним треугольным. Для переопределенных систем пользователю может быть интересен список уравнений, которые следует удалить, для того чтобы оставшаяся формально
определенная
система
максимально
возможного
оставалась структурно невырожденной. 3.3.4 Системы дифференциальных уравнений.
Свободная форма F (
ds , s, t ) = 0 преобразуется в пакете к форме dt ds =z , dt F ( z , s, t ) = 0
и одновременно находится структурный индекс полученной системы. 143
ранга
Уравнения с постоянными коэффициентами A *
ds + B * s = f (t ) dt
приводятся к форме ds1 ds + A12 2 + B11 ⋅ s1 + B12 ⋅ s 2 = f1 , dt dt B21 ⋅ s1 + B22 ⋅ s 2 = f 2 A11
и одновременно находится индекс полученной системы. Уравнения с переменными коэффициентами
A(t ) *
ds + B (t ) * s = f (t ) dt
приводятся к форме ds1 ds + A12 (t ) 2 + B11 (t ) ⋅ s1 + B12 (t ) ⋅ s 2 = f1 , dt dt B21 (t ) ⋅ s1 + B22 (t ) ⋅ s 2 = f 2 A11 (t )
но находится только структурный ранг системы. Уравнения A(t ) *
ds + g ( s ) = f (t ) приводятся к форме dt ds1 ds + A12 (t ) 2 + g1 ( s1 , s 2 ) = f1 dt dt g 2 ( s1 , s 2 ) = f 2 A11 (t )
и также находится только структурный ранг системы. 3.3 Поиск точки переключения
Проблема поиска точки переключения является одной из ключевых при моделировании гибридных систем, так как очевидно, что ошибки в этом случае приводят к качественно неверному решению. Надежного алгоритма поиска точки переключения с заданной точностью, пригодного как для режима визуализации, так и режима максимально быстрого счета, не существует и, поэтому, можно говорить только о частных случаях и эвристиках. К основным проблемам поиска точки переключения следует отнести: • Построение надежного алгоритма локализации очередной точки переключения с заданной точностью (глобальный поиск). 144
• Построение быстрого алгоритма поиска локализованной точки (локальный поиск). Первая проблема связана с выбором величины шага модельного времени. Решение второй проблемы зависит от того, какая информация о свойствах решения доступна численному алгоритму. Смена поведения в MVS возможна после: •
истечения заданного времени,
• получения сообщения, • наступления истинности заданного предиката. Первые два случая не вызывают затруднений, так явно определяют точку переключения, однако последний случай может потребовать больших вычислительных затрат и привести к качественным ошибкам. Во входном языке пакета условие смены поведения можно записывать в виде: • булевской функции Prb : boolean → boolean • предиката Prg : arg of any MVS type → boolean . Оба предиката допускают только применение алгоритмов, опирающихся только назначения функций и не использующих производных, и потому достаточно медленных. В гибридных системах поиск точки переключения может осложняться тем, что точка смены поведения может лежать на границе множества допустимых значений фазового вектора: а) текущего длительного состояния, б) нового длительного состояния, в) обоих состояний, и решение не может быть продолжено за точку переключения. Рассмотрим в качестве примера три гибридных системы. Пример А.
145
⎧ ds ⎪ = a1 s + b1 ; a1 = −1; b1 = −1; s (0) = 1 ; while y > 0 ⎨ dt ⎪⎩ y = s ⎧ ds ⎪ = a 2 s + b2 ; a1 = −1; b2 = 1; ⎨ dt ⎪⎩ y = s
; while y < s (0)
Если этот пример рассматривать как пример гибридного автомата, имеющего периодическое решение, то в нем может только неправильно вычисляться только период. Пример Б
⎧ ds ⎪ = a1 s + b1 ; a1 = −1; b1 = −1; s (0) = 1 ; while y > 0 ⎨ dt ⎪⎩ y = s ⎧ ds ⎪ = a 2 s + b2 ; a1 = −1; b2 = 1; ; else. ⎨ dt ⎪y = s ⎩ Во втором примере, если не произойдет чуда и численный метод не остановится при выходном значении переменной y, равном нулю, дальнейшие вычисления будут невозможны, при попытке вычислить квадратный корень из отрицательно числа. Пример В ⎧ ds ⎪ = a1 s + b1 ; a1 = −1; b1 = −1; s (0) = 1 ; while y > 0 ⎨ dt ⎪y = s ⎩ ⎧ ds ⎪ = a 2 s + b2 ; a1 = −1; b2 = 1; ⎨ dt ⎪y = s ⎩
; while y < 0
И, наконец, в последнем примере хорошо видно, что точкой переключения является не интервал как было в предыдущих примерах, а действительно точка, а именно y = 0 и продолжение решения невозможно ни слева, ни справа.
146
В последнее время все чаще возникает необходимость записывать условие смены поведения в виде корня алгебраического уравнения, в общем случае нелинейного: ds1 ds = f ( s1 , t ) → 2 = f ( s 2 , t ) . dt dt when g ( s1 ) = 0 Начнем рассмотрение блока поиска точки переключения с алгоритмов, предназначенных для локализации единственной точки переключения для уравнений с продолжаемым (за точку переключения) решением. 3.3.1 Поиск в условиях, когда можно вычислить только значение предиката в окрестности точки переключения.
В данном случае в семействе Model Vision применяется метод деления отрезка пополам и в качестве нового значения модельного времени выбирается значение правой точки окончательного локализующего интервала. Новые начальные условия в этой точке вычисляются по значениям
текущих
переменных
на
левом
конце
окончательного
локализующего интервала. Такой подход вполне оправдан для случаев, когда следующим текущим состоянием является длительное состояние. Если же следующим текущим оказывается одно или несколько «мгновенных» состояний (предикат смены поведения истинен уже в начальной точке), то в гибридном времени, вместо отрезков нулевой длительности для непрерывного времени, соответствующим таким состояниям, появляются отрезки не нулевой длины, равной длине окончательного локализующего интервала. Таким образом, во всех случаях, точка переключения при численных расчетах, превращается в интервал. Это обстоятельство всегда влияет на величину интервалов непрерывного поведения (погрешность в гибридном времени), но может повлиять на новое текущее поведение (погрешность определения нового текущего состояния).
147
Рассмотрим в качестве примера случай, когда смена поведения текущего состояния
определяется
сменой
знака
переменной
s ≥ 0,
s = α ⋅ (t − t*),α → 0 , а начальные условия нового текущего состояния выходной переменной y , y = β ⋅ (t − t*), β → ∞ . В этом случае новые начальные условия могут сильно зависеть от ошибок в локализации точки переключения и значения выходной переменной (чувствительности уравнений для новых начальных условий по отношению к возмущению входных данных). В пакете не делается различия между временем и переменными состояния, и все значения, передающиеся в следующее текущее состояние, определяются с одинаковой абсолютной и относительной погрешностью. В
дальнейших
версиях
предусматривается
возможность
выбирать
различные значения погрешность для различных переменных. 3.3.2 Поиск в условиях, когда можно вычислить не только значение функции, определяющей точку переключения, но и ее производную.
В этом случае, после того как точка переключения локализована, вместо неравенств, описывающих смену поведения, строятся уравнения, и применяется различные модификации метода Ньютона. Уравнения строятся по следующим правилам: - все логические выражения в форме неравенств для вещественных переменных и их отрицания приводятся к уравнениям. s ( x) ≤ 0 → s( x) = 0 . - логические выражения, связанные логическим «И», рассматриваются как совместная система уравнений - логические выражения, связанные логическим «ИЛИ», рассматриваются как независимые системы уравнений. Уравнения сортируются по степени сложности (как мера сложности рассматривается порядок уравнений), и решаются последовательно, пока не будет найдено решение хотя бы одной системы. Помимо
очевидного достоинства этой схемы, в случае быстрой
сходимости к корню, существует и столь же очевидные недостатки – 148
возможная медленная сходимость или отсутствие сходимости некоторой системы. 3.3.3 Поиск в условиях, когда точка переключения определяется как корень уравнения на решении, описывающем поведение.
Здесь используются те же алгоритмы, что и в предыдущем пункте, только теперь уравнения уже заданы, и формировать их не нужно. Рассмотрим
особенности
локализации
корня
в
условиях
непродолжаемости решения за точку переключения. В случаях, когда пользователь не может изменить описание системы и сделать ее продолжаемой, можно модифицировать алгоритмы поиска, так чтобы работать только в допустимой области. Одним из способов, предложенных в работе [10] применительно к поиску точки переключения, является алгебраического
уравнения,
переход от поиска корня нелинейного к
поиску
стационарного
режима
дифференциального уравнения, для которого положение равновесия и является корнем исходного алгебраического уравнения. В вычислительной математике [11] такой прием называется поиском корня методом установления. Очевидным достоинством этого приема является то, что автоматически
обеспечивается
невозможность
перейти
за
точку
переключения. Рассмотрим
проблему
построения
по
заданному
алгебраическому
уравнению, уравнения дифференциального, с устойчивым состоянием равновесия, совпадающим с корнем алгебраического уравнения. Пусть требуется найти корень функции g ( s ) = 0 на решении уравнения ds = f ( s ), s (0) = s 0 . В написанной системе осуществим переход от dt независимой переменной t к новой независимой переменной h. Переход к новой независимой переменной и дифференцирование функции g ( s) по независимой переменной приводит к системе:
149
ds dt = f ( s) ; dh dh dg ∂g ∂s dt ∂g dt = = f (s) ; dh ∂s ∂t dh ∂s dh Как видно из последней записи, зависимость
dt пока произвольна, и dh
ее можно выбрать, так чтобы корень исходного алгебраического уравнения оказался бы устойчивой стационарной точкой новой системы. Обозначим эту зависимость через R, положив
dt =R dh
ds = f ( s ) R , s ( 0) = s 0 ; dh dg ∂g ∂s dt ∂g = = f ( s ) R, g (0) = g ( s 0 ); dh ∂s ∂t dh ∂s dt = R; t (0) = 0 dh Выбор функции R в виде R = ± g (s ) приводит к наиболее простой схеме ds = f ( s ) g ( s ), s (0) = s0 ; dh ∂g dg =± f ( s ) g ( s ), g (0) = g ( s0 ); dh ∂s dt = g ( s ); t (0) = 0 dh в которой, однако, необходимо дополнительно выбирать знак, для обеспечения устойчивости. Примером может служить исходная система
ds = as + b, s (0) = s 0 и dt
предикат s > c, c = const , которые превращаются в систему ds = ±(as + b)( x − c), s (0) = s0 ; dh dg = ± (as + b)( x − c), g (0) = g ( s0 ); dh 150
dt = ±( x − c); t (0) = 0 dh −1
⎛ ∂g ⎞ Выбор функции в виде R = − g ( s )⎜ ⎟ обеспечивает устойчивость ⎝ ∂s ⎠ [11] и приводит к уравнениям −1
ds ⎛ ∂g ⎞ = −⎜ ⎟ g ( s ) f ( s ), s (0) = s0 ; dh ⎝ ∂s ⎠ dg = − g ( s ) f ( s ), g (0) = g ( s0 ); dh −1
dt ⎛ ∂g ⎞ = −⎜ ⎟ g ( s ); t (0) = 0 dh ⎝ ∂s ⎠
И, наконец, выбор функции в виде (для одной независимой −1
g ( s ) ⎛ ∂g ⎞ переменной) R = −γ ⋅ ⎜ ⎟ , γ = const приводит также к устойчивой f ( s ) ⎝ ∂s ⎠ схеме из статьи [10]: −1
ds ⎛ ∂g ⎞ = −γ ⋅ ⎜ ⎟ g ( s ), s (0) = s0 ; dh ⎝ ∂s ⎠ dg = −γ ⋅ g ( s ), g (0) = g ( s0 ); dh dt = −γ dh
−1
⎛ ∂g ⎞ g ( s ) ⋅⎜ ⎟ ; t (0) = 0 ⎝ ∂s ⎠ f ( s )
3.4 Построение графиков функций.
Автоматизация вычислений во многих программных средах стала настолько привычной, что мы подсознательно считаем результаты машинных вычислений безусловно правильными и начинаем их проверять в
последнюю
очередь.
К
числу
интуитивно
«безошибочных»
математических операций относится и такая «простая», как рисование графика гладкой функции. В математических пакетах (Maple, Mathematica, Matlab, MathCad), как правило, существует отдельная операция построения графика гладкой функции – обычно называемая Plot , и операция одновременного решения 151
уравнения и его визуализации (например, DEplot в Maple для решения дифференциального уравнения). С точки зрения пользователя, которому надо всего лишь увидеть и проанализировать поведение функции или решение уравнения, обе операции отличаются лишь способом задания исследуемой функции. 3.4.1 Проблемы, возникающие при построении графиков.
Проверим, как математические пакеты справляются с простейшей задачей – зададим одновременно гладкую функцию и в виде явного выражения и с помощью дифференциального уравнения, и сравним их графики, построенные различными процедурами. Решать эту задачу будем так, как решал бы пользователь, не сомневающийся в том, что нарисованные графики будут идентичны во всех случаях, то есть выберем значения параметров процедур равными задаваемыми по умолчанию. В качестве тестовой функции выберем функцию f (t ) = t + A * e
−
(t − p )2
σ
.
Напишем дифференциальное уравнение, которому она удовлетворяет, в форме
− dx 2(t − p ) = g (t ), g (t ) = f ' (t ) = 1 − A*e dt σ
(t − p )2
σ
, x(0) = f (0)
и будем
рисовать графики функций f (t ) и x(t ) на промежутках [0, T ], T = 2, 4, 12 при заданных значениях
A = 1; p = 1; σ = 0.01 с помощью различных
математических пакетов (Таблица 1). Таблица 1. Тестируемые пакеты и процедуры пакет
Построение
Решение
дифференциального
графика
уравнения и построение графика
Mathematica Plot
NDSolve
Maple
Plot
Deplot
Matlab
Plot
OdeSolver* Solver = ’45’; ‘23’…
*) - В пакетах Maple и Mathematica численный метод, используемый для решения дифференциальных уравнений, является параметром процедуры. 152
По умолчанию в Maple используется RKF45, а в пакете Mathematica – Lsode. В пакете Matlab метод выбирается пользователем, c помощью суффикса Solver в имени процедуры, например Ode45. Процедура Ode45 использует тот же метод Рунге-Кутта-Фельдберга, что и в пакете Maple и рекомендуется как первоначальная для любой системы дифференциальных уравнений, свойства которой заранее неизвестны. График функции f (t ) при значении T = 2 приведен на Рис.3. На Рис. 4 показаны одновременно графики функций f (t ) и g (t ) .
2
1.5
1
0.5
0.7
0.8
0.9
1.1
1.2
1.3
Рис. 3 График функции f (t ) при значении T = 2 30
20
10
0.4
0.6
0.8
1.2
1.4
1.6
-10
-20
-30
Рис. 4. Графики функций f (t ) и ее производной g (t ) . Прекрасно зарекомендовавшие себя пакеты Maple, Mathematica и Matlab одинаково хорошо воспроизводят графики функций f (t ) и x(t ) при 153
значении параметра T = 2 . В тоже время, при воспроизведении графиков в пакете Mathematica, уже при T = 4 , вместо ожидаемого «правильного» графика (Рис. 5) 4
3
2
1
1
2
3
4
Рис. 5. «Правильный» график функции f (t ) при значении T = 4 , построенный с помощью процедуры Plot пакета Mathematica мы наблюдаем только линейную составляющую функции x(t ) (Рис. 6)
4
3
2
1
1
2
3
4
Рис. 6. «Неправильный» график функции x(t ) при значении T = 4 , построенный с помощью процедуры NDSolve пакета Mathematica Полученный результат заставляет, прежде всего, проверить, как изменится характер графиков функции x(t ) , при смене численных методов. Результаты экспериментов приведены в Таблицах 2-4. При значении T = 12 с поставленной задачей правильно справилась только процедура Ode23 пакета Matlab. 154
Таблица 2. Графики функции x(t ) . Maple, T=4 метод
график
gear
Правильный
mgear
Неправильный
lsode
Пик на графике есть, но он другой формы
Rkf45
Правильный
Dverk78
Правильный Таблица 3. Графики функции x(t ) . Mathematica,. T=4
метод
график
Lsode
Неправильный
Adams
Неправильный
Gear
Неправильный
RungeKutta
Неправильный Таблица 4. Графики функции x(t ) . Matlab, T=4
метод
график
Ode45
Правильный
Ode23
Правильный
Ode113
Неправильный
Ode15s
Неправильный
Ode23s
Неправильный
Ode23t
Неправильный
Ode23tb
Правильный
Исходя из того, что процедура Plot во всех пакетах успешно рисует графики
при
любых
значениях
параметра
T = 2, 4, 12 ,
можно
предположить, что источником ошибок является численный метод, поставляющий исходную таблицу для аналогичной процедуры при 155
решении уравнений. Действительно, например, для T = 4 , алгоритм выбора шага интегрирования процедуры Ode113 пакета Matlab «не замечает» резкого роста производной в окрестности точки t = 1 и, при правильном вычислении каждой отдельной точки таблицы, неправильно воспроизводит поведение функции в целом (Таблица 5). В пакете Maple, численные методы можно вызвать непосредственно для построения численного решения в заданной точке t = 1 и убедиться в некорректности именно алгоритма выбора шага при воспроизведении решения на больших промежутках. Как и следует ожидать, значения x(t ) , при t = 1 , оказываются вычисленными в этом случае с заданной по умолчанию
точностью
всеми
имеющимися
в
пакете
численными
методами. Таблица 5. Численное решение для функции x(t ) , полученное процедурой Ode113 при T = 4 t
x (t )
0.5181
0.5181
0.7181
0.7181
1.1181
1.1181
1.5181
1.5180
1.9181
1.9180
Особое положение в этих экспериментах занимает пакет MathCad. Процедура построения графика содержит в качестве параметра шаг сетки по оси абсцисс, а промежуточные точки, скорее всего, получаются интерполированием, поэтому вся построения
лежит
на
ответственность
пользователе.
за
правильность
Процедура
решения
дифференциального уравнения успешно справляется с любыми из приведенных выше интервалов времени. Однако винить только численные методы в неправильном построении графиков нельзя. 156
3.4.2 Аккуратные графики
Рассмотрим
гладкую
вещественную
функцию
x(t )
одной
вещественной переменной t на промежутке [0, T ]. Выберем сетку по оси x i : x ( 0) = ~ x1 < ~ x2 < ...~ x N = x(T )} . На практике ее задает либо ординат {~ пользователь,
либо
она
выбирается
автоматически,
по
оценкам
максимального и минимального значения функции на рассматриваемом промежутке. Для аккуратного построения графика функции достаточно, по выбранной сетке, построить соответствующую сетку по оси абсцисс
{t i : 0 = t1 < t 2 < ...t N = T } , и, тем самым, множество опорных точек {(t i , ~ x (t i )), i = 1, N } ,
таких,
что
∀i = 1, N − 1 ⇒ ~ x (t i ) ≤ max( x(t )) & min( x(t )) , t ∈ [t i , t i +1 ] ≤ ~ x (t i +1 ) .
Число
точек по оси абсцисс может оказаться недостаточным для восприятия рисунка, как графика гладкой функции, поэтому внутри любого интервала [t , t ] следует использовать дополнительные точки (t ′ , ~ x (t ′ )) , лишь бы i
i +1
k
k
x (t k′ ) не выходили за границы ~x (t i ), ~x (t i +1 ) . Если цена вычисления значения ~ дополнительных использовать
точек
любую
высока, ее
то
вместо
аппроксимацию,
функции с
меньшей
x(t )
можно
стоимостью
вычислений. На Рис. 7 показана функция (пунктирная линия), для которой была правильно выбрана сетка по оси абсцисс, и ее график (сплошная линия) для заданных опорных точек. На Рис. 8 показана функция (сплошная линия), для которой неправильно выбрана сетка по оси абсцисс. Для построения
ее
графика
(пунктирная
линия),
была
использована
интерполяционная функция. Как хорошо видно, в последнем случае мы сталкиваемся с тем же эффектом, что и при рисовании графиков решения дифференциального уравнения. Алгоритм, рисующий график на заданной сетке, должен либо аккуратно строить график, либо сообщать о необходимости изменить сетку. 157
Рис. 7 Пример аккуратно нарисованного на заданной сетке графика
Рис. 8. Пример неправильно построения опорных точек и неаккуратно нарисованного на заданной сетке графика. Возможна более жесткая постановка задачи. По заданной сетке, алгоритм должен уметь выделять участки на оси абсцисс, где можно аккуратно построить график, и участки, где это сделать невозможно, и рисовать график так, как, например, делает это пакет Mathematica (Рис. 9). 10 7.5 5 2.5 0.25
0.5
0.75
1
1.25
1.5
1.75
-2.5 -5 -7.5 -10
Рис. 9. График производной функции f (t ) , нарисованный процедурой Plot пакета Mathematica, при явно заданном ограничении на максимально допустимое значение по оси ординат. 158
3.4.3 Синхронное и асинхронное построение графиков
Будем различать два способа построения графиков – синхронный (одновременный
с
построением
таблицы)
и
асинхронный.
При
асинхронном способе, что характерно для математических пакетов, сначала строиться вся таблица необходимых опорных точек, а затем вызывается процедура построения графика. Обычно в этом случае при вычислении
опорных
точек
используется
сама
функция
x(t ) ,
а
дополнительные точки, необходимые для создания эффекта гладкости, находятся с помощью интерполирующей функции. При синхронном способе последовательно находится очередная точка сетки по оси абсцисс и немедленно прорисовывается очередной участок графика. Этот способ (его также иногда называют анимацией, хотя всего лишь рисуется след точки) характерен для пакетов, моделирующих динамические системы (Simulink, Model Vision Studium, AnyLogic). Последовательное вычисление точек по оси абсцисс в синхронном способе является очень важным, так как ось абсцисс в этом случае является осью времени. Алгоритмы синхронного и асинхронного построения графиков могут различаться
по
виду
используемой
информации
–
алгоритмы,
использующие только значения функции x(t ) , алгоритмы, которым доступна также производная функции и так далее. Учитывая, что при моделировании динамических систем, функция x(t ) обычно является вектор-функцией (ограничимся вектором с двумя координатами x(t ) ∈ ℜ 2 ) и может быть задана различными способами, будем различать виды задания: 1. Явным способом в виде вектор-функции x(t ) = [ f1 (t ), f 2 (t )] 2. В виде системы дифференциальных уравнений ⎧ dx1 ⎪⎪ dt = f1 ( x1 , x2 , t ), x1 (0) = x10 ⎨ ⎪ dx2 = f ( x , x , t ), x (0) = x 2 1 2 2 20 ⎪⎩ dt 159
3. В виде системы алгебро-дифференциальных уравнений ⎧ dx1 = f1 ( x1 , x2 , t ), x1 (0) = x10 ⎪ dt ⎨ ⎪⎩0 = f 2 ( x1 , x2 , t ), x2 (0) = x20 с
согласованными
(или
несогласованными)
начальными
условиями по второй (алгебраической) компоненте. 4. В виде системы алгебраических уравнений ⎧0 = f1 ( x1 , x 2 , t ), x1 (0) = x10 ⎨ ⎩0 = f 2 ( x1 , x 2 , t ), x 2 (0) = x 20 с
согласованными
(или
несогласованными)
начальными
условиями по обеим компонентам. Помимо основной задачи построения графика функции рассмотрим
дополнительную
x1 = g ( x2 ) ,
заданной
задачу
построения
параметрически:
графика
x(t ) ,
функции
x1 = g ( x2 ); x1 = x1 (t ); x2 = x2 (t ) ,
необходимую для построения фазовых траекторий при исследовании поведения динамических систем. То, что проблемы существуют и при синхронном рисовании графиков, подтверждает еще один эксперимент. В пакете Simulink «соберем» функцию f (t ) , рассмотренную во введении, из типовых блоков (Рис. 10)
Рис. 10. Функция f (t ) , реализованная средствами Simulink 160
и воспроизведем ее для T = 2 (Рис. 11) и T = 4 (Рис. 12). И если раньше можно было грешить на процедуру автоматического выбора шага интегрирования, то теперь явно видна ошибка процедуры рисования графиков.
Рис. 11. Simulink. График функции f (t ) ,T=2
Рис. 12. Simulink. График функции f (t ) , T=4
161
Аналогичная
ситуация
имеет
место
и
при
интегрировании
дифференциального уравнения (Рис. 13):
Рис.13. Simulink. Дифференциального уравнения для функции x(t ) Решение x(t ) при T=4 даже методом Рунге-Кутта получается достаточно неточным (Рис. 14)
Рис. 14 Асинхронное рисование графиков в пакете Simulink при решении дифференциального уравнения. Хорошо видна линейная интерполяция для промежуточных точек.
162
Синхронный способ. Возможные алгоритмы
Выберем шаг по оси абсцисс равным минимально возможному (на экране будет заполняться цветом каждый пиксель). Последовательно двигаясь по оси абсцисс с выбранным шагом, найдем опорные точки. Множество прямоугольников (Рис. 7), в которых целиком лежит исследуемая функция, назовем ее прямоугольным покрытием. Одновременно, вычисляя значения функции на сетке с вдвое меньшим шагом, будем проверять, не выходят ли новые значения за пределы покрытия. В результате либо будут построены опорные точки и аккуратно нарисован график, либо определены интервалы по оси абсцисс, где это сделать невозможно. При однократном построении графика строить опорные точки и покрытие необходимости нет, но они используются для экспорта данных и просмотра графика повторно, представляя собой экономичную форму представления графика. Литература
1.
H. Elmqvist, S.E. Mattson, M. Otter. Modelica – a language for physical
system modeling, visualizing and interaction. The 1999 IEEE Symposium on computer-aided control system design. CACSD,99. Hawaii, August 22-27, 1999 2.
K. E. Brenan, S. L. Campbell, L. R. Petzold. Numerical solution of initial-
value problems in differential-algebraic equations. Elsever Science Publishers Co., Inc. 1989], [Uri. M. Ascher,Linda R. Petzold . Computer methods for ordinary differential equations and differential-algebraic equations. SIAM, 1998 3.
P.I. Barton, The modeling and simulation of combined discrete/continues
processes, PhD thesis, University of London, London, U. K., 1992) 4.
K. E. Brenan, S. L. Campbell, L. R. Petzold. Numerical solution of initial-
value problems in differential-algebraic equations. Elsever Science Publishers Co., Inc. 1989 5.
А.Ф. Филиппов. Дифференциальные уравнения с разрывной правой
частью, M.: Наука, 1985, 223 стр. 163
6.
H. Elmqvist, S.E. Mattson, M. Otter. Modelica – a language for physical
system modeling, visualizing and interaction. The 1999 IEEE Symposium on computer-aided control system design. CACSD’99. Hawaii, August 22-27, 1999 7.
С. Писсанецки. Технология разреженных матриц. М.: Мир, 1988, 411
стр. 8.
C.W. Gear. Differential-algebraic equation index transformations.
SIAM,J.Sci.Stat.Comp., 9(1988), 39-47 9.
Constantios C. Pantelides. The consistent initialization of differential-
algebraic systems. SIAM J. Sci. Stat. Comput. Vol.9, № 2, March 1988 10.
J. M. Esposito, V. Kumar, and G. Pappas. Accurate event detection for
simulating hybrid systems. 11.
Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков. Численные методы.
М.: Наука, 1987,595 стр.
164
Глава 4. Библиотека пакета MVS
Разработка численных методов в MVS проводилась одновременно с созданием модификации гибридного автомата, ориентированной на численное исследование моделей. Это позволило не подстраиваться, как это часто бывает, под уже существующий язык, а органично сочетать как требования дружественности языка, так и особенности программных реализаций численных методов. Первые версии численной библиотеки были созданы в те годы, когда создание DLL было трудоемкой операцией, поэтому оказалось проще переписать основные численные методы на язык Pascal. Библиотека пакета MV 2.1 была ориентирована на вариант гибридного автомата, который сегодня используется в пакете Stateflow. Появление удобных компиляторов для языка FORTAN позволило отказаться
от
необходимости
переписывать
код,
и
сформировать
численную библиотеку из фортрановских модулей. Хотя практически все модули и подверглись существенным изменениям (что связано в основном с созданием эвристических алгоритмов-автоматов, пытающихся любой ценой решить совокупную систему уравнений, описывающей поведение модели), надежность такой библиотеки существенно выше, чем любой версии этой же библиотеки на другом языке. Однако при создании пакета AnyLogic, написанного на языке Java, вновь стал вопрос о переводе исходных фортрановских текстов на новый язык. Как показало выборочное тестирование, замедление работы при переходе на язык Java оказалось вполне приемлемым (не более чем в два, три раза), зато пакет теперь создавал «чистые» Java программы. Наличие прототипа библиотеки на языке FORTRAN позволило тщательно протестировать вновь созданную версию библиотеки. Вместе с библиотекой на язык Java были перенесены и программы тестирования, что позволило сравнивать сначала результаты работы FORTRAN библиотеки и JAVA библиотеки, а затем воспроизводить тесты одновременно в пакетах MVS и AnyLogic. 165
Особенность моделирования систем в MVS в том, что решаемая текущая система уравнений, при появлении событий, приводящих к смене поведения, может не только изменить свои численные свойства (жесткая, нежесткая,
осциллирующая),
но
и
тип
–
(система
нелинейных
алгебраических уравнений, система обыкновенных дифференциальных уравнений, система алгебро-дифференциальных уравнений). Более того, по ходу эксперимента, выбранная программная реализация численного метода может не справиться с конкретной задачей или превысить заданные по умолчанию ограничения, например на количество вычисления правых частей, при выбранном уровне погрешности. В этих случаях естественно возникает желание сделать программу управления и выбора конкретного численного
метода
настолько
безотказной,
насколько
позволяет
современное состояние теории и практики. 4.1 Организация библиотеки
Схематически библиотеку численных методов MVS можно изобразить следующим образом (табл.1). Таблица 1 BLAS LINPACK LA NAE_SLV Программы
FLOAT EISPACK GNA ODE_SLV
библиотеки
MINPACK DAE_SLV
представляют
собой
иерархическую
структуру. Уровни (строки таблицы) являются независимыми группами, использующими только программы предыдущих уровней (табл. 2). Таблица 2 BLAS
FLOAT LINPACK
Систематизированная коллекция подпрограмм [1], реализует основные элементарные операции линейной алгебры. Используется для структуризации и ускорения работы программ высшего уровня. Подпрограммы [2] этого раздела вычисляют основные характеристики машинной арифметики. Систематизированная коллекция подпрограмм [3] 166
EISPACK MINPACK
LA GNA NAE_SLV ODE_SLV DAE_SLV
предназначена для решения систем линейных алгебраических уравнений с матрицами различного типа. Систематизированная коллекция подпрограмм [4] предназначена для решения проблемы собственных значений. Систематизированная коллекция подпрограмм [8] предназначена для нахождения минимумов функционалов и решения систем нелиненых алгебраических уравнений. Подпрограммы этой группы реализуют основные матричные операции. Группа подпрограмм [5-6], предназначенная для решения основных задач численного анализа общего назначения. Группа подпрограмм, предназначенная для решения систем нелинейных алгебраических уравнений [7-8], возникающих при описании поведения. Группа подпрограмм, предназначенная для решения систем обыкновенных дифференциальных уравнений [9-10], возникающих при описании поведения. Группа подпрограмм, предназначенная для решения систем алгебро-дифференциальных уравнений [11], возникающих при описании поведения.
Пользователь подпрограммам
не
может
библиотеки.
непосредственно Нужная
программа
обращаться
к
подключается
автоматически, либо после анализа примененной языковой конструкции, если речь идет о написанных пользователем процедурах и функциях, либо после окончания диалога с пользователем, когда речь идет о выборе метода для решения конкретного типа уравнений. Такой подход является единственно возможным при смене поведения. 4.2. Структура решателей
Для решения каждой из основных задач (систем нелинейных алгебраических,
дифференциальных
и
алгебро-дифференциальных
уравнений), пользователю предлагается на выбор несколько программных реализаций численных методов. Указать заранее наиболее подходящий метод решения конкретной задачи удается редко, поэтому важной 167
особенностью современных графических оболочек является простота процедуры смены численного метода. В MVS это можно делать даже в процессе решения. В тоже время существует значительная категория пользователей, которой безразлично, каким методом будет получено решение,
лишь
бы
оно правильно
отражало
поведение
объекта.
Аналогичное отношение к численным методам наблюдается и на этапе отладки. При отладке, когда модель демострирует "необъяснимое" поведение, бывает важно просто "двигать" время вперед любым доступным
способом
переменными.
и
смотреть,
Программные
что
произойдет
реализации
с
ключевыми
численных
методов,
гарантирующие получение решения с заданной точностью, не способны, как правило, справиться с задачами, возникающими при отладке, и приходится применять очень примитивные решатели, вплоть до методов с постоянным шагом. Исходя из сказанного, в MVS, пользователю предлагаются три категории программных реализаций численных методов. Автоматические
решатели.
Их
назначение
-
автоматически
осуществить подбор наименее трудоемкой программной реализации численного метода для решения конкретной задачи, а в случае неудачи, предоставить пользователю максимально подробную информацию о встреченных
трудностях.
Анализируя
поведение
автоматического
решателя, пользователь может затем выбрать конкретный метод. Решатели для задач конкретного типа. Если пользователю
известен тип решаемой задачи, то достаточно просто выбрать один из предлагаемых на выбор методов соответствующего класса. Однако и в этом случае, пользователь имеет дело не непосредственно с программной реализацией из соответствующей систематизированной коллекции, а с управляющей программой, анализирующей коды завершения вызываемой подпрограммы и, в случае необходимости, меняющей ее параметры так, чтобы обеспечить получение решения на всем интервале моделирования. 168
Например, если программная реализация не может обеспечить получение решения
с
указанной
пользователем
точностью,
то
управляющая
программа сначала попытается изменить точность, а если это не поможет, то только тогда прекратит счет и выдаст аварийное сообщение. Выбор диалоговом
конкретного режиме,
использованию
метода
осуществляется
простейший
"метода
по
вариант
умолчанию".
В
пользователем
которого качестве
в
сводится
к
"метода
по
умолчанию" предлагается автоматический решатель. Автоматический решатель в заданной последовательности перебирает включенные в него методы, чтобы обеспечить получение решения на всем временном промежутке. Аварийная
остановка
любого
метода
сопровождается
диагностическим сообщением. В случае аварийного завершения работы, можно попытаться сменить метод, но лучше устранить причину прекращения счета. "Плохие" численные задачи, конечно же, существуют, но практика показывает, что плохо сформулированных задач гораздо больше. Решатели для отладки. Цель этой группы методов продвигать
модельное время вперед как можно дальше, чтобы дать возможность пользователю понять природу ошибок. К этой группе, для решения дифференциальных уравнений, относятся явный и неявный методы Эйлера с автоматическим выбором шага (SIMPLE_AUTO) и метод Рунге-Кутта четвертого порядка с постоянным шагом. Для отладки моделей, основанных на нелинейных и алгебро-дифференциальных уравнениях, специальных методов не предусмотрено. В MVS различаются три основные численные задачи и три группы соответствующих методов. Задача Автомат Решение систем AUTO_NAE нелинейных 169
Конкретные программы Различные модификации метода Ньютона
алгебраических уравнений. Решение систем AUTO_ODE дифференциальных уравнений
Решение систем AUTO_DAE алгебродифференциальных уравнений
Гибридные методы Нежесткие задачи Явные методы Рунге-Кутта Методы Адамса Жесткие задачи Неявные методы РунгеКутта Методы, основанные на формулах дифференцирования назад Отладочные программы RKF4 Явные методы Неявные методы
4.3 Системы нелинейных алгебраических уравнений.
Решение
системы
нелинейных
алгебраических
уравнений,
как
основная задача, возникает при соответствующем способе описании поведения, и, как вспомогательная, при реализации неявных методов решения систем алгебро-дифференциальных уравнений. В том и другом случае, за исключением начальной точки, начальное приближение к решению можно считать достаточно хорошо известным, что позволяет ориентироваться в основном на различные модификации метода Ньютона. В начальный момент времени при смене поведения ситуация значительно усложняется, так как у пользователя может отсутствовать информация об удовлетворительном начальном приближении. Программы для решения нелинейных уравнений
Для решения систем нелинейных уравнений, возникающих при описании поведения, используются: 1. Fast Newton (newt_F) – "Быстрый" метод Ньютона, позволяющий не вычислять матрицу Якоби в очередной временной точке заново, а использовать сохраненное значение с предыдущей точки (пересчет матрицы Якоби через каждые пять итерации). 170
2. Modified Newton (newt_M) - Модифицированный метод Ньютона (пересчет матрицы Якоби через фиксированное число итераций или по мере уменьшения скорости сходимости). 3. Classical Newton (newt_G) - Классический вариант метода Ньютона (пересчет матрицы Якоби на каждой итерации). 4. Hybrid Powell method (powell)-Гибридный метод Пауэлла (MinPack) 5. Auto_NAE . Автомат пытается последовательно применять методы (1, 2, 3, 4). Аварийная остановка автоматического решателя означает, что для данного начального приближения, взятого с предыдущего шага, ни один из методов не нашел удовлетворительного решения. Примечание. В скобках указаны имена подпрограмм, используемые в соответствующей *.DLL Подпрограммы Newt_F, Newt_M, Newt_G являются управляющими для подпрограммы NTDF8. Подпрограмма NTDF8 представляет собой традиционную реализацию метода Ньютона. На каждом шаге, с помощью подпрограмм из коллекции LINPACK,
решается
система
линейных
уравнений
относительно
приращения к решению, найденному на предыдущей итерации. Матрица Якоби
вычисляется
численно.
Приближенное
решение
считается
найденным с удовлетворительной точностью, если выполнено условие y n +1 − y n ≤ y n +1 ε отн + 100ε M . Величина относительной погрешности ε отн задается пользователем. Абсолютная погрешность положена равной 100 ε м . Напомним, что ε м - это минимальное машинное число, при сложении с единицей дающее результат отличный от единицы. Задавая различные значения переменным подпрограммы NTDF8 ipr, inorm, nJc можно: вычислять матрицу Якоби заново в начальной точке или использовать погрешности,
уже
известное
опираясь
на
значение различные
(ipr);
оценивать
нормы
решения
величину (inorm);
пересчитывать матрицу Якоби через заданное число итераций (njc). Все 171
перечисленные
методы
ньютоновского
типа
получены
из
общей
процедуры за счет выбора соответствующих значений этих переменных. Переменные nfcnN, njacN, nitN общего блока common/stat/nfcnN, njacN, nitN хранят: nfcnN – общее число обращений к правой части; njacN – число вычислений матрицы Якоби; nitN- общее число итераций. Пользователь MVS доступа к этим переменным не имеет, они использовались при тестировании библиотеки. Программные реализации метода Ньютона имеют следующие коды завершения (табл. 3). Таблица 3. ier = 0 ier = 2 ier = -1 ier = -3 ier = -4
Успешное завершение. Прерывание, вызванное арифметическими ошибками, при попытке вычислить правую часть.. Метод Гаусса обнаружил численную вырожденность матрицы решаемой линейной системы. Медленная сходимость. Число вычислений правой части превысило допустимое число nmax=c_itmax*n.
В табл. 4 приведены пояснения и рекомендуемые действия при возникновении соответствующих кодов завершения. Таблица 4. ier=2
ier=-1
ier=-3
Любая попытка выполнить недопустимую арифметическую операцию (деление на ноль, попытка вычислить квадратный корень из отрицательного числа, и другие) приведет к остановке вычислений и выводу на экран сообщения c указанием ошибочного выражения.. Код ier=-1 показывает, что построенная линейная система для определения очередного приближения к решению оказалась вырожденной. В этом случае рекомендуется сменить метод. Постарайтесь понять, используя дополнительные сведенья, почему вашу нелинейную задачу в окрестности приближения не удается заменить линейной. При хорошем начальном приближении методы 172
ier=-4
ньютоновского типа теоретически сходятся очень быстро. За одну итерацию можно получить удвоение числа верных знаков в приближенном решении. Однако при поиске хорошего начального приближения или при неудачном выборе последнего, возможны ситуации, когда и число верных знаков от итерации к итерации практически не изменяется, и приближенное решение не удовлетворяет заданному условию по точности. Попробуйте поискать иное начальное приближение из "физических" соображений или сменить метод. Встроенные в MVS методы относятся к итерационному типу. Число разрешенных итераций ограничено числом допустимыx вычислений функции, а именно константой n*100, где n – размерность решаемой системы. Превышение этого значения без достижения нужной точности, приведет к принудительному завершению с кодом ier=-4.
Помимо методов ньютоновского типа, на практике часто применяют методы минимизации специально построенных функционалов, точка минимума которых совпадает с корнем исходного уравнения. К числу таких методов относится гибридный метод Пауэлла (MinPack). Это метод часто не требует знания хорошего начального приближения. В тоже время, возможно, что программа найдет не корень уравнения, а локальный минимум вспомогательного функционала. Если ваша система допускает нахождение решения различными методами, старайтесь это делать для проверки. Сообщения об ошибках гибридного метода Пауэлла приведены в табл. 5. В табл. 6 даны краткие пояснения к сообщениям. Таблица 6 отличается от таблицы 4 только одной строкой, соответсвующей коду ier = -2, поэтому она приводится в сокращении. Таблица 5. ier = 0 ier = 2 ier = -1
Успешное завершение. Прерывание, вызванное арифметическими ошибками, при попытке вычислить правую часть.. Метод Гаусса обнаружил численную вырожденность 173
ier = -2 ier = -3 ier = -4
матрицы решаемой линейной системы. Завышена требуемая точность. Медленная сходимость.. Число вычислений правой части превысило допустимое число nmax=c_itmax*n. Таблица 6.
ier=-2
Попробуйте изменить точность. При заданной точности найти лучшее приближение не удается. .
Программа автомат
Управляющая подпрограмма AUTO_NAE последовательно вызывает сначала методы ньютоновского типа, а затем гибридный метод Пауэлла. В случае неудачи очередного метода, коды завершения игнорируются, и делается попытка применить следующий метод. На следующем временном шаге делается попытка вновь применить самый простой метод, а именно Fast Newton. Переменная
istart
управляет
только
работой
"быстрого"
модифицированного варианта метода Ньютона (Fast Newton). Значение istart=0 требует вычисления матрицы Якоби в начальной точке. При успешном нахождении решения istart на выходе метода полагается равным единице и, при последующем обращении, перевычисления матрицы не происходит.
При
смене
поведения,
значение
istart
автоматически
полагается равным нулю. Переменная method хранит номер (табл. 7) примененного на шаге метода. В табл. 8 приведены коды завершения. Таблица 7 method=1 method=2 method=3 method=4
Fast Newton (Newt_F) Modified Newton (Newt_M) Classical Newton (Newt_G) Hybrid Powell method (Powell)
174
Таблица 8 ier=0 ier =2 ier=-1 ier=-2 ier=-3 ier=-4 method=1 method=2 method=3 method=4
Успешное завершение. Возникли арифметические ошибки при попытке вычислить правую часть. Матрица линейной системы вырождена. Затребованная точность завышена. Слишком медленная сходимость. Превышено допустимое число вычислений правой части Система решена методом: Newt_F Newt_M Newt_G Powell
4.4 Дифференциальные уравнения.
Для решения систем дифференциальных уравнений применяются либо одношаговые (для получения решения в новой точке используется информация только с предыдущей временной точки), либо линейные многошаговые
методы
(используется
информация,
полученная
на
нескольких предыдущих точках). И те, и другие могут быть как явными (для решения нежестких задач), так и неявными (для решения жестких задач). Свойство жесткости существенно влияет на время, затраченное на получение решения. Подпрограммы библиотеки разделены на программы для решения жестких
и
нежестких
уравнений
и
программы,
автоматически
настраивающиеся на тип решаемой задачи. Во всех программах-автоматах, предназначенных для решения задач, тип которых заранее неизвестен пользователю, система первоначально считается нежесткой, так как решение нежестких уравнений чаще оказывается менее трудоемким процессом, чем решение жестких. При возникновении
жесткости,
такие
подпрограммы
автоматически
переключаются на программные реализации, предназначенные для решения жестких уравнений. Наиболее широкое признание среди 175
подпрограмм автоматов получила подпрограмма LSODA, построенная на линейных многошаговых методах. Подпрограмм автоматов, построенных на одношаговых методах, практически не существует [12]. В MVS в качестве автомата предлагается использовать программу AUTO_ODE, которая сначала пытается применить явный одношаговый, а при обнаружении жесткости - неявный многошаговый метод. Решение систем обыкновенных дифференциальных уравнений Автомат Специализированные Отладочные программы программы AUTO_ODE Нежесткие задачи Простейший автомат, Одношаговые, явные построенный на методы (явные методы явном и неявном Рунге-Кутта) методах Эйлера Линейные многошаговые, Метод Рунге-Кутта явные четвертого порядка с (Методы Адамса) фиксированным шагом Жесткие задачи Одношаговые, неявные методы (неявные методы РунгеКутта) Линейные многошаговые, неявные (Методы, построенные на формулах дифференцирования назад) Существуют
также
специализированные
программы,
предназначенные для решения только соответствующего типа задач. Некоторые
программы
для
решения
нежестких
уравнений
могут
обнаруживать возникновение жесткости по ходу решения и предупреждать об этом. Группа подпрограмм для решения нежестких уравнений содержит различные варианты метода Рунге-Кутта (Rkf45, Rkf853, Rkf78) и одну реализацию линейных многошаговых методов (LSODE_A). 176
Программы Rkf45 и RKf853 автоматически выбирают начальный шаг и предупреждают пользователя о появлении свойства жесткости у решаемой задачи. Программа RKf78 механизма оценки жесткости не имеет. О возникновении этого явления при ее использовании можно судить только косвенно, если число допустимых вычислений правой части превысило заданное значение и при этом задача имеет достаточно медленно изменяющееся решение на значительной части промежутка интегрирования. Программа LSODE_A реализует явные линейные многошаговые методы и является управляющей
для подпрограммы LSODE [13] при
выборе значения параметра равным 10 ( mf=10). Группа подпрограмм для решения жестких уравнений включает подпрограмму LSODE_B, основанную на неявных многошаговых методах. Подпрограмма LSODE_B является управляющей для подпрограммы LSODE при выборе параметра равным 22 (mf=22). В эту группу так же входят подпрограммы из коллекции [11] для решения жестких уравнений, использующие неявные одношаговые методы. Программы для решения нежестких уравнений.
Все подпрограммы, реализующие методы Рунге-Кутта имеют единый набор вспомогательных программ, единый интерфейс и одни и те же коды завершения. Вспомогательные подпрограммы приведены на рис. 5, сами подпрограммы на рис. 6. Краткие сообщения (коды завершения) можно найти в табл. 9, а пояснения к ним в табл. 10. Таблица 9. ier=0 ier=22 ier=-1 ier=-2 ier=-3 ier=-4
Коды завершения Успешное завершение. Арифметические ошибки при вычислении правой части дифференциальной системы. Переключение поведения. Возможно, что задача в точке останова стала жесткой. Сделано больше шагов, чем предусмотрено. Шаг интегрирования стал недопустимо малым. 177
Таблица 10 ier=22 ier=-2 ier=-3
ier=-4
Пояснения к кодам завершения Проверьте правильность описания локального поведения. Формула, приведенная в сообщении, содержит недопустимые арифметические операции. Смените метод на один из методов, предназначенных для решения жестких задач. Для начала уменьшите запрашиваемую точность. Если это не поможет, перейдите к программе AUTO_DE и выясните, не является ли задача жесткой. Если ничего не помогает, введите в описание локального поведения устройства дополнительный узел, с точно таким поведением. Выход из узла предусмотрите по времени. Значение времени выхода должно быть меньше, чем значение времени, когда появляется данное сообщение. Смена поведения (на точно такое же!), приведет к автоматическому обнулению всех внутренних счетчиков. И постарайтесь понять, почему ваша система так себя ведет в данной точке. Шаг интегрирования стал настолько малым, что продвижение вперед стало невозможным. Значение t+h оказывается равным t. Возможно, что система плохо масштабирована.
Коды завершения программы lsode_a приведены в табл. 11, а пояснения к ним в табл. 12. Таблица 12 приводится в сокращении, так как часть ее строк совпадает с соответствующими строками табл.10. Таблица 11 ier=0 ier=22 ier=-1 ier=-2 ier=-3 ier=-4
Нормальный выход. Арифметические ошибки при вычислении правой части дифференциальной системы . Переключение поведения. Превышено допустимое число шагов. Завышена точность. Может возникать, также если tin и tout oчень близки для данного локального поведения. Не прошел тест на точность.
178
Таблица 12 ier=-2 ier=-3
ier=-4
Смените метод. Начните с программы AUTO_ODE. Если она тоже укажет на наличие жесткости, можете переходить к специальным методам решения жестких задач. Измените точность или смените метод решения. Возможно так же, что время «жизни» в данном узле карты поведения оказалось чрезвычайно коротким. Проверьте описание поведения. Этот код говорит о невозможности найти решение с заданной точностью в указанной временной точке. Возможно, что эта точка особенная. Проверьте описание локального поведения.
Программы для решения жестких уравнений.
Подпрограммы для решения жеских задач представлены программной LSODE_b (управляющая для программы LSODE с выбором параметра mf=22) и подпрограммой RADAU5 из коллекции [10]. Линейные многошаговые методы для решения жеских систем в пакете [13] реализованы в подпрограмме LSODE. Вызов подпрограммы LSODE с параметром mf методов.
равным 22 (mf=22) обеспечивает применение этих
Обращение
к
программе lsode_b полностью
аналогично
обращению к программе lsode_а, за исключеним того, что необходимо выделить другое количество памяти рабочим массивам. Коды завершения программы lsode_в приведены в табл. 13, а пояснения к ним в табл. 14. Табл. 14 отличается от табл. 12 только одной строкой, а именно строкой, соответсвующей коду завершения ier=-5, и трактовкой сообщения с кодом ier=-2, поэтому она приводится в сокращении. Таблица 13 ier=0 ier=22 ier=-1 ier=-2 ier=-3
Нормальный выход. Арифметические ошибки. Переключение поведения. Завышена точность. Превышено допустимое число шагов. 179
ier=-4 ier=-5 ier=-7
Не прошел тест на точность. Не сходится метод Ньютона. Очень близки tin и tout для данного локального поведения. Таблица 14.
ier=-2
Скорее всего, что ваша задача относится к числу трудных для данного метода. Возможно, что получаемое численное не обладает каким- либо важным для задачи свойством. Скорее всего, что в этой временной точке у решения есть особенность. Проверьте правильность описания локального поведения. Время существования системы в данном узле оказалось таким коротким, что численный метод «решил», что вы ошиблись. Проверьте описание поведения.
ier=-5 ier=-7
Неявные RADAU5
одношаговые
[11],
реализующей
методы
представлены
неявный
метод
подпрограммой
Рунге-Кутта.
Коды
завершения подпрограммы приведены в табл. 15, пояснения к ним даны в табл. 16. Табл. 16 приведена в сокращении (см. табл. 12, 14) Таблица 15 ier=0 ier=22 ier=-1 ier=-2 ier=-3 ier=-4 ier=-6 ier=-7
Нормальный выход. Арифметические ошибки. Переключение поведения.. Шаг интегрирования стал слишком маленьким (h< eps_m). Превышено допустимое число вычислений правой части. Шаг интегрирования стал таким, что t+h оказалось равным t. Не сходится метод Ньютона. Недопустимая точность Таблица 16
ier=-2,-6 Скорее всего, что в этой временной точке у решения есть особенность. Проверьте правильность описания локального поведения. ier=-3 Попробуйте изменить точность или метод. ier=-4 Скорее всего, что задача плохо масштабирована. ier=-7 Увеличьте заданную точность. 180
Программа автомат.
Подпрограмма-автомат Назначение
данной
представлена
подпрограммы
программой
избавить
Auto_ODE.
пользователя
от
необходимости выбирать метод и предоставить информацию о типе решаемой численной задачи. Краткие сообщения об ошибках содержаться в табл. 17, а пояснения к ним в табл. 18. Подпрограмма AUTO_ODE начинает работу с вызова подпрограммы Rkf45, предназначенной для решения нежестких задач. Подпрограмма Rkf45 способна оценивать жесткость решаемой задачи, что позволяет автоматически переключиться на соответствующий метод. Для решения жестких задач выбрана подпрограмма LSODA, в свою очередь способная «почувствовать», что решаемая задача вновь стала нежесткой. Программа AUTO_ODE следит за значением соответствующих переменных, и автоматически переключается с одной подпрограммы на другую. Момент переключения, с методов решения жестких задач на методы решения нежестких может быть выбран из различных соображений. Специальная переменная imstop, расположенная в общем блоке common/auto/imstop управляет моментом переключения. Если imstop=1, то переключение просходит немедленно, после того как стало ясным, что задача стала нежесткой. Если imstop=0, то управляющая программа переключится только тогда, когда будет достигнут конец очередного промежутка интегрирования. Переменная istart сообщает подпрограмме
AUTO_ODE, каким
методом осуществлять интегрирование на очередном шаге. При первом обращении ее следует положить равной 10. Дальнейшее ее значение выбирается автоматически. Переменная method содержит информацию о выбранном
методе, а именно method=1 означает, что на данном
промежутке
работала
подпрограмма
Rkf45,
а
интегрирование выполнялось подпрограммой LSODA. 181
method=2,
что
Таблица 17 ier=0 ier =22 ier=-1 method=1 ier =-3 ier =-4 method=2 ier=-2 ier=-3 ier=-4 ier=-5 ier=-7
Коды завершения Успешное завершение. Арифметические ошибки при вычислении правой части дифференциальной системы Внешнее прерывание Выполнено больше шагов, чем предусмотрено. Шаг интегрирования стал недопустимо малым Завышена точность. Превышено допустимое число шагов Многократно не прошел тест на точность. Многократно не сошелся метод Ньютона Очень близки tin и tout для данного локального поведения. Таблица 18
method=1 ier =-3 Прежде всего, попробуйте изменить точность. Если это не поможет, попробуйте сменить метод. Выберите сначала любой, отличный от rkf45, метод для решения нежестких задач. ier =-4 Скорее всего, в этой точке у решения есть особенность. method=2 ier=-2 Попробуйте изменить точность, а затем попробуйте любой из методов для решения жестких задач. ier=-3 Попробуйте изменить точность, а затем попробуйте любой из методов для решения жестких задач. ier=-4 Скорее всего, в этой точке решение имеет особенность. ier=-5 Скорее всего, в этой точке решение имеет особенность. ier=-7 Время существования системы в данном узле оказалось таким коротким, что численый метод «решил», что вы ошиблись. Проверьте описание поведения. Отладочные программы
Как уже отмечалось, отладочными подпрограммами являются подпрограммы SIMPLE и RKF4.
182
Отличие программ Simple и lsoda в том, что в первой введено ограничение на порядок применяемых методов, а именно – применяются только явный и неявный методы Эйлера. Такой выбор порядка обусловлен тем, что для задач с сильно меняющейся правой частью, одношаговые методы способны преодолеть трудные участки лучше многошаговых методов. Потребность в таких методах возникает и при отладке, когда "плохое" поведение может быть обусловлено просто ошибками. Программу Simple не следует применять для интегрирования отлаженных задач. Коды возврата программы Simple приведены в табл. 19, Пояснения к кодам завершения соответствуют табл. 14. В программе Simple предусмотрен анализ типа решаемых уравнений. О том, как происходило интегрирование можно узнать по значению возвращаемой переменной method. Переменная method принимает значение 1, если на промежутке интегрирования применялись только нежесткие методы. Переменная method принимает значение 2, если на промежутке интегрирования применялись только жесткие методы. Переменная
method
принимает
значение
11,
если
программа
переключалась с жестких на нежесткие и обратно. Таблица 19. ier=0 ier=22 ier=-1 ier=-2 ier=-3 ier=-4 ier=-5 ier=-7
Нормальный выход. Арифметические ошибки. Переключение поведения. Завышена точность. Превышено допустимое число шагов. Не прошел тест на точность. Не сходится метод Ньютона. Очень близки tin и tout для данного локального поведения.
4.5 Алгебро-дифференциальные уравнения
Системы алгебро-дифференциальных уравнений могут представлять значительные трудности для существующих численных методов. 183
Начнем с того, что алгебро-дифференциальные уравнения могут быть записаны
в
различной
рассматривается
самая
форме.
В
простая
существующих
форма
версиях
пакета
алгебро-дифференциальных
уравнений – дифференциальные уравнения должны быть системой уравнений первого порядка, разрешенных относительно производных, и к ним следует добавить для получения замкнутой системы необходимое число алгебраических уравнений. Выбранное
представление
позволяет
решать
систему
алгебро-
дифференциальных уравнений двумя способами: a) решать систему дифференциальных уравнений любым явным методом, численно разрешая при
каждом
обращении
к
правой
части
систему
нелинейных
алгебраических уравнений b) воспользоваться тем, что неявные методы для решения дифференциальнызх уравнений справляются и с алгебродифференциальными уравнениями. Первый способ будем называть явным, а второй – неявным. Явный способ
Для реализации первого подхода мы выбрали метод Ньютона для решения
алгебраических
систем,
подпрограмму
AUTO_NAE
для
нахождения согласованных начальных условий и явные методы РунгеКутта для решения дифференциальных систем. Все подпрограммы это класса имеют одинаковый интерфейс и одинаковые коды завершения. На рис. 13
приводится
управляющая подпрограмма rk853. В табл. 20
приведены коды завершения, пояснения к ним даны в табл. 21. Таблица 20 ier=0 ier=2 ier=22 ier=-1 ier=-2
Коды завершения Успешное завершение. Арифметические ошибки при вычислении правой части алгебраической системы Арифметические ошибки при вычислении правой части дифференциальной системы Внешнее прерывание. Возможно, что задача в точке останова стала жесткой. 184
ier=-3 ier=-4 ier=-5 ier=-6 ier=-7
Требуется больше вычислений правой части, чем предусмотрено. Шаг интегрирования стал недопустимо малым. Не удалось найти согласованные начальные условия. Не удалось решить алгебраическую систему по ходу решения. Не удалось вычислить начальный шаг. Таблица 21
ier=22 ier=-2 ier=-3
ier=-4
ier=-5
ier=-6
Пояснения к кодам завершения Проверьте правильность описания локального поведения. Формула, приведенная в сообщении, содержит недопустимые арифметические операции. Смените метод. Для начала уменьшите запрашиваемую точность. Если это не помогает, введите в описание локального поведения устройства дополнительный узел, выход из которого предусмотрите по времени. Это время должно быть меньше, чем время, когда появляется сообщение. Смена поведения (на точно такое же!), приведет к автоматическому обнулению всех внутренних счетчиков. И постарайтесь понять, почему ваша система так себя ведет в данной точке. Шаг интегрирования стал настолько малым, что продвижение вперед стало невозможным. Значение t+h оказывается равным t. Возможно, что система плохо масштабирована. Заданные вами начальные значения не согласованы. Возможно начальное значение слишком плохое, но, возможно что нелинейная система не имеет решения. Менять метод интегрирования бессмысленно, так процедура поиска согласованного начального условия у всех методов одинакова. В процессе решения дифференциального уравнения не удалось разрешить алгебраическую систему методом Ньютона. Прежде, чем выдать это сообщение программа пыталась уменьшить шаг интегрирования. Попробуйте сменить метод, но, скорее всего, что в этой точке алгебраическая система не имеет решения.
185
Неявный способ
Подпрограммы этой группы представлены подпрограммой Ddassl. Подпрограмма рассчитана на много более сложные формы представления уравнений, чем это допустимо в MVS. Коды завершения приведены в табл. 22, пояснения к ним в табл. 23. Таблица 22. ier=0 ier=22 ier=-1 ier=-2 ier=-3 ier=-4 ier=-5 ier=-6 ier=-7 ier=-8
Нормальный выход. Арифметические ошибки при вычислении правой части алгебро-дифференциальной системы. Переключение поведения. Завышена точность. Превышено допустимое число шагов. Не прошел тест на точность. Не сходится метод Ньютона. Матрица Якоби вырождена. Невозможно построить согласованные начальные условия. Не проходит тест на точность и одновременно не сходится метод Ньютона. Таблица 23.
ier=-4 ier=-5 ier=-6
ier=-7 ier=-8
Многократно не удалость удовлетворить тесту по проверке ошибки на последнем шаге. Скорее всего, что вы имеете дело с особой. Многократно не прошел тест на сходимость на последнем шаге. Возможно, что- либо неправильно вычисляется матрица Якоби или она плохо-обусловленна. Матрица частных производных вырождена. Возможно, что некорые из ваших уравнений являются следствием остальных. С такой задачей программа справиться не может. Если можете, удалите зависимые уравнения. Возможно, что решение не существует, либо оно не единственно. Невозможно построить согласованные начальные условия. Многократно не прошел тест на сходимость.Возможно, что ваша задача плохо сформулирована и подпрограмма с ней справиться не может. Возможно, однако, что у решения есть особая точка, либо оно претерпевает разрыв.
186
Программа - автомат для решения алгебро-дифференциальных уравнений
В
качестве
основной
программы,
для
решения
алгебро-
дифференциальных уравнений, выбрана подпрограмма LSODI [13]. Подрограмма Slodi является управляющей. Ее основная цель проверить согласованность
начальных
условий,
и
попытаться
найти
удовлетрорительное решение, если условия не согласованы. Для этого, при заданном векторе начальных условий для дифференциальных уравнений, ищется
значение
алгебраической
компоненты,
удовлетворяющей
нелинейным уравнениям. В табл. 24 дается перечень кодов завершения Таблица 24 ier=0 ier=22 ier=-1 ier=-2 ier=-3 ier=-4 ier=-5 ier=-7 ier=-8
Нормальный выход. Арифметические ошибки. Переключение поведения. Завышена точность. Превышено допустимое число шагов. Многократно не прошел тест на точность. Не сходится метод Ньютона. Очень близки tin и tout для данного локального поведения. Не удалось вычислить согласованные начальные условия.
4.6 Об использовании тождеств при построении тестовых примеров.
При
создании
различных
версий
библиотеки
использовались
многочисленные тестовые примерыв том числе и новые. Под тестом или проверочным примером, будем понимать любую задачу, обладающую желаемым свойством и известным решением. Проверочные примеры, подтверждающие высказанное о них утверждение, назовем иллюстративными, доказывающие отсутствие как-либо свойств – контр-примерами. Хорошо известными проверочными примерами служат: • Системы линейных алгебраических уравнений A(α ) x = b с известным решением x [22, т.1], где α –вектор параметров, позволяющий менять 187
число обусловленности cond(A) матрицы A по отношению к задаче обращения cond Ax =b ( A) = A A −1 . • Квадратные матрицы A = S (α ) ΛS −1 (α ) , где Λ- блочно-диагональная матрица с известными собственными числами [22, т.2], а вектор α параметр, управляющий числом обусловленности по отношению к проблеме собственных значений cond Ax =λx ( A) = S S −1 . • Системы линейных обыкновенных дифференциальных уравнений dx = Ax + b, x (0) = x0 со специально подобранными значениями {λ1,… λn} dt
собственных чисел матрицы A, обеспечивающими жесткость, не жесткость или осцилляцию решения (“Stiff”, “Soft”, “Oscillator”) [18-21]. Во всех перечисленных случаях удается построить генераторы проверочных примеров, то есть алгоритмы, строящие множества {A(α), x |α ∈ Rk} по известным характеристикам, например, собственным числам. Это
обеспечивает
возможность
проведения
вычислительных
экспериментов в достаточно широких пределах [23]. Задача построения проверочных примеров никогда не теряла своей актуальности, а сегодня, с появлением мощных графических сред, автоматизирующих
вычислительный
эксперимент,
приобрела
новое
звучание. Дело в том, что графические среды моделирования, с легкостью позволяющие
сконструировать
достаточно
сложную
динамическую
систему, с той же легкостью способны получить неверное решение построенной задачи. И это не удивительно, так задача автоматического построения решения с гарантированной точностью пока может быть решена лишь в отдельных случаях Можно сказать, что возможности графических сред строить математические модели, превзошли их возможности контролировать правильность воспроизводимого решения. К тому же постоянно возрастает число новых программных реализаций численных методов, требующих сравнительного анализа их свойств [24]. 188
При разработке и отладке программных реализаций численных методов была выбрана следующая стратегия тестирования. Проверочные примеры
предварительно
воспроизводились одновременно
в
строились
среде
проверять
Model
на
Vision
точностные
и
ФОРТРАНЕ, Studium,
временные
что
а
затем
позволяло
характеристики
программных численных методов в разных системах программирования, а также правильность реализации синтаксических конструкций языка MVL. В последующем те же тестовые примеры были воспроизведены в среде AnyLogic и на языке Java. Проверочные
примеры
систем
нелинейных
алгебраических
уравнений
При отборе тестовых примеров можно использовать различные критерии.
Однако
пользователю
всегда
интересна
информация
о
сложности численного метода и его программной реализации, его точностные
характеристики
и
его
способность
обнаруживать
и
диагностировать ситуации, не позволяющие найти решение с заданной пользователем точностью. Наиболее простой мерой сложности численного метода является подсчет числа вычислений вектор-функции, необходимых для решения задачи с заданной точностью. Желательно уточнить, сколько раз вычислялась матрица Якоби, и сколько раз решались системы линейных алгебраических уравнений. Если опираться только на этот показатель и считать, что время вычисления вектор-функции в программной реализации численного метода много больше, чем время остальных операций, то, исследуя поведения программ на большом наборе задач различной размерности, можно получить требуемые оценки сложности. Можно дополнительно выбрать в качестве тестовых специальные системы, для которых
можно
подсчитать
число
вычисление вектор-функции, и
операций,
затрачиваемых
на
более точно оценить «прямые» и
«накладные» расходы программной реализации, а так же проследить за 189
изменением их соотношения при варьировании размерности системы и типа теста (структуры уравнений). Для оценки точностных характеристик, разделим тестовые примеры на «хорошие», и «плохие». В случае линейных систем, в большинстве случаев достаточно уметь плавно менять число обусловленности от единицы до числа обусловленности, при котором матрица считается численно вырожденной, и тем самым изучать влияние ошибок округления на «хороших» и «плохих» системах. Более сложной является задача построения вектора решения, на котором достигается максимально возможная ошибка для данной матрицы [6]. Ситуация с оценкой точности в нелинейном случае очевидно много сложнее, но в любом случае системы линейных уравнений следует включить в число тестовых по следующим причинам: они пригодны для измерения влияния ошибок округления и позволяют оценить, как методы реагируют на численно вырожденные матрицы Якоби. Наконец, при изучении программных реализаций важно уметь проверять, как
алгоритм реагирует на задачи, решить которые он не
способен, его возможности
их обнаруживать и выдавать правильные
диагностические сообщения. Здесь также важны и количественные, и качественные аспекты. Так, например, в случае плохой сходимости желательно не только обнаружить это явление, но и ответить на вопрос, имеет ли смысл продолжать решение выбранным методом. Среди традиционно выделяемых ненормальных ситуаций выделяют – медленную сходимость,
отсутствие
сходимости
(или
нарушение
условий
применимости метода), невозможность решить задачу при выбранных пользователям требованиях к точности и максимально допустимом числе вычислений вектор-функции.
190
Системы линейных уравнений для оценки точностных характеристик.
1. Простейшим примером хорошо обусловленной системы может служить система с матрицей ⎡2 A=⎢ ⎣1
1⎤ ⎡t ⎤ 1 ⎡2 − 1⎤ ; A−1 = ⎢ ; решением x = ⎢ ⎥ и вектором правой части ⎥ ⎥ 2⎦ 3 ⎣ − 1 2⎦ ⎣t ⎦
⎡3t ⎤ b = ⎢ ⎥ ; ее обусловленность близка к единице и вычисление матрицы ⎣3t ⎦
Якоби не может вызывать трудностей. Любые методы должны получать численное решение, практически совпадающее с точным. 2. Простейшим примером плохо обусловленной задачи может служить система с матрицей ⎤ ⎡1 + 2 -n 1 A=⎢ ⎥, 1 + 2 -n ⎦ ⎣1
1 A = -n +1 2 + 2 -2n −1
⎡1 + 2 -n ⎢ ⎣− 1
⎤ ⎥ , решением 1 + 2 -n ⎦
-1
⎡t ⎤ x=⎢⎥ ⎣t ⎦
и
⎡( 2 + 2 -n ) t ⎤ вектором правой части b = ⎢ ⎥ . Ее обусловленность близка к -n ⎣( 2 + 2 ) t ⎦
машинной бесконечности при правильно выбранных n (матрица численно вырождена при n=52 для чисел типа double). Вычисление матрицы Якоби этой матрицы может вызывать трудности. В качестве характеристики может выступать значение n, при котором метод обнаруживает численную вырожденность, и значение нормы ошибки при различных значениях n. Системы линейных уравнений для оценки временных характеристик.
Системы линейных уравнений можно использовать и при оценке характеристик сложности, если воспользоваться генераторами тестовых примеров,
позволяющими
строить
обусловленности и размерности [23].
191
матрицы
практически
любой
Системы нелинейных уравнений.
При отборе программ для решения систем нелинейных уравнений имеет особо выделить случай, когда решается скалярное уравнение. Построение тестовых примеров в этом случае также носит специфический характер. В качестве
генератора
тестовых
функций
предлагается
использовать
генератор, основанный на интерполяции Харциева В. Е. (устное сообщение). Нелинейное скалярное уравнение
Интерполяция Харциева. Данный способ интерполяции предназначен для построения
интерполирующей
функции,
имеющей
чередующиеся
локальные максимумы и минимумы. Рассмотрим таблицу {( xi , f ( xi ), i = 1, N }с различными узлами. Отобразим отрезки [xi , xi +1 ] в отрезок [0, π ] с помощью функций yi ( x ) = Введем определим zi ( x ) =
вспомогательную интерполирующие
π xi +1 − xi
( x − xi ) .
⎧cos n ( y ), cos( y ) ≥ 0 функцию w( y ) = ⎨ n ⎩− ( − cos( y )) , cos( y ) < 0
и
[xi , xi +1 ]
как
функции
на
отрезках
f ( xi +1 ) + f ( xi ) f ( xi +1 ) − f ( xi ) . Доопределив w( y i ( x )) − 2 2
zi ( x ) так, чтобы
они всюду были равны нулю, кроме отрезка [xi , xi +1 ] получим искомую интерполирующую
функцию
N −1
Z ( x ) = ∑ zi ( x ) ,
имеющую
локальные
i =1
минимумы и максимумы в узлах интерполяции. Интерполирующая функция непрерывна вплоть до n-ой производной. Системы нелинейных уравнений
В основу практически всех приведенных ниже проверочных примеров положены тождества из справочника Рыжик И.М. «Таблицы интегралов, сумм, рядов и произведений». Проверочный пример 1. Рассмотрим систему уравнений
192
⎧ x1 + x2 + .... xn = a1 ; ⎪ x * x + x * x + ... x * x = a ⎪ 1 2 1 3 n −1 n 2 ⎨ ⎪.... ⎪⎩ x1 * x2 * x3 ... xn −1 * xn = a n
с матрицей Якоби ⎡1 ⎢n ⎢ ∑ xi ⎢ i =2 ⎢..... ⎢ ⎢⎣ P1
P1 =
1
1
...
n −1
n
∑x
i
i ≠2
....
∏ x ;P = ∏ x ,
i =2, N
i
⎤ ⎥ ⎥ x ∑ i ⎥ i =1 ⎥ ⎥ Pn ⎥⎦
1
j
i
i≠ j
Pn =
∏x
i =1, N −1
i
В такой системе просто обеспечить численную вырожденность матрицы Якоби на решении (достаточно выбрать корни кратными). Система также обладает еще одним важным свойством – любая перестановка компонент вектора (x1, x2, xn) – вновь является решением. Проверочный пример 2. Для построения проверочной системы вместо симметрических
многочленов S1 = ∑ xi ; S2 = ∑ xi x j ; ... ; Sn = ∏ xi ; i
i, j
i
можно использовать симметрические функции s1,… sn s0 = n; s1 = ∑ xi ; s2 = ∑ xi2 ; ... sn = ∑ xin i
i
i
Матрица Якоби в этом случае равна ⎡1 ⎢2 x ⎢ 1 ⎢..... ⎢ n −1 ⎣nx1
1 2 x2
1
....
...
1 2 xn nx nn −1
Данная форма хороша тем, что значения сумм
n
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
∑k k =1
q
= SUM q известны для
всех практически важных для тестирования значений q. 193
q
SUM 2 q = ∑ α k2 q ( st ( n − k + 1,2k + 2) + st ( n − k ,2k + 2)); k =1
q
SUM 2 q −1 = ∑ α k2 q −1 st ( n − k + 1,2k + 1); k =1
где st-числа Стирлинга st(n,k)=st(n-1,k-1)+k*st(n-1,k), st(1,1)=1, st(n,n)=1, k<=n, а коэффициенты α k2 q ; α k2 q−1 задаются рекуррентными соотношениями. Для малых значений n эти формулы хорошо известны. Выбрав xi=i, i=1,n получаются достаточно простые тестовые примеры, так как различные решения (перестановки) отстоят друг от друга на значительном расстоянии, и попасть на другое решение можно только подобрав специальные начальные условия. Проверочный пример 3. Система шестого порядка (получается, если положить n=4 в
приведенных ниже формулах и добавить два любых уравнения для p и q) может быть построена на базе следующих тождеств: n
1
∑ ( p + (k − 1)q))( p + kq) = i =1
n
n p ( p + nq ) n ( 2 p + nq + q )
1
∑ ( p + (k − 1)q))( p + kq)( p + (k + 1)q) = 2 p( p + q)( p + nq)( p + (n + 1)q) i =1
n
1
∑ ( p + (k − 1)q))( p + kq)...( p + (k + L)q) = A i =1
A=
⎫ ⎧ 1 1 1 − ⎬ ⎨ ( L + 1) q ⎩ p( p + q)...( p + Lq) p( p + nq)( p + ( n + 1) q)...( p + ( n + L) q) ⎭
n
n 1 1 n 1 1 = − ) ( ∑ ∑ ∑ p i =1 (1 + ( k − 1) q )) i =1 (1 + ( k − 1) q ) + p ) i =1 (1 + ( k − 1) q ))(1 + ( k − 1) q + p )
xi = i, i = 1,4
L –любое целое, уравнения для p, q – любые. При тестировании использовалась следующая модификация этого примера. Четыре приведенных уравнения были дополнены двумя линейными уравнениями относительно p и q
194
⎧ p + (1 + ε ) q = b2 ⎨ ⎩(1 + ε ) p + q = b1 Проверочный пример 4.
Еще один проверочный пример построен на формулах: n
∑ ( x k + k )(x k − k ) = k =1
x 2 ( x 2 n − 1) 1 − n( n + 1)( 2n + 1) ; x2 − 1 6
n
∑ ( x k + y k )(x k − y k ) = k =1 n
∑(x
+
k
k =1
n
x 2 ( x 2 n − 1) y 2 ( y 2 n − 1) − ; x2 − 1 y2 −1
1 1 x 2 ( x 2 n − 1) y 2 ( y 2 n − 1) k )( x − ) = − ; yk yk x2 − 1 y2 −1
∑(x
k +1
−y
k +1
k =1
x 2 (1 − x n ) y 2 (1 − y n ) )= − ; 1− x 1− y
Число уравнений в этом примере может быть от 4 и выше, если использовать и xi и yi в качестве неизвестных и добавить необходимое число, например линейных уравнений. Точные решения могут быть выбраны как x1=const1; y1=const2; x2=( x1)2; y2=( y1)2 и так далее. В "правую часть" уравнений можно подставлять точные значения, но можно оставить и в приведенном выше виде. В последнем случае матрица Якоби окажется вырожденной. Проверочный пример 5. "Замешивание" в одной системе функций с сильно разнящимися
производными позволяет построить достаточно трудные для численных методов проверочные примеры. Очередная группа тождеств построить систему: n
∑ a kx = k =0
a ( n +1) x − 1 ; ax −1 n
sin x * ∑ cos 2 kx = k =0
sin
sin
x n n +1 n x sin x ; * ∑ sin kx = sin 2 k =1 2 2
n −1 1 * sin x + sin( n + 1) x cos nx ; 2 2
x n −1 x 2n − 1 ) x sin ) ; xk sin kx = x * (sin nx − 2n cos( ∑ 2 2 2 k =1
195
позволяет
n −1
∑ p k chkx = k =0
n −1
∑p
k
1 − p * chx − p n * chnx + p n +1 * ch ( n − 1) x ; 1 − 2 pchx + p 2
shkx =
k =0
p * shx − p n * shnx + p n +1 * sh( n − 1) x ; 1 − 2 pchx + p 2
Как и в предыдущем случае x – можно считать параметром, а неизвестными - величины xi=i*x; i=1,n. Матрица Якоби ⎤ ⎡a x1 ln a a x1 ln a ... a x1 ln a ⎥ ⎢ n x1 x1 ⎥ ⎢ 1 cos x1 sin x + sin x1 cos x sin cos x 2 ... sin cos x n ∑ k 1 ⎥ ⎢2 2 k =1 2 2 2 ⎥ ⎢ n ⎢cos x ( cos 2 x − 2 sin 2 x ) - 2 sin x1 sin x 2 cos x 2 .... - 2 sin x1 sin x n cos x n ⎥ k 1 ∑ 1 ⎥ ⎢ k =0 ⎥ ⎢ sin x1 (sin x 2 + x 2 cos x 2 ) .... sin x1 (sin x n + x n cos x n )⎥ ⎢a ⎢b (1-2 pchx1 + p 2 ) p 2 shx 2 ..... (1-2 pchx1 + p 2 ) p 2 shxn ⎥ ⎥ ⎢ ⎢⎣c (1-2 pchx1 + p 2 ) p 2 chx 2 ..... (1-2 pchx1 + p 2 ) p 2 chx n ⎥⎦ x x n x a = 4 sin 1 cos 1 ∑ xk sinxk + 4 sin 2 1 (sin x1 + x1 cos x1 ) 2 2 k =1 2 n −1
b = −2 pshx1 ∑ p k chx k + (1 − 2 pchx1 + p 2 ) shx1 i =0
n −1
c = −2 pshx1 ∑ p k shxk + (1 − 2 pchx1 + p 2 )chx1 i =0
Проверочный пример 6. Еще одна группа тождеств
позволяет построить систему шестого
порядка: n
sin x * ∑ sin 2 kx = k =1
n
sin x * ∑ cos 2 kx = k =1
sin
n * sin x − cos(n + 1) x * sin nx ; 2
n * sin x + cos(n + 1) x * sin nx ; 2
x n +1 n 3x 3 3x n x * sin x * sin * sin * ∑ sin 3 kx = * sin 2 2 2 4 2 k =1 2 ; 1 3( n + 1) 3n x − * sin x * sin x * sin 4 2 2 2
sin
x n +1 n 3x 3 3x n x * sin x * sin * sin * ∑ cos 3 kx = * cos 2 2 2 4 2 k =1 2 1 3( n + 1) 3n x + * cos x * sin x * sin 4 2 2 2 196
n 1 sin x * sin 2 x * ∑ sin 4 kx = (3n − cos(n + 1) x * sin nx * sin 2 x ) 8 k =1 ; 1 + * cos 2( n + 1) x * sin 2nx * sin x 8 n 1 sin x * sin 2 x * ∑ cos 4 kx = (3n + cos(n + 1) x * sin nx * sin 2 x ) 8 k =1 ; 1 + * cos 2( n + 1) x * sin 2nx * sin x 8
Матрица Якоби. ⎡a ⎢b ⎢ ⎢ ⎢c ⎢ ⎢d ⎢ ⎢ ⎢e ⎢f ⎣
2 sin x1 cos x 2 sin x 2
...
- 2 sin x1 cos x2 sin x 2
...
x1 3x sin 1 sin 2 x 2 cos x2 ... 2 2 x 3x - 3 sin 1 sin 1 cos 2 x2 sin x 2 .... 2 2 4 sin x1 sin 2 x1 sin 2 x2 cos x 2 ... 3 sin
- 4 sin x1 sin 2 x1 cos 2 x 2 sin x2
...
⎤ ⎥ - 2 sin x1 cos x n sin xn ⎥ ⎥ x1 3x1 2 sin x n cos x n ⎥ 3 sin sin 2 2 ⎥ x1 3x1 2 cos x n sin xn ⎥ - 3 sin sin ⎥ 2 2 ⎥ 2 4 sin x1 sin 2 x1 sin x n cos x n ⎥ 4 sin x1 sin 2 x1 cos 2 xn sin x n ⎥⎦ 2 sin x1 cos x n sin xn
n
a = cos x1 ( ∑ sin 2 xk + 2 sin x1 ) k =1 n
b = cos x1 ( ∑ sin 2 xk − 2 sin x1 ) k =1
x x x 3x 3x n 3x 3 1 c = ( cos 1 sin 1 + sin 1 cos 1 )∑ sin 3 xk + 3 sin 1 sin 1 sin 2 x1 cos x1 2 2 k =1 2 2 2 2 2 2 x x x 3x 3x n 3x 3 1 d = ( cos 1 sin 1 + sin 1 cos 1 )∑ cos 3 x k − 3 sin 1 sin 1 cos 2 x1 sin x1 2 2 k =1 2 2 2 2 2 2 n
e = (cos x1 sin 2 x1 + 2 sin x1 cos 3x1 )∑ sin 4 x k + 4 sin x1 sin 2 x sin 3 x1 cos x1 k =1 n
f = (cos x1 sin 2 x1 + 2 sin x1 cos 3x1 )∑ cos 4 xk − 4 sin x1 sin 2 x cos 3 x1 sin x1 k =1
Проверочный пример 7. В заключение приведем еще полезных два тождества: n
∑ (2
k
sin 2
r =1
n
1
∑2 k =0
k
tg
x 2 x ) = ( 2 n sin n ) 2 − sin 2 x ; k 2 2 x x 1 = n ctg n − 2ctg 2 x ; k 2 2 2
которые можно использовать в качестве дополнительных уравнений, если искомые неизвестные полагать равными xi=i. 197
Литература
1. Lawson C.L., R.J. Hanson, D.R. Kincaird and F.T. Krogh. Basic linear algebra subprograms for Fortran usage. ACM Tran. Math. Software, 5, pp. 308-323. 2. W. J. Cody. MACHAR: A subroutine to dynamically determine machine parameters, TOMS 14, December, 1988. 3. J.J. Dongora, J.R. Bunch, C.B. Moler and G.W. Stewart. LINPACK Users Guide. Soc. Indust. Appl. Math., Philadelphia, 368 pages. 4. Garbow B.S., J.M.Boyle, J.J. Dongora and C.B. Moler. Matrix Eigensystem Routines –EISPACK Guide Extension. Lecture Notes in Computer Science. Vol. 51. Springer-Verlag, Berlin, 343 pages. 5. Smith B.T., J.M.Boyle, J.J. Dongora , B.S. Garbow B.S., Y. Ikebe, V.C. Klema and C.B. Moler. Matrix
System
Routines –EISPACK Guide.
Lecture Notes in Computer Science. Vol. 6. Springer-Verlag, Berlin, 551 pages. 6. Дж.
Форсайт,
К.
Молер,
М.
Малькольм.
Машинные
методы
математических вычислений. М., Мир. 1980, 278 с. 7. Д. Каханер, К. Моулер, С. Неш. Численные методы и программное обеспечение. М., Мир. 1998, 575 с. 8. Дж. Ортега, В. Рейнболт. Итерационные методы решения нелинейных систем уравнений. М., Мир. 1975, 278 с. 9. Gabrow B.S., Hillstrom K.E., and More J.J. Implementation Guide for MINPACK-1. Argonne National Laboratory Report ANL-80-86, Illinois, 1980. 10. More J.J., Gabrow B.S., and Hillstrom K.E. User Guide for MINPACK-1. Argonne National Laboratory Report ANL-80-74, Illinois, 1980. 11. Э.Хайрер,
С.Нерсетт,
Г.Ваннер
«Решение
обыкновенных
дифференциальных уравнений. Нежесткие задачи», М., Мир, 1990. 512 стр.
198
12. E. Hairer, G. Wanner. Solving Ordinary Differential Equations II. Stiff and differential-algebraic problems. Springer-Verlag. 1991. 601 pp. 13. K. E. Brenan, S.L. Campbell, L. R. Petzold. Numerical solution of initialvalue problems in differential algebraic equations. Elsevier Science Publishing Co., 1989. 205 pp. 14. В.А. Новиков, Е.А. Новиков. Два эффективных алгоритма решения задачи Коши для систем обыкновенных дифференциальных уравнений. Препринт
5-84.
АН
СССР.
Сибирское
отделение.
Институт
теоретической и прикладной механики. 1984. 48с. 15. Alan C. Hindmarsh, Odepack, a systematized collection of ODE solvers, in scientific computing, R. S. Stepleman Et Al. (Eds.), North-Holland, Amsterdam, 1983, pp. 55-64. 16. Linda R. Petzold, Automatic selection of methods for solving stiff and nonstiff systems of ordinary differential equations, Siam J. Sci. Stat. Comput. 4 (1983), pp. 136-148. 17. Alan C. Hindmarsh,
Lsode and Lsodi, two new initial value ordinary
differential equation solvers, ACM-Signum Newsletter, vol. 15, 4 (1980), pp. 10-11. 18. Enright, W.H., Hull,T.E., Linberg,B., Comparing Numerical Methods for Stiff System of ODE’s. BIT 15(1975) 10-48 19. Фаддеева В.Н., Колотилина Л.Ю. Вычислительные методы линейной алгебры. Набор матриц для тестирования. В 3-х томах. Ленинградское отделение Математического института АН СССР, Ленинград, 1982. 20. Берендеева Е.Г., Филиппов С.С. Об эффективности и надежности некоторых программных реализаций одношаговых методов решения обыкновенных
дифференциальных
уравнеий./
В
сб.
Численное
решение обыкновенных дифференциальных уравнений. Институт прикладной математики АН СССР, Москва 1988, стр. 201-220. 21. Petcu D. Multistep methods for stiff initial value problems. Timisoara, 1995. 185 p. 199
22. Yu. Kolesov, Yu. Senichenkov. Test problems for Hybrid Simulators./In Recent Advances in Theoretical and Applied Mathematics. WSES 2000, ISBN: 960-8052-21-1,Greece, p. 214-220. 23. Сравнение программных реализаций по точности с помощью машинного эксперимента./ С.П.Воскобойников, Ю.Б. Сениченков. В сб. Труды ЛПИ, 407, Л.: Изд.ЛПИ, 1985, с. 26-29. 24. Сравнение программных реализаций численных методов решения задачи Коши для обыкновенных дифференциальных уравнений./ С.П. Воскобойников, Ю.Б. Сениченков, С.М. Устинов. С. Петербург. Труды СПбГТУ, 462, 1996, стр.122-141.
200
ПРИЛОЖЕНИЕ
Список сайтов и зарубежных публикаций по вопросам визуального моделирования и численного исследования гибридных систем Сайты Отечественные.
1. МВТУ. Homepage: http://www.reactors.narod.ru/mvtu/mvtu.htm 2. Anylogic. St. Petersburg Polytechnic University. Homepage: http://www.xjtek.com 3. Model Vision Studium. St. Petersburg Polytechnic University. Homepage: http://www.exponenta.ru; http://www.xjtek.com 4. Stratum. Perm Technical University. Homepage: http://stratum.ac.ru http://stratum.pstu.ac.ru Зарубежные
5. Charon, Department of Computer and Information Science, University of Pennsylvania. Homepage: http://www.cis.upenn.edu/mobies/charon 6. Dymola. Homepage: http://www.Dynasim.se 7. EASY5. Boeing. Homepage: http://www.boeing.com/assocproducts/easy5 8. Hybrid CC, hybrid automata, and program verification. Homepage: 9. http://www.parc.xerox.com/spl/projects/mbc/languages.html System Software. Homepage: http://www10. Hybrid er.df.op.dlr.de/cacsd/hds/software.shtml Systems. Homepage: 11. Hybrid http://www.seas.upenn.edu/~jme/Hybrid_Sys.html 12. HyTech. Homepage: http://wwww-cad.eecs.berkeley.edu/tah/HyTech VERIMAG. Homepage: http://www13. Kronos, verimag.imag.fr/TEMPORISE/kronos 14. Matlab, The Mathworks, Inc. Homepage: http://www.mathworks.com 15. Mathmodelica, MathCore. Homepage: http://www.mathcore.com 16. Modelica. Homepage: http://www.modelica.org 17. Modelllus. Homepage: http://www.krev.com 18. OmSim, Omola. Department of Automatic Control, Lund Institue of Technology. Homepage: http://wwww.control.lth.se/cace/omsim.html 19. Ptolemy II, Department of EECS, UC Berkeley. Homepage:http://ptolemy.eecs.berkeley.edu/ptolemyII 20. Shift, California PATH, UC Berkeley. Homepage: http://wwww.path.berkeley.edu/shift 21. Simulation news Europe. Homepage: http://www.argesim.org 201
22. UPPAAL. Homepage: http://www.docs.uu.se/docs/rtmv/uppaal 23. VisSim. Homepage: http://www.vissim.com/vissim.htm 24. UML. Homepage: http://www.rational.com 25. 20-sim. Homepage: http://www.rt.el.utwente.nl/20sim Конференции и тематические сборники статей
26. Real time: Theory in Practice. LNCS. 600, 1992 27. Hybrid Systems I Robert L. Grossman, Anil Nerode, Anders P. Ravn, Hans Rischel (Eds.): Hybrid Systems. Lecture Notes in Computer Science 736, Springer 1993, ISBN 3-540-57318-6 28. Hybrid Systems II Panos J. Antsaklis, Wolf Kohn, Anil Nerode, Shankar Sastry (Eds.): Hybrid Systems II. Lecture Notes in Computer Science 999 Springer 1995, ISBN 3-540-60472-3 29. Verification and Control (Lect.Notes Comp.Sci. no.1066), Springer-Verlag, Berlin, 1996. R. Alur, T.A. Henzinger, E.D. Sontag, eds. 30. Hybrid Systems III Panos J. Antsaklis, Wolf Kohn, Anil Nerode, Shankar Sastry (Eds.): Hybrid Systems IV. Lecture Notes in Computer Science 1273 Springer 1997, ISBN 3-540-63358-8 31. Hybrid Systems IV Berkeley, California, USA. Thomas A. Henzinger, Shankar Sastry (Eds.): Hybrid Systems: Computation and Control, First International Workshop, HSCC'98, Berkeley, California, USA, April 13-15, 1998, Proceedings. Lecture Notes in Computer Science 1386 Springer 1998, ISBN 3-54064358-3 32. Automatica, vol. 35, no. 3, Mar. 1999. Special Issue on Hybrid Systems. 33. HSCC 1999 Berg en Dal, The Netherlands. Frits W. Vaandrager, Jan H. van Schuppen (Eds.): Hybrid Systems: Computation and Control, Second International Workshop, HSCC'99, Berg en Dal, The Netherlands, March 29-31, 1999, Proceedings. Lecture Notes in Computer Science 1569 Springer 1999, ISBN 3-540-65734-7 34. HSCC 2001 Rome, Italy. Maria Domenica Di Benedetto, Alberto L. SangiovanniVincentelli (Eds.): Hybrid Systems: Computation and Control, 4th International Workshop, HSCC 2001, Rome, Italy, March 28-30, 2001, Proceedings. Lecture Notes in Computer Science 2034 Springer 2001, ISBN 3-540-41866-0 35. HSCC 2002 Stanford, CA, USA. Claire Tomlin, Mark R. Greenstreet (Eds.): Hybrid Systems: Computation and Control, 5th International Workshop, HSCC 202
2002, Stanford, CA, USA, March 25-27, 2002, Proceedings. Lecture Notes in Computer Science 2289 Springer 2002, ISBN 3-540-43321-X 36. HSCC 2003 Prague, Czech Republic. Oded Maler, Amir Pnueli (Eds.): Hybrid Systems: Computation and Control, 6th International Workshop, HSCC 2003 Prague, Czech Republic, April 3-5, 2003, Proceedings. Lecture Notes in Computer Science 2623 Springer 2003, ISBN 3-540-00913-2 Истоки
37. R. Alur, C. Courcoubetis, T.A. Henzinger, and P.-H. Ho. Hybrid automata: an algorithmic approach to the specification and verification of hybrid systems. In R.L. Grossman, A. Nerode, A. P. Ravn, and II. Rischel, editors, Hybrid Systems I, Lecture Notes in Computer Science 736, pages 209-229. Springer-Verlag, 1993. 38. R. Alur, C. Courcoubetis, and D. Dill. Model checking in dense real time. Information and Computation, vol. 104, pp. 2-34, 1993. 39. Alur, R., C. Courcoubetis, N. Halbwachs, T. A. Henzinger, P.-H. Ho, X. Nicollin, A. Olivero, J. Sifakis, and S. Yovine. The algorithmic analysis of hybrid systems. In Proceedings of the 11th International Conference on Analysis and Optimization of Discrete Event Systems. 1994. 40. R. Alur and D.L. Dill. A theory of timed automata. Theoretical Computer Science, 126:183-235, 1994. 41. R. Alur, and D.L. Dill. Automata for modeling real-time systems. In M.S. Paterson, editor, ICALP 90: Auotomata, Languages, and Programming, LNCS 443, p.322-335, Springer-Verlag, 1990. 42. R. Alur and T.A. Henzinger. Logics and models of real time: a survey. In J.W. de Bakker, K. Huizing, W.-P. de Roever, and G. Rozenberg, editors, Real Time: Theory in Practice, Lecture Notes in Computer Science 600, pages 74-106. Springer-Verlag, 1992. 43. 0. Maler, Z. Manna, and A. Pnueli. From timed to hybrid systems. In J.W. de Bakker, K. IIuizing, W.-P. de Roever, and G. Rozenberg, editors, Real Time: Theory in Practice, Lecture Notes in Computer Science 600, pages 447-484. Springer-Verlag, 1992. 44. O. Maler, Z. Manna, and A. Pnueli. A formal approach to hybrid systems. In Proceedings of REX workshop: Real Time: Theory in Practice, Lecture Notes in Computer Science 600, Springer-Verlag, 1992. 45. Y. Kesten., A. Pnueli. Timed and hybrid statecharts and their textual representation. Tenchnical report. (1993) 46. X. Nicollin, J. Sifacis, and S. Yovine. From ATP to timed graphs and hybrid systems. . In J.W. de Bakker, K. IIuizing, W.-P. de Roever, and G. Rozenberg, editors, Real Time: Theory in Practice, Lecture Notes in Computer Science 600, pages 549-572. Springer-Verlag, 1992. 47. Xavier Nicollin, Alfredo Olivero, Joseph Sifakis, Sergio Yovine: An Approach to the Description and Analysis of Hybrid Systems. In R.L. 203
Grossman, A. Nerode, A. P. Ravn, and II. Rischel, editors, Hybrid Systems I, Lecture Notes in Computer Science 736, pages 149-178. Springer-Verlag, 1993. 48. T.A. Hezinger. The theory of hybrid systems. In Proceedings of 11th annual symposium on logics in computer science., p. 278-292. IEEE Computer Society Press, 1996. Обзоры
49. K. J. Åström, H. Elmqvist, S. E. Mattsson. Evolution of continuous-time. Modeling and simulation. The 12th European Simulation Multiconference, ESM'98, June 16--19, 1998, Manchester, UK 50. P. J. Antsaklis, X. D. Koutsoukos. Hybrid Systems: Review and Recent Progress. http://www.vuse.Vanderbilt.edu/~koutsoxd/index.html 51. R.K. Boel, B. De Schutter, G. Nijsse, J.M. Schumacher, and J.H. van Schuppen. Approaches to modelling, analysis, and control of hybrid systems. Delft University of Technology Fac. of Information Technology and Systems Control Systems Engineering.Technical report bds: 99-04 52. Cellier, F. E. (1991). Continuous System Modeling. Springer-Verlag. 53. Cellier, F. E. (1992). Integrated Continuous-System Modeling and Simulation Environments. 54. Cellier, F, Otter, M., & Elmqvist, H. (1995). Bond Graph Modeling of Variable Structure Systems. 55. Engell, S.: Modelling and Analyse of hybrid dynamic systems (in German: Modellierung und Analyse hybrider dynamischer Systeme). Automatisierungstechnik (at) 4/97, 1997. 56. G. Davrazos and N. T. Koussoulas. A Review of Stability Results for Switched and Hybrid Systems. University of Patras, Electrical and Computer Engineering Department, Rio Patras, GREECE 57. J. D. Dora, S. Yovine. A Methodology For Analyzing The Dynamics Of Hybrid Systems. http://www-verimag.imag.fr/~yovine/articles/ecc01.pdf 58. Jeandel, Alexandre, and Fabrice Boudaud. "Physical system modeling languages from: ALLAN to Modelica." In Building Simulation '97, IBPSA conference, http://www.modelica.org/papers/p303.pdf, 1997. 59. S. Kowalewski, O. Stursberg, M. Fritz, H. Graf, I. Hoffmann, J. Preußig, S. Simon, M. Remelhe, and H. Treseler. A Case Study in Tool-Aided Analysis of Discretely Controlled Continuous Systems: the Two Tanks Problem. Presented at the I5th nternational Workshop on Hybrid Systems (HS V), September 11-13, 1997, Notre Dame, USA.Extended version, submitted for the Proceedings of HS V, LNCS, Springer-Verlag. 60. Lygeros J., Sastry S. “Hybrid systems modeling, analysis, control” Lecture Notes Univ. of Berkeley available in URL http://robotics.eecs.berkeley.edu/~lygeros/Teaching/ ee291E.html 61. P. Mosterman. An overview of hybrid simulation phenomena and their 204
support by simulation packages. In HSCC 99: Hybrid Systems— Computation and Control, volume 1569 of Lecture Notes in Computer Science, pages 165–177. Springer, 1999. 62. Pettersson, S.; Lennartson, B.: Hybrid Modelling focused on Hybrid Petri Nets. In Proc.of the 2nd European Workshop on Real--time and Hybrid Systems, Grenobel, France, June 1995. 63. Rimvall, M. and F. Cellier (1986): “Evolution And Perspectives Of Simulation Languages Following the CSSL standard.” Modeling, Identification and Control, 6, pp. 181–199. 64. A.J. van der Schaft and J.M. Schumacher, An Introduction to Hybrid Dynamical Systems, vol. 251 of Lecture Notes in Control and Information Science. London: Springer, 2000. Available Nov. 1999. 65. O. Stursberg, S. Kowalewski, I. Hoffmann and Jörg Preußig: Comparing Timed and Hybrid Automata as Approximations of Continuous Systems. In: Hybrid Systems IV, Lecture Notes in Computer Science 1273, pp. 361377, Springer-Verlag, 1997 66. Tiechroew, D., J. F. Lubin, and T. D. Truitt (1967): “Discussion of computer simulation and comparison of languages.” Simulation, 9, pp. 181–190. 67. Thoma, J. U. (1990). Simulation by bond graphs. Springer-Verlag.
205
Сениченков Ю.Б.
ЧИСЛЕННОЕ МОДЕЛИРОВАНИЕ ГИБРИДНЫХ СИСТЕМ
Лицензия ЛР № 020593 от 07.08.97 Налоговая льгота – Общероссийский классификатор продукции ОК 005-93, т.2; 953004 – научная и производственная литература Подписано в печать 01.09.2004. Формат 60x84/16 Усл. печ. л. 13,0.Уч.-изд. л. 13,0. Тираж 100. заказ Отпечатано с готового оригинал-макета, предоставленного автором, в типографии Издательства Политехнического университета. 195251, Санкт-Петербург, Политехническая, 29.
206