Ю. Б. Колесов Ю. Б. Сениченков
Рекомендовано Учебно-методическим объединением по университетскому политехническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки 220100 — "Системный анализ и управление"
Санкт-Петербург «БХВ-Петербург» 2012
УДК 681.3.06(075.8) ББК 32.973.26-018.2я73 К60
Колесов Ю. Б., Сениченков Ю. Б. К60
Моделирование систем. Динамические и гибридные системы. Учебное пособие. — СПб.: БХВ-Петербург, 2012. — 224 с.: ил. ISBN 5-94157-578-5 Учебное пособие посвящено компьютерному моделированию сложных динамических систем. Рассмотрены основные понятия моделирования — объект, модель, система, математическая модель, компьютерная модель, динамическая система, гибридная система, а также основы языка моделирования, необходимые для понимания приводимых примеров. Подробно рассматриваются две основные математические модели — (классическая) динамическая система и ее обобщение — гибридная система. Обсуждаются проблемы построения иерархических многокомпонентных моделей сложных динамических систем. Материал сопровождается большим количеством примеров. Для студентов вычислительных специальностей технических вузов УДК 681.3.06(075.8) ББК 32.973.26-018.2я73
Группа подготовки издания: Главный редактор Зам. главного редактора Зав. редакцией Редактор Компьютерная верстка Корректор Оформление обложки Зав. производством
Екатерина Кондукова Людмила Еремеевская Григорий Добин Анна Кузьмина Татьяны Олоновой Татьяна Кошелева Елена Беляева Николай Тверских
Рецензенты: Евгеньев Г.Б., д.т.н., профессор кафедры «Компьютерные системы автоматизации производств» МГТУ им. Баумана Ивановский Р.И., д.т.н., профессор кафедры «Распределенные вычисления и компьютерные сети» СПбГПУ
Формат 70 1001/16. Печать офсетная. Усл. печ. л. 18,06. Тираж 2000 экз. Заказ № "БХВ-Петербург", 190005, Санкт-Петербург, Измайловский пр., 29. Отпечатано с готовых диапозитивов в ОАО "Техническая книга" 190005, Санкт-Петербург, Измайловский пр., 29
ISBN 5-94157-578-5
© Колесов Ю. Б., Сениченков Ю. Б., 2006 © Оформление, издательство "БХВ-Петербург", 2006
Îãëàâëåíèå Предисловие ........................................................................................................... 5 Глава 1. Введение в компьютерное моделирование ...................................... 9 Модель.................................................................................................................... 10 Реальный объект и модель ................................................................................. 10 Виды моделей ..................................................................................................... 13 От моделей математических к компьютерным моделям ................................ 14 Компьютерное моделирование и вычислительный эксперимент .................. 19 Автоматизация компьютерного моделирования ............................................... 21 Программные средства моделирования ........................................................... 22 Языки моделирования ........................................................................................ 28 Классификация компьютерных моделей ......................................................... 31 Пространство, время, поведение ......................................................................... 35 Пространство состояний .................................................................................... 35 Время ................................................................................................................... 37 Синхронизация.................................................................................................... 39 Объект и его окружение. Изолированные и открытые модели ..................... 42 Объект и система объектов................................................................................ 45 Динамические и статические модели ............................................................... 45 Детерминированные и вероятностные модели ................................................ 46 Учет запаздывания.............................................................................................. 47 Непрерывные, дискретные, непрерывно-дискретные модели ....................... 48 Гибридные системы............................................................................................ 51 Последовательные и параллельные процессы ................................................ 53 Обобщение понятия состояния ......................................................................... 54 Основные конструкции языка моделирования.................................................. 55 Описание динамических систем ....................................................................... 56 Описание гибридных систем ............................................................................. 57
4
Îãëàâëåíèå
Состояния ...................................................................................................... 58 Переходы ....................................................................................................... 60 Глава 2. Изолированные однокомпонентные системы ............................... 63 Изолированные системы ...................................................................................... 63 Непрерывные модели ......................................................................................... 65 Непрерывно-дискретные модели. Гибридные системы ................................ 84 Модели, сводящиеся к динамическим и гибридным системам ...................... 114 Дискретные модели .......................................................................................... 115 Уравнения в частных производных ................................................................ 121 Марковские модели .......................................................................................... 124 Дискретные модели. Цепи Маркова ............................................................... 125 Непрерывные модели. Непрерывные цепи Маркова ................................... 128 Глава 3. Компонентные модели ..................................................................... 131 Композиция параллельных компонентов ......................................................... 138 Параллельное объединение непрерывных компонентов ................................ 141 Ориентированные блоки .................................................................................. 142 Неориентированные блоки .............................................................................. 153 Параллельное объединение гибридных компонентов ................................. 159 Композиция параллельно работающих блоков с контактами ...................... 171 Пример: синхронная и асинхронная композиция гибридных автоматов.... 171 Последовательная композиция компонентов .................................................. 175 Глава 4. Численное моделирование .............................................................. 179 Системы линейных алгебраических уравнений .............................................. 181 Проблема собственных значений ...................................................................... 188 Системы нелинейных алгебраических уравнений .......................................... 194 Системы обыкновенных дифференциальных уравнений ............................... 196 Системы алгебро-дифференциальных уравнений ........................................... 209 Литература ......................................................................................................... 216 Дополнительная литература к главе 1............................................................... 217 Дополнительная литература к главе 2............................................................... 218 Дополнительная литература к главе 3............................................................... 218 Дополнительная литература к главе 4............................................................... 219 Предметный указатель .............................................................................. 221
Ïðåäèñëîâèå Тема, обозначенная в заголовке данной книги — моделирование систем — практически безгранична. Поэтому стоит пояснить, о чем говорится в этой книге и о чем в ней не говорится. В этой книге нет рецептов, как строить математические модели конкретных прикладных систем. Различным моделям физических, биологических, экономических и других систем посвящено множество специальных работ, и мы не будем их пересказывать. В этой книге не рассматривается теория динамических систем, равно как и теории гибридных систем уделено ровно столько внимания, сколько необходимо для понимания основных проблем, возникающих при моделировании сложных объектов. Эта книга также не является введением в численные методы, используемые в современных пакетах моделирования. Эта книга посвящена вопросам компьютерного моделирования сложных динамических систем. Сложной динамической системой (СДС) будем называть систему, обладающую следующими свойствами: система содержит много компонентов, состав которых может изменяться
во время ее функционирования; компоненты имеют различную физическую природу; между компонентами имеются как физические, так и информационные
связи; в общем случае система имеет иерархическую многоуровневую структуру; элементарные компоненты могут быть непрерывными, дискретными или
непрерывно-дискретными (гибридными). Для того чтобы провести вычислительный эксперимент с СДС, необходимо уметь решать ряд задач.
6
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Во-первых, нужно правильно построить математическую модель всей системы в целом по математическим моделям отдельных компонентов и связей между ними, в том числе нужно уметь делать это и динамически при изменении состава компонентов модели. Во-вторых, как правило, уравнения, описывающие совокупное поведение системы, допускают только численное решение. Следовательно, нужно уметь преобразовывать математические модели из "внешнего" представления, удобного для человека, к "внутреннему", с которым могут работать современные численные методы. Кроме того, необходимо уметь правильно интерпретировать результаты вычислений и причины трудностей, возникающих при построении численного решения — в терминах исходных моделей. Наконец, в-третьих, необходимо уметь правильно определять моменты возникновения дискретных событий в модели, приводящих к смене поведения, и корректно "склеивать" решения до и после возникновения события. Решение этих трех задач для СДС выходит за границы возможностей человека и требует создания специальных инструментальных средств автоматизации моделирования. Книга состоит из трех томов. Том I посвящен теоретическим основам компьютерного моделирования. В нем вводятся базовые понятия и рассматриваются две математические модели — динамическая и гибридная системы, для которых уже существуют приемлемые для практики решения перечисленных выше задач. В томе I также рассмотрены общие вопросы автоматического объединения компонентов, а также современные численные методы, необходимые для моделирования СДС. Все вводимые понятия иллюстрируются простыми примерами, выполненными с помощью пакета моделирования СДС MvStudium (www.mvstudium.com), в коллектив разработчиков которого входят авторы данной книги. Том II посвящен компьютерным инструментам автоматизации моделирования СДС. В нем излагаются основные современные подходы к компьютерному моделированию сложных динамических объектов и рассматриваются наиболее распространенные пакеты моделирования. Обсуждаются основные принципы объектно-ориентированного моделирования и предлагается язык моделирования СДС, построенный для базового набора математических моделей, рассмотренных в томе I, а также структура и принципы работы инструментальных средств автоматизации моделирования СДС. Том III включает большой набор примеров систем, для которых построены и подробно описаны компьютерные модели с использованием различных подходов и пакетов моделирования. Сейчас вы держите в руках том I.
Ïðåäèñëîâèå
7
Эта книга — результат обработки нескольких курсов лекций из цикла "Моделирование", читаемых авторами на кафедре "Распределенные вычисления и компьютерные сети" Санкт-Петербургского государственного политехнического университета. Курсы, подвергшиеся переработке, в учебном плане кафедры объединены под общим названием "Моделирование сложных динамических систем". Главы 1 и 2 в основном соответствуют курсу "Введение в моделирование динамических систем". Для данного курса предусмотрено два часа лекций в неделю и два часа лабораторных работ, на которых студенты приобретают навыки работы с имеющимися на кафедре математическими пакетами. Глава 3 является составляющей курса "Математическое программное обеспечение. Машинные арифметики, систематизированные коллекции, математические пакеты", а именно — разделом, посвященным программным реализациям численных методов решения обыкновенных дифференциальных уравнений. Курс также сопровождается лабораторными работами, но их цель уже другая — студент должен сам разработать программное обеспечение для решения конкретной математической задачи, или провести вычислительный эксперимент, используя имеющиеся в пакете средства. Именно здесь он впервые сталкивается с проблемой ручной предварительной подготовки уравнений к их численному решению. Перечисленным курсам предшествует достаточно большой курс "Численный анализ", и поэтому предполагается, что студенты владеют материалом, изложенным в главе 4. В данной книге он играет роль справочного раздела. Цикл "Моделирование сложных динамических систем" заканчивается курсом "Компьютерное моделирование многокомпонентных систем" и научным семинаром. Научный семинар играет особую роль в процессе обучения — студент самостоятельно выбирает один из доступных пакетов моделирования и, выступая в роли разработчика пакета, пытается наилучшим образом представить достоинства "своей" среды моделирования. Для сравнения обычно выбирается одна и та же модель для пакетов одного класса. Параллельно читаемый курс "Компьютерное моделирование многокомпонентных систем" помогает увидеть то общее, что объединяет современные среды моделирования, и что отличает их. Попытка найти единый подход к описанию современных технологий моделирования сложных динамических систем оказалась трудной задачей. В издаваемых сегодня книгах делается упор на технику разработки моделей в различных средах без пояснения того, что стоит за этой техникой. Обучение моделированию порой сводится к выучиванию языка среды и набора "протоптанных" другими тропинок, ведущих к правдоподобному результату.
8
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Хотелось бы уйти от такой практики преподавания моделирования, но насколько это удалось — судить читателю. Сложность задачи приводила к многократным переделкам материала, и мы признательны редакции издательства "БХВ-Петербург", что она в конце концов сумела остановить процесс внесения изменений в очередной, уже отредактированный и готовый к верстке текст. Особая благодарность Анне Кузьминой, на чью долю выпало чтение и редактирование многочисленных вариантов книги. Авторы. 29 ноября 2005 года.
Ãëàâà 1
Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå В последние годы все чаще говорят о компьютерных экспериментах и необходимых для их проведения компьютерных инструментах. Компьютерные эксперименты отличаются от привычных натурных экспериментов тем, что исследователь экспериментирует не с реальным объектом, а с его компьютерной моделью. Компьютерное моделирование как метод исследования является естественным развитием математического моделирования. В основе компьютерных моделей, по крайней мере тех, о которых речь пойдет далее, лежат математические модели. Эти модели строятся автоматически по описанию структуры и поведения исследуемой системы, принятому в языке моделирования. Построенные математические модели обычно сводятся к системам уравнений, решение которых редко удается найти в замкнутой форме, и их приходится решать численно, с помощью программных реализаций численных методов. Программная реализация математической модели строится автоматически пакетом моделирования. Наконец при компьютерном моделировании широко используется возможность визуализации как самой модели, так и ее поведения. Исследуемая модель предстает перед пользователем в виде узнаваемых графических образов, ее параметры можно регулировать и ею можно управлять почти так же, как и в реальной жизни. В компьютерной модели используемая математическая модель, ее программная реализация, системное и математическое программное обеспечение, необходимые для воспроизведения поведения модели, спрятаны за дружественным интерфейсом. Все это позволяет создавать и исследовать компьютерные модели специалистам, далеким от прикладной математики и информатики.
10
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Для разработки компьютерных моделей и экспериментирования с ними создано специальное программное обеспечение — универсальные среды моделирования, которые уже практически повсеместно вытеснили ручное исследование сложных математических моделей. Эти инструменты, включающие графические редакторы моделей и виртуальные стенды, постепенно заменяют особый вид программного обеспечения — пакеты прикладных программ, еще недавно использовавшиеся для проведения вычислительного эксперимента. Системы моделирования позволяют создавать виртуальные, или лучше компьютерные, лаборатории, аналогичные реальным, оснащенные моделями измерительных приборов и датчиками сигналов. Современные инструменты моделирования предлагают исследователям новые технологии математического моделирования и проведения вычислительного эксперимента. Нашей целью является изучение методов построения компьютерных моделей, возможностей компьютерного моделирования и технологий проведения компьютерных экспериментов. С тех пор как Ньютон предложил использовать математические модели для изучения, объяснения и предсказания поведения окружающего нас мира, было создано огромное количество различных математических моделей. Мы будем рассматривать только модели, в основе которых лежат динамические и гибридные системы. Такие математические модели назовем сложными динамическими системами.
Ìîäåëü Зарождение любой естественной науки начинается с натурных экспериментов над реальными объектами и системами для выяснения их свойств, обнаружения закономерностей и законов, которым они подчиняются. Однако давно было замечено, что очень много можно узнать о реальном мире, если вместо реальных объектов изучать их упрощенные заменители — модели. В последующем выяснилось, что строить и использовать модели можно не только для познания окружающего нас мира.
Ðåàëüíûé îáúåêò è ìîäåëü Моделью объекта называется любой другой объект, отдельные свойства которого полностью или частично совпадают со свойствами исходного. Модель заменяет исходный объект, сохраняя только некоторые, существенные свойства объекта. Какие свойства считать существенными, а какие — нет, определяется целями моделирования. С точки зрения существенных свойств
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
11
реальный объект и его модель не должны различаться в рамках заданной точности. Построение и использование модели вместо исходного объекта называется моделированием. Модель редко удается построить сразу. Построение модели — трудно формализуемый процесс. Сложно заранее сказать, какие свойства окажутся существенными, а какие — нет. Это можно выяснить только по ходу экспериментов с моделью и сравнения ее свойств со свойствами исходного объекта. Не менее трудно заранее определить область применимости модели, для этого также требуются эксперименты. Процесс построения модели — это итерационный процесс. Моделирование можно представить себе как последовательность этапов: 1. Выбор объекта и целей моделирования. 2. Разработка критериев соответствия между объектом и моделью. Создание
модели. 3. Проверка соответствия модели и объекта. 4. Использование модели для решения поставленных задач.
Построенные модели можно использовать для различных целей. Познание. В процессе построения модели познается, как устроен исходный объект. В этом случае модель отражает представление исследователя о существенных факторах, закономерностях и причинно-следственных связях в изучаемом объекте. Правильность наших представлений проверяется с помощью натурных экспериментов: результаты моделирования сопоставляются с реальными экспериментальными данными. В определенном смысле все научные исследования сводятся к построению моделей природных объектов. В процессе познания существующие теории или модели мира видоизменяются, уточняются границы их применимости. Вместо одних теорий появляются другие, объясняющие более широкий круг явлений. В тоже время старые и новые модели могут прекрасно сосуществовать. Примером могут служить законы механики Аристотеля и Ньютона. Согласно Аристотелю, равномерное движение порождается постоянно приложенной силой. Согласно Ньютону, постоянно приложенная сила порождает постоянное ускорение. Это две теории — два различных объяснения того, как устроен мир. Законы Аристотеля проще и "подтверждены" повседневной жизнью: практически все мы и не один раз толкали "заглохший" автомобиль до заправки. Законы Ньютона более сложны. Они также позволяют нам объяснить, но уже совсем по-другому, почему нам приходится подталкивать автомобиль, чтобы он двигался при наличии силы трения. Но их возможности существенно больше, с их помощью
12
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
можно объяснить природу движения космических тел. Как показывают исследования, многие в повседневной жизни опираются на законы Аристотеля, и ничего страшного с ними не случается, в то время как для научных и инженерных расчетов это недопустимо, и необходимо применять законы Ньютона. Предсказание. Модель позволяет предсказывать поведение интересующего нас объекта в заданных условиях. Исследуя модели, можно узнать заранее, какими будут реакции объекта на управляющие воздействия. Модель может предсказывать существование у исследуемого объекта оптимальных режимов работы. С ее помощью можно находить значения параметров, при которых они реализуются. С помощью модели можно исследовать особые режимы работы, которые трудно или опасно изучать на реальном объекте. Однако возможности предсказания могут оказаться шире — удачно построенная модель способна предсказать явления, которые мы еще не наблюдали, и тем самым указать новое направление научных исследований. Обучение. Модель может имитировать реальный объект, т. е. сохранять дополнительно многие его внешние черты. Такие модели или имитаторы используются при обучении. Имитатор пульта управления электростанцией, например, может служить тренажером при подготовке персонала к последующей работе в реальной обстановке. Макеты космических кораблей или военных судов могут служить наглядными пособиями для будущих космонавтов и военных. Модели музеев — компьютерные диски с фотографиями самого музея, его залов, а также его экспонатов используются при дистанционном обучении. Модели объектов могут изучаться вместо реальных объектов в учебных лабораториях, демонстрироваться на лекциях. В последнее время все большую популярность в обучении как очном, так и дистанционном приобретают компьютерные лаборатории. Конструирование. Модель может создаваться как прототип нового уст-
ройства. Например, спецификация будущего программного комплекса одновременно является его моделью. Интересно отметить, что здесь нарушаются привычные для нас причинно-следственные соотношения: не модель формируется для реального объекта, а реальный объект создается на основании разработанной и исследованной модели. Моделипрототипы используются в основном на ранних этапах создания новых технических систем. Например, всем программистам хорошо известны заглушки, применяемые вместо еще неразработанных модулей в больших программных комплексах. При отладке алгоритмов управления на ранних этапах проектирования повсеместно используются имитаторы объектов управления.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
13
Необходимость замещения или моделирования может быть также обусловлена тем, что реальный эксперимент нецелесообразен, опасен или вообще неосуществим при современном уровне техники. Трудно себе представить, что человечество будет ставить эксперименты с Землей, повышая ее температуру или меняя орбиту, или использовать Солнце как экспериментальный образец при изучении звезд. Очевидно, что любая модель — это лишь приближение к моделируемому объекту, т. к. обладает только специально отобранными свойствами. Теоретически можно поставить задачу создать модель, максимально приближенную к исходному объекту. Такая постановка важна только для теории познания, когда мы стремимся все более полно познать мир. Для предсказания, конструирования и обучения исчерпывающе полной модели объекта не нужно — достаточно такого приближения, которое решает поставленную задачу. Рукотворные, технические объекты создаются по формальным спецификациям. Реальный объект, вышедший из сборочного цеха, всегда неизмеримо богаче по своим свойствам собственной спецификации или макета. Для одного объекта одновременно может существовать несколько различных моделей. Эти модели могут отражать различные свойства исходного объекта, существенные для разных применений. Например, при исследованиях аэродинамических свойств будущего самолета в аэродинамической трубе достаточно его геометрического макета, изготовленного в натуральную величину или уменьшенного. В то же время для тренировки обслуживающего персонала или группы спецназа макет самолета должен точно отражать планировку салона, расстановку кресел и даже используемые отделочные материалы. Модели могут также отражать одни и те же свойства с различной степенью точности. Например, при исследовании полета теннисного мяча разумно предположить, что Земля плоская. При исследовании полета снаряда, выпущенного из дальнобойного орудия, уже имеет смысл использовать сферическую модель Земли. Наконец, при расчете траектории межконтинентальной баллистической ракеты необходимо рассматривать Землю как эллипсоид и учитывать гравитационные аномалии.
Âèäû ìîäåëåé Модели можно условно разделить на две группы: материальные и идеальные. Первой группе соответствует предметное моделирование, а второй — абстрактное. В данной книге рассматривается абстрактное моделирование, поэтому о предметном моделировании мы скажем всего несколько слов. Основными разновидностями предметного моделирования являются физическое и аналоговое моделирование. Физическим принято называть моделирование (макетирование), при котором реальный объект заменяется его увеличенной или уменьшенной копией,
14
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
сохраняющей геометрические пропорции и физические принципы действия. При физическом моделировании используется теория подобия, которая позволяет установить количественные отношения между свойствами модели и реального объекта, границы, в которых они сохраняются и, используя эти соотношения, по зависимостям, обнаруженным в модели, строить зависимости, справедливые для реального объекта. Кроме того, при физическом моделировании может использоваться не одна, а несколько моделей. Аналоговое моделирование основано на замене исходного объекта объектом другой физической природы, поведение которого определяется аналогичными физическими законами. Например, колебания и резонанс в механических системах аналогичны колебаниям и резонансу в электрических цепях. В то же время исследовать колебания тока в электрической цепи, аналогичные угловым колебаниям ракеты, значительно проще и безопаснее, чем экспериментировать с летящей ракетой. Наибольшее распространение аналоговое моделирование получило в эру аналоговых вычислительных машин (АВМ), постепенно вытесненными цифровыми. Недостатками аналогового моделирования являются сложность создания модели и низкая точность результатов. Идеальные модели — это абстрактные образы замещаемых объектов. Различают два типа идеального моделирования: интуитивное и знаковое. Интуитивное моделирование используется человеком и другими живыми существами для отражения окружающего мира и предсказания его реакций. Как оно осуществляется, мы не знаем. Знаковое моделирование предполагает использование в качестве моделей знаков или символов: схемы, графики, чертежи, тексты на разных языках, включая формальные, математические формулы и теории. Наиболее важным видом знакового моделирования является математическое моделирование. Обязательным участником знакового моделирования является интерпретатор знаковой модели. Чертежи, тексты, формулы сами по себе не имеют никакого смысла без того, кто понимает их и использует в своей деятельности. Обычно интерпретатором знаковой модели является человек, понимающий смысл используемых знаков, однако уже сейчас существует множество технических устройств, обладающих схожими возможностями.
Îò ìîäåëåé ìàòåìàòè÷åñêèõ ê êîìïüþòåðíûì ìîäåëÿì Из всех возможных математических моделей мы будем рассматривать системы обыкновенных дифференциальных уравнений (динамические системы) и системы дифференциальных уравнений, дополненные системами алгебраических уравнений, с заданными начальными условиями, а также модели, сводящиеся к ним.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
15
Второй закон Ньютона m
d 2x dt 2
=F,
записанный в форме дифференциального уравнения, описывает динамические системы, изучаемые уже в школе. В школьном курсе физики только упоминается о существовании уравнений в приведенной выше форме. Для решения школьных задач по механике используются решения дифференциальных уравнений, записанные в виде формул с набором параметров. Так как для многих применение математического моделирования на этом и заканчивается, математическое моделирование предстает в далеком от действительности виде: гений пишет уравнения и решает их с помощью карандаша и бумаги, а практики подставляют в готовые формулы нужные значения параметров. Примером такого "идеалистического" моделирования может служить исследование движения тела, брошенного с начальной скоростью V0 под углом θ 0 к горизонту в безвоздушной среде (рис. 1.1). y V0
θ0 m
x
Рис. 1.1. Тело, брошенное под углом к горизонту
Динамика движения задается системой уравнений
⎧d 2x ⎪⎪ 2 = 0, dx dt x(0) = 0, y (0) = 0 , ⎨ 2 dt ⎪ d y = −g, 2 ⎪⎩ dt
t =0
= V0 ⋅ cos θ 0 ,
dy dt
t =0
= V0 ⋅ sin θ 0
(1.1)
которая имеет очевидное, выраженное через элементарные функции, решение:
⎧ x = V0 ⋅ cos θ 0 ⋅ t , ⎪ ⎨ g ⋅t2 . ⎪ y = V0 ⋅ sin θ 0 ⋅ t − ⎩ 2
16
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Из этой модели легко получить в явном виде зависимость дальности точки падения от угла бросания: 2 ⋅ V0 2 ⋅ sin θ 0 ⋅ cos θ 0 L= . g
(1.2)
Продифференцировав это выражение по θ 0 и приравняв полученное выражение нулю, найдем, что угол максимальной дальности является решением уравнения cos 2 θ 0 − sin 2 θ 0 = 0 и равен 45°. И этот ответ легко проверить на практике. К сожалению, такие простые модели и их "ручные" способы анализа уже давно ушли в прошлое. Прежде всего, это связано с тем, что подавляющее большинство представляющих практический интерес математических моделей являются слишком сложными и не имеют решений, которые можно представить в замкнутой форме, т. е. в виде явного выражения, в которое входят только функции из заданного множества и операции над ними. Такие решения обычно строятся либо "руками", либо с помощью математических пакетов, умеющих выполнять символьные вычисления, и обычно называются символьными. Если в условия предыдущей задачи добавить учет сопротивления воздуха, то получим систему уравнений: ⎧ dx ⎪ dt = Vx , ⎪ ⎪ dVх = − F ⋅ cos T , ⎪ dt m ⎪ dy ⎪ =V y ⎪ dt ⎪ dV ⎪ y = − g − F ⋅ sin T , ⎪ dt m x(0) = 0, ⎨ ⎪ ρ ⋅V 2 ⎪ F = C X ⋅ Sm ⋅ 2 , ⎪ ⎪V = V 2 + V 2 , x y ⎪ ⎪ Vy ⎪sin T = , V ⎪ ⎪ Vx ⎪cos T = , V ⎩
y (0) = 0, Vx (0) = V0 ⋅ cos θ0 , V y (0) = V0 ⋅ sin θ, (1.3)
которую необходимо уже решать численно.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
17
И символьное решение, и численное, конечно же, можно попытаться найти вручную, но обычно сложность сегодняшних задач такова, что найти их решение под силу только мощным вычислительным машинам. Использование вычислительных машин при математическом моделировании привнесло качественный скачок в эту область. Новую технологию стали описывать в виде знаменитой триады: "математическая модель — численные методы — программная реализация численных методов", а машинные эксперименты над математической моделью называть вычислительными экспериментами. Вычислительный эксперимент проводится над компьютерной моделью, часть которой и описывает приведенная выше триада. Компьютерная модель обладает особыми свойствами по сравнению с математической моделью. Она не является просто записанной на другом языке, языке компьютера, математической моделью. Компьютерная модель имеет две составляющие — программную и аппаратную (рис. 1.2). Компьютерная модель
Операционная система Моделирующая программа Аппаратура компьютера
Рис. 1.2. Составляющие компьютерной модели
Программная составляющая (моделирующая программа) является абстрактной знаковой моделью специального вида, которая интерпретируется физическим устройством — процессором компьютера и "выполняется". В результате мы наблюдаем некоторый физический процесс, в частности движение образов на экране, которые мы интерпретируем как поведение модели. Под компьютером в данном случае достаточно понимать любое устройство, состоящее из аппаратной и программной частей, способное интерпретировать и выполнять программы. Это может быть и суперкомпьютер, и встроенный микропроцессор с "зашитой" в его память программой. Совокупность компьютера и моделирующей программы является уже физическим устройством и, таким образом, компьютерные модели можно считать особым видом физических моделей.
18
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Существование таких особых физических моделей на базе компьютеров позволяет говорить еще об одной стороне компьютерного моделирования. С этой точки зрения компьютерное моделирование обладает уникальным набором привлекательных свойств, к числу которых, прежде всего, относятся почти неограниченная сложность моделей. Удобным также является разделение на "мягкую" часть (программное обеспечение), которую необходимо изменять при переходе к другой модели, и "жесткую" часть (аппаратуру и операционную систему), которая остается неизменной. Компьютерная модель, таким образом, в определенных условиях может выступать в качестве имитатора реального объекта. Ее можно "подключать" к другим реальным объектам точно так, как ее физические прототипы. Это свойство компьютерных моделей позволяет использовать их в составе полунатурных моделей, собранных из реальных устройств и имитаторов реальных устройств, используемых при создании и испытаниях сложных технических систем. Справедливости ради надо заметить, что компьютерные модели могут создаваться не обязательно на основе математических моделей. В их основе могут лежать записанные на языке программирования представления об объекте, существующие в сознании разработчика (пунктирная линия на рис. 1.3). Если назначение такой модели — создание на ее основе математической модели и затем ее реализация на вычислительной машине (сплошная линия на рис. 1.3), то такой подход вполне допустим. Такое моделирование в последнее время называют имитационным. Имитационное моделирование в этом смысле — это еще один этап компьютерного моделирования, когда мы первоначально имеем дело с трудно формализуемой моделью. Интуитивная модель
Математическая модель
Компьютерная модель Операционная система Моделирующая программа Аппаратура компьютера
Рис. 1.3. Соотношение моделей
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
19
Êîìïüþòåðíîå ìîäåëèðîâàíèå è âû÷èñëèòåëüíûé ýêñïåðèìåíò Компьютерное моделирование всегда предполагает проведение вычислительного эксперимента. В рассмотренной нами модели, соотношение (1.2) сразу определяет зависимость дальности точки падения от θ 0 , V0 и g (на рис. 1.4 показана зависимость дальности от угла θ 0 ). Это соотношение было получено чисто математическими методами, не требующими применения вычислительной техники.
Рис. 1.4. Теоретическая зависимость дальности от угла бросания
Если же вы не имеете такого явного соотношения (как, например, для системы уравнений (1.3)), то вам необходимо несколько раз численно решить систему уравнений, задающую динамику объекта (рис. 1.5), определить точки падения и после этого получить искомую зависимость (рис. 1.6, а).
Рис. 1.5. Результаты вычислительного эксперимента
20
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
а
б Рис. 1.6. Экспериментальные зависимости дальности полета от угла бросания: а — без сопротивления воздуха; б — с учетом сопротивления воздуха
Если из соотношения (1.2) сразу следует, что угол максимальной дальности не зависит от V0 и g , то для выявления зависимости дальности полета от V0 , g и плотности воздуха ρ в модели (1.3) вам придется провести несколько серий экспериментов. После обработки результатов можно будет сделать вывод, что при увеличении V0 и ρ угол максимальной дальности уменьшается (рис. 1.6, б), а при увеличении g — увеличивается, приближаясь к 45°. Таким образом, компьютерное моделирование действительно является особым видом проведения экспериментов с моделью исследуемого объекта. Однако при проведении компьютерных экспериментов необходимо принимать специальные меры предосторожности, т. к. интересующие нас зависимости получены на основании численных расчетов, в которых могут присутствовать вычислительные погрешности. Кривая на рис. 1.4 также построена на основании точек, рассчитанных по зависимости (1.2) с помощью компьютера, однако
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
21
мы уверены, что вычислительные ошибки в этом случае ничтожны. Знание зависимости (1.2) всегда позволяет нам проверить правильность кривой, построенной компьютером. В то же время, если мы будем получать значение L путем прямого решения системы уравнений (1.1), то не сможем быть уверены, что истинный характер зависимости L(θ 0 ) таков, как показано на рис. 1.6, а, а не такой, как на рис. 1.7.
Рис. 1.7. Пример графика, в который, возможно, вкралась вычислительная ошибка
Приведенная на графике ошибка, конечно же, является всего лишь примером кривой, которая может появиться в результате проводимого эксперимента. В нашем конкретном случае надо очень постараться, чтобы получить такую ошибочную зависимость. Однако при проведении сколько-нибудь сложного эксперимента ошибиться можно на каждом из этапов. Построенная математическая модель может содержать ошибки. Ошибки могут внести и численные методы, и их программные реализации, использующие арифметику машинных чисел. Возможны ошибки даже при такой простой операции, как построение графиков. Иногда требуется приложить много усилий, чтобы убедиться в правильном соответствии результатов компьютерного эксперимента результатам реальных экспериментов, а тем более убедить себя и других в правильности обнаруженной новой зависимости.
Àâòîìàòèçàöèÿ êîìïüþòåðíîãî ìîäåëèðîâàíèÿ Необходимость автоматизации процесса моделирования возникла в середине прошлого столетия, когда появилась возможность использовать для моделирования вычислительные машины. В наиболее простой постановке задача сводится к следующему. Дана математическая модель в виде системы уравнений, требуется построить решение и
22
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
изучить его свойства в зависимости от значений параметров, лежащих в заданных пределах. Близкой с точки зрения задач автоматизации является задача поиска значений параметров системы уравнений, доставляющих экстремум заданного функционала качества. Даже если дополнительно известно, что решение или экстремум существует, необходимо проделать большую работу: выбрать численный метод для решения поставленной задачи, написать его программную реализацию и многократно решать систему уравнений с различными значениями параметров. Процесс решения таких задач ускоряется, если существуют библиотеки численных методов. Создание библиотек численных методов для заданных классов уравнений исторически было первым шагом на пути автоматизации моделирования. К концу 70-х годов прошлого столетия были созданы специализированные коллекции численных методов практически для всех областей численного анализа. Наличие библиотек не спасает от необходимости многократно проводить и обрабатывать результаты отдельных экспериментов для различных входных данных. Дальнейшие шаги на пути автоматизации моделирования были связаны с разработкой систем автоматического проектирования (САПР) и систем автоматизации вычислительного эксперимента — пакетов прикладных программ (ППП). В обоих случаях исходные математические модели (уравнения) считаются заданными. САПР характеризуются большим числом исходных данных, стандартными расчетами и необходимостью оформлять результаты экспериментов в строго регламентированном виде. Именно эти этапы и автоматизируются. ППП предназначены для решения уникальных задач и, как правило, разрабатываются большими коллективами специалистов из различных областей. При создании ППП многократно изменяется исходная математическая модель, строятся новые численные методы и их программные реализации, т. к. исследователи имеют дело с малоизученным и сложным объектом. После внесения каждого изменения приходится заново повторять все эксперименты и сравнивать результаты. Автоматизация этих операций ускоряет процесс исследования. На основании созданных новых моделей уже можно создавать САПР. Наиболее трудно автоматизируемым этапом является процесс построения модели. В то же время при разработке аппаратуры успешно применяются технологии разработки больших систем из стандартных блоков. Этот подход может быть использован и при построении сложных моделей. Воплощение этой идеи привело к созданию языков моделирования, применяемых в универсальных конструкторах моделей.
Ïðîãðàììíûå ñðåäñòâà ìîäåëèðîâàíèÿ Для решения уникальных задач, в том числе и задач моделирования, в условиях ограниченности быстродействия или памяти компьютера, для создания моделирующих программ применяются традиционные методы проектирования
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
23
программ. Автоматизация, конечно же, имеет место и здесь, но это автоматизация процесса создания программных комплексов, и собственно к моделированию она не относится. На заре компьютерного моделирования все моделирующие программы были уникальными и писались непосредственно на существовавших в то время языках программирования (Алголе или Фортране). В качестве спецификации будущей программы выступала запись на математическом языке. Эффективность полученного кода повышалась за счет использования языка Ассемблера (написание всей программы или ее наиболее трудоемких частей в машинных командах иногда давало серьезный выигрыш в быстродействии). Подчеркнем, что этот способ создания моделирующих программ может быть использован и сейчас, но в те годы он был единственно возможным. Для создания даже простой моделирующей программы непосредственно на выбранном процедурном языке требуется много времени. Причина больших временных затрат — существенная разница в уровнях абстракции математической модели и программы для вычислительной машины. Разработчик вынужден держать "в голове" соответствие между описаниями этих различных уровней, чтобы переводить любое изменение модели с математического уровня на уровень программного кода и интерпретировать полученные результаты машинных экспериментов в терминах исходной постановки задачи. Перевод и интерпретация, если они выполняются программистом, являются неиссякаемым источником ошибок. Такой "ручной" перевод математического описания в программный код требует очень высокой квалификации программиста. В то же время, как и всякая ручная работа, выполненная профессионалом, созданная руками моделирующая программа может оказаться очень эффективной. Если она многократно используется с незначительными модификациями для длительных расчетов при большом количестве параметров, то выигрыш в производительности часто перекрывает все трудности ее создания. Для создания систематизированных коллекций для численных расчетов использовался и используется язык Фортран. Фортран обладает возможностью оптимизировать программу на различных уровнях, в частности на аппаратном. Систематизированные коллекции уникальны, создаются годами, тщательно тестируются. Их применение и особенно модификация требуют специальных знаний как в области численных методов, так и в программировании. Появление коллекций и библиотек резко расширило возможности моделирования. Если математическая модель представляла собой не очень большую систему уравнений, то для программиста, знакомого с прикладной областью, для которой создавалась модель, с применяемыми численными методами и
24
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
соответствующей коллекцией, не составляло труда перевести ее в операторы Фортрана. Правда, найти такого программиста было сложно, и поэтому над программой совместно работали: специалист в прикладной области, математик и программист. Разработка коллекций оказалась сложной задачей, потребовавшей создания теории машинной арифметики и методов оценки ошибок округления. Впервые было осознано, что ручной счет и машинные вычисления — не одно и то же, и что использование вычислительной техники приводит к появлению качественно новых задач. Для сложных моделей, а также для моделей исследовательского типа, когда исходные математические модели еще очень "сырые", стали использоваться системы автоматизации моделирования (их часто называют просто системами моделирования или пакетами моделирования). Не случайно первые инструменты автоматизации моделирования возникли для создания моделей систем массового обслуживания, т. е. моделей с переменной структурой и параллельными процессами. Система автоматизации моделирования позволяет автоматически строить моделирующую программу по математической модели системы и автоматически преобразовывать результаты вычислительных экспериментов на уровень абстракции математической модели. Таким образом, из цикла разработки модели исключаются трудозатраты на "ручное" программирование, а также ошибки программирования (остаются, конечно, ошибки самой системы моделирования, которые для отработанных пакетов довольно немногочисленны). Использование систем автоматизации моделирования позволяет на порядок повысить производительность труда при создании моделей, увеличить их надежность и резко расширить область применения компьютерного моделирования. В настоящее время существуют сотни программных пакетов моделирования. При использовании системы автоматизации моделирования разработчик формулирует математическую модель исследуемой системы на формальном входном языке моделирования (рис. 1.8). Современные пакеты моделирования, как правило, включают специальные визуальные редакторы, позволяющие вводить описание моделируемой системы в форме, максимально удобной для восприятия человеком. Математические выражения пишутся с использованием многоэтажных дробей, символов интегралов, сумм и производных. Структура и поведение изображаются в виде структурных схем и графов переходов. Эти графические описания автоматически преобразуются в программу модели (жирная стрелка на рис. 1.8), которая вместе с исполняющей системой пакета моделирования и составляет моделирующую программу.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
25
Интуитивная модель
Описание модели на языке моделирования
Интерпретация результатов
Компьютерная модель
Программа модели
Операционная система
Исполняющая система
Аппаратура компьютера
Моделирующая программа
Рис. 1.8. Преобразование данных в системе автоматизации моделирования
"Программа модели" может быть либо действительно совокупностью программных модулей на некотором промежуточном языке программирования, которые после связывания с модулями исполняющей системы пакета моделирования образуют независимую выполняемую программу (такой пакет называется компилирующим), либо специальным внутренним представлением описания модели, которое воспринимается и интерпретируется исполняющей системой пакета (такой пакет называется интерпретирующим). Постепенно графические описания унифицировались, систематизировались операции, и стали возникать языки моделирования. Необходимость использования специальных языков моделирования обусловлена несколькими причинами. Во-первых, традиционный математический язык все же ориентирован на человека как интерпретатора и опускает огромное множество "мелочей", совершенно необходимых для полного и однозначного определения описания модели, понятного транслятору пакета моделирования. Вовторых, для удобства пользователей язык моделирования часто включает в себя семантику определенной области применения (например, языки моделирования систем массового обслуживания, такие как GPSS, включают такие специальные конструкции, как ресурс, очередь, транзакция и т. п.). На рис. 1.9 представлена схема классификации (конечно, достаточно условная) пакетов моделирования. Специализированные пакеты используют специфические понятия конкретной прикладной области (химической технологии, теплотехники, электротехники и т. д.), решают подчас недоступные
26
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
пользователю конкретные системы уравнений, таким образом, имеют узкую область применения. Область применения универсальных пакетов шире, т. к. они ориентированы на определенный класс математических моделей и применимы для любой прикладной области, в которой эти модели используются. Специализированные пакеты очень трудно использовать для моделирования и исследования сложных систем с компонентами различной физической природы, т. к. каждую компоненту приходится изучать автономно с помощью различных пакетов. Полученные специализированные модели чрезвычайно сложно использовать в дальнейшем для построения комплексной модели сложной системы. Поэтому даже при моделировании отдельных подсистем предпочтительно использовать "универсальные" пакеты. "Универсальные" пакеты обычно разделяют на математические пакеты и пакеты компонентного моделирования. Пакеты моделирования
Специализированные пакеты
Универсальные пакеты
Математические пакеты
Пакеты компонентного моделирования
"Промышленные" пакеты
"Исследовательские" пакеты
Рис. 1.9. Классификация пакетов моделирования
В математических пакетах (Mathematica, Mathcad, MATLAB, Maple) предполагается, что математическая модель всей моделируемой системы уже построена и ее требуется только исследовать. Такой подход характерен в основном для научных исследований, когда необходимо, прежде всего, убедиться в наличии требуемых свойств у новой модели. Математические пакеты позволяют проводить символьные преобразования модели, находить, если это возможно, решения уравнений в замкнутой форме, а случае неудачи — решать уравнения численно. Для проведения вычислительного эксперимента приходится писать программу на достаточно сложном языке программирования. Компонентное моделирование предполагает, что описание моделируемой системы строится из компонентов (в т. ч. и готовых библиотечных), а совокупная математическая модель формируется пакетом автоматически. Размерность и
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
27
сложность совокупной системы уравнений таковы, что их решение приходится искать численно. Символьные вычисления если и проводятся, то лишь при решении отдельных вспомогательных задач. Компонентное моделирование — это основной способ проектирования технических объектов. Пакеты компонентного моделирования по способам их применения или технологии моделирования также можно разделить на две группы. К первой отнесем пакеты, предназначенные для решения сложных промышленных и научно-исследовательских задач большими производственными или научными коллективами. В таких проектах ведущую роль играет организация работ: хорошо налаженное взаимодействие между отдельными группами, быстрый доступ к многочисленным экспериментальным данным и библиотекам программ, тщательное документирование и тестирование, многовариантные расчеты. При этом обычно используются хорошо изученные готовые математические модели, которые лишь модифицируются и приспосабливаются для решения конкретных задач. Пользователи пакета подразделяются на две категории: разработчики библиотек готовых моделей и обычные пользователи, работа которых сводится к составлению схем из типовых блоков и параметрической настройке блоков. Пакеты первой группы условно назовем "промышленными". Совсем другая технология характерна для предварительных исследований, выполняемых отдельными учеными или проектировщиками. Библиотеки готовых моделей в этом случае используются весьма ограничено. Исходным материалом служат плохо формализованные "сырые" модели, т. е. модели, чьи свойства еще не вполне осознаны. Это означает, что необходимо уметь организовывать и поддерживать непрерывную обратную связь между исследователем и исследуемой моделью. Несмотря на большие достижения в области автоматического синтеза систем с заданными показателями, на практике разработка новой технической системы — это, прежде всего, просмотр большого числа пробных вариантов. Назовем пакеты второй группы "исследовательскими", подчеркивая этим, что они уступают по количеству уникальных возможностей промышленным, зато более просты для освоения и доступны отдельному исследователю при решении относительно несложных задач из практически любой прикладной области. Под "несложными" будем понимать не простые задачи, а задачи посильные одному разработчику, не являющемуся специалистом в области программирования и вычислений. С "исследовательскими" пакетами тесно связана концепция активного вычислительного эксперимента, предусматривающая: визуализацию результатов моделирования не после эксперимента, а во время эксперимента; возможность интерактивного вмешательства пользователя в ход вычислительного эксперимента; возможность использования 2D- и 3D-анимации, в том числе интерактивной.
28
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Активный вычислительный эксперимент является аналогом активного натурного эксперимента и позволяет исследователю "играть" с моделью, непосредственно видеть ее поведение, воздействовать на нее и наблюдать отклик. Пакет автоматизации моделирования должен: обладать удобным для пользователя интерфейсом, позволяющим созда-
вать математическую модель исследуемой системы с помощью используемого языка моделирования высокого уровня и обеспечивать контроль корректности этой модели; автоматически, по созданной математической модели, строить компью-
терную модель; предоставлять пользователю возможность проводить активный вычисли-
тельный эксперимент с компьютерной моделью на том уровне абстракции, который удобен пользователю, и обеспечивать его корректное проведение.
ßçûêè ìîäåëèðîâàíèÿ За последние десятилетия языки моделирования качественно изменились. Первые языки моделирования (SLAM, Simula) представляли собой макрорасширения языков программирования (Фортран, Алгол) и с точки зрения технологии моделирования следовали за существовавшими тогда языками программирования. Качественный скачок произошел с появлением объектно-ориентированных языков моделирования. Исторически они появились раньше объектноориентированных языков программирования. Однако и первые языки объектно-ориентированного моделирования, такие как Simula-67 и НЕДИС, по сути, предлагали пользователю язык программирования высокого уровня со специальными библиотеками классов. В настоящее время считается, что язык моделирования должен быть графическим. Структура модели должна описываться различными типами иерархических блок-схем, схемами, состоящими из "физических" компонентов, а ее поведение — на языке, максимально приближенном к естественному математическому языку, в виде карт состояний, т. е. на языках, удобных человеку, а не машине. Обо всех этих формах мы поговорим подробнее дальше. Помимо чисто технических проблем, связанных с разработкой сложных визуальных редакторов, это требование приводит и к теоретическим проблемам. Повышение уровня абстракции входных языков и появление в них графических конструкций все более удаляет нас от достаточно сложных и жестких форм, присущих языкам программирования, на которых, в конце концов, и создается моделирующая программа.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
29
Рассмотрим возникающие проблемы на примере моделей, поведение которых описывается системой дифференциальных уравнений. Существует много различных методов построения моделей динамических систем, приводящих к различным формам записи уравнений. Уравнения могут быть представлены в форме Коши. Это могут быть уравнения Лагранжа. Уравнения могут быть разрешены и не разрешены относительно старших производных. В случае использования законов сохранения к системе дифференциальных уравнений добавляются алгебраические. Долгие годы считалось, что в языках моделирования нужно разрешать только те формы записи уравнений, которые максимально приближены к формам, принятым в специализированных коллекциях, предназначенных для численного решения уравнений. В то же время пользователю гораздо удобнее записывать исходные физические зависимости в той форме, как они получены. Назовем это естественной формой. Рассмотрим различия этих форм на примере. Пусть две точечные массы m1 и m2 соединены жестким стержнем длины L и подвешены таким образом, что точка подвеса массы m1 не закреплена и может двигаться по оси x (рис. 1.10). y m1
x1 x L
α
m2 (x2, y2)
Рис. 1.10. Пример физической системы со сложной динамикой
Ниже приведено описание этой системы с помощью уравнений Лагранжа: ⎧ d 2 x1 d 2α dα ( m m ) m L cos + + α = m2 L sin α ( )2 , ⎪ 1 2 2 2 2 dt dt dt ⎪ 2 ⎪ ⎪ d x d 2α ⎨cos α 21 + L 2 = − g sin α, dt dt ⎪ ⎪ x2 = x1 + L sin α, ⎪ ⎪ ⎩ y2 = − L cos α.
30
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
И эту форму в данном случае следует считать естественной или свободной. Однако большинство программ для численного решения дифференциальных уравнений требует приведения данной системы к форме Коши, т. е. к системе уравнений первого порядка, разрешенных относительно первых производных. Конечно, эта система уравнений может быть преобразована к форме Коши: ⎧ dx1 ⎪ dt = V1 , ⎪ ⎪ dα = ω , ⎪ dt ⎪ ⎪ dω = K 4 ⋅ K 3 + K 1 ⋅ K 6 , ⎪ dt K 4 ⋅ K 2 − K5 ⎪ dV K 3 ⋅ L + K 2 ⋅ K 6 ⎪ 1= , ⎨ dt K5 − K2⋅ K4 ⎪ K1 = m + m , 1 2 ⎪ ⎪ K 2 = m2 ⋅ L ⋅ cos α , ⎪ 2 ⎪ K 3 = m2 ⋅ L ⋅ sin α ⋅ ω , ⎪ K 4 = cosα , ⎪ ⎪ K 5 = K 1 ⋅ L, ⎪ ⎩ K 6 = g ⋅ sin α .
Однако при выполнении даже такого несложного преобразования вручную велик риск допустить ошибки. Кроме того, теряется физический смысл уравнений. Существование в языке моделирования графических операторов, позволяющих в удобной форме описывать структуру и поведение, ведет к необходимости автоматически приводить введенные пользователем или построенные пакетом уравнения к формам, с которыми могут работать библиотеки программных реализаций численных методов. Свободная форма уравнений приводит к еще одной очень важной задаче — задаче автоматического анализа выполнения условий существования и единственности решения. Современные программные реализации численных методов предполагают, что задачи хорошо поставлены и имеют решение. Таким образом, современный пакет моделирования должен включать средства автоматического анализа выполнения условий, позволяющих утверждать, что написанная пользователем или созданная автоматически система уравнений имеет единственное решение и алгоритмы преобразования систем уравнений к формам, с которыми могут работать программные реализации численных методов. Такие средства еще только создаются.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
31
Êëàññèôèêàöèÿ êîìïüþòåðíûõ ìîäåëåé Современные пакеты моделирования могут строить модели и исследовать их, а могут только исследовать или рассчитывать требуемые характеристики моделей. Пакеты моделирования строят новые модели из готовых компонентов различного типа или, если их недостаточно, позволяют разрабатывать новые компоненты. В основе новых компонентов могут лежать различные математические модели. Таким образом, в основу классификации моделей может быть положено несколько признаков: возможность построения новых моделей, наличие структуры у создаваемых моделей, возможность взаимодействия компонентов, вид математической модели. Универсальные пакеты, цель которых создавать и исследовать модели, должны предоставлять пользователю следующие возможности: самостоятельно создавать новые модели; позволять строить новые модели из библиотечных компонентов и попол-
нять набор уже существующих компонентов новыми, разрабатывая их на языке моделирования; использовать различные математические модели.
На рис. 1.11 условно показаны три признака, три "ортогональных" направления одной из возможных классификаций моделей сложных динамических систем.
Непрерывное поведение
Составной объект
Изолированная система
Открытая система
Элементарный объект
Гибридное поведение
Рис. 1.11. Классификация моделей сложных систем
По типу взаимодействия с внешним миром модели делятся на открытые и изолированные. Переменные, описывающие поведение модели, могут быть разделены на группы. Применяя терминологию языков программирования, можно сказать, что они могут быть видны вне модуля (внешние переменные), где они описаны, и не видны (внутренние переменные). Внешние переменные
32
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
в открытых моделях используются для передачи или получения информации от других компонентов. В изолированных моделях все переменные являются внутренними, и их значения определяются только собственным поведением (рис. 1.12). Внешние переменные подразделяются на: входы, значения которые могут изменяться только извне; выходы, значения которых могут изменяться только внутри компонента; контакты и потоки, значения которых могут изменяться как извне, так и
внутри компонента (разница между ними будет обсуждаться далее). внутренняя переменная
вход контакт
выход поток
поведение
Рис. 1.12. Модель открытой системы
По типу внутренней структуры модели подразделяются на элементарные, содержащие только переменные и поведение, и составные, содержащие также локальные компоненты и связи между ними (рис. 1.13). Совокупное поведение составной модели представляет собой суперпозицию собственного поведения и совокупности поведений локальных компонентов с учетом их связей. Следует заметить, что связи являются лишь удобной визуальной формой представления уравнений относительно внешних переменных компонентов. По типу используемого модельного времени модели делятся на дискретные и непрерывные динамические системы и гибридные. Мы будем рассматривать только два типа моделей — динамические системы с непрерывным временем и гибридные, и для их описания применять два графических языка — математический язык уравнений для динамических систем и язык графов в сочетании с языком уравнений для гибридных систем (рис. 1.14). В дальнейшем мы покажем, что этого достаточно, чтобы строить и динамические системы с дискретным временем. Соответствующие математические модели рассматриваются в главе 2.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
33
Объект-контейнер
A
B
Собственные внутренние переменные
Собственное поведение
Рис. 1.13. Модель открытой системы
⎛ d n x d n−1 x ⎞ dx F ⎜ n , n−1 , ..., , x, t ⎟ = 0 ⎜ dt ⎟ dt dt ⎝ ⎠ а
б
Рис. 1.14. Графическое изображение: а — динамической системы с непрерывным временем; б — гибридной системы
При проектировании технических систем часто используются распределенные модели и полунатурные модели, часто называемые также HIL-моделями (Hardware In the Loop). Под распределенным моделированием понимают выполнение отдельных составляющих компьютерной модели: на одном процессоре в режиме разделения времени; на различных процессорах одной машины; на различных компьютерах. Распределенное моделирование обычно используется для: повышения суммарного быстродействия компьютерной модели; объединения независимых компьютерных моделей, созданных различ-
ными разработчиками с помощью различных инструментальных средств или секретных математических моделей. В распределенной модели неизбежно появляется некоторый блок-посредник, называемый обычно "инфраструктурой распределенного выполнения" (рис. 1.15).
34
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Компонент_A
Компонент_B
а Компьютерная модель 1
Компьютерная модель 2
Компонент_A
Компонент_B
Инфраструктура распределенного выполнения
б Рис. 1.15. Преобразование компонентной модели в распределенную компьютерную модель: а — исходная модель; б — распределенная модель
Одним из наиболее распространенных и перспективных в настоящее время является интерфейс распределенного выполнения HLA (High Level Architecture). Однако этот стандарт (как и другие известные стандарты распределенного моделирования ALSP и DMS) предназначен только для систем с дискретным поведением. В ряде работ предпринимаются попытки расширения стандарта HLA применительно к моделированию непрерывных и гибридных систем. Полунатурная модель включает компьютерные модели и некоторые реальные устройства разрабатываемой системы. Такие модели достаточно часто используются при стендовой отработке сложных систем управления.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
35
Поскольку любую независимо функционирующую компьютерную модель можно рассматривать как физическое устройство — имитатор, то и полунатурную модель можно считать частным случаем распределенной модели, в которой некоторые элементы являются реальными аппаратными блоками.
Ïðîñòðàíñòâî, âðåìÿ, ïîâåäåíèå Рассмотрим некоторые важнейшие понятия, используемые при моделировании сложных динамических систем.
Ïðîñòðàíñòâî ñîñòîÿíèé Со времен Ньютона, описывая поведения объекта, различают пространственные и временную координаты. Обозначим через s = {s1 , s 2 ,..., s n } множество пространственных координат и будем пока считать, что это вектор s ∈ ℜ n фиксированной размерности n . Время будем обозначать буквой t . Движение объекта задается зависимостью s = s(t ) , что в механике интерпретируется как траектория движения тела в пространстве. Для других прикладных областей вектор s может содержать компоненты, соответствующие, например, температуре, давлению, напряжению и т. п. Многомерную точку s = s(t ) при фиксированном значении t иногда называют изображающей точкой, и тогда траектория движения — это след изображающей точки в пространстве. Будем считать, что время наблюдения t за положением объекта в пространстве представляет собой промежуток t ∈ [0, T ] , возможно, бесконечной длины T = ∞ . Значение вектора s = s(t ) в фиксированный момент времени t ∈ [0, T ] называют состоянием или фазой объекта. Траекторию движения часто называют фазовой траекторией. Координаты вектора s = s(t ) называют переменными состояния (объекта). Выделяют два особых состояния: s = s (t ) t =0 = s (0) = s0 и s = s (t ) T =0 = s (T ) = sT , называемых начальным и конечным. Обычно интерес представляет не одна траектория, а множество траекторий, определяемых различными начальными состояниями s0 ∈ S 0 . В этом случае пространственные координаты s = s(t ) заполняют некоторое "пространство" s ∈ S и его называют пространством состояний или фазовым пространством объекта. Часто бывает удобно использовать расширенный фазовый вектор, в котором к переменным состояния добавлено время t ∈ T , и расширенное фазовое пространство S × T .
36
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
В дальнейшем мы будем также рассматривать объекты, чье поведение описывается переменными, отличными от вещественных. В этом случае переменные состояния могут быть целыми числами, булевскими переменными, перечислимыми переменные, т. е. переменными, относящимся к типам, свойственным языкам программирования. Вернемся к примеру с телом, брошенным под углом к горизонту (см. рис. 1.1). Для этого объекта фазовый вектор s = s(t ) включает четыре переdx dy , s4 = , s = {s1 , s 2 , s3 , s 4 } , значения которых менных s1 = x , s 2 = y , s3 = dt dt принадлежат множеству вещественных чисел ℜ . Движение тела происходит непрерывно: t ∈ ℜ . Таким образом, пространство состояний и расширенное фазовое пространство являются подмножествами множеств ℜ 4 и ℜ5 соответственно. Поведение объекта записывается системой обыкновенных дифференциальных уравнений (1.1), решение которой для любой начальной точки s0 = ( x0 , y 0 , (
dx ) dt
t =0
,(
dy ) t =0 ) dt
определяет непрерывную фазовую траекторию s(t ) . На рис. 1.16 показаны зависимости координат тела и скоростей x(t ) , y (t ) , dx dy (t ) , (t ) от времени. На рис. 1.17 приведена зависимость скорости двиdt dt dy dy жения от координаты y , обозначенная на рисунке как ( y ) , т. е. фазоdt dt вая диаграмма. Все это различные проекции фазовой траектории с начальной точкой (0, 0, 100 ⋅ cos 45 , 100 ⋅ sin 45 ) для временного интервала [0, 16]. На любой фазовой траектории или временной диаграмме можно выбрать некоторые точки, интересные исследователю и важные для понимания поведения объекта — особые состояния. Будем следить за движением объекта и фиксировать факт достижения этих особых точек. Как только объект попадет в любую особую точку, мы говорим, что произошло событие. Если обозначить через E особую точку, то событие — это утверждение, говорящее о том, что изображающая точка достигла особого состояния s (t ) = E . Событие характеризуется парой (t * , E ) — временем наступления события t * и сущностью события E . Иногда бывает не важно, когда и что произошло, достаточно информации о том, что что-то случилось. В этом случае можно послать сигнал о наступлении события.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
37
Рис. 1.16. Временные диаграммы переменных состояния
Рис. 1.17. Фазовая диаграмма
Âðåìÿ В приведенном выше примере речь шла о движении тела в непрерывном или ньютоновском времени. В представлении Ньютона время является независимой сущностью реального мира и характеризуется: непрерывностью; равномерным течением от прошлого к будущему; абсолютностью.
Это означает, что в окружающем нас мире существуют единые (абсолютные) часы, непрерывно показывающие движение времени, и в какой бы точке пространства не произошли интересующие нас события, сравнивая их времена
38
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
наступления, всегда можно сказать, что произошло раньше, что позже, что одновременно. Математической моделью ньютоновского непрерывного времени является вещественная ось, по которой с постоянной скоростью пробегает переменная t (время), двигаясь из прошлого в будущее, в пределах от − ∞ до ∞ . Как правило, при практическом моделировании рассматривается конечный интервал [0, T ] , где величина T определяется целями эксперимента. Можно представить себе модель, в которой меняется только время. Это и есть простейшая динамическая система с непрерывным временем. Существуют, однако, модели, в которых имеет смысл следить только за фактом наступления событий, не интересуясь временем их наступления. Например, если следить только за праздниками в году, то движение времени будет ощущаться лишь с наступлением очередного праздника, а отсчеты времени будут выглядеть так — {"Новый год", "23 февраля", "8 Марта", ...}. Последовательно наступающие события можно перенумеровать, и мы получим последовательность временных отсчетов — перенумерованных тактов или "тиков". Математической моделью времени, заданного упорядоченной последовательностью событий, является целочисленная ось, по которой от − ∞ к + ∞ пробегает целочисленная переменная i . Скорость движения по этой оси при этом не имеет значения. Такое время можно назвать событийным, и оно представляет собой разновидность дискретного времени. Однако часто под дискретным временем понимают время, представляющее собой последовательность равноудаленных друг от друга вещественных чисел. Использование такого дискретного времени характерно, например, для моделей экономических систем. В этих моделях существует естественный "отчетный период" длительностью h (год, квартал, месяц), к моменту окончания которого и привязываются все значения переменных. Отсчеты можно перенумеровать и получить последовательность целых чисел i ∈ N (это событийное время, событием в котором считается наступление очередного "отчетного периода"), но можно использовать в качестве времени и значения ti +1 = ti + h . Вектор состояния теперь удовлетворяет разностному уравнению s (i + 1) = F (i, s (i ), s (i − 1), ...) , связывающему очередное состояние системы s (i + 1) с предыдущими s(i) , s (i − 1) , .… Фазовая траектория представляет собой сеточные функции (рис. 1.18, а). Для таких функций никакие "промежуточные" значения вне "сетки" ti +1 = ti + h (например, в момент t 2 + h 2 ) просто не определены.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå V
39
V
h
h
t t0
t1
t2
t3
t4
а
t5
t6
t t0
t1
t2
t3
t4
t5
t6
б
Рис. 1.18. Дискретное время: а — исходная зависимость; б — доопределение до непрерывного времени
Ñèíõðîíèçàöèÿ При описании поведения объекта чрезвычайно важно знать, в какой временной последовательности произошли те или иные события. В моделях с непрерывным временем это сделать чрезвычайно просто. Единые для всех процессов часы показывают единое время. Передача информации между любыми точкам пространства происходит мгновенно. Таким образом, сверяясь с едиными часами, можно установить, в какой временной последовательности происходили интересующие нас события. Две и более модели с дискретным временем не могут иметь единых дискретных часов, если их временные сетки не совпадают. Если мы хотим построить единые абсолютные часы, множества временных отсчетов моделей надо объединить, упорядочить и доопределить значения сеточных функций на недостающих отсчетах. Для нескольких моделей с различными временными сетками можно построить, вместо сеточных, кусочно-постоянные функции (рис. 1.18, б) и, тем самым, доопределить все сеточные функции на вещественной оси. Этот процесс можно назвать моделированием дискретного времени с помощью непрерывного. Более сложной является проблема синхронизации моделей с событийным временем. У каждой такой модели своя последовательность событий, и мы не знаем, как они соотносятся друг с другом. Рассмотрим десятичный счетчик импульсов (рис. 1.19), рассчитанный на три десятичных разряда.
40
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû Генератор импульсов
Сигнал переноса
C1
C2
C3
Рис. 1.19. Десятичный счетчик импульсов
Некоторый генератор импульсов (датчик, сообщающий о проходе через турникет, датчик ионизированных частиц, кнопка звонка) выдает сигналы, которые подаются на вход счетчика младшего разряда. Каждый счетчик при получении входного сигнала прибавляет единицу к переменной состояния N . Если N = 10 , то переменная обнуляется и выдается сигнал переноса, который является входным для счетчика следующего разряда (рис. 1.20).
Рис. 1.20. Время, привязанное к событию
Эта модель отличается от моделей с дискретным временем с равноудаленными отсчетами. Интервал между входными сигналами произвольный (на рис. 1.20 показана последовательность, в которой интервал между двумя соседними импульсами является случайной величиной, равномерно распределенной на интервале [1, 3]). Можно считать, что поведение счетчика вообще
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
41
никак не привязано к моменту появления входного сигнала в абсолютном непрерывном времени. Существенным является только сам факт его появления. В этом и заключается особенность событийного времени. Синхронизировать две системы с событийным временем можно, только явно указав, какие события считать одновременными. Параллельно функционирующие объекты синхронизируются путем явной передачи сигнала о событии. При работе с моделями с событийным временем, в которых область значения переменных представляет собой конечное множество, например, булевские переменные, вводят понятие дискретного события. Наступление дискретного события говорит о том, что переменная состояния приняла очередное значение из множества возможных значений, даже иногда не уточняя, какое именно. В этом случае можно говорить о синхронизации по дискретным событиям (в модели на рис. 1.19 это сигнал переноса). Следует отметить, что необходимость использования той или иной модели времени диктуется целями исследования. Например, для отладки алгоритмов функционирования счетчика вполне достаточно эксперимента в событийном времени. В то же время, если мы через каждый час должны снимать показания счетчика, а затем их обрабатывать, необходимо использовать одновременно событийное и непрерывное время (так называемое "гибридное" время). Пусть в момент t = 2.5 на вход счетчика поступает десятый импульс. В модели возникает цепочка дискретных событий: "входной импульс" → "обновление N " → "сигнал переноса" → ... По ее окончании по-прежнему t = 2.5 . Точку в непрерывном времени, в которой происходят дискретные события и продвигается дискретное время, называют "временной щелью". Существуют два устойчивых и распространенных заблуждения, касающихся непрерывного и дискретного времени в модели. Заблуждение 1: при моделировании на цифровых компьютерах все равно происходит переход к дискретному представлению времени из-за использования численного интегрирования, и поэтому надо использовать только модели с дискретным временем. Это неверно. Значения переменных непрерывной модели мы можем определить для любого интересующего нас момента времени. Например, при использовании "лупы" для графика на рис. 1.16 мы можем определить недостающие точки. Конечно, при этом необходимо учитывать погрешности представления вещественных чисел в разрядной сетке компьютера, но ведь и значения выходов реальной непрерывной системы мы также можем измерить лишь с конечной точностью. В то же время на графике на рис. 1.18, а промежуточные точки мы не можем увидеть никогда: они просто не существуют. Различие между двумя представлениями времени принципиально и не связано с вычислительной реализацией.
42
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Заблуждение 2: дискретные события — это некоторая теоретическая изысканность, а на самом деле все переменные изменяются непрерывным образом. Это также неверно. Мы не знаем, каким является моделируемый объект "на самом деле". Непрерывными или дискретными являются лишь его математические модели, выбираемые в соответствии с целями исследования. Например, если вы разрабатываете электрическую схему триггера, то, конечно, импульс для вас представляется некоторой непрерывной зависимостью напряжения от времени. В данном случае это разумная абстракция (а ведь "на самом деле" это сложнейшее взаимодействие электромагнитных полей, электронов и атомов). Если же вы разрабатывает счетчик, то разумной абстракцией для импульса является дискретное событие. Причем алгоритмы счетчика не зависят от того, представляются ли импульсы электрически, пневматически или с помощью бумажных самолетиков. Для моделей с переменным составом, где компоненты могут появляться и исчезать, как, например, при моделировании атаки на станцию противоздушной обороны, имеет смысл говорить о глобальном времени модели и локальном времени отдельного компонента, отсчитываемого от момента его создания. До сих пор мы говорили о модельном времени. Однако поскольку компьютерная модель является физической, то любой вычислительный эксперимент протекает в непрерывном физическом времени экспериментатора. Между скоростью изменения модельного времени и скоростью изменения физического времени экспериментатора существует определенное соотношение K T , которое может быть постоянным, что часто весьма желательно, например, для анимации, или переменным, зависящим от объема требуемых ресурсов компьютера в различных точках фазовой траектории модели. При постоянном K T = 1 имеет место "моделирование в режиме реального времени", и такая модель может взаимодействовать с реальными объектами. Заметим, что в случае интерактивного моделирования такой реальный объект существует априорно — это сам экспериментатор.
Îáúåêò è åãî îêðóæåíèå. Èçîëèðîâàííûå è îòêðûòûå ìîäåëè Выделение в реальном мире отдельных объектов и связей между ними помогает нам изучать сложные явления. При изучении сложных объектов, мы, упрощая действительность, стараемся отделить их от окружения и рассматривать как изолированные объекты. Полностью изолировать объект от окружения сложно, поэтому необходимо одновременно рассматривать и объект, и среду, в которой он существует. Соответственно мы должны строить и модель объекта, и модель среды.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
43
В хорошо известных нам со школы моделях увидеть наличие окружения порой достаточно сложно, т. к. мы часто намеренно прячем описание среды внутри модели объекта. В результате создается впечатление, что объект никак не взаимодействует со своим окружением. Например, при изучении свободного падения тела параметр g в уравнении d 2s dt 2
= −g
внешне ничем не отличается от параметров "начальная высота" h = s (0) и ds "начальная скорость падения" V0 = t =0 , хотя g — это характеристика dt планеты, на которой мы проводим эксперименты, а различные значения h и V0 характеризуют конкретные эксперименты. Только в случае, когда мы планируем провести один единственный эксперимент на конкретной планете, например, Земле, можно написать d 2s dt
2
= −9.81; s(0) = 10;
ds dt
t =0
=1
и говорить об изолированном объекте — "свободно падающем теле" и соответствующей ему модели — "системе уравнений свободного падения материальной точки на планете Земля в среде без сопротивления воздуха с заданной начальной высотой и скоростью". Мы можем "забыть" о среде и в более сложном случае, если захотим учесть сопротивление воздуха при падении. Учтем силу трения, просто добавив лишний член в уравнение 2
d 2s
⎛ ds ⎞ = −g + k ⋅ ⎜ ⎟ , 2 dt ⎝ dt ⎠
и будем рассматривать новый изолированный объект — "материальную точку в воздухе с сопротивлением, пропорциональным квадрату скорости". Рассмотренная нами ранее модель тела, брошенного под углом к горизонту, заданная системой уравнений (1.1), также несет в себе всю необходимую информацию и не нуждается во взаимодействии с внешним миром. Используя уже рассмотренный прием, можно учесть изменение ускорения силы тяжести с высотой, для этого достаточно ввести еще одно уравнение g = g0 ⋅
R2 (R + y)2
,
44
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
где g 0 — ускорение силы тяжести на уровне моря, а R — радиус Земли. Такие модели, содержащие всю необходимую информацию для определения фазовой траектории моделируемого объекта, называются изолированными. Выделенный из окружения объект может быть сам по себе достаточно сложно устроен. Например, реальный маятник состоит из стрежня с шарниром и груза. Создавая его модель, можно попытаться учесть его структуру, однако проще, если это допустимо, представить его абстрактным неделимым объектом, поведение которого определяется заданными уравнениями. В этом случае мы говорим, что это объект, не имеющий внутренней структуры, или элементарный объект. В тоже время существует много причин, по которым следует учитывать окружение. В этом случае в модели появляются два компонента — собственно объект (модель объекта) и среда (модель среды), взаимодействующие между собой по вполне определенным законам. В этом случае мы говорим, что объект открыт для взаимодействия со средой, и называем его и его модель открытыми. На рис. 1.21 показана такая структуризация для модели тела, брошенного под углом к горизонту. Даже в этом простейшем случае может оказаться целесообразным вынести зависимость g ( y ) в описание окружающей среды. Для этого переменные g и y должны быть декларированы как внешние.
g(y)
x
Тело
y
Окружающая среда
Рис. 1.21. Выделение модели окружающей среды
В активном вычислительном эксперименте воздействия окружающей среды на объект могут имитироваться пользователем.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
45
Îáúåêò è ñèñòåìà îáúåêòîâ Если выделенный из окружения объект достаточно сложно устроен и его структура существенна для целей моделирования, то, создавая его модель, можно попытаться отразить в модели его внутреннюю структуру. В этом случае модель строится в виде совокупности параллельно функционирующих и взаимодействующих между собой объектов (например, счетчик на рис. 1.19). Такой подход к моделированию называется компонентным и будет подробно рассмотрен в главе 3.
Äèíàìè÷åñêèå è ñòàòè÷åñêèå ìîäåëè Динамической является модель, в которой вектор состояния явно или неявно зависит от времени. Даже если на эту модель никак не воздействовать извне, то при продвижении времени в ней все равно что-то будет изменяться. Примером динамической модели может служить тело, брошенное под углом к горизонту. Среди динамических моделей различают динамические системы, отображения, гибридные системы. Статической является модель, в которой вектор состояния не зависит от времени. Переменные состояния связаны между собой не меняющимися от времени зависимостями. Статические модели реализуются как открытые компоненты, связывающие входы и выходы через заданные функциональные зависимости. Если эти зависимости однозначны, то такие модели еще называют моделями без памяти, т. к. в любой момент времени выходы определяются только входами. Примером статической модели без памяти может служить усилитель с насыщением (рис. 1.22). В то же время, если допустить многозначность и рассмотреть зависимость между входом и выходом в виде петли гистерезиса, то мы получим модель с памятью, т. к. для значений входа в области неоднозначности, значение выхода будет зависеть от предыстории. y
UpperLimit y = kx x LowerLimit
Рис. 1.22. Статическая характеристика усилителя с насыщением
46
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Для автономного исследования зависимости y (x) необходимо либо изменять значения x вручную в ходе активного вычислительного эксперимента, либо dx задать в поведении окружающей среды уравнение = 1 с необходимыми dt начальными условиями и условием окончания. Дискретные статические компоненты, которые способны только откликаться на внешние события, часто называют "реактивными". Такими компонентами являются, например, счетчики импульсов (рис 1.19), в то время как генератор импульсов является динамической системой. Заметим, что для проведения вычислительного эксперимента в модели всегда должен присутствовать хотя бы один динамический компонент, либо его роль должен выполнять реальный объект или экспериментатор.
Äåòåðìèíèðîâàííûå è âåðîÿòíîñòíûå ìîäåëè Самая простая математическая модель динамической системы — это явно определенная функция s (t ) , t ∈ [0, T ] , зависящая от времени и принимающая в заданной точке t , например, t = 0 , фиксированное значение s (0) = s 0 . Последнее условие делает функцию параметрической s = s (t ; s 0 ) , что позволяет описывать целое семейство поведений. Например, поведение математического маятника (величина отклонения s от положения равновесия в зависимости от времени) может быть представлено периодической функцией s (t ; s0 ,V0 ) = s 0 cos(t ) + V0 sin(t ) , t ∈ [0, T ] ,
где s0 , V0 — начальное отклонение и скорость соответственно. Поведение математического маятника является простейшим примером детерминированного, предопределенного поведения. У этой модели есть интересные свойства. Поведение маятника описывается непрерывной функцией от времени.
Непрерывность происходящих вокруг нас процессов — одно из важнейших, фундаментальных представлений об устройстве мира. Поведение модели обратимо во времени. Если мы заставим время течь
вспять в точке T , то изучаемая система вернется из точки s (T ) точно в исходное положение, тем же путем. s (t ′; s0 ,V0 ) = s 0 cos(t ′) + V0 sin(t ′) , t ′ ∈ [T , 0] , s0 = s (T ) , V0 = V (T ) .
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
47
Законы поведения маятника не меняются во времени. Если мы рассмот-
рим одновременно модель s(t ' ) = x 0 cos(t '−α ) + V0 sin(t '−α ) , t '∈ [α, T + α ] ,
т. е. изменим только начало отсчета времени, то поведение нашей модели не изменится — кривая просто сдвинется на величину α на временной оси. Это означает, что наблюдавший поведение маятника сто лет назад, и наблюдающий его сейчас, и тот, кто будет наблюдать его через сто лет, увидят одно и тоже явление. Перечисленные свойства можно вывести из следующих законов поведения моделей с произвольным числом переменных состояния, если эти законы рассматривать как определение: функция s = s (t ; s0 ) непрерывна по всем переменным; при t = 0 она принимает предписанное начальное значение s (0; s 0 ) ≡ s0 ;
s (t 2 ; s (t1 ; s 0 )) ≡ s (t1 + t 2 ; s0 ) .
Последний закон говорит о том, что какими бы путями мы ни шли к конечной цели — результат будет всегда одним и тем же. Из него следуют и обратимость времени, и возможность произвольно выбирать начало отсчета. Рассмотрим ту же модель маятника (упругий шарик, подвешенный на нити), но теперь представим себе, что в момент, когда отклонение становится равным нулю, принимается решение об изменении поведения маятника. Можно разрешить маятнику двигаться дальше или поставить на его пути абсолютно упругую пластину. В последнем случае маятник после удара о пластину начнет двигаться в обратном направлении со скоростью V0 = −V ( s =0) . Решение принимается мгновенно с помощью подбрасывания монетки: если выпадает орел — маятник продолжает движение в том же направлении, в противном случае — его скорость мгновенно меняет знак. Это простейший пример вероятностной, недетерминированной модели. Поведение этого маятника уже нельзя предсказать — от эксперимента к эксперименту оно будет меняться при одних и тех же начальных условиях переменных состояния. Обращение времени также невозможно. И, наконец, хоть непрерывность функции и сохраняется, первая ее производная претерпевает разрыв в случае столкновения с пластиной.
Ó÷åò çàïàçäûâàíèÿ В приведенных выше моделях значение вектора состояния модели зависело только от текущих значений переменных и начальных значений.
48
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Зависимость модели от начальных условий может быть различной. Модели могут "помнить" о своих начальных условиях, если, например, зависимость имеет такой вид: s (t ; s 0 ) = s0 sin(t ) ,
или "забывать" о них: s (t ; s0 ) = s 0 e − s + sin(t ) .
Однако легко представить себе ситуацию, когда текущие значения переменных зависят также от их значений в прошлом: s (t ; s 0 ) = ( s0 + α ⋅ s (t − τ)) ⋅ e −t , τ > 0 , 0 < α < 1 .
Последнюю запись можно трактовать, например, как описание процесса обработки писем. В момент t 0 на почту поступает s0 писем, и они начинают обрабатываться (раскладываться по ячейкам). На некоторых письмах не хватает информации об адресате. Требуется сделать дополнительный запрос, и это занимает τ единиц времени. Очевидно, чтобы эта запись имела смысл, необходимо знать поведение функции s (t , s0 ) на промежутке t ∈ [− τ, 0] . В нашем случае можно считать, что до поступления очередной партии все письма были обработаны: x (t , x0 ) ≡ 0 , t ∈ [− τ, 0] . Такие процессы называют процессами с запаздывающим аргументом. Запаздывание можно учитывать как в детерминированных моделях, так и в вероятностных.
Íåïðåðûâíûå, äèñêðåòíûå, íåïðåðûâíî-äèñêðåòíûå ìîäåëè Прилагательное "динамический" обычно ассоциируется с изменчивостью объекта и его модели во времени. Однако под временем можно понимать и пространственную координату, например, давление в трубопроводе может зависеть только от пространственной координаты, которую можно трактовать как время. Какую переменную в уравнениях выбрать в качестве времени, может сказать только исследователь. Например, в модели s (α, t ; s 0 , α 0 ) = α 0 ⋅ x 0 ⋅ (e −t −α + sin(t + α ))
переменные α и t абсолютно равноправны, если нет никакой дополнительной информации. Будем считать, что в каждом конкретном случае независимая переменная, трактуемая как время, выбрана заранее.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
49
Мы уже классифицировали математические модели по типу используемой модели времени. Это — непрерывное, дискретное и непрерывно-дискретное или гибридное время. Как мы уже отмечали, выбор модели времени определяется целями моделирования. Вернемся к задаче о моделировании тела, брошенного под углом к горизонту в среде без сопротивления. Добавим дополнительное условие, заключающееся в том, что полет тела (материальной точки) выполняется над упругой плоскостью, и при его падении происходит отскок. Отскок может быть абсолютно упругим ( k = 1 ), абсолютно неупругим ( k = 0 ) и упругим ( 0 < k < 1 ), при котором шарик после отскока приобретает скорость V+ = k ⋅ V− , где V+ — скорость, с которой начинается новый полет, а V− — скорость, с которой шарик коснулся поверхности. Если ( x, y ) — длина и высота полета, а V0 , α — начальная скорость и угол бросания, то уравнения полета до первого касания будут выглядеть так: ⎧d2x ⎪ 2 = 0, ⎪ dt ⎨ 2 ⎪d y = −g, ⎪ ⎩ dt 2 dx = V0 cos(α ), x(0) = 0; dt t =0 y (0) = 0;
dy = V0 sin(α ). dt t =0
После отскока полет начинается с новым значением скорости, зависящим от коэффициента k . Нас интересует траектория полета, число и координаты отскоков за заданный промежуток времени. При использовании модели непрерывного и дискретного времени данная задача может быть решена только как последовательность отдельных задач. Действительно, сложное физическое явление "отскок", имеющее небольшую длительность по сравнению с длительностью полета и описывающееся уравнениями в частных производных, заменено у нас мгновенным действием (V+ = k ⋅ V− ) , происходящим между полетами. Первая постановка задачи. Непрерывная модель времени.
В данной простой задаче решение уравнений для каждого отдельного полета может быть записано в замкнутой форме (напишем его для первого полета): x (t ) = V0 ⋅ cos α ⋅ t ,
50
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
y (t ) = V0 ⋅ sin α ⋅ t − y (T ) = 0 ⇒ T =
x(T ) =
g ⋅t2 , 2
2 ⋅ V0 ⋅ sin α , g
V02 ⋅ sin(2α ) . g
Последовательно решая уравнения полета после очередного отскока, получим требуемую траекторию и координаты точек приземления. Вторая постановка задачи. Дискретная модель времени.
Воспользуемся полученным решением, для того чтобы решить еще более "сложную" задачу. Если предположить, что при каждом отскоке j = 1, 2, 3, ... меняется коэффициент k j , то T j = T j −1 ⋅ k j −1 ; j = 1, 2, 3, ...,
( )
x(T j ) ≡ x j = x j −1 ⋅ k j −1 2 ; T0 =
.
2 ⋅ V0 ⋅ sin α V 2 ⋅ sin(2α ) ; x0 = 0 ; k 0 = 1. g g
Представленные разностные уравнения уже не дают возможности описать траекторию полета, зато появляется возможность вычислять и времена отскока, и их координаты. Третья постановка. Гибридное время.
Возникает вопрос, что делать, если мы хотим в рамках одной модели воспроизводить и длительные, и мгновенные процессы? Воспользуемся гибридным временем. Разделим происходящие процессы на медленные — "полет", и мгновенные — "отскок", и будем чередовать длительные действия с мгновенными. А именно, вычислять траекторию полета (непрерывное время), приостанавливать длительные процессы (временная щель), выполнять заданную последовательность мгновенных действий (дискретное время) и снова продолжать длительные действия. Возможность чередовать чисто непрерывное поведение и дискретное, явно разделяя их, дает нам неоспоримые преимущества. Мы сумели в рамках одной модели совместить несовместимое: полет, описываемый обыкновенными дифференциальными уравнениями, и отскок тела от поверхности — задача, к решению которой необходимо привлекать теорию упругости.
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
51
Пары — отрезки непрерывного времени и точки дискретного времени — сменяют друг друга, пока тело не пролетит заданное расстояние. Последовательность пар образует гибридное время
{
τ = {[0, T1 ], T1}1 ,
{[T1 , T2 ], T2 }2 , {[T2 , T3 ], T3 }3 ,
}
... .
Гибридное время состоит кадров, в которых непрерывное течение времени сменяется дискретными отсчетами — {локальное непрерывное время очередного кадра, локальное дискретное время очередного кадра}. Все кадры пронумерованы и представляют некоторую упорядоченную последовательность. Локальное дискретное время кадра позволяет упорядочивать мгновенные действия. Локальные дискретные часы идут во временной щели (замершего непрерывного времени) и останавливаются, как только начинает изменяться непрерывное время.
Ãèáðèäíûå ñèñòåìû Гибридной называется система, имеющая как непрерывные, так и дискретные аспекты поведения. В литературе также используются термины "непрерывнодискретные системы", "системы с переменной структурой", "событийноуправляемые" и др. Можно выделить три основных фактора, обусловливающих появление гибридного поведения. Гибридное поведение, обусловленное совместным функционированием непрерывных и дискретных объектов. Такое гибридное поведение характерно для систем автоматического управления, в которых имеются непрерывный объект управления и дискретное устройство управления (контроллер). Простейшим случаем является обычный дискретный регулятор, который с определенным тактом формирует управляющее воздействие u (t ) (рис. 1.23). Для верхних уровней управления в сложных иерархических системах управления характерны процессы так называемого логического управления. В этом случае поведение устройства управления задается асинхронным процессом, в котором следующее дискретное событие зависит в общем случае от предыдущего, а также от непрерывных переменных объекта управления. Например, устройство логического управления ракетой выдает команду на отсечку тяги при достижении некоторым функционалом порогового значения. Гибридное поведение, обусловленное мгновенными качественными изменениями в непрерывном объекте. Некоторые непрерывные по своей природе системы могут демонстрировать дискретные черты поведения, связанные с происходящими в них качественными изменениями. Сами качественные изменения обусловлены,
52
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû Программное значение
Дискретный регулятор
Непрерывный объект управления u(t)
x(t)
а
б Рис. 1.23. Система автоматического регулирования с дискретным регулятором: а — схема; б — график
прежде всего, многорежимностью функционирования системы. Например, даже простейшая непрерывная система — бассейн с двумя трубами из школьного учебника, рассматриваемая в чуть более широком контексте, немедленно демонстрирует качественные изменения — переполнение или опустошение бассейна. Следует отметить, что, в отличие от первого и третьего типа гибридного поведения, где гибридное поведение является естественным изначальным свойством самой проблемы, гибридное поведение данного типа в определенной степени искусственно и связано исключительно с удобной для исследователя формализацией явления. В самом деле, дискретность здесь появляется вследствие идеализации изначально непрерывного поведения реальных физических систем. Основной идеализацией такого рода является пренебрежение временем переходных процессов, когда это время на порядки меньше
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
53
времени функционирования исследуемой системы, а также идеализация параметрических зависимостей. Примером идеализации первого вида является пренебрежение временем абсолютно упругого отскока мячика от абсолютно твердой плоскости, а примером идеализации второго вида — идеализация реальной вольт-амперной характеристики для идеального диода. Кроме того, исследователь может просто абстрагироваться от детального описания динамики нелинейного переходного процесса (или детальное описание может быть просто неизвестно), заменяя его некоторыми интегральными зависимостями. Следует отметить, что из-за своего искусственного характера гибридные модели этого вида могут демонстрировать парадоксальные поведения, которые не свойственны исходным непрерывным объектам, и исследователь должен быть чрезвычайно осторожен при формализации гибридной модели. Гибридное поведение, обусловленное изменением состава системы. Если непрерывные объекты в ходе функционирования могут появляться в границах изучаемой системы и покидать ее, то состав совокупного вектора состояний всей системы x и его размерность будут изменяться. Примерами таких систем могут служить аэропорт (самолеты появляются в границах зоны аэропорта извне, садятся в аэропорту, взлетают со взлетной полосы), комплекс противовоздушной обороны (цели появляются в зоне обнаружения, выходят из нее, уничтожаются ракетами), система возникающих и исчезающих заряженных частиц и т. п.
Ïîñëåäîâàòåëüíûå è ïàðàëëåëüíûå ïðîöåññû Вернемся к нашему примеру прыгающего мячика и обсудим, что мы понимаем под параллельными (одновременными) и последовательными (упорядоченными во времени) процессами. Заставим несколько шариков с одинаковыми параметрами прыгать одновременно. Пусть они летят рядом по одинаковым траекториям и отскакивают одновременно, как на параде. Модель с дискретным временем.
В модели с дискретным временем (дискретной модели) мы в каждый такт дискретного времени вынуждены столько раз вычислять времена и координаты отскоков, сколько шариков в строю. Все перечисленные действия с точки зрения дискретного времени совершаются одновременно или параллельно. Дискретные процессы мы описали с помощью простейших разностных уравнений первого порядка: z k +1 = F ( z k ) , z ∈ℜn , F: ℜ n → ℜ n , k = 0, 1, 2, ... , z 0 = z 0 .
54
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
При вычислениях на однопроцессорных машинах, когда параллельные действия необходимо выполнять последовательно, координаты вектора z можно вычислять в любом порядке. Это и означает, что они меняются одновременно. Модели с непрерывным временем.
Непрерывная модель дает возможность вычислять все траектории в любой последовательности (одновременно). Каждая траектория описана парой дифференциальных уравнений. И в каждой паре уравнения могут быть записаны в любом порядке. Если поведение описано обыкновенными дифференциальными уравнениями ⎛ ds ⎞ F ⎜ , s, α , t ⎟ = 0 , ⎝ dt ⎠
то все координаты вектора s можно считать взаимосвязанными, одновременными процессами, а можно представлять себе как единый объект, у которого несколько переменных состояния. Модели с гибридным временем.
В модели с гибридным временем мы имеем как параллельные непрерывные процессы (одновременный полет шариков), так и параллельные дискретные — одновременные отскоки.
Îáîáùåíèå ïîíÿòèÿ ñîñòîÿíèÿ В задаче о полете и отскоках мячика явно видны последовательно выполняемые длительные действия и последовательно выполняемые мгновенные действия. Их так и хочется назвать состояниями шарика, несмотря на то, что под состоянием мы до сих пор понимали значения переменных состояния объекта в конкретной временной точке. Различные длительные действия могут описываться разными функциями или уравнениями. Их смена обусловлена событиями. В нашем случае длительный полет сменяется мгновенным отскоком. В русском языке слово "состояние" употребляется и для фиксации положения объекта в пространстве (положение и скорость тела в данный момент), и для обозначения этапов сложного действия — "полет", "отскок". В последнем случае подразумевается, что изменение переменных объекта в заданном состоянии подчиняется различным, но не меняющимся во времени законам. Какие законы считать неизменными?
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
55
Рассмотрим "закон" ds = a⋅s +b , dt линейное дифференциальное уравнение с постоянными коэффициентами и "закон" ds = a (t ) ⋅ s + b(t ) , dt линейное дифференциальное уравнение с переменными коэффициентами. Конечно, они разные, но оба уравнения не меняют формы, остаются линейными, и в этом смысле их можно считать неизменными, описывающими (обобщенное) состояние объекта. Если эти законы последовательно сменяют друг друга, то можно говорить о двух (обобщенных) состояниях одного и того же объекта.
Îñíîâíûå êîíñòðóêöèè ÿçûêà ìîäåëèðîâàíèÿ При компьютерном моделировании сложных динамических систем математическая модель исходного объекта меняет свою форму, постепенно превращаясь из модели высокого уровня, с которой удобно работать человеку, в низкоуровневую машинную модель, предназначенную для вычислительной машины. Таких форм может быть несколько: математические модели в форме, удобной человеку ("произвольная форма"); математические модели в виде функциональных схем или уравнений в свободной форме, допускаемой входным языком моделирования ("внешние языковые формы"); математические модели в виде уравнений в весьма трудно воспринимаемых человеком формах, возникающие при автоматическом формировании уравнений по функциональным схемам ("внутренние языковые формы"); математические модели в виде уравнений в формах записи, которые поддерживаются численными методами и исполняющей системой пакета моделирования ("вычислительные формы"). Очевидно, что произвольные формы должны быть переведены исследователем во "внешние языковые формы" самостоятельно, а затем автоматически преобразованы к "вычислительным". В главах 2 и 4 описываются математические модели, используемые при моделировании сложных систем и их различные формы. В главе 3 рассмотрены методы построения совокупных систем уравнений по заданным функциональным схемам и сами
56
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
внутренние языковые формы. Предлагаемый авторами язык моделирования сложных динамических систем будет рассмотрен во втором томе, однако для удобства изложения его основные графические конструкции можно ввести уже сейчас.
Îïèñàíèå äèíàìè÷åñêèõ ñèñòåì Термин "динамическая система" употребляется как название строго определенной математической модели, которая будет рассмотрена в главе 2. С синтаксической точки зрения, ей соответствует запись dx = f (x ) , x ∈ℜn , f : ℜ n → ℜ n , x (0) = x 0 , t ∈ [0, T ] , dt задающая поведение x(t ) объекта на интервале наблюдения с помощью системы дифференциальных уравнений. Еще недавно такая форма записи для пакетов моделирования называлась бы произвольной, согласно нашей классификации. Теперь она стала внешней языковой формой, т. к. в языках моделирования существуют описания — x ∈ℜn , t ∈ [0, T ] , типы данных — вектор dx функция f (x ) , выражения — = f (x ) , x (0) = x 0 именно в такой, "матемаdt тической", форме. В этой форме достаточно информации, чтобы построить вычислительную форму, требующую только знания вектора правой части f (x ) дифференциального уравнения.
В то же время форма d nx
⎛ d n−1 x d n−2 x ⎞ ⎜ = f , n − 2 , x, t ⎟ n n−1 ⎜ ⎟ dt dt ⎝ dt ⎠ является внешней языковой формой для математических пакетов, но произвольной для большинства пакетов компонентного моделирования, требующих приведения ее к форме
⎧ dx ⎪ dt = V1 , ⎪ ⎪ dV1 = V , 2 ⎪ dt ⎪ ⎨. ⎪. ⎪ ⎪ dVn −1 ⎪ dt = f (Vn−1 ,...,V1 , x, t ). ⎪ ⎩
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
57
Рассматриваемые нами далее гибридные системы используют на каждом отрезке непрерывного времени алгебро-дифференциальные уравнения, которые мы запишем во внешней языковой форме: ⎧ ⎛ dx ⎞ ⎪F ⎜ , x, y , t ⎟ = 0, ⎠ ⎨ ⎝ dt ⎪0 = G (x, y , t ), ⎩ x (0) = x 0 , y (0) = y 0 , x ∈ℜn , y ∈ℜm , t ∈ [0, T ].
Эта форма включает форму записи динамических систем. Подчеркивая, что оба описания подразумевают использование непрерывной модели времени, соответствующие им модели часто называют непрерывными моделями.
Îïèñàíèå ãèáðèäíûõ ñèñòåì В настоящее время существует огромное число различных математических моделей, использующих дискретную модель времени (дискретных систем или дискретных моделей) — конечные автоматы, сети Петри, диаграммы состояний. В последнее время все большую популярность приобретают карты состояний (statechart), предложенные Д. Харелом для описания дискретных систем. Это обусловлено, прежде всего, чрезвычайной наглядностью визуального представления предложенного формализма, а также его изобразительными возможностями — большинство других дискретных систем достаточно просто и естественно записываются на языке карт состояний. Кроме того, карта состояний может служить хорошей основой для создания моделей гибридных систем, т. к. с ее помощью можно описать поведение системы как в дискретном, так и в непрерывном времени. Мы будем использовать визуальный язык карт состояний (в нотации UML) для описания непрерывных и дискретных аспектов поведения гибридных систем. Такое расширение карты состояний применительно к гибридным системам мы будем называть гибридной картой состояний или картой поведений. Для чисто дискретных систем карта поведений совпадает с картой состояний. Рассмотрим в качестве примера модель, которая описывает поведения маятника в виде шарика на нити, у которого в некоторый момент времени (событие "Обрыв") рвется нить. У этой модели два (обобщенных) состояния — "Колебания" и "Полет" (рис. 1.24). Оба описываются системами дифференциальных уравнений, каждая из которых является динамической системой. Далее везде под состоянием понимается обобщенное состояние.
58
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Карта поведений представляет собой совокупность состояний и переходов. В любой момент времени только одно из состояний является текущим. when Обрыв
Колебания
after 1
Полет
Рис. 1.24. Карта состояний обрывающегося маятника
Ñîñòîÿíèÿ Состояние может быть обычным или особым. К особым состояниям относятся начальное состояние, конечное состояние и точка ветвления. Обычное состояние соответствует некоторому качественному состоянию моделируемой системы и изображается прямоугольником с закругленными углами. На рис. 1.24 была показана карта состояний обрывающегося маятника, на которой два обычных состояния "Колебания" и "Полет" соответствуют качественным состояниям моделируемой системы до и после обрыва нити. В общем случае в обычном состоянии могут быть определены входные действия, выходные действия, а также локальная деятельность (рис. 1.25). Деятельность
Входные действия
Выходные действия
Рис. 1.25. Обычное состояние
Последовательность входных действий выполняется мгновенно при каждом входе в данное состояние, а последовательность выходных действий — мгновенно при каждом выходе из данного состояния. Локальная деятельность выполняется непрерывно, пока данное состояние является текущим. Карта состояний на рис. 1.24 правильно отражает качественное поведение обрывающегося маятника, однако, если мы хотим наблюдать процессы колебания
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
59
и свободного движения, нам необходимо поместить в соответствующие состояния модели этих процессов, в результате чего мы получим карту поведений (рис. 1.26). when Обрыв
Колебания
do МодельПолета
after 1
Полет
do МодельКолебаний
Рис. 1.26. Карта поведений обрывающегося маятника
Обычное состояние, которому приписана непрерывная деятельность, мы будем изображать толстой линией, а состояние, которому приписана дискретная или гибридная деятельность — двойной тонкой линией. Заметим, что в "классической" карте состояний под деятельностью понимается лишь разовая или циклическая последовательность дискретных действий. Начальное состояние изображается черным кружком. Оно всегда становится текущим при инициализации карты поведений. В начальное состояние не может входить ни одного перехода. Начальное состояние не может иметь входных или выходных действий, а также локальной деятельности. Конечное состояние изображается кружком с черным кружком меньшего размера в центре. Из конечного состояния не может исходить ни одного перехода. Конечное состояние не может иметь входных или выходных действий, а также локальной деятельности. Переход в конечное состояние означает, что функционирование карты поведений завершилось. Точка ветвления изображается ромбом (рис. 1.27). Точка ветвления не может иметь входных или выходных действий, а также локальной деятельности. Исходящие из точки ветвления переходы должны быть только нетриггерными. Охраняющие условия (включая альтернативу else) исходящих переходов должны охватывать все возможные варианты, т. е. при попадании в точку ветвления обязательно должен сработать один из исходящих переходов.
60
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Состояние_1
[N = 1]
[else]
[N = 2]
Состояние_2
Рис. 1.27. Точка ветвления
Ïåðåõîäû Переход срабатывает, если исходное состояние перехода является текущим и выполняется некоторое условие срабатывания. При срабатывании выполняется некоторая мгновенная последовательность действий. Условие срабатывания перехода в общем случае включает указание запускающего события (триггер) и охраняющее условие (guard). В карте поведений одновременно может срабатывать только один переход. Переходы делятся на внешние и внутренние, а также триггерные и нетриггерные. Внешний переход переводит систему из одного состояния в другое (возможно, то же самое). Внутренний переход не приводит к выходу из текущего состояния. На рис. 1.28 в результате срабатывания как внешнего, так и внутреннего переходов текущим все равно останется состояние S1. S1
Рис. 1.28. Внутренний и внешний переходы
Предположим, что действия внешнего и внутреннего переходов одинаковы. Однако конечные результаты срабатывания этих переходов могут быть различными, т. к. при срабатывании внешнего перехода дополнительно к
Ãëàâà 1. Ââåäåíèå â êîìïüþòåðíîå ìîäåëèðîâàíèå
61
действиям перехода выполняются сначала выходные, а затем входные действия состояния S1, а также происходит повторная инициализация локальной деятельности состояния S1. Триггерный переход срабатывает, если происходит запускающее событие и выполняется охраняющее условие (или оно отсутствует). В случае, если происходит запускающее событие, но охраняющее условие не выполняется, переход не срабатывает. Запускающее событие может задаваться тремя способами: when <логическое_выражение> — событие происходит, когда логическое
выражение становится истинным; when <сигнал> — событие происходит, когда появляется указанный сиг-
нал; after <интервал> — событие происходит, когда истекает указанный ин-
тервал от момента входа в текущее состояние. В карте поведений на рис. 1.23 использованы запускающие события второго и третьего типов. Если предположить, что отрыв происходит при отклонении маятника на некоторый угол, то получим запускающее событие первого типа. Нетриггерный переход срабатывает немедленно при входе в исходное состояние, если выполняется охраняющее условие или оно отсутствует. Нетриггерный переход, у которого отсутствует охраняющее условие, называется безусловным. На рис. 1.26 безусловный переход немедленно переводит модель из начального состояния в состояние колебаний. С помощью нетриггерных переходов осуществляется выбор нового состояния в точке ветвления (см. рис. 1.27). Для переходов, исходящих из точки ветвления, охраняющее условие указывается в квадратных скобках, и может быть приведено условие else. Использовать нетриггерный переход, исходящий из обычного состояния, имеет смысл в двух случаях: состоянию приписана непрерывная деятельность, и нахождение в этом
состоянии используется для решения системы уравнений с целью согласования начальных условий; состоянию приписана карта поведений. В этом случае исходящий нетриг-
герный (в частности безусловный) переход сработает, только когда локальная карта поведений достигнет своего конечного состояния. Например, в карте поведений, показанной на рис. 1.29, переход из состояния S1 в состояние S2 сработает только через 5 единиц времени, когда завершится локальная гибридная деятельность, приписанная состоянию S1.
62
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Использование этого случая иллюстрируется в главе 3 в примере модели статистических испытаний. S1
S2
do after 5 S1_1
Рис. 1.29. Пример безусловного перехода
Ãëàâà 2
Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû Èçîëèðîâàííûå ñèñòåìû Как уже отмечалось, изолированные однокомпонентные объекты — это наиболее простые объекты с точки зрения структуры, и для их моделирования могут использоваться и математические пакеты. При моделировании систем, вместо изолированного объекта, более естественно в качестве простейшей модели рассматривать систему — модель окружения и модель объекта, взаимодействующие через параметры. Программная составляющая, позволяющая проводить активный эксперимент, в этом случае играет роль внешней среды, с помощью которой можно влиять на параметры модели объекта. В то же время пользователям настолько привычна модель изолированного объекта, и настолько очевидно, что у такой модели могут быть параметры и их необходимо менять во время эксперимента, что любое упоминание об окружении может вызвать недоумение. Ради этого стоит не только сохранить понятие изолированной однокомпонентной модели для пакетов моделирования многокомпонентных систем, но и предусмотреть специальный интерфейс, поддерживающий иллюзию работы с "изолированными" объектами. Переменные изолированной однокомпонентной модели целесообразно разделить на собственно переменные состояния, параметры и константы. Разница между параметром и константой заключается в том, что константа не меняется ни при каких обстоятельствах в рассматриваемом вычислительном эксперименте, а параметры не меняются во время отдельного эксперимента. Математическую модель изолированного однокомпонентного объекта (далее просто изолированного объекта) можно записать в виде системы уравнений F(s, α, t ) = 0 , s ∈ℜn , α ∈ℜm ; F : ℜ n + m +1 → ℜ n , относительно переменных со-
64
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
стояния s (искомая вектор-функция), при заданных параметрах α (заданная вектор-функция). Каждый из параметров может принимать несколько различных значений. Можно рассматривать глобальное поведение объекта, понимая под этим все возможные зависимости s = s(t , α ) для заданного диапазона значений параметров, и локальное поведение s = s(t , α 0 ) при конкретных значениях параметров α 0 . Параметрическая форма уравнений F(s, α, t ) = 0 — это единый закон поведения для множества объектов, отличающихся конкретными значениями параметров. Таким образом, можно говорить о неком обобщенном объекте и его экземплярах. Использование в качестве параметра зависящей от времени вектор-функции α (t ) из некоторого множества функций {α1 (t ), α 2 (t ), ...} , неизменных по форме представления для одного эксперимента, но меняющихся от эксперимента к эксперименту, приводит нас к более широкому понятию обобщенных объектов с "единым" законом F(s, α (t ), t ) = 0 . Такие обобщенные объекты имеют "динамические" параметры α (t ) . Для описания обобщенных объектов в современных языках моделирования используют "классы", а конкретный объект возникает автоматически при создании экземпляра класса. Математические модели изолированных систем можно классифицировать поразному. Например, по типу уравнений F(s, α, t ) = 0 , решения которых s = s(t , α ) моделируют поведение исследуемого объекта. В дальнейшем, мы часто будем использовать термины "поведение модели" и "решение уравнений F(s, α, t ) = 0" как синонимы. С этой точки зрения математические модели могут быть представлены: функциями (вектор-функциями) различной степени гладкости.
Математическая модель: s = f (α, t ) . системами линейных алгебраических уравнений.
Математическая модель: A(t ) ⋅ s = b(t ) . системами нелинейных алгебраических уравнений.
Математическая модель: F(s, α, t ) = 0 .
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
65
системами обыкновенных дифференциальных уравнений.
Математическая модель: ⎛ ds ⎞ F ⎜ , s, α , t ⎟ = 0 , s(0) = s 0 . ⎝ dt ⎠
При моделировании изменяющихся во времени систем могут использоваться и другие типы уравнений, например уравнения в частных производных. В уравнениях (2.1)—(2.4) мы имеем одну независимую переменную — время, и зависимые от времени переменные состояния, связанные с интересующими нас характеристиками объекта. Например, свободно падающее тело в перечисленных выше уравнениях представляется точкой, не имеющей геометрических размеров, и нас интересуют только зависимости положения этой точки от времени. Уравнения в частных производных также являются моделью некоторого динамического объекта, однако здесь уже важна форма и зависимости его свойств от независимых пространственных координат и времени. Например, речь может идти об уравнении теплопроводности для стержня ∂ 2T ∂T = k ⋅ 2 + f (t , x) , ∂t ∂x
показывающего зависимость значения температуры T ( x, t ) в каждой точке x стержня от времени, или аналогичном уравнении для плоскости, мембраны, цилиндра. Здесь уже пространственные координаты выступают в качестве независимых переменных. Об уравнениях (2.1)—(2.4) обычно говорят как о макромоделях, а об уравнениях в частных производных — как о микромоделях соответственно. В дальнейшем мы будем рассматривать в основном уравнения (2.1)—(2.4), описывающие поведение макрообъектов, переменные состояния которых зависят только от времени, а все остальные типы уравнений будем сводить к перечисленным выше, если это возможно и целесообразно.
Íåïðåðûâíûå ìîäåëè В нашей классификации в главе 1 мы рассматривали модели с непрерывным временем или непрерывные модели как простейшие. Подчеркнем, что простейшими мы их называем только потому, что вторым полюсом классификации являются более сложные модели систем с гибридным временем, или гибридные системы. Особый тип непрерывных моделей — динамические системы, к рассмотрению которых мы сейчас перейдем, являются интереснейшим,
66
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
давно привлекающим внимание исследователей, и еще далеко не изученным объектом. Для нас же это исходная точка для изучения гибридных систем. Система дифференциальных уравнений ds = f (s) ; s ∈ℜn ; s(0) = s 0 , (2.1) dt правая часть которой определена во всем пространстве переменных s и либо непрерывна вместе со свой производной, либо удовлетворяет условию Липшица по всем своим аргументам, называется динамической системой. Говорят, что функция удовлетворяет условию Липшица, если существует такая постоянная K , что неравенство f (s1 ) − f (s 2 ) ≤ K s1 − s 2
выполняется для любых точек из области определения переменных s. В дальнейшем такую математическую модель будем называть классической динамической системой. Независимая вещественная переменная t играет роль непрерывного времени. Будем считать, что 0 ≤ t < ∞ , т. е. решение системы, заведомо существующее и единственное в некоторой окрестности точки t = 0 , продолжаемо на всю полуось. Если решение в некоторой точке t * начинает неограниченно возрастать, то всегда можно перейти к новой системе, с теми же траекториями, но другими скоростями их прохождения: n ds = f (s) ∗ v(s) ; v(s) = 1 + ∑ fi 2 , s ∈ ℜ n , s(0) = s 0 . dt 1
(2.2)
Можно расширить синтаксическую форму представления динамических систем, разрешив системе быть неавтономной: ds (2.3) = f (t , s) , dt помня о том, что неавтономную систему можно привести к системе автономной, увеличив размерность фазового вектора s на единицу: ds = f ( y, s ); dt ′
s ∈ ℜ n ; s(0) = s 0 ;
dy = 1; dt ′
y ∈ℜ1 ; y (0) = 0;
⎡s ⎤ s′ = ⎢ ⎥ . ⎣ y⎦
(2.4)
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
67
Ранее мы говорили о том, что динамическая система может быть представлена явно заданными отображениями, удовлетворяющими требованиям: функция s = s(t ; s 0 ) непрерывна по всем переменным; при t = 0 она принимает предписанное начальное значение s (0; s0 ) ≡ s0 ;
s(t2 ; s (t1; s 0 )) ≡ s(t1 + t2 ; s 0 ) .
Теперь мы представили описание моделей в виде систем обыкновенных уравнений. Уравнения маятника, записанное в главе 1 в виде формул s (t ; s0 ,V0 ) = s 0 cos(t ) + V0 sin(t ) , t ∈ [0, T ] ,
теперь может быть переписано в виде уравнения: d 2s
= −s . dt 2 Таким образом, динамическая система может быть уже сейчас представлена тремя различными формами: явной функциональной зависимостью; автономной системой; неавтономной системой обыкновенных дифференциальных уравнений. Аналогом динамических систем с непрерывным временем являются дискретные динамические системы
si +1 = f ( si ), i = 0, 1, 2, ...,
s0 = s (0).
Вернемся к модели для изучения полета тела, брошенного под углом α к горизонту с начальной скоростью V0 , рассмотренной нами в главе 1. Пусть l (t ) — дальность полета, h(t ) — высота, (Vl , Vh ) — соответствующие скорости, l (0) = h(0) = 0 и Vl (0) = V0 cos α , Vh (0) = V0 sin α . Соответствующая динамическая система может быть записана в координатной форме dVl ⎧ dl = Vl ; = 0; ⎪ ⎪ dt dt ⎨ ⎪ dh = V ; dVh = − g ; h ⎪ dt ⎩ dt l (0) = h(0) = 0 ; Vl (0) = V0 cos α ; Vh (0) = V0 sin α .
68
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Можно перейти от координатной форме к векторной: ⎡l (t ) ⎤ ⎡Vl ⎤ ⎢ h(t ) ⎥ ⎢ ⎥ V ⎢ ⎥ s= ; f (s ) = ⎢ h ⎥ ; ⎢Vh ⎥ ⎢− g ⎥ ⎢ ⎥ ⎢ ⎥ ⎣Vl ⎦ ⎣0 ⎦ ds = f ( s); dt
s(0) = [ 0; 0; V0 sin α; V0 cos α ] .
Можно попробовать управлять скоростью движения изображающей точки с помощью преобразования (2.2). Рассмотрим три модели. В первой ds 1 = ν ⋅ f (s) ; ν = dt 1 + (f , f ) по мере приближения координаты s 2 (t ) к бесконечности s 2 (t ) ≡ h(t ) → −∞ , изображающая точка на фазовой плоскости ( s1 , s 2 ) замедляет свою скорость, т. к. коэффициент ν стремится к нулю. Если выбрать ν = 1 + (f , f ) , то скорость движения возрастет еще больше, чем в модели, представленной исходными уравнениями, где изображающая точка движется с "естественной" скоростью и ν = 1 . В то же время все три фазовых портрета совпадают и имеют вид, представленный на (рис. 2.1).
Рис. 2.1. Тело, брошенное под углом к горизонту
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
69
Рассмотренная нами модель была моделью изолированного объекта. Теперь рассмотрим систему, которая явно имеет внутреннюю структуру, но также может рассматриваться как однокомпонентный изолированный объект. Этот прием — сведение системы к однокомпонентному объекту — часто используется в математическом моделировании. Предположим, что в два связанных между собой органа больного S1 и S2 ввели лекарственный препарат (рис. 2.2). Орган S1
Орган S2
Рис. 2.2. Система из двух взаимосвязанных органов
Обозначим концентрацию лекарства в органе S1 через s1 (t ) , а в органе S2 — через s 2 (t ) . Предположим, что лекарство переносится течением жидкости, так что справедливы уравнения ds = A ⋅s , dt a12 ⎤ ⎡ −a A = ⎢ 11 ⎥, ⎣ a21 − a22 ⎦
(2.5)
s1 (0) = c1 ≠ 0 , s 2 (0) = 0 .
Начальные условия s1 (0) = c1 ≠ 0 ; s 2 (0) = 0 соответствуют случаю, когда лекарство введено в первый орган. Говорят, что модель подчиняется уравнениям линейной кинетики (2.5). Будем считать скорости a11 , a12 , a21 , a 22 положительными. Дополнительно предположим, что лекарство из организма не выводится, и справедлив закон сохранения: s1 (t ) + s 2 (t ) = c1 ,
что возможно, если a1 = a11 = a 21 a 2 = a12 = a 22 ,
т. к. при этих дополнительных условиях выполняется равенство: ds1 ds2 + =0. dt dt
70
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
В этом случае матрица системы может быть записана в виде ⎡ −a1 a 2 ⎤ A=⎢ ⎥. ⎣ a1 − a 2 ⎦ Пусть назначенное лечение заключается в том, что лекарство вводится в первый орган и подбирается его начальная концентрация s1 (0) = c1 ≠ 0 ; s 2 (0) = 0 , так чтобы через некоторое время она была равна в первом органе заданному уровню b , а во втором — c1 − b . Это условие выполняется, если начальная концентрация равна
b ⋅ (a1 + a 2) . a2 Возможное решение представлено на рис.2.3. c1 =
Рис. 2.3. Одно из возможных "назначений" врача и результат введения лекарства
В рассмотренной модели мы опирались на законы кинетики как на исходные и, учитывая свойства коэффициентов, показали справедливость закона сохранения. Однако закон сохранения можно ввести в качестве основного постулата и описать поведение всей системы уравнениями: ⎧ ds1 = −a1* s1 (t ) + a 2 * s 2 (t ), ⎪ ⎨ dt ⎪s1 (t ) + s 2 (t ) = c1. ⎩
В нашем распоряжении было три уравнения: два дифференциальных уравнения кинетики и одно алгебраическое — закон сохранения. Любое из них можно исключить из рассмотрения. Полученная система уравнений называется алгебро-дифференциальной. Для ее решения необходимо знать начальные условия, удовлетворяющие
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
71
алгебраическому уравнению, и уметь разрешать его в каждой временной точке. К сожалению, чаще всего алгебраические уравнения оказываются нелинейными, и решать их приходится численно. Современные программные реализации численных методов решения алгебро-дифференциальных уравнений умеют это делать, поэтому пользователю достаточно написать уравнения в заданной форме и указать согласованные (удовлетворяющие алгебраическому уравнению) начальные условия. Система может быть преобразована к более простому виду, а именно к дифференциальному уравнению относительно s1 (t ) и явной формуле (в общем случае такая форма записи соответствует системе уравнений и набору вспомогательных формул), позволяющей по значению s1 (t ) находить s 2 (t ) . Для этого необходимо разрешить алгебраическое уравнение предварительно и получить явную формулу для записи решения. В нашем случае решение находится тривиально: ⎧ ds1 = −(a1 + a 2) * s1 (t ) + a 2 * c1 , ⎪ ⎨ dt ⎪s2 (t ) = c1 − s1 (t ), ⎩ s1 (0) = c1 ⇒ s2 (0) = 0.
Таким образом, мы получили еще одну возможную форму записи, а именно дифференциальное уравнение и формулу. Подобные преобразования можно только приветствовать, т. к. они упрощают вычисления. И, наконец, решение написанного нами дифференциального уравнения можно записать в явной форме
(
)
1 1 − e −( a1+ a 2)⋅t ⋅ a 2 ⋅ c1 , a1 + a 2 что позволяет представить поведение еще в двух формах. s1 (t ) = e −( a1+ a 2)⋅t ⋅ c1 +
В виде набора явных формул, с помощью которых записано решение дифференциального и алгебраического уравнений: s1 (t ) = e −( a1+ a 2)⋅t ⋅ c1 + s 2 (t ) = c1 − s1 (t )
(
)
1 1 − e −( a1+ a 2)⋅t ⋅ a 2 ⋅ c1 , a1 + a 2
и в виде одного линейного алгебраического уравнения, пусть в данном случае очень простого, и набора формул: s2 (t ) − c1 + s1 (t ) = 0, s1 (t ) = e −( a1+a 2)⋅t ⋅ c1 +
(
)
1 1 − e −( a1+ a 2)⋅t ⋅ a 2 ⋅ c1. a1 + a 2
72
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Разнообразие приведенных форм даже для простейшей модели подтверждает, что пользователь может представить модель в любом удобном для него виде. В данном примере, все эти формы соответствовали системе линейных дифференциальных уравнений первого порядка с постоянными коэффициентами. С такой системой хорошо справляются существующие численные методы. Разнообразие форм также говорит о том, что для каждой формы целесообразно использовать свои численные методы, т. к. это может привести к существенной экономии. Классическая динамическая система — достаточно хорошо изученный математический объект. В динамических системах возможны только три типа поведения: непериодические, без самопересечений: ∀t1 ≠ t2 ⇒ s (t1 ) ≠ s (t2 ) ; периодические: ∃T , s(t + T ) = s(T ) ; постоянные: ∀t , s (t ) = s 0 .
Для простейшего маятника с силой сопротивления, пропорциональной скорости движения m⋅
d 2s 2
+c⋅
ds + k ⋅s = 0, dt
dt где s — смещение тела массой m от положения равновесия, k > 0 — коэффициент восстанавливающей силы, пропорциональной смещению, c — коэффициент демпфирующей силы, или электрической цепи d 2i 2
+
R di 1 ⋅ + ⋅i = 0 , L dt L ⋅ C
dt где i — сила тока, R — сопротивление, C — емкость, L — индуктивность, мы можем наблюдать: бесконечно долгое нахождение в состоянии устойчивого равновесия
(s =0,
ds di = 0; i = 0, = 0 ); dt dt
периодические ( c = 0 ; R = 0 ) и затухающие колебания ( c > 0 ; R > 0 ); 2
4 ⎛ R⎞ апериодические движения ( c − 4 ⋅ k ⋅ m ≥ 0 ; ⎜ ⎟ − ). L ⋅C ⎝L⎠ 2
Если для уравнений маятника второго порядка или электрической цепи ввеds сти новую переменную (сделаем это для уравнения маятника) Vs = dt
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
73
di ), и свести каждое из них к системе уравнений первого порядка (это и dt есть приведение к форме Коши)
( Vi =
ds = Vs , dt dVs c ds k = − ⋅ − ⋅ s, dt m dt m
то мы увидим, что все три уравнения можно рассматривать как системы линейных дифференциальных уравнений первого порядка с постоянными коэффициентами. Системы линейных уравнений первого порядка описывают простейшие динамические системы. Для систем линейных уравнений с постоянными коэффициентами ds = Α ⋅s + b dt
(2.6)
характер решения s(t ) = e Αt s0 + Α −1 ⋅ (e Αt − Ε ) ⋅ b , det(A) ≠ 0
определяется только собственными числами матрицы A . Действительно, решение s системы (2.6) отличается от решения y системы dy = Α⋅y dt
только на постоянную Α −1b : ds = Α ⋅ s + E ⋅ b = Α ⋅ s + ΑΑ −1b = Α (s + Α −1b), dt dy y = s + Α −1b ⇒ = A ⋅ y , y (0) = y 0 = x 0 + Α −1b, dt
и все разнообразие поведений определяется собственными числами матрицы A . Известно, что преобразованием подобия S , сохраняющим собственные числа исходной системы, исходную матрицу A можно привести к матрицам "простой" формы S-1ΑS =Λ простой_формы . Предположим для простоты, что обе матрицы A , S ∈ℜn × n вещественны и их порядок n равен двум.
74
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Возможными вещественными формами матрицы Λ простой_формы будут:
0⎤ ⎡λ Λ простой_формы = Λ R = ⎢ 1 ⎥; ⎣ 0 λ2 ⎦
⎡ λ0 Λ простой_формы = Λ d = ⎢ ⎣0
0⎤ ; λ0 ⎥⎦
⎡λ0 Λ простой_формы = Λ G = ⎢ ⎣0
1⎤ ; λ0 ⎥⎦
⎡ μ ν⎤ Λ простой_формы = Λ C = ⎢ ⎥. ⎣−ν μ ⎦ Существование матрицы преобразования подобия позволяет еще больше упростить задачу исследования поведения решений линейных систем и рассматривать только уравнения
dz = Λ простой_формы ⋅ z ; z = A −1 ⋅ s . dt Выпишем все независимые решения для каждой из четырех систем для различных простых форм:
, e λ2t ; один вещественный корень; в этом случае одно и то же решение является решением двух одинаковых уравнений, т. к. матрица преобразования подобия в этом случае равна единичной матрице; решение — e λ0t ; два различных вещественных корня; решения — e
кратные вещественные корни; решения — e два комплексно-сопряженных корня
λ0t
λ1t
, te λ0t ;
μ ± i ⋅ ν ; решения — e µt sin νt ,
e µt cos νt . Это и есть все многообразие решений, возможных для линейных уравнений на плоскости. Почти очевидно, что и при переходе к большей размерности качественно нового поведения ожидать не приходится. Если матрица системы не вырождена, то у динамической системы, представленной системами линейных дифференциальных уравнений с постоянными коэффициентами, всего одна особая точка s* : A ⋅ s + b = 0 ⇒ s* = − A −1 ⋅ b , которая может быть либо устойчивой, либо неустойчивой. В нелинейном случае ds = f (s) dt
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
75
все обстоит гораздо сложнее. Особых точек, определяемых уравнением s* : f (s* ) = 0 , может быть уже несколько. Вблизи особых точек качественное поведение нелинейной динамической системы совпадает с поведением линеаризованной системы ds′ ∂f (s′ − s* ) , = dt ∂s′ s′= s* где
∂f — матрица Якоби: ∂s ⎛ ∂f1 ⎜ ∂s 1 ∂f ⎜ = ⎜ ... ∂s ⎜ ⎜ ∂fn ⎜ ∂s ⎝ 1
∂f1 ⎞ ∂s n ⎟ ⎟ . ... ... ⎟ ⎟ ∂fn ⎟ ... ∂s n ⎟⎠ * x=x ...
за исключением случая, когда линеаризованная система имеет особые точки типа "центр" (чисто мнимые собственные числа). В последнем случае это утверждение может оказаться и не справедливым. Наличие нескольких особых точек делает поведение нелинейных систем более сложным, чем линейных. Если в линейных динамических системах качество поведения не зависело от начальных условий, то в нелинейных динамических системах наблюдаемое поведение существенно зависит от них. Легко представить случай, когда на фазовой плоскости существует несколько особых точек разного типа, как устойчивых, так и неустойчивых. В этом случае выбор различных начальных условий может привести к принципиально разным типам поведения. Рассмотрим уравнение d 2s dt 2
+ f (s ) = 0 ,
описывающее колебания математического маятника: при малых f (s) = s и произвольных отклонениях f ( s ) = sin s . Приведем это уравнение к системе уравнений 1-го порядка: ⎧ ds s(0) = s0 , ⎪ dt = Vs , ⎪ ⎨ dV ⎪ s = −f (s), Vs (0) = ds = Vs0 . ⎪ dt t =0 ⎩ dt
76
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Исключим время dVs f (s) =− ⇒ Vs ⋅ dVs = − f ( s ) ⋅ ds , dt Vs
проинтегрируем правую и левую части Vs
s
Vs 0
s0
∫ Vs dVs = − ∫ f (ξ)dξ ⇒
s 1 2 1 2 Vs − Vs0 = − ∫ f (ξ)dξ , 2 2 s 0
и перепишем полученное выражение в виде 1 2 Vs + 2 0
s0
s
0
0
1
2
∫ f (ξ)dξ = ∫ f (ξ)dξ + 2 Vs
.
Если интерпретировать s как движение точки с единичной массой m = 1 под воздействием силы f (s ) , то: ⎧1 2 — кинетическая энергия ⎪ 2 Vs ⎪ ⎨ s ⎪U ( s ) = ∫ f (ξ )dξ — потенциальная энергия ⎪ s0 ⎩ и, следовательно, мы получаем закон сохранения энергии 2
1 ⎛ ds ⎞ 1 2 ⎜ ⎟ + U ( s ) = const = Vs0 + U ( s0 ) = E . 2 ⎝ dt ⎠ 2
Это и закон сохранения энергии, и одновременно уравнение движения изображающей точки на фазовой плоскости Vs = ± 2( E − U ( s )) .
Рассмотрим сначала уравнения, справедливые для малых отклонений: d 2s
= − s , s (t ) = c1 cos(t ) + c2 sin(t ) . dt 2 В данном случае от выбора начальной точки качественное поведение системы не меняется. Мы имеем одну особую точку типа "центр", и от начальных условий зависит только амплитуда колебаний.
Рассмотрим второе уравнение: d 2s = − sin( s ) = 0 , s (0) = s0′ , s (0) = s0 , dt 2
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
77
s
U ( s ) = ∫ sin ξdξ = (1 − cos(s)) , 0
2
1 ⎛ ds ⎞ 1 2 ⎜ ⎟ + (1 − cos(s )) = ( s0′ ) + (1 − cos(s0 )) = E . 2 ⎝ dt ⎠ 2
Уравнение движения изображающей точки по фазовой плоскости теперь имеет вид Vs = ± 2( E − (1 − cos( s ))) , а особыми точками являются точки s = 0, ± π, ± 2π .
Фазовый портрет этой системы показан на рис. 2.4. Фазовая плоскость разбилась на области, где возможны колебания и вращения маятника. Особая кривая разделяет эти два типа движения.
Рис. 2.4. Фазовый портрет системы с различными областями. Замкнутым кривым соответствуют колебания, незамкнутым — вращение маятника
Линеаризованная система имеет вид d 2z = −z dt 2
и совпадает с уравнениями для маятника с малыми отклонениями, т. е. действительно в малой окрестности устойчивой точки (0, 0) — оба маятника ведут себя одинаково, и зависимость от начальных условий проявляется только в изменении амплитуды колебаний. Наличие областей с различным поведением позволяет предположить, что динамические системы способны качественно менять свое поведение, если их каким-то образом переводить из области в область. Например, пусть правая часть уравнения ds = f (s, α ) dt
78
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
зависит от параметра α , и разным значениям α соответствуют качественно различные поведения. Рассмотрим пример. Пусть численность s (t ) популяции лис подчиняется закону ds K −s = r⋅s⋅ − A(t ) , dt K
где r > 0 — скорость роста популяции, K — максимально возможная численность, обусловленная средой обитания, A(t ) — интенсивность гибели лис, например, при охоте на них. Прежде всего, изучим изменение численности лис, когда на них никто не охотится: A(t ) ≡ 0 . Очевидно, что когда популяция мала и еще не достигла своего предела K , ее численность со временем увеличивается, но растет все медленнее по мере приближения к максимально возможному значению. Если в регионе окажется больше лис, чем может найти себе пропитание, то численность будет постепенно уменьшаться, пока не достигнет предельно допустимого значения. Это следует из того, что особая точка s = K , корень K −s уравнения 0 = r ⋅ s ⋅ , является устойчивой (рис. 2.5). K
Рис. 2.5. Рост популяции при отсутствии охоты
Попробуем регулировать численность лис, охотясь на них с постоянной интенсивностью A(t ) = const . В этом случае, при постоянной интенсивности K охоты меньшей, чем значение A < r ⋅ , популяция уже не будет достигать 4 максимально возможной численности, но и не станет вымирать. Если же инK тенсивность охоты превысит значение r ⋅ , то популяция погибнет. Объяс4
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
79
няется это очень просто — при значениях интенсивности охоты, больших K r ⋅ , квадратное уравнение 4 K −s 0 = r⋅s⋅ −A K не имеет больше корней, устойчивой особой точки уже не существует, численность лис начинает уменьшаться и, в конце концов, становится нулевой (рис. 2.6).
а
б Рис. 2.6. Рост и гибель популяции: а — при разумной охоте; б — при неразумной охоте
Таким образом, если, не думая о последствиях, начать истреблять лис по закону A(t ) = α ⋅ t без какого-либо ограничения, то мы неминуемо уничтожим популяцию. Можно попробовать охотится на лис по закону A(t ) = α ⋅ sin(t ) ,
80
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
постоянно смещая положение устойчивой особой точки, не меняя при этом качественного поведения системы. И тогда численность лис также будет периодически меняться (рис. 2.7).
Рис. 2.7. Управление положением особой точки приводит к возникновению колебаний численности
Возможность управлять положением, количеством и типом особых точек может приводить к очень интересным явлениям, таким как релаксационные колебания, например. Рассмотрим систему, описывающую колебания в ламповых генераторах, мультивибраторах, специального типа маятниках ε⋅
d 2 s1
ε⋅
d 2 s2
dt
dt
2
2
⎛ π ds ⎞ ds ⎛ ds ⎞ = −α ( s1 − s 2 ) + tg⎜⎜ ⋅ 1 ⎟⎟ − 2 ; C1 = 2 ⋅ max⎜⎜ 1 ⎟⎟ , ⎝ dt ⎠ ⎝ C1 dt ⎠ dt ⎛ π ds 2 ⎞ ds1 ⎛ ds ⎞ ⎟⎟ − ; C 2 = 2 ⋅ max⎜⎜ 2 ⎟⎟ = α ( s1 − s 2 ) + tg⎜⎜ ⋅ ⎝ dt ⎠ ⎝ C 2 dt ⎠ dt
при малых значениях параметра ε . Эти системы также называют системами с малыми параметрами. У этой системы меняется и количество, и типы особых точек. Их может быть: три (два устойчивых узла и седло), две (седло-узел, возникающее в результате слияния седла и узла, и устойчивый узел), одна (устойчивый узел). Смена типов поведения и последовательное стремление системы к различным устойчивым точкам приводят к возникновению периодических колебаний, очень близких по своей форме к прямоугольным импульсам (рис. 2.8). Качественная смена поведения в определенных точках называется бифуркацией, а точки, в которых это происходит, — точками бифуркаций.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
81
Рис. 2.8. Возникновение релаксационных колебаний
Главный вывод, который бы хотелось сделать из рассмотрения этих примеров, — даже при неизменной форме правых частей в динамической системе могут наблюдаться сильно разнящиеся по своему характеру поведения. Рассмотренный пример релаксационных колебаний, где отрицательные и положительные значения фазовых переменных меняются практически мгновенно, показывает, что внутри одного объекта могут протекать процессы с различными временными масштабами. В динамических системах разномасштабность поведения может проявляться в различных формах. Проиллюстрируем это на примере систем линейных дифференциальных уравнений. Предположим, что независимыми решениями являются только экспоненты и что все собственные числа отрицательны, т. е. мы имеем дело с устойчивыми системами, имеющими постоянное стационарное решение. В этом случае одновременное существование экспонент с большими и малыми по модулю показателями и говорит о разномасштабных по времени процессах или жесткости системы линейных дифференциальных уравнений. Рассмотрим "систему" уравнений ⎧ ds1 = −1000 ⋅ s1 , ⎪ ⎪ dt ⎨ ⎪ ds2 = − 1 ⋅ s2 , ⎪ ⎩ dt
имеющую решение ⎧⎪ s1 (t ) = e −1000⋅t ⋅ s10 , ⎨ −1⋅t ⎪ ⎩ s2 (t ) = e ⋅ s20 .
82
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Какие бы ни были начальные значения первой составляющей решения, она практически мгновенно, по сравнению со второй, станет равной нулю. Попытки отобразить обе составляющие на одном графике, в одном масштабе времени будут приводить к неинформативным графикам (рис. 2.9): то будет хорошо видно изменение одной составляющей, то другой — но не обеих одновременно.
Рис. 2.9. Трудности выбора масштаба для одновременного изображения разномасштабных кривых
Если объекты, описываемые устойчивыми линейными системами, совершают движение под действием силы f (t ) , то собственные числа матрицы системы определяют скорость затухания собственных и установления вынужденных движений (рис. 2.10).
Рис. 2.10. Движения "системы" под действием вынуждающей силы f (t ) = sin(t )
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
83
На рис. 2.10 видны колебания по обеим координатам (для первой координаты s1 это видно только из таблицы, показывающей, что первая переменная колеблется около нуля с очень маленькой амплитудой), однако выход на режим вынужденных колебаний по второй координате значительно медленнее, чем по первой. Разномасштабность может проявить себя не только при экспоненциальных решениях, но и при колебательных. На рис. 2.11 показан пример поведения другой линейной системы с той же вынуждающей силой, ⎧ ds1 = μ s1 + η s2 + sin(t ), ⎪ ⎪ dt ⎨ ⎪ ds2 = −η s + μ s + sin(t ), 1 2 ⎪ ⎩ dt
у которой собственные высокочастотные затухающие колебания μ >> η >> 1 сменяются медленными вынужденными колебаниями.
Рис. 2.11. Разномасштабные свободные и вынужденные колебания
Глядя на предыдущие рисунки, может сложиться впечатление, что разномасштабность связана только с переходными процессами и с течением времени она навсегда исчезает. На рис. 2.12 показан пример, когда быстрые и медленные движения сопровождают друг друга постоянно. Разномасштабность, если она присуща системе, даже если она не видна с первого взгляда, всегда найдет способ проявить себя — малейшие возмущения, свойственные всем реальным объектам, вновь вызывают быстрые переходные процессы. Разномасштабность процессов в рамках одной модели — достаточно неудобное для моделирования свойство, и ее стараются избежать различными способами.
84
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Рис. 2.12. Пример постоянно сопутствующих друг другу быстрых и медленных движений
Íåïðåðûâíî-äèñêðåòíûå ìîäåëè. Ãèáðèäíûå ñèñòåìû Как мы видели, в динамических системах могут возникать качественно различные и разномасштабные процессы. Трудности воспроизведения таких систем очевидны. Иногда удается разделить быстрые и медленные движения и рассматривать их отдельно. В этом случае каждая из моделей имеет свой характерный масштаб времени. Однако чаще всего это сделать не удается, и тогда для достаточно большого класса моделей можно использовать следующий прием. Исследователь решает, какие процессы в объекте считать длительными, а какие быстрыми. Скорость быстрых процессов полагается бесконечной. Мгновенным (разрывным) процессам, в отличие от медленных (непрерывных), разрешается менять значения скачком. Так возникают модели, которые теперь стали называть гибридными системами. Термин "гибридные системы" много лет использовался как синоним названия аналогово-цифровых устройств и в некоторых случаях сохранил это значение и до сих пор. Например, в словарях можно встретить словосочетание "hybrid computer" в качестве названия цифровых компьютеров, в которых одновременно используются и аналоговые устройства. Сейчас термин служит и для обозначения любых непрерывных систем, управляемых компьютерами, или систем со встроенными цифровыми регуляторами, и класса моделей, в которых одновременно моделируется как дискретное, так и непрерывное поведение объекта. Именно последнее значение и будет использоваться в дальнейшем. Вновь вернемся, к телу, брошенному под углом к горизонту, но теперь предположим, что мы хотим не только следить за полетом, но и моделировать
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
85
отскок тела от земли, предполагая, что удар упругий. Это допущение в модели реализуется следующим образом: мы выделяем некое особое состояние — касание тела земли, и разрешаем вертикальной составляющей скорости в момент его наступления мгновенно сменить знак на противоположный Vh = − k ⋅ Vh ,0 < k ≤ 1 , после чего снова начинаем интегрировать исходную систему с новыми начальными условиями (рис. 2.13).
Рис. 2.13. Прыгающий мячик ( k < 1 )
Таким образом, поведение реального объекта может быть вполне удовлетворительно описано последовательностью из "склеенных" между собой решений дифференциального уравнения на отдельных промежутках. На стыках длительных полетов мы пренебрегли как длительностью реального отскока, превратив временной промежуток в точку, так и сложными реальными процессами, происходящими в эти короткие, по сравнению с полетом, промежутки, предположив, что для наших целей достаточно считать, будто скорость мгновенно меняет знак. Решение уравнения на конкретном промежутке зависит от начальных условий, которые в свою очередь зависят от наступивших событий и поведения решения на предыдущем интервале. Эта последовательность решений и является той моделью, которой мы будем заниматься в дальнейшем. Порождающий ее механизм вполне может быть назван автоматом. Исторически, к изучению гибридных систем подходили с двух сторон. С одной стороны, пытались учесть длительность ожидания очередного входного сигнала и длительность выходных действий в конечных автоматах (оснащение конечного автомата непрерывным временем), с другой — в рамках моделей с непрерывным временем допускали возможность протекания мгновенных процессов наряду с длительными. Примером второго подхода служит модель прыгающего мячика, в основе которой лежит динамическая система, в которой сложный и относительно короткий процесс отскока сводится к мгновенному изменению скорости.
86
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
При возникновении событий (достижения особых состояний в пространстве переменных состояния) в моделях, основанных динамических системах, могут измениться: начальные условия (значение скорости при отскоке в модели прыгающего
мячика) или, что одно и то же, значения параметров в правых частях (интенсивность охоты в модели "охота на лис"); форма правых частей; число уравнений.
Поясним, почему мы смену начальных условий и скачкообразное изменение параметров отнесли к одной группе изменений. Скачкообразное изменение параметров может быть описано как смена начальных условий в некоторой новой системе уравнений. Рассмотрим электрическую цепь (рис. 2.14), у которой в зависимости от положения ключа может меняться значение сопротивления. R1
R2 E
C
L
Рис. 2.14. Элементарная электрическая цепь с ключом
Поведение этой цепи описывается уравнением L
1t di + iR * + ∫ idτ = E , dt c0
и если R * меняется периодически R * (t ) = R * (t + T ) , например, T = 2 ⎧ R1 R* = ⎨ ⎩ R2
t ∈ [0, 1), t ∈ [1, 2),
то мы получим систему с мгновенным изменением параметров. Преобразуем ее к виду L
1t di du 1 + iR * +u = E ; u = ∫ idτ ; = i dt dt c c0
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
87
и дополним новым дифференциальным уравнением: du 1 ⎧ di 1 = (−(iR * +u ) + E ); = i; ⎪ ⎪ dt L dt c ⎨ ⎪ dR * = 0; ⎪ ⎩ dt t = 0; R* := R1 ; t = 1; R* := R2 ; .... Последняя система будет эквивалента предыдущей, если мы будем рассматривать ее как систему, у которой периодически меняются начальные условия последнего уравнения в точках t = 1, 2, 3, ... В этих точках координаты i , u "склеиваются", образуя непрерывные функции, а R * меняется скачком, т. е. ведет себя как кусочно-непрерывная функция (рис. 2.15).
а
б Рис. 2.15. Поведение токов и напряжений при: а — R1 = R2 ; б — R1 ≠ R2
88
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Это общий прием, позволяющий говорить о таких системах так же, как о системах с неизменной правой частью и меняющимися только начальными условиями. Действительно, любую систему дифференциальных уравнений с кусочно-постоянным параметром P dx = f ( x, P, t ) , dt ⎧с1 в области V1 , P=⎨ ⎩с 2 в области V2
можно записать в виде ⎧ dx ⎪ dt = f (x, P, t ), ⎪ ⎨ P(0) = с1 в области V1 , ⎪ dP = 0 ⎧⎨ ⎩ P(0) = с2 в области V2 . ⎩⎪ dt
Изменение вида правых частей при переходе изображающей точки из одной области фазового пространства в другую является еще одной формой смены поведения. Изучение свойств систем с изменяющейся правой частью, свойственное многим механическим и электрическим системам, привело к созданию систем с переменной структурой. Изменение правой части дифференциальных уравнений возникает во многих практических задачах. Рассмотрим колебания маятника, подверженного воздействию периодической кусочно-постоянной силы (релейного маятника): d 2x dt
2
+a
dx + f ( x) = 0, dt
при 0 < x < π , ⎧b1 f ( x) = ⎨ ⎩− b2 при − π < x < 0.
Всегда формально можно ввести новые коэффициенты k1 и k 2 , меняющиеся скачком в соответствующих областях d 2x
dx + k1 f1 ( x) + k 2 f1 ( x) = 0, dt dt f1 ( x) = { b1 при 0 < x < π , k1 = 1, k 2 = 0, 2
+a
f 2 ( x) = {− b2 при − π < x ≤ 0, k1 = 0, k 2 = 1
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
89
и перейти к новой системе d 2x dt
2
+a
dx + k1 f1 ( x ) + k 2 f 2 ( x ) = 0 , dt
dk1 =0, dt dk 2 =0, dt
у которой в точках t = ± kπ , k = 0, 1, 2, 3, ... меняются только начальные условия. Такой подход позволяет говорить только о смене начальных условий, но он приводит к трудночитаемой форме уравнений и лишним уравнениям. Его также невозможно применить для построения систем уравнений с переменным числом уравнений. При изучении реальных систем нам часто требуется проверять некоторые присущие конкретному объекту свойства, которые должны сохраняться либо на всем решении, либо на заданных промежутках времени — будем называть их инвариантами и обозначать Inv(t , s(t )) . Для модели "прыгающий мячик" инвариантами являются очевидные свойства решения: ∀t , l (t ) ≥ 0 & h(t ) ≥ 0 . Во всех рассмотренных выше примерах, поведение объекта представляет собой последовательность решения одной и той же системы уравнений. Каждое из решений — это решение дифференциального уравнения на заданном промежутке времени, определяемое своими начальными условиями. Члены последовательности решений исходного дифференциального уравнения "отделены" друг от друга событиями, которые могут быть описаны предикатами, определенными на решении уравнений — pred(t , s (t )) . Предикат выделяет из всех специально отобранных состояний системы нужное, проверяет все условия, которые должны сопутствовать наступившему событию, и принимает при их выполнении значение "Истина". В дальнейшем такие события будут называться событиями, приводящими к смене поведения, а предикаты — условиями смены поведения. При изучении полета с отскоком смена начальных условий происходит в моменты времени, когда выполняется условие t * : h(t ) = 0 & Vh < 0 . И, наконец, выбор новых начальных условий на новом временном промежутке в его левой, начальной точке t +* может зависеть от значения решения в правой,
конечной точке
t −* предыдущего промежутка. Будем называть
90
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
функцию, с помощью которой задаются новые начальные условия, функцией инициализации 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), S0 , 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) = s0 ∈ S0 ,
t ∈ [0, ∞),
со свойствами, обеспечивающими существование и единственность решения s(t ) . Составляющие вектора s1 , s 2 часто называют дифференциальной и алгебраической компонентами решения соответственно. Учитывая, что любая неавтономная система может быть приведена к автономной, мы в дальнейшем не будем различать их и станем записывать правые части уравнений в приведенной выше форме;
S 0 — множество начальных условий, включающее все начальные условия, порождаемые функций инициализации в процессе функционирования гибридной системы;
pred (t , s(t )): ℜ1 × ℜ n → {false, true} — булевская функция, определенная на решениях алгебро-дифференциального уравнения, выделяющая особые состояния, или события, приводящие к смене поведения;
Inv(t , s(t )): ℜ1 × ℜ n → {false, true} — булевская функция, определяющая свойства решения;
Init (s(t )): ℜ n → ℜ n — вещественная функция, ставящая в соответствие
значению решения в правой конечной точке t −* текущего промежутка
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
91
интегрирования значение новых начальных условий на новом временном промежутке в его левой начальной точке t +* : s(t+* ) = Init (s(t−* )) ;
τ — гибридное время.
В данном определении мы использовали специальную форму алгебродифференциальных уравнений, описывающую поведение системы на непрерывных отрезках времени. Мы неявно предполагаем, что написанная система имеет единственное гладкое решение на каждом отдельном отрезке времени. Если модель составляется "руками", ответственность за правильность написания системы с нужными свойствами лежит на составителе уравнений. Он же отвечает и за выбор численных методов, способных решить построенные системы. Все это требует специальной подготовки системы. Практика же показывает, что во многих случаях система предстает в более общей форме ⎛ ds ⎞ F ⎜ , s(t ), t ⎟ = 0 , ⎝ dt ⎠
в виде системы нелинейных уравнений, не разрешенных относительно производных. Чем сложнее форма, тем больше усилий надо приложить для того, чтобы убедиться, что система имеет решение и используемые численные методы способны найти это решение за приемлемое время. Пока мы будем предполагать, что справимся с перечисленными задачами, или, как обычно это случается, начнем этим заниматься в тот момент, когда возникнут трудности. В классической динамической системе роль времени выполняла независимая переменная t . Время было упорядочено, непрерывно и равномерно пробегало значения от нуля до бесконечности: [0, ∞ ) . В гибридной системе рассматриваются решения уравнения на последовательно расположенных отрезках времени, поэтому естественно назвать эту последовательность временных отрезков временем. В нашем примере это были конечные отрезки. Эта последовательность может превращаться в конечное множество и даже в один единственный полуоткрытый справа интервал [t N , ∞ ) в случае, если гибридная система вырождается в классическую динамическую систему. Определим гибридное время τ : либо как конечную последовательность τ H = {τ i }1N ,
где: •
τ i = ( Pre_gap i , [ti*−1, ti* ], Post_gap i ), i = 1..N ; t0* = 0 ;
•
[t i*−1 , t i* ] — замкнутые интервалы
и только последний интервал τ N = [t *N , ∞) — полуоткрытый;
92
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
либо как последовательность τ H = {τ i }1∞ , включающую только замкнутые
конечные интервалы [t i*−1 , t i* ] . Элементы гибридного времени Pre_gap i , Post_gap i назовем временными щелями очередного такта (тика) τ i = ( Pre_gap i , [t i*−1 , t i* ], Post_gap i ) гибридного времени τ = {τ1 , τ 2 , ...} . На каждом такте, на отрезках [t i*−1 , t i* ] локального "непрерывного" времени, гибридная система ведет себя как классическая динамическая система до точки t * , в которой становится истинным предикат, определяющий смену поведения. Точка t * одновременно является конечной точкой текущего и началом нового интервалов. Между концом текущего интервала и началом нового расположены две временные щели, в которых могут изменяться переменные состояния. Запись s(t * ) становится неоднозначной, как и запись t * . В последнем случае мы использовали для устранения неоднозначности обозначения t −* , t +* . Иногда, чтобы не писать s(t−* ) пишут pre(s(t * )) , и post (s(t * )) вместо s(t+* ) . Течение гибридного времени в очередном такте τ i = ( Pre_gapi , [ti*−1 , ti* ], Post_gapi ) начинается с вычисления новых начальных условий во временной щели Pre_gap i . После того как начальные условия вычислены, производится проверка предиката на левом конце нового промежутка длительного поведения. Может случиться так, что предикат окажется истинным уже в первой точке, и никакого длительного поведения на новом промежутке не будет. В этом случае мы сразу же окажемся во второй временной щели. Временная щель Post_gap i предназначена для выполнения мгновенных действий после завершения длительного поведения. В рассмотренных выше примерах гибридных систем именно в ней формировались новые начальные условия для следующего такта. Зачем нужны две щели, станет ясно в дальнейшем, когда мы рассмотрим более сложные примеры гибридных систем. Гибридную систему удобно изображать в виде графа — гибридного автомата (рис. 2.16). На рис. 2.16 черным кружком обозначено особое начальное состояние, которое будет мгновенно покинуто, как только начнется отсчет гибридного времени. Стрелка, исходящая из начального состояния, указывает на неособое состояние, которому предписано поведение, описывающееся уравнениями
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
93
Рис. 2.16. Графическое изображение примитивного гибридного автомата
"Уравнения_1". Любая стрелка, как и стрелка, исходящая из начального состояния, указывает лишь на возможность перехода в новое состояние. Сам переход осуществляется только при наступлении события. Для стрелки, исходящей из начального состояния, такое событие не указано. Следовательно, переход в "Состояние_1" из начального состояния произойдет мгновенно. Для двух других стрелок указано: возвращение в текущее состояние возможно только при возникновении события event, а переход в еще одно особое состояние — конечное (кружок с черной точкой), после истечения времени, равного значению INFINITY. На рис. 2.17 показаны элементы графического языка ("action"), используемого для описания гибридного автомата, связанные с мгновенными действиями. Мгновенные действия могут выполняться при смене состояний "на стрелках" (w:=w0, w:=0) и во временных щелях внутри неособых состояний (s:=first, s:=last). Мгновенные действия внутри неособых состояний называются входными (щель Pre_gap i ) и выходными (щель Post_gap i ) и описываются с помощью процедурного языка программирования. У гибридной системы, изображенной на рис. 2.16, всего одно неособое состояние, в которое она периодически возвращается. Будем называть такие автоматы примитивными гибридными автоматами.
Рис. 2.17. Мгновенные действия "на стрелках" и внутри состояний
94
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
На рис. 2.18 показан гибридный автомат, описывающий рост изменения численности лис при периодически меняющейся интенсивности отстрела. Эксперимент прекращается, когда численность лис становится отрицательной.
Рис. 2.18. Гибридный автомат, "управляющий" интенсивностью отстрела
В данной модели одно единственное уравнение с параметром A — интенсивность охоты было искусственно превращено в два уравнения, у которых в момент смены поведения, переопределяются начальные условия: ⎧ ds r ⋅ s ⋅ ( K − s ) = − A; ⎪ ⎪ dt K ⎨ ⎪ dA = 0. ⎪ ⎩ dt
На рис. 2.19 показан результат управления численностью при удвоении интенсивности охоты через каждую единицу модельного времени.
Рис. 2.19. Гибель популяции из-за неправильного управления интенсивностью охоты
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
95
Вернемся к задаче о вводе лекарственного препарата и воспользуемся возможностью записать ее уравнения в различных формах, а именно, выберем систему алгебро-дифференциальных уравнений: ⎧ ds1 = −(a1 + a 2) * s1 (t ) + a 2 * c1 , ⎪ ⎨ dt ⎪0 = c1 − s2 (t ) − s1 (t ), ⎩ s1 (0) = c1 ⇒ s2 (0) = 0.
Усложним задачу. Предположим, что мы не можем достичь нужной концентрации за один раз и вынуждены вводить лекарство порциями, как это показано на рис. 2.20.
Рис. 2.20. Вместо одной большой "капельницы" ставим пять маленьких
В результате чего (рис. 2.21) достигаем нужного эффекта (сравните с рис. 2.3).
Рис. 2.21. Значения концентраций, состояние автомата и временные диаграммы на момент окончания работы автомата
96
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
В нашем случае больному пять раз подряд будут ставить капельницы с новой дозой лекарства, и только на шестой такт лечение закончится. Используя приведенный выше пример, опишем алгоритм работы примитивного автомата. Àëãîðèòì ðàáîòû ïðèìèòèâíîãî àâòîìàòà
1. Начало. Инициализация. Счетчики непрерывного и дискретного времени устанавливаются в начальное состояние t * = 0 ; i := 0 .
Предыстория переменных состояния не определена (такт, предшествующий начальному), поэтому считаем предыдущие значения равными заданным начальным. post (s1 (t0* )) := pre(s1 (t0* )) := s10 ; post (s 2 (t0* )) := pre(s 2 (t0* )) := s 20 .
Здесь s 20 — либо согласованное начальное условие для алгебраической составляющей, либо только начальное приближение к нему. В нашем случае мы знаем начальные значения переменной, удовлетворяющей дифференциальному уравнению, и лишь приближение к алгебраической переменной. Данное приближение случайно оказывается точным, но программа об этом не догадывается. В момент, когда начинается моделирование (начинается отсчет модельного времени), последовательно вычисляются все начальные значения переменных (они могут быть заданы выражениями), все выражения и процедуры, приписанные стрелке, идущей от начального состояния к единственному неособому состоянию, и, таким образом, формируются начальные условия для дифференциального уравнения. 2.
Pre_gap i : начинается текущий промежуток гибридного времени τ i .
Вычисление новых согласованных начальных условий и проверка предиката. Определяем номер такта: i := i + 1 .
(При переходе из предыдущего состояния в текущее непрерывное время не меняется, зато счетчик переходов, или числа тактов, увеличивается на единицу).
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
Решаем уравнение
0 = g (ti*−1 , pre(s10 (ti*−1 )), pre(s 20 (ti*−1 )))
pre(s 20 (ti*−1 ))
97
относительно
pre(s 20 (ti*−1 ) .
с начальным приближением Как в начальных, так и в приближениях к начальным условиям уже учтены все мгновенные действия как "на стрелке", так и при входе в текущее состояние. В нашем примере при первом входе в текущий узел действия на стрелке, как и входные, отсутствуют. При повторном входе в узел вычисляются новые начальные приближения по дифференциальной переменной, приписанные стрелке, возвращающей нас в это же состояние. Заметьте, что новое начальное приближение для решения алгебраического уравнения не формируется, и оно будет автоматически равно значению этой переменной на предыдущем такте. ⇒ Аварийный выход: не смогли найти согласованные начальные условия. Вычисляем предикат на левом конце текущего промежутка pred ( pre( s (t i*−1 )) с учетом окончательного значения новых начальных условий. Если предикат истинен pred ( pre(s(ti*−1 )) = true , то завершается текущий интервал гибридного времени τ i ; ti* := ti*−1 ; pre(s(ti* )) := post (s (ti*−1 ));
переходим к п. 4; иначе начинается текущее длительное поведение. 3. [t i*−1 , t i* ] : текущее длительное поведение. Решение уравнений ds10 = f (t , s10 , s 20 ); dt 0 = g (t , s10 , s 20 )
с согласованными начальными условиями до тех пор, пока не станет истинным предикат pred(s(t )) . ⇒ Аварийный выход: не смогли решить уравнения. Как только предикат стал истинным, выполняем завершается текущий интервал гибридного времени τ i ; ti* := t : pred (s(t )) = true ; post (s(ti* )) := s(t ) .
98
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
4. Post _ gapi : завершающее мгновенное поведение действия. Выполняем все выходные действия в узле. Выбираем новое текущее состояние. Если не выполнены условия окончания работы автомата, то переходим к п. 2; иначе Конец алгоритма работы примитивного автомата.
При построении гибридных автоматов разрешается не использовать особого конечного состояния при описании работы примитивного автомата. В этом случае предполагается, что вычислительный эксперимент требует бесконечно большого модельного времени.
Траекторией гибридной системы будем называть последовательность решений Hτ = {(s0 (t ), t ∈τ 0 ), (s1(t ), t ∈τ 1 ), ...} заданного алгебро-дифференциального уравнения, обладающих требуемыми свойствами на всех промежутках временной последовательности τ H . В случае появления в этой последовательности бесконечного промежутка, число нетривиальных членов последовательности будет конечным.
Примером может служить траектория (рис. 2.22) гибридной системы, описываемой автоматом (рис. 2.23). Автомат периодически превращает линейную систему уравнений ⎧ ds1 = −a11 ⋅ s1 ⎪ ⎪ dt ⎨ ⎪ ds2 = −a ⋅ s 22 2 ⎪ ⎩ dt
из устойчивой (нечетные такты гибридного времени) в неустойчивую (четные такты). В гибридной системе участки непрерывного поведения сменяются мгновенными действиями, после чего возникает новое поведение. В данном случае устойчивое поведение сменяется неустойчивым и, дополнительно, при смене поведения переменные претерпевают разрыв первого рода. Пунктирная линия показывает точки, где происходит смена поведения на временной диаграмме, и переменные становятся неоднозначными в обычном непрерывном времени.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
99
Рис. 2.22. Типичная траектория гибридной системы
Рис. 2.23. Описание примитивного гибридного автомата, периодически меняющего устойчивость системы линейных дифференциальных уравнений
Новая математическая модель, в частности гибридная система, должна воспроизводить свойства тех реальных объектов, ради которых мы ее создаем. Рассмотрим полет и отскок мячика и примитивный гибридный автомат в качестве его модели (рис. 2.24). Характерными особенностями рассматриваемых нами реальных процессов (и ими должны обладать соответствующие модели) являются их бесконечное развитие во времени и детерминированность. Возможность бесконечного движения системы и детерминированность свойственны, естественно, и классической динамической системе, что обеспечивается существованием и единственностью решения в окрестности начальной точки и его продолжаемостью на всю временную ось. Возникает вопрос, при каких условиях эти свойства будут у траекторий гибридной системы?
100
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
dL = VL; dt dH = Vh; dt E = g⋅H +
dVL =0 dt dVh = −g dt Vh 2 2 а
Б
Рис. 2.24. Уравнения модели прыгающего мячика (а) и описание примитивного гибридного автомата (б). L — длина полета; H — высота; E — полная энергия
Начнем со случая, когда полет и отскок мячика моделируется без учета потерь энергии k = 1 (рис. 2.25). Теперь обратимся к случаю, когда полет и отскок воспроизводится с учетом потери энергии и эти потери не очень велики — скорость при отскоке уменьшается на 10%, k = 0.9 (рис. 2.26). Возникает поведение, не свойственное реальному объекту, — амплитуда отскоков и время полетов стремятся к нулю, а мячик не останавливается! Но остановка и не предусмотрена моделью. Однако на графике хорошо видно странное явление — время останавливается!
Рис. 2.25 Ожидаемое периодическое движение при отсутствии потерь энергии
Рис. 2.26. Остановка времени. Поведение, не свойственное реальному объекту
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
101
Мы можем избежать этого странного эффекта, видоизменив модель. Воспроизведем полет и отскок с учетом потери энергии и остановкой, когда полная энергия уменьшится до заданной величины (рис. 2.27).
Рис. 2.27 Остановка мячика при достаточно больших потерях энергии
Сравнивая три поведения, мы видим, что второе нельзя наблюдать в реальных условиях. Длины отрезков непрерывного времени в каждом такте гибридного времени стремятся к нулю! У такой модели, начиная с некоторого времени, фактически отсутствует непрерывное поведение. Двигается только дискретное время. Модель становится чисто дискретной, а это означает, что число отскоков в единицу времени начинает стремиться к бесконечности. Таким образом, если превращение модели в чисто непрерывную, классическую динамическую систему вполне допустимо, то превращение в чисто дискретную модель (формально допустимое), скорее всего, говорит о практически не реализуемых допущениях, положенных в основу модели. В то же время в гибридной системе вполне возможно "проскакивание" нескольких длительных состояний при переходе к новому длительному процессу. О моделях, "умеющих" останавливать течение времени, говорят, что они обладают эффектом Зенона. Эффект Зенона обычно связывают с существованием для последовательности TH = {τ 0 , τ1 , τ 2 , ..., τ i , ...} , i = 0, 1, 2, ... конечного предела суммы S (TH ) = lim ∑ τ i . i
Будем называть примитивный автомат автоматом Зенона, если объединение всех интервалов последовательности, образующей гибридное время, не совпадает с положительной вещественной осью: ∞
TH = ∪ τ i ≠ [0, ∞) . i =0
(2.7)
102
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Это условие также записывают в виде: W = lim ∑ w(τ i ) ≠ ∞ ,
(2.8)
i→∞ i
где w( τ i ) = t i − ti −1 — длительность текущего состояния. Последнее условие (2.8) можно интерпретировать как переключение автомата с бесконечной скоростью в окрестности некоторой временной точки. Таким образом, автомат Зенона реализуется, либо если в последовательности τ H = {τ k }∞ 0 найдется номер N , начиная с которого i ≥ N все τ i окажутся либо нулевыми, либо будут выполняться приведенные выше условия (2.7) или (2.8). Пример автомата Зенона, для которого последовательность локальных длительностей текущего состояния имеет предельную точку, отличную от нуля, легко построить уже для линейного уравнения первого порядка, если предикат выбирать не в виде условия достижения решением заданного состояния, а в виде ограничения на время пребывания в текущем длительном состоянии. Выберем очередную длительность w( τ i ) , например, равной w(τ i ) = ti − ti −1 =
1 (i + 1) 2
и получим в (2.8) конечное предельное значение. Для построения более сложного автомата достаточно так подобрать новое очередное начальное условие, чтобы решение достигало нужного состояния с требуемой для выполнения условий сходимости ряда скоростью. Покажем это на примере того же дифференциального уравнения первого порядка. Пусть ds b = a * s + b ; s (0) = s0 ; c ≤ − ; Inv := s (t ) ≤ c ; pred := s(t ) = c dt a
и на i -м срабатывании перехода было выбрано новое начальное условие s i0 . Так как решение уравнения s i (t ) в очередном длительном состоянии равно s i (t ) = e at s0i +
(
)
b at e −1 , a
то предикат s i (t ) = c станет истинным в точке b 1 a . ti +1 = ln b a si0 + a c+
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
103
Достаточно новые начальные условия выбрать, например, равными 1⎞ ⎛ si0 = c * ⎜1 − i ⎟ , ⎝ 2 ⎠
чтобы получить автомат с требуемыми свойствами. Примитивный гибридный автомат, чрезвычайно удобный для теоретических построений, теряет свою наглядность, как только мы переходим к решению практических задач. Параметры в правой части говорят исследователю много больше, чем дополнительное уравнение с нулевой правой частью. Изменение правой части лучше записать в виде нескольких отдельных уравнений, чем вводить дополнительные коэффициенты и присваивать им то нулевые, то единичные значения и постоянно разбираться, какому же реальному режиму соответствует правая часть, при текущих значениях коэффициентов. Именно поэтому, на практике рассматривают гибридные автоматы с несколькими длительными состояниями (рис. 2.28).
Рис. 2.28. Гибридный автомат с несколькими длительными состояниями
Этот автомат, по сравнению с примитивным гибридным автоматом, позволяет выразительнее описать логику переключений между состояниями и допускает иерархию. На рисунке показан автомат наивысшего уровня иерархии. Состояния, содержащие в себе гибридные автоматы низшего уровня, обведены двойной линией. Вложенность автоматов не ограничена. Очевидно, что
104
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
любую иерархическую схему можно, последовательно раскрывая содержимое сложно организованных состояний, представить схемой одного уровня иерархии, возможно, очень большой и трудно воспринимаемой. Таким образом, иерархический гибридный автомат — это всего лишь удобная форма структурирования сложных схем. В каждый момент времени поведение этого сложного автомата, приведенного к схеме одного уровня иерархии, определяется только одним состоянием, называемым текущим. Если рассматривать гибридный автомат с несколькими состояниями только как ориентированный граф и построить для него все возможные пути, то мы получим либо конечное множество всех возможных вариантов поведения модели, представленной автоматом, либо бесконечное. В последнем случае, очевидно, в графе должны быть циклы (рис. 2.29).
Рис. 2.29. Гибридный автомат с бесконечным числом сценариев поведения. Граф такого автомата — это ориентированный граф с циклами
Будет ли число возможных сценариев поведения конечным или бесконечным — не столь важно по сравнению с тем, что в таком автомате не может быть параллельных действий. Единственный способ отражать одновременно протекающие процессы — это решать совместные системы уравнений, приписанные каждому текущему узлу. В основе этого ограничения лежит очень простое соображение. Параллельные действия, выходящие за рамки совместных систем уравнений, например, посылка сигнала, или внешние управляющие воздействия — признак присутствия рядом другого объекта. В этом случае целесообразнее использовать в качестве модели не изолированный объект, а систему. Под гибридной системой H в этом случае следует понимать объект H = { s, F(s), G(s), S0 , pred(t, s(t )), Inv(t, s(t )), Init( s(t ))} ,
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
105
где:
s ∈ℜn — вектор переменных состояния размерности n ;
F(s) = f k ( wk ) ∈ℜk , g k ( wk ) ∈ℜk
{
}
K ≤n
1
— множество вектор-функций или
правых частей алгебро-дифференциальных уравнений для локального вектора переменных состояния wi = {w1i , wi2 } , размерность которого не превышает максимально возможной размерности n , где w1i , wi2 — и дифференциальная, и алгебраическая составляющие: dw1i = fi ( w1i , wi2 ), dt 0 = g i (w1i , wi2 ) wi (0) = wi 0 ∈ S 0 ,
t ∈ [0, ∞], wi ⊂ s; fi , gi ∈ F(s), 1 ≤ i ≤ K .
Вектор wi может содержать не обязательно все, а только некоторые компоненты вектора s ;
S 0 — множество начальных условий для всех возможных систем и функций инициализаций;
pred(t , w(t )) — множество булевских функций
{pred
m (t , w(t )):
}
ℜ1 × ℜm → {false, true}, w ⊂ s
M
1
,
определенных на решениях дифференциальных уравнений, выделяющих особые состояния, или события, приводящие к смене поведения;
Inv(t , w(t )) — множество булевских функций
{Inv
p (t , w (t )) :
}
ℜ1 × ℜp → {false, true}
P
1
,
определяющих свойства решения отдельных дифференциальных уравнений;
{
Init(w(t )) — множество вещественных функций Init l (w (t )): ℜn → ℜl
}
L
,
1 t −*
ставящих в соответствие значению решения в правой конечной точке текущего промежутка интегрирования значение новых начальных условий на новом временном промежутке в его левой начальной точке t +* : w (t+* ) = Init l ( w(t−* )) ;
106
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
V — множество поименованных длительных состояний, каждому из ко-
торых предписано одно дифференциальное уравнение и один инвариант;
E — множество переходов, с предписанными им предикатами и функциями инициализациями.
Граф, соответствующий гибридной системе с несколькими длительными состояниями, с приписанными узлам системами дифференциальных уравнений и дугами, помеченными предикатами функциями инициализации, называется так же картой поведения. В данном определении, как и в определении примитивного гибридного автомата, выбрана одна из возможных форм представления уравнений, на которую рассчитана большая часть существующего программного обеспечения для численного решения систем обыкновенных дифференциальных уравнений. Гибридный автомат называется детерминированным, если в каждый момент гибридного времени может стать истинным только один предикат, определяющий смену поведения. Можно сказать, выбор между детерминированными и недетерминированными автоматами для моделирования во многом определяется разработчиком моделей. Если автомат допускает недетерминированность, то нужно определять правила, по которым будет выбираться новое текущее состояние. Существуют различные стратегии выбора, среди которых наибольшее распространение получила стратегия случайного выбора. В автоматах с несколькими состояниями также возможен эффект Зенона, предсказать который заранее становится уже много труднее. Дело в том, что теперь надо не только уметь оценивать длительность пребывания в одном состоянии, но и отыскивать все циклы в графе, потому что именно на них и возникает этот эффект. Для относительно большого графа это сама по себе сложная задача, не говоря уже о том, что оценить время пребывания в узле заранее практически не возможно. Приведем хорошо известный пример достаточно простого автомата, для которого можно доказать, что он может демонстрировать эффект Зенона и даже указать значения параметров, при которых этот эффект возникает (рис. 2.30). В два бака, имеющих сливные отверстия, вода может поступать только из одного крана. Скорости поступления воды и ее слива заданы, их можно менять, критический уровень также является параметром. Когда уровень воды в любом из баков оказывается ниже заданного, воду следует доливать. Очевидно, что если вода достигнет критического уровня в обоих баках одновременно, осуществить пополнение баков с помощью одного крана будет трудно. Разработчик реальной системы управления краном, конечно же, сочтет модель, приведенную на рис. 2.29, неработоспособной, однако на это укажет и эффект Зенона, если он возникнет в некоторой области параметров.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
107
w
r1
x2
r2
v1
v2
Рис. 2.30. Управление уровнем воды в системе двух баков
Предположим, что мы начинаем доливать воду в момент, когда вода в первом баке достигла критического уровня, а во втором его превышает. Доливка воды в первый бак будет продолжаться до тех пор, пока уровень воды во втором баке не достигнет критического уровня, после чего начнется пополнение второго бака. Гибридный автомат H будет иметь два состояния с уравнениями: state1; x2 ≤ r2 dx1 dx2 = w − v1; = −v1; dt dt state2; x1 ≤ r1 dx1 dx2 = −v1; = w − v1. dt dt
Положим r1 = 0 и r2 = 0 . Начальным будем считать состояние, когда x1 = 0 , x2 = h > 0 . Пусть max{v1 , v 2 } < w < v1 + v 2 . При первом переключении будет иметь место: τ 0 = 0 ; τ1 =
h h ; x1 ( τ1 ) = ( w − v1 ) ; x2 ( τ1 ) = 0 . v2 v2
При втором — τ 2 = τ1 + ( w − v1 )
h h ; x1 ( τ 2 ) = 0 ; x2 ( τ 2 ) = ( w − v1 )( w − v 2 ) . v1v 2 v1v 2
108
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Окончательно имеем ∞
h
i =0
2
∑ (τi+1 − τi ) = v
+
( w − v1 )h ( w − v1 )(w − v2 )h + + ... = v1v2 v1v2 v2
i i−1 i i ∞ ⎛ (w − v ) ⎞ ⎛ (w − v ) ⎞ ⎤ h ⎡ ∞ ⎛ ( w − v1 ) ⎞ ⎛ ( w − v2 ) ⎞ 1 2 ⎟ ⎥= ⎟⎜ ⎟ + ∑ ⎜⎜ ⎟⎜ = ⎢∑ ⎜⎜ v2 ⎢i=1 ⎝ v1 ⎟⎠ ⎜⎝ v2 ⎟⎠ v1 ⎟⎠ ⎜⎝ v2 ⎟⎠ ⎥ i =0 ⎝ ⎣ ⎦ i
h ⎡ ( w − v1 ) ⎤ ∞ ⎛ ( w − v1 ) ( w − v2 ) ⎞ ⎟ = = ⎢ + 1⎥ ∑ ⎜⎜ v2 ⎣ v1 v2 ⎟⎠ ⎦ i =0 ⎝ v1 ⎡ ⎤ ⎢ ⎥ h 1 hw ⎢ ⎥= . = v1v2 ⎢ ⎛ ( w − v1 ) ( w − v2 ) ⎞ ⎥ v1 + v2 − w ⎟⎥ ⎢1 − ⎜⎜ v2 ⎟⎠ ⎦⎥ ⎣⎢ ⎝ v1
Графики для h = 2 , w = 2.5 , v1 = 2 , v 2 = 1 приведены на рис. 2.31.
Рис. 2.31. Эффект Зенона в системе двух баков
В гибридных системах, помимо эффекта Зенона, может возникать и еще одно, чрезвычайное неприятное для численного моделирования явление, известное как явление скольжения. Рассмотрим уравнение (модель автопилота с релейным сервомотором): d 2ϕ dt
2
= −M
dϕ − hψ (σ) + g , dt
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
σ = ϕ + α1 M,
dϕ , dt
ψ (σ) — разрывная: dϕ ψ (σ) = sign (σ) , и, таким образом, на линии переключения σ = ϕ + α1 меdt няется форма уравнения:
где
g,
109
h,
α1 — константы, а функция
⎧ d 2ϕ dϕ − h + g, ⎪ 2 = −M dt dt ⎪ ⎪ ⎨ dϕ ⎪σ = ϕ + α1 dt , ⎪ ⎪ ⎩ g = const; ⎧ d 2ϕ dϕ + h + g, ⎪ 2 = −M dt dt ⎪ ⎪ ⎨ dϕ ⎪σ = ϕ + α1 dt , ⎪ ⎪ ⎩ g = const. Карта поведения этой гибридной системы показана на рис. 2.32.
(P)
(N)
Рис. 2.32. Карта поведения автопилота
Поведение автопилота при h ≠ 0 , α1 = 0 показано на рис. 2.33. Как видно из рисунка, за счет переключения управляющей функции ψ (σ) = sign (σ) , угол ϕ (переменная состояния fi компьютерной модели) с течением времени принимает нулевое значение, как и его производная, т. е. наступает стабилизация.
110
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Рис. 2.33. Поведения автопилота с сервомотором в области линии переключения
dϕ , α1 ≠ 0 . dt Результат при постепенно увеличивающихся значениях коэффициента α11 < α 21 < α 31 показан на рис. 2.34.
Попробуем добавить в управление производную угла σ = ϕ + α1
Рис. 2.34. Попытка улучшить управление автопилота за счет введения и увеличения значения коэффициента α1 : α1 < α 2 < α 3 1
1
1
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
111
Как мы видим, на рис. 2.34 сначала переходный процесс заканчивается быстрее, чем без управления по производной, однако с дальнейшим увеличением α1 возникает эффект Зенона достаточно далеко от нужной нам точки (0, 0). Функция ψ (σ) = sign (σ) — это разрывная функция, попробуем заменить ее 2 гладкой функцией ψ (σ) = arctg( K sigma ⋅ σ) . Результаты при различных π значениях α1 показаны на рис. 2.35, где хорошо видно необычное явление. Там, где на рис. 2.35 при α1 = 0.4 и ψ (σ) = sign (σ) начинал прояв2 ляться эффект Зенона, теперь для функции ψ (σ) = arctg( K sigma ⋅ σ) на π рис. 2.35 начинается движение к точке стабилизации по некоторой прямой. Это и есть явление скольжения. Дело в том, что данная прямая делит фазовое пространство на две области, соответствующие двум различным уравнениям, и направления движения системы по разные стороны от этой прямой перпендикулярны ей и направлены в противоположные стороны. Фазовой траектории ничего не остается, как двигаться по этой прямой. Фактически фазовое пространство новой системы разделено не на две полуплоскости, а на две полуплоскости и прямую. По разные стороны этой прямой законы движения изображающей точки явно определены приведенными выше уравнениями, а на самой прямой — нет. При использовании модели с разрывными функциями ψ (σ) = sign (σ) следовало бы обнаружить эту прямую и доопределить уравнения движения. При 2 использовании гладкой функции ψ (σ) = arctg( K sigma ⋅ σ) это произошло π автоматически. Скольжение видно все лучше при увеличении значения коэффициента α1 . Приведенные нами примеры систем с различными уравнениями в различных областях фазового пространства известны давно, их еще называют системами с переменной структурой. Возможности применения систем переменной структуры в теории управления в работе [25] иллюстрируются на примере линейной системы второго порядка: dx1 = x2 , dt dx2 = −a 2 x2 − a1 x1 − bu , dt u = Ψx1 ,
112
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
x1s > 0, ⎧α , Ψ=⎨ x1s < 0, ⎩β , s = x2 + cx1 , a1 , a2 , b = const , b > 0, c > 0, α > β , α = 1 ; β = −1 ; a1 = 0.1 ; a 2 := −1 ; c = 0.001 ; c = 0.572 ; c = 0.575 .
Рис. 2.35. Аппроксимация функции ψ(σ) = sign (σ) 2 π
функцией ψ(σ) = arctg( K sigma ⋅ σ)
Если коэффициенты подобраны так, что при Ψ = α система оказывается колебательно неустойчивой, а при Ψ = β — апериодически неустойчивой, то в зависимости от величины коэффициента c в системе возможны три типа движения, показанные на рис. 2.36.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
113
Сторонники использования скользящих режимов отмечают, что основное достоинство скользящего режима заключается в том, что его свойства не зависят от характеристик управляемого объекта. Таким образом, если в системе переменной структуры существуют скользящие режимы, и удается обеспечить выход на прямую (гиперплоскость) скользящего режима из любой начальной точки, то система попадает в точку устойчивого равновесия.
Рис. 2.36. Режим движения по вырожденным траекториям (верхний правый), скользящий режим (верхний левый) и режим постоянного переключения (нижний)
Кривые, приведенные на рис. 2.36, получены для модели, у которой разрывная функция управления была заменена непрерывной α −β α +β ⋅ arctg( K sigma ⋅ sl ) + , π 2 sl = x1 ⋅ ( x2 + cx1 ).
Ψ=
Переход от разрывных функций управления к непрерывным требует обоснования, но с инженерной точки зрения может рассматриваться как учет присущих реальному объекту "неидеальностей", позволяющих утверждать, что все переключения происходят хотя и с большой, но не бесконечной скоростью. Основной математической моделью как для гибридного автомата, так и релейного и импульсного управления, являются дифференциальные уравнения
114
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
с разрывными коэффициентами. В таких системах, если решение принадлежит поверхности разрыва, то после попадания на нее изображающей точки дальнейшее движение может оказаться невозможным, т. к. правая часть не определена на поверхности разрыва. В этом случае правая часть требует доопределения. Для уравнения с разрывной правой частью ds = f (s, t ) dt
движение вдоль линии скольжения sl (s ) может быть определено вектором f 0 = μ ⋅ f + + (μ − 1) ⋅ f − , 0 ≤ μ ≤ 1 , направленным по касательной к ней и рав-
ным в каждой точке сумме векторов f + и f − фазовой скорости в рассматриds ds ваемой точке, принадлежащим полуплоскостям, где ≥0 и ≤ 0 соответdt dt ственно. Если sl ( s ) = 0 — линия скольжения и движение осуществляется по касательной к ней, то коэффициент µ выбирается из условия 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 )
Указанный способ сложно реализовать на практике. Существуют и другие способы доопределения.
Ìîäåëè, ñâîäÿùèåñÿ ê äèíàìè÷åñêèì è ãèáðèäíûì ñèñòåìàì Как мы уже отмечали, одному и тому же исследуемому объекту можно сопоставить несколько математических моделей, или уравнений различных типов. Выбор формы уравнений может быть обусловлен различными причинами, например, описывать модель проще в терминах дифференциальных уравнений, анализировать — используя решение в замкнутой форме, если оно не очень громоздкое, но строить решение приходится чаще всего численно, т. е. использовать разностные уравнения. Одной из задач исследователя является обеспечение соответствия моделей друг другу с требуемой точностью, но здесь мы этих проблем касаться не будем. В этом разделе мы приведем несколько примеров разных по своей природе моделей, которые можно свести к динамическим или гибридным системам и, соответственно, описать на графическом языке с помощью гибридных автоматов.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
115
Äèñêðåòíûå ìîäåëè В предыдущих разделах мы рассматривали модели с непрерывным и гибридным временем. Как поступать, если для модели более естественно дискретное время? Можно посоветовать использовать языки моделирования, ориентированные на модели с дискретным временем. Однако можно попытаться применить и язык, основанный на гибридных автоматах, если вспомнить что для синхронизации дискретных процессов можно использовать непрерывное время. Рассмотрим задачу, в которой необходимо построить модель, позволяющую прогнозировать численность сообщества зайцев и волков на основании многолетних наблюдений за их численностью. Наблюдения показывают, что численность и зайцев, и волков периодически то убывает, то возрастает. Предположим, что мы ничего не знаем о моделях, основанных на дифференциальных уравнениях, и пытаемся самостоятельно угадать закон, который бы хорошо совпадал с экспериментальными данными и мог бы использоваться для прогноза. Введем переменные состояния — численность волков, численность зайцев, Коэффициенты рождаемости и смертности волков и зайцев — k bw , k dw , k bh , k dh . Коэффициент гибели зайцев при встрече с волками — k dwh и коэффициент увеличения популяции волков от "хорошего" питания — k bwh . Очевидно, что переменными состояния следует считать численности популяций зайцев и волков — z = [ z1 , z 2 ] с областью значений z ∈ ℜ 2 , а остальные переменные — параметрами, также вещественными числами. Уравнения можно попробовать записать в виде: z1n+1 = ( k bh − k dh ) ⋅ z1n − k dwh ⋅ z1n ⋅ z 2n , z 2n+1 = ( k bw − k dw ) ⋅ z 2n + k bwh ⋅ z1n ⋅ z 2n
(2.9)
и пытаться подбирать удовлетворяющие нас значения коэффициентов. Примером вполне удовлетворительного и интуитивно понятного поведения изолированного объекта "зайцы-волки" может служить рис. 2.37. По мере роста численности зайцев, количество волков увеличивается, но чрезмерное их обжорство приводит к уменьшению численности зайцев и, соответственно, популяции волков. Такое поведение возникает, например, при следующих значениях коэффициентов: ⎧ kbh = 3.2; kdh = 2; kdwh = 0.02, ⎨ ⎩ kbw = 2; kdw = 2; kbwh = 0.06.
116
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Рис. 2.37. Периодическое изменение численности особей в сообществе "зайцы-волки". Временная диаграмма и фазовый портрет
Такое описание вполне удовлетворительно. Однако попробуем изменить условия задачи. Предположим, что первые пять лет зайцы в данном регионе жили одни, но потом их стало так много, что решено было привезти и поселить волков, чтобы те естественным образом регулировали численность зайцев. Мы можем это сделать двумя путями. В первом случае, будем считать уравнения (2.9) единым для всех случаев законом и получать частные случаи: "жизнь зайцев без волков", "жизнь зайцев с волками", выбирая соответствующие значения коэффициентов. Для этого к общим уравнениям следует добавить следующие данные: "жизнь зайцев без волков": n≤5 ⎧ kbh ≠ 0; kdh ≠ 0; kdwh = 0; ⎨ ⎩ kbw = 0; kdw = 0; kbwh = 0; "жизнь зайцев с волками":
n>5 ⎧k bh ≠ 0; k dh ≠ 0; k dwh ≠ 0; ⎨ ⎩k bw ≠ 0; k dw ≠ 0; k bwh ≠ 0.
При таком способе описания мы фактически не различаем отдельных состояний, и на пятом году модельного времени скачком меняем значения коэффициентов. Можно пойти другим путем и выписать две отдельные системы уравнений для двух разных состояний жизни сообщества.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
117
До эпохи нашествия хищников z1n+1 = ( k bh − k dh ) ⋅ z1n ,
(2.10)
и после нее z1n +1 = (kbh − kdh ) ⋅ z1n − kdwh ⋅ z1n ⋅ z2n , z2n +1 = (kbw − kdw ) ⋅ z2n + kbwh ⋅ z1n ⋅ z2n .
(2.11)
Второй способ представляется и более наглядным, и явно указывает на изменение структуры уравнений в каждом состоянии, предупреждая тем самым, что свойства уравнений меняются. Тогда графическое описание смены состояний в биологической системе будет выглядеть так, как показано на рис. 2.38.
Рис. 2.38. Смена поведения, реализованная с помощью гибридного автомата
В моделях с дискретным временем обычно дискретно и множество значений переменных состояний. Особый класс дискретных моделей составляют конечные автоматы, которые также можно рассматривать как динамические системы с событийным временем, если событийному времени поставить в соответствие специальным образом выбранное непрерывное время. Конечные автоматы широко используются при моделировании поведения динамических систем в дискретном времени. Конечным автоматом называется математический объект — картеж
{In_alphabet, Out_alphabet, Graph = {Nodes, Edges}, state_variable} ,
где: In_alphabet — входной алфавит (множество литералов), из которого обра-
зуется последовательность событий, приводящих к смене поведения.
118
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
События, приводящие к смене поведения, ассоциируются с дугами графа Graph = {Nodes, Edges} автомата; Out_alphabet — выходной алфавит, или имена действий, которые осуще-
ствляются при переходе из состояния i ∈ Nodes в состояние j ∈ Nodes . Выходные действия ассоциируются с дугами графа Graph = {Nodes, Edges} автомата;
Graph = {Nodes, Edges} — ориентированный граф, указывающий возможные переходы из каждого состояния i ∈ Nodes в другие состояния с помощью направленных дуг {i, j} ∈ Edges . Узлы графа поименованы, с ними ассоциированы различные значения переменной состояния state_variable;
Nodes — множество возможных состояний объекта или, что тоже самое,
множество значений (подмножество) переменной state_variable; Edges — множество ориентированных дуг {i, j} , указывающие возмож-
ные переходы из данного состояния в другие; state_variable — переменная, определенная на дискретном времени и при-
нимающая значения из заданного конечного множества. Литералы, соответствующие различным значениям этой переменной, обычно образуют имена узлов (состояний). Рассмотрим работу светофора, функционирующего в двух режимах — ночном и дневном, по двенадцать часов соответственно. В ночном режиме желтый сигнал зажигается с заданной частотой, а в дневном — как обычно периодически зажигаются зеленый, желтый и красный сигналы. Ночной режим. На рис. 2.39 представлен конечный автомат, описывающий ночной режим работы светофора. В этом автомате переменная состояния "сигнал светофора" принимает два значения: "Желтый" и "Не_горит". Они и дали имена состояниям. Дополнительными, служебными состояниями являются "начальное" и "конечное". Входной алфавит состоит из двух символов {(очередной) "Тик", "ночь"}. Входная последовательность — это множество литералов "Тик", определяющих время зажигания и гашения желтого сигнала, и литерал "ночь", указывающий наступление дневного режима. Реальная длительность тика не имеет для этой модели значения. Несмотря на то, что скорость продвижения дискретного модельного времени в конечном автомате считается бесконечной, на переходах графа мы видим фразу "after Тик". Служебное слово "after" указывает, что в реальной жизни каждый тик имеет длительность, и ее следовало бы задавать. Это и
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
119
есть отображение событийного времени на непрерывное. Таким образом, это не схема конечного автомата, а модель автомата на языке гибридных автоматов.
Рис. 2.39. Ночной режим работы светофора
На рис. 2.39 видно, что переход в конечное состояние, означающее переход к дневному режиму, может осуществиться из любого состояния "Желтый" или "Не_горит". Казалось бы, что это неверно, т. к. для дискретного времени с нулевой длительностью тика, мы можем заранее, зная длительность ночи в тиках, указать переход, из которого мы попадем в конечное состояние. Поэтому достаточно было бы одного перехода. Однако и в случае реальной длительности тика или различной длительности ночи слежение за наступлением событий разумнее возложить на моделирующую систему. Для решения всей задачи об управлении светофора мы должны использовать другие изобразительные возможности нашего графического языка, как показано на рис. 2.40.
Рис. 2.40. Управление светофором. Высший уровень иерархии
120
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Под состоянием, очерченным двойной линией, будем понимать состояние, которому предписана еще одна, вложенная карта поведения. Она показана на рис. 2.41. Последняя карта рис. 2.41 в свою очередь, содержит описание двух последовательно сменяющих друг друга режимов — ночного и дневного. А далее следуют: уже знакомая нам карта ночного режима (рис. 2.42) и новая — дневного (рис. 2.43). Обратите внимание — на картах нижнего уровня нет конечных состояний — за окончанием работы каждой из таких карт следит карта более высокого уровня.
Рис. 2.41. Вложенная карта поведения второго уровня иерархии
Рис. 2.42. Ночной режим. Новая редакция нижнего уровня иерархии
Еще одним примером модели конечного автомата, реализованного с помощью карт поведения, является модель для сообщества "зайцы-волки" (рис. 2.44). Гибридный автомат соответствует режиму, описанному уравнениями (2.9). Входным являются литералы "Year", "Tout", выходными действиями — вычисление численности зайцев и волков по прошествии одного года.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
121
Рис. 2.43. Нижний уровень иерархии. Дневной режим
Рис. 2.44. Модель конечного автомата для модели сообщества "зайцы-волки"
Óðàâíåíèÿ â ÷àñòíûõ ïðîèçâîäíûõ Уравнения в частных производных, или модели на микроуровне, чрезвычайно разнообразны, им посвящена обширнейшая литература, и существует множество различных программных средств, умеющих строить и решать сеточные уравнения, их аппроксимирующие. Например, уравнение в частных производных ∂u ∂ 2u = a* 2 ∂t ∂x
122
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
с начальными u ( x, 0) = u 0 ( x )
и краевыми условиями u (0, t ) = T0 ; u ( L, t ) = TL ; 0 ≤ x ≤ L ; 0 ≤ t ≤ ∞ ,
известное под названием уравнения теплопроводности, связывает между собой ∂u скорость изменения температуры u ( x, t ) стержня во времени с величиной ∂t ∂ 2u , характеризующей вогнутость температурного профиля, что служит мерой ∂x 2 отличия температуры в данной точке пространства от температуры в соседних точках. На концах стержня x = 0 и x = L поддерживается постоянная температура T0 и TL . В начальный момент стержень нагрет до температуры u 0 ( x ) . Уравнение теплопроводности дает возможность узнать температуру стержня (рис. 2.45) в каждой точке пространства на интересующем нас интервале времени, но для практических нужд можно ограничиться только конечным множеством точек. Это простое соображение позволяет нам построить конечную систему обыкновенных дифференциальных уравнений, приближенно описывающее распределение температуры в стержне. u(x, t)
u(x, 0)
x x=0
T0
x=L
TL
Рис. 2.45 Условное изображение стержня и распределения температуры на нем
Введем на отрезке [0, L] оси x равномерную сетку xi +1 = xi + h ; x0 = 0 ; x n+1 = L , n — заданное число, h — шаг сетки, зависящий от n , и аппроксимируем вторую производную по координате x выражением: ∂ 2u ∂x
2 x = xi
≈a
u ( xi −1 ) − 2 * u ( xi ) + u ( xi +1 ) h2
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
123
в каждой точке xi , i = 1, n . Обозначив через vi приближение к функции u ( xi ) в точке xi , получим для vi систему уравнений, сначала в координатной форме: dvi v − 2 * vi + vi + 1 = a i −1 ; dt h2
vi (0) = u 0 ( xi ,0) ;
T − 2 * v1 + v2 dv1 ; =a 0 dt h2
v0 (0) = u 0 ( x0 ,0) = T0 ;
v − 2 * vn + TL dvn ; = a n −1 dt h2
v n+1 (0) = u 0 ( x n+1 ,0) = TL ,
i = 1, n ,
а затем в векторной форме: ⎡v1 ⎤ ⎢ ⎥ ⎢v2 ⎥ ⎢. ⎥ V=⎢ ⎥ ⎢. ⎥ ⎢. ⎥ ⎢ ⎥ ⎢⎣vn ⎥⎦
⎡T0 ⎤ ⎢ ⎥ ⎢0 ⎥ ⎢0 ⎥ F=⎢ ⎥ ⎢. ⎥ ⎢. ⎥ ⎢ ⎥ ⎢⎣TL ⎥⎦
1 ⎤ ⎡− 2 ⎥ ⎢ 1 −2 1 ⎥ ⎢ ⎥ ⎢ 1 −2 1 ⎥ ⎢ A=⎢ ... ⎥ ⎥ ⎢ ... ⎥ ⎢ 1 −2 1⎥ ⎢ ⎢ 1 − 2⎥⎦ ⎣
⎡v1 (0) ⎤ ⎢ ⎥ ⎢v2 (0) ⎥ ⎢. ⎥ V0 = ⎢ ⎥, ⎢. ⎥ ⎢. ⎥ ⎢ ⎥ ⎢⎣vn (0)⎥⎦
dV a = 2 (A * V + F); V (0) = V0 . dt h
На рис. 2.46 приведено описание модели, а на рис. 2.47 — один из вариантов решения при a = 0.01 , n = 50 , T0 = 10 , TL = 100 , L = 1 . Мы рассмотрели построение микро- и макромодели одного и того же явления на примере изучения нагрева стержня. Вместо единого, протяженного в пространстве стержня, были выделены его срезы, взаимодействующие между собой, и написана система уравнений, описывающая их совместное поведение. Такая трактовка микро- и макромоделей не является единственной. В физике под микромоделями часто понимают, например, модели газа как взаимодействие огромного числа частиц, подчиненным ньютоновским законам. Каждая из частиц подчинена своим микрозаконам, в то же время вся совокупность может быть описана совсем другими законами. Изучение таких моделей может приводить к открытию новых законов для всей совокупности и построению макромодели интересующего нас явления. Это прием, скорее всего, и следует считать имитационным моделированием. Имитируя
124
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
поведение отдельных компонентов системы и правила взаимодействия между ними можно надеяться открыть глобальные законы поведения всей системы, но это уже относится не к изолированным объектам, а к системам.
Рис. 2.46. Описание модели
Рис. 2.47. Процесс нагревания различных точек стрежня
Ìàðêîâñêèå ìîäåëè Интересным примером динамических систем являются цепи и непрерывные цепи Маркова.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
125
Äèñêðåòíûå ìîäåëè. Öåïè Ìàðêîâà Модели, называемые цепями Маркова, рассмотрим на примере прогнозирования работы гаража, предоставляющего машину напрокат в любое время суток. В течение суток автомобиль может быть исправным или не исправным. Будем через t i означать количество суток, прошедших с начала наблюдения, т. е. мы выбираем дискретное время с единицей измерения "сутки". Введем дискретную функцию, характеризующую исправность автомобиля на дискретном времени: автомобиль( t i ) = {исправен, неисправен}. История гаража начинается с прихода в гараж нового директора в момент t 0 . Он может застать автомобиль исправным или неисправным с одинаковой вероятностью 1 . 2 Дальнейшее развитие событий можно описать следующими законами: исправный автомобиль может сломаться, но это обнаружат только на следующие сутки, после чего приступят к ремонту; исправный автомобиль будет продолжать работу на следующие сутки; неисправный автомобиль после суток ремонта продолжит работу; неисправный автомобиль не успеют отремонтировать за сутки. p01 = p02 =
Таким образом:
P11 — вероятность исправного автомобиля не сломаться за сутки;
P12 — вероятность исправного автомобиля сломаться за сутки;
P22 — вероятность неисправного автомобиля не быть починенным за сутки;
P21 — вероятность неисправного автомобиля быть починенным за сутки. P11 + P12 = 1, P21 + P22 = 1 .
Работу автомобиля можно представить графом (рис. 2.48), который похож на карту поведения, но у этой карты есть существенное отличие. Переход из текущего в новое состояние осуществляется с учетом вероятностей. А именно, на каждом такте дискретного времени генерируется значение случайной величины, распределенной по заданному закону. На основании этого значения выбирается тот или иной переход, после чего система переходит в новое текущее состояние. Если ввести события: "автомобиль не сломался за сутки", "автомобиль сломался" и так далее и построить генератор событий, выби-
126
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
рающий одно из независимых событий на каждом такте, то можно этот граф представить соответствующей картой состояний, т. к. мы ее трактовали раньше (рис. 2.49).
Начало p01 P11
p02 P12
Исправен
P22 Неисправен
P21
Рис. 2.48. Графическое представление работы гаража
Рис. 2.49. Имитационная модель гаража
Все вероятности переходов в этой модели зависят только от конкретного состояния, а не от того, как система пришла в данное состояние. Нас интересует вопрос, с какой вероятностью на n -е сутки автомобиль будет исправным или нет.
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
127
В данном случае мы имеем пример системы с конечным числом состояний и дискретным временем. Система относится к числу вероятностных. Вероятность смены состояния постоянна и зависит от того, в каком текущем состоянии находится система. Системы с дискретным числом состояний и дискретным временем, смена текущего состояния которых носит вероятностный характер, и эта вероятность определяется только текущим состоянием, называются марковскими конечными цепями. Введем следующую матрицу — матрицу переходов ⎡p P = ⎢ 11 ⎣ p 21
p12 ⎤ , p 22 ⎥⎦
в которой строке соответствуют состояния системы, а элементы строки pij — это вероятности перехода из данного состояния (номер строки) в другие состояния (номер столбца). Введем вектор π размерности, равной количеству состояний, компоненты которого — это вероятности находиться в данном состоянии. Традиционно его записывают как вектор-строку. Нулевому отсчету времени соответствуют значения π(0) = [π1 (0) π 2 (0)]
и π1 (0) = p 01 (0), π 2 (0) = p 0 2 (0).
Достаточно очевидно, что поведение цепи во времени описывается законом π k +1 = π k P = π 0 P k +1 , k = 0, 1, 2, ...
Если вероятности pij в матрице не зависят от k , то цепь называется однородной. С помощью неоднородных цепей можно учесть, например, "старение" автомобиля: p11 (k ) ⎯k⎯ ⎯→ 0, →∞ p12 (k ) ⎯k⎯ ⎯→1. →∞
Таким образом, поведение нашей модели может быть описано разностным уравнением, решение которого и даст нам нужный прогноз. А разностные уравнения мы уже умеем моделировать с помощью гибридных автоматов. И вновь можно поговорить о понятии имитационного моделирования. Вернемся к примеру с гаражом (см. рис. 2.49). На этом рисунке представлена
128
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
имитационная модель гаража, и теперь уже изображенный граф является картой поведения. Мы моделируем с помощью подбрасывания монетки (случайное число p ) возможность в момент прихода директора найти машину исправной или неисправной. Далее модель находится в каждом возможном состоянии ровно сутки и переходит в новое состояние опять же с учетом реализовавшегося значения случайного числа. Можно проверить, что при стремлении времени к бесконечности оценки вероятности находиться в том или ином состоянии будут стремиться к вектору, найденному как решение марковского разностного уравнения.
Íåïðåðûâíûå ìîäåëè. Íåïðåðûâíûå öåïè Ìàðêîâà Второй тип марковских процессов связан с возможностью покидать состояния не в заранее фиксированные дискретные моменты времени, а в произвольные, подчиняющиеся вероятностным законам. Наш пример гаража с одной машиной, способной "сломаться" и "отремонтироваться" в любое случайное время суток теперь будет выглядеть так, как представлено на рис. 2.50.
Начало
T1 Исправен
Неисправен T2
Рис. 2.50. Графическое изображение марковской непрерывной цепи
Здесь T1 , T2 — случайные времена поломки и возвращения из ремонта, подчиненные случайному закону распределения. Задача вновь ставится, так же как и в дискретном случае, — найти зависимость от времени вероятностей P1 (t ) , P2 (t ) :
P1 (t ) — вероятность быть исправной в момент времени t ;
P2 (t ) — вероятность быть неисправной в момент времени t .
Ãëàâà 2. Èçîëèðîâàííûå îäíîêîìïîíåíòíûå ñèñòåìû
129
"Поломки" и "починки" — это случайные события, следующие одно за другим и образующие поток событий. Потоком событий называется последовательность однородных (одной природы) событий, появляющихся в случайные моменты времени. Потоки могут быть иметь различные свойства. Ординарность.
Мы говорим об ординарности событий в потоке, если вероятность попадания на промежуток Δt двух и более событий пренебрежимо мала по сравнению с вероятностью появления ровно одного события. Если: •
p0 (t , Δt ) — вероятность отсутствия события на малом промежутке;
•
p1 (t , Δt ) — вероятность появления одного события;
•
p>1 (t , Δt ) — вероятность появления более чем одного события,
то при ординарности событий p0 (t , Δt ) + p1 (t , Δt ) + p >1 (t , Δt ) = 1
и p >1 (t , Δt ) << p1 (t , Δt ) .
Интенсивностью потока называется среднее число событий, приходящееся на единицу времени: λ(t ) = lim Δt →0
M [ X (t , Δt )] . Δt
Здесь X (t , Δt ) — случайная величина, указывающая, какое количество интересующих нас событий произошло на промежутке Δt . Отсутствие последействия.
Рассмотрим два участка τ1 и τ 2 на временной оси, такие, что первый предшествует второму. Мы говорим об отсутствии последействия, если число событий на участке τ 2 не зависит от числа событий на участке τ1 . Можно показать, что если поток без последействия имеет постоянную интенсивность λ , то число событий X (t , τ) , попадающих на участок времени длины τ , имеет распределение Пуассона с параметром a = λ ⋅ τ k −a P{X (t , τ) = k } = a ⋅ e
k!
,
k = 0, 1, 2, ...
130
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Ординарный поток без последействия называется пуассоновским потоком. Стационарность.
Если вероятностные характеристики потока не зависят от времени, они называются стационарными, а поток — стационарным. Оказывается, что для гаража, в котором переход из состояния в состояние управляется пуассоновским потоком событий с интенсивностями λ и µ , вероятности находиться в каждом из состояний даются уравнениями: dp1 = −λ ⋅ p1 + μ ⋅ p 2 , dt dp2 = λ ⋅ p1 − μ ⋅ p 2 , dt p1 (0) = p10 ; p 2 (0) = p 20 .
И вновь оказалось, что сложно организованная имитационная модель свелась к системе обыкновенных дифференциальных уравнений.
Ãëàâà 3
Êîìïîíåíòíûå ìîäåëè В предыдущих главах мы рассматривали объекты внешнего мира как изолированные объекты и представляли их однокомпонентными моделями, даже если они могли бы рассматриваться как системы. Рассмотрение сложных объектов реального мира как систем имеет много преимуществ по сравнению с подходом, когда строится единая модель, в которой с трудом угадывается структура исследуемого объекта. Создание многокомпонентной модели начинается с анализа объекта реального мира для выделения компонентов и связей между ними. При проектировании "сверху вниз" сначала выделяют собственно объект из окружения, а затем детализируют описание объекта настолько, насколько это необходимо, превращая ее в многокомпонентную систему (рис. 3.1). Модель окружения Объект
Однокомпонентная модель объекта
Окружение Модель окружения
компонент_1
компонент_2
компонент_3 Многокомпонентная модель объекта
Рис. 3.1. Анализ реального объекта и синтез модели проектируемого устройства
132
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
При проектировании (рис. 3.2) сложных объектов с использованием библиотек готовых компонентов можно двигаться как сверху вниз, прекращая процесс детализации, когда нужный компонент найден в библиотеке, так и снизу вверх, строя модель из готовых компонентов. Отсутствие готового компонента приводит к необходимости проектировать новый компонент, который в дальнейшем пополняет библиотеку. Модель окружения
компонент_1
компонент_2
Компонентная модель 1
компонент_3
Итоговая совокупная система уравнений 1
Многокомпонентная модель объекта
Среда моделирования 1
Библиотека компонентов 1
а
Компонентная модель 2
Среда моделирования 2
Итоговая совокупная система уравнений 2
Библиотека компонентов 2
б Рис. 3.2. Проектирование: а — сверху вниз (наполнение функциональной схемы библиотечными компонентами); б — снизу вверх (создание функциональной схемы из имеющихся блоков)
Системы (в дальнейшем мы будем говорить о моделях систем) могут состоять как из невзаимосвязанных компонентов (рис. 3.3, а), так и из взаимосвязанных
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
133
компонентов (рис. 3.3, б). Связи между компонентами могут быть механическими, физическими, информационными. Компоненты систем могут быть "погружены" в устройство "контейнер" (рис. 3.3, в, г), быть простыми ("Компонент_1") и составными ("Компонент_2"). Описание структуры системы можно создавать, используя многоуровневые структурные схемы (пример многоуровневого описания: рис. 3.3, г — верхний уровень и рис. 3.3, д — нижний уровень) или дерево структуры (рис. 3.3, е). Компонент_1
Компонент_2
Компонент_1
а
Компонент_1
Компонент_2
б
Компонент_2
Компонент_1
Компонент_2
Контейнер
Контейнер
в
г Контейнер Компонент_1 Компонент_2 Компонент_21
Компонент_22
Компонент_21
Компонент_22
Компонент_2
д
е
Рис. 3.3. Примеры многокомпонентных систем и дерево описания их структуры
Простая модель в рамках обсуждаемого в этой книге подхода, основанного на гибридных автоматах, задается набором переменных и системой дифференциально-алгебраических уравнений или гибридным автоматом, которые описывают поведение всей моделируемой системы в целом. Составная (компонентная) модель задается как суперпозиция совместного поведения параллельно или последовательно функционирующих взаимодействующих
134
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
компонентов. Описание рассматриваемых нами компонентов представлено на рис. 3.4. Компонент Переменные состояния
Переменные состояния
Внешние
Структура Входы, выходы
Поведение
а
Внутренние
Контакты, потоки
б Структура
Отсутствует Одноуровневая функциональная схема
Иерархическая функциональная схема
в Поведение
do:Уравнения do:Уравнения
do:карта поведения
г Рис. 3.3. Описание компонента, основанное на представлении поведения с помощью гибридных автоматов
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
135
Основными причинами создания компонентных моделей являются: стремление сохранить естественную структуру моделируемой системы; трудность создания вручную описания всей системы в целом; использование готовых типовых компонентов; переменный состав моделируемой системы.
В сложной реальной системе структура является важной составляющей описания и в модели, конечно, необходимо ее сохранять. Например, принцип действия отрицательной и положительной обратной связи в системе автоматического регулирования становится более понятным при изучении структурной схемы системы, а не совокупной системы уравнений (рис. 3.5).
Программное значение
Объект управления
ПД-регулятор
u (t )
dx =u dt x(t )
x p = A ⋅ sin(ω ⋅ t ) e = xp − x u = Ke ⋅ e + Kd ⋅
de dt
Рис. 3.5. Структурная схема системы автоматического регулирования
Сложные системы, как правило, имеют иерархическую структуру. Поскольку оперативные возможности человека ограничены (по закону Миллера человек в состоянии оперативно обрабатывать 7 ± 2 смысловых единиц информации), то исследователю или инженеру удобно сосредотачиваться сначала на поведении отдельных компонентов, а затем на их взаимодействии. По мере необходимости модели отдельных компонентов следует детализировать. На рис. 3.6 показана возможная реализация блока "ПД-регулятор" с использованием набора готовых стандартных блоков. Следует отметить, что в последнем случае необходимость введения дополнительной локальной структуры является спорной: может оказаться, что удобнее непосредственно задавать поведение регулятора системой уравнений (см. рис. 3.5).
136
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Ke
xp
e
u
Kd
x Рис. 3.6. Структурная схема регулятора
Другим примером естественной структуры моделируемой системы может служить десятичный счетчик импульсов, рассмотренный в главе 1. Набор готовых типовых компонентов, отражающих семантику определенной прикладной области, может рассматриваться как специальный проблемноориентированный язык моделирования для этой области. Например, набор типовых электротехнических элементов (резистор, конденсатор, индуктивность и т. д.) лежит в основе широко распространенного визуального языка составления электрических схем (рис. 3.7). R1
C1
E1
G1
Рис. 3.7. Структурная модель электрической схемы
Типы компонентов (блоков) на рис. 3.6 и 3.7 различаются. В современных программных средах визуального моделирования различают компоненты с ориентированными и неориентированными связями (рис. 3.8), их определение мы дадим в следующем разделе.
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
137 Компонент
С ориентированными связями
С неориентированными связями
Компонент x
y S ⎧ ds ⎪ = A ⋅s + B ⋅ x ⎨ dt ⎩⎪ y = C ⋅ s + D ⋅ x
Ix
Iy
Компонент
Ux
R
Uy
U = I ⋅R Ix = Iy = I U x −U y = U
Рис. 3.8. Компоненты с ориентированными и неориентированными связями
Не столь важно, из каких компонентов была построена модель. Одну и ту же компьютерную модель можно построить различными способами, используя разные средства моделирования, разнообразные типы блоков, по-разному строя функциональные диаграммы. Важно, чтобы все модели правильно описывали поведение объекта. И если в основе всех компьютерных моделей лежит одна и та же математическая модель, то мы вправе рассчитывать на одинаковые результаты моделирования. Строя модель из компонентов, мы упрощаем процесс моделирования, но все равно в итоге придется решать достаточно большую совокупную систему уравнений, описывающую поведение модели в целом. Совокупная система уравнений в современных средах моделирования строится автоматически, и это одно из важнейших преимуществ современных компьютерных средств моделирования. Эта совокупная система должна быть одинаковой для всех компьютерных моделей, в основе лежит одна и та же математическая модель (см. рис. 3.2). Точнее, для разных компьютерных моделей их совокупные системы должны сводиться друг к другу. Проблема автоматического построения совокупной системы уравнений по заданному графическому описанию модели является ключевой задачей для разработчиков сред моделирования. В моделях, основанных на формализме обобщенного гибридного автомата, возможна как композиция параллельно работающих компонентов, так и композиция последовательно работающих состояний обобщенного гибридного автомата.
138
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Способы построения совокупной системы для параллельно работающих блоков и последовательной смены состояний в карте поведения различны. Рассмотрим, прежде всего, композицию параллельно работающих компонентов.
Êîìïîçèöèÿ ïàðàëëåëüíûõ êîìïîíåíòîâ Композиция параллельных компонентов строится на основе функциональной схемы. В общем случае функциональная схема на каком-либо уровне иерархии включает локальные структурные компоненты и связи, соединяющие внешние переменные этих компонентов, а также внешние переменные компонента-контейнера (рис. 3.9). Компонент-контейнер
Ориентированная связь
U1
U2 Локальный компонент
Локальный компонент
U3
Неориентированная связь
Локальный компонент
Рис. 3.9. Общий случай структурной схемы
Локальные компоненты функционируют параллельно в модельном времени. Связи соответствуют определенным зависимостям между внешними переменными, которые добавляются к определению поведения компонентаконтейнера. Обобщение опыта моделирования физических, технических и природных систем позволяет говорить о трех типах связей. Если внешние переменные соединены ориентированными (направленными) связями, то этим связям соответствуют формулы, в которых переменным в левой части (входам) присваиваются известные значения переменных в правой части (выходов).
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
139 A
B
C
Рис. 3.10. Ориентированные связи — входы и выходы
Например, ориентированным связям на рис. 3.10 соответствуют формулы ⎧ B = A, ⎨ ⎩C = A,
которые можно трактовать как уравнения, разрешенные относительно искомых переменных, в данном случае — B и C . Направленными являются информационные и физические связи в технических системах, когда приняты специальные меры по исключению обратного влияния. Структурный компонент, все внешние переменные которого являются ориентированными, называется ориентированным (направленным) компонентом или блоком. Примером системы, построенной из блоков, является система автоматического регулирования на рис. 3.5. Неориентированным (ненаправленным) связям, соединяющим переменные, соответствуют алгебраические уравнения, в которых нельзя указать искомые переменные до полного анализа всей совокупной системы уравнений, возникающей при соединении блоков модели. Неориентированные связи могут соединять переменные двух видов — "контакты" и "потоки". Например, связям вида "контакт" на рис. 3.11 соответствуют уравнения ⎧ A − B = 0, ⎨ ⎩ A − C = 0,
и искомыми могут оказаться переменные B и C , A и C или A и B в зависимости от остальных уравнений. Наконец, неориентированным связям, соединяющим потоки, соответствуют алгебраические равнения, похожие на законы Кирхгофа. Например, связям на рис. 3.12 соответствует уравнение A + B + C = 0 , в котором искомая переменная также неизвестна до построения системы уравнений для всех блоков. Все физические связи в основном являются неориентированными. Построение моделей из блоков с неориентированными связями часто называют "физическим" моделированием. Структурный компонент, все внешние переменные которого являются неориентированными, называется неориентиро-
140
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
ванным (ненаправленным) компонентом или блоком. Возможны также смешанные компоненты (см. рис. 3.9). На рис. 3.13 приведена компонентная модель электрической схемы, показанной на рис. 3.7, с ненаправленными компонентами, в которой напряжениям соответствуют контакты, а токам — потоки. A
A
B
B
C
C
Рис. 3.11. Неориентированные связи — контакты
Рис. 3.12. Неориентированные связи — потоки R1
U1
U2
I2
I1 U1
I1
I1
C1
E1 U2
U1
I2
I2
I1
U2
U1 G1
Рис. 3.13. Модель электрической схемы, составления из блоков с контактами и потоками
Конечно, задание отдельных связей по току и напряжению неудобно для пользователя и неестественно для семантики модели (физическое соединение между сопротивлениями или конденсаторами в электрической схеме одно). Однако эту трудность можно преодолеть, добавляя новые конструкции в языки моделирования, например конструкцию "разъем". С помощью разъемов компонентную модель, показанную на рис. 3.13, можно нарисовать в привычном виде (см. рис. 3.7).
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
141
Как уже говорилось в главе 1, для проведения вычислительного эксперимента с компонентной моделью необходимо либо создать распределенную компьютерную модель, либо построить эквивалентную математическую модель изолированной системы и проводить вычислительный эксперимент уже с ней. В подавляющем большинстве пакетов моделирования используется второй способ. Способ построения эквивалентной изолированной системы и соответствующей совокупной системы уравнений зависит от типа параллельно функционирующих компонентов. Рассмотрим по отдельности параллельную работу непрерывных и гибридных компонентов для ориентированных и неориентированных блоков.
Ïàðàëëåëüíîå îáúåäèíåíèå íåïðåðûâíûõ êîìïîíåíòîâ Напомним, что под непрерывным компонентом мы понимали компонент, поведение которого соответствовало поведению классической динамической системы, функционирующей в непрерывном времени (левый и центральный фрагменты рис. 3.4, г). При описании изолированного объекта такому компоненту соответствовала система, разрешенная относительно производных, первых или вторых: ds = f (s, t ) , s(0) = s 0 , s ∈ ℜ n , f : (ℜ n , ℜ) → ℜ n , dt d 2s dt 2
= f (s, t )
(3.1) (3.2)
либо система в свободной форме: ⎛ ds ⎞ F⎜ , s, t ⎟ = 0 ⎝ dt ⎠
(3.3)
и наиболее часто встречающиеся ее разновидности A(s)
{
}
ds = f (s, t ) , A = ai , j , i, j = 1, n , dt ⎧ ds1 = f (t , s1 , s 2 ), ⎪ ⎨ dt ⎪0 = g (t , s1 , s 2 ). ⎩
(3.4)
(3.5)
142
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
В случае (3.4), матрица системы A = const , A = A (s) может быть как вырождена, так и невырождена. Вырожденной матрице соответствует система алгебро-дифференциальных уравнений, которая может быть представлена в форме (3.5). В форме (3.5) переменные состояния s = (s1 , s 2 ) представлены в виде подвекторов дифференциальных s1 и алгебраических s 2 переменных. Процесс решения систем алгебро-дифференциальных уравнений может существенно отличаться от построения решения системы дифференциальных уравнений, и об этом мы будем говорить далее, а пока предположим, что трудности численного решения преодолимы во всех случаях, включая системы, записанные в свободной форме. Все перечисленные формы представления уравнений могут непосредственно, без каких-либо преобразований, восприниматься программными реализациями численных методов решения систем обыкновенных дифференциальных уравнений. Форму (3.1) "понимают" все программные реализации, формы (3.4) и (3.5) уже не все, и весьма мало программ способны работать с формой (3.3) непосредственно. По мере роста свободы представления уравнений увеличиваются трудности построения численного решения. Таким образом, все приведенные выше формы мы можем назвать "вычислительными" (см. главу 1). Заметим, что задача восстановления решаемой системы по функциональной схеме и компонентным уравнениям возникает и в средах моделирования, где формулы и уравнения представляются в графической форме с помощью "математических блоков" или передаточных функций (рис. 3.14). Уравнения
t
y = k ⋅ ∫ sin(ωξ) ⋅ dξ 0
sin(ω ⋅ t )
k
1 s
Рис. 3.14. Формулы, представленные в виде "математических" блоков
Процесс построения совокупной системы уравнений для блоков, работающих в непрерывном времени, зависит от типов связей между блоками. Рассмотрим случай, когда связываемые переменные имеют вид входов или выходов.
Îðèåíòèðîâàííûå áëîêè В какой бы форме ни описывалось поведение непрерывного компонента (предположим, что входной язык допускает, например, форму (3.5)), ком-
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
143
позиция параллельно работающих изолированных непрерывных блоков с уравнениями ⎧ ds11 ⎧ ds12 1 1 = ( , , ), = f 2 (t , s12 , s 22 ), f t s s ⎪ ⎪ 1 1 2 и ⎨ dt ⎨ dt ⎪0 = g (t , s1 , s1 ) ⎪0 = g (t , s 2 , s 2 ) 2 1 2 1 1 2 ⎩ ⎩
представляется системой уравнений ⎧ ds11 = f1 (t , s11 , s12 ), ⎪ ⎪ dt 1 1 ⎪ ⎪0 = g1 (t , s1 , s 2 ), ⎨ 2 ⎪ ds1 2 2 ⎪ dt = f 2 (t , s1 , s 2 ), ⎪ 2 2 ⎩⎪0 = g 2 (t , s1 , s 2 ).
Если каждая система имела единственное решение на промежутке наблюдения, то и совокупная система будет иметь единственное решение. Будем говорить, что в этом случае система задана корректно. Некорректно заданные системы могут появиться только в результате ошибок пользователя. Например, система может оказаться либо недоопределенной (число уравнений меньше числа неизвестных), либо переопределенной (число уравнений больше числа неизвестных). Такого рода ошибки достаточно просто находятся уже на стадии написания уравнений. В пакетах, где уравнения задаются в виде стандартных математических блоков, они просто невозможны. Дополнительные трудности могут возникать, если пользователь имеет возможность сам писать уравнения и использует при их написании формулы (подстановки) для сокращения записи и увеличения производительности при вычислениях. Свободная форма записи уравнений подразумевает, что пользователь не обязан следить за упорядоченностью формул, и их упорядочивание должно производиться автоматически. Упорядочить формулы не представляет большого труда, но невозможно без пользователя ответить на вопрос, действительно ли все формулы должны быть подстановками, либо им использована скрытая форма алгебраических уравнений. Примером может служить запись s1 = f ( s 2 ) ; s 2 = g ( s1 , s 2 ) ; s3 = sin(t ) , которая может трактоваться как уравнение или ошибка при записи подстановок s1 = f ( s 2 ) ;
144
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
s3 = g ( s1 , s 2 ) ; s 2 = sin(t ) . В этих случаях помочь компилятору можно, записывая уравнения и подстановки в различных формах:
⎧ s1 − f ( s 2 ) = 0 ⎨ ⎩ s 2 − g ( s1 , s 2 ) = 0 s3 = sin(t ).
Упорядочивание формул и проверку соответствия числа нелинейных алгебраических уравнений числу неизвестных можно проводить с помощью простого алгоритма. Рассмотрим n
вектор
s
размерности
n,
а
также
вектор-функцию
m
g(s) : ℜ → ℜ , 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, n2 вычислимой, если для каждого k в правую часть формулы входят только данные s1 или уже вычисленные на предыдущих шагах переменные вектора s 2 . Наша задача — определить, является ли конкретная последовательность формул вычислимой, а если нет, то можно ли переупорядочить ее так, чтобы она таковой стала.
Для ответа на эти вопросы введем матрицу структуры Q , столбцам которой соответствуют вычисляемые переменные, взятые в том же порядке, как они появляются в левых частях последовательности формул, а строкам — правые части формул последовательности. Пометим вхождение i -го компонента вектора s 2 в правую часть k -й формулы единицей в матрице структуры — q k ,i = 1 , и нулем ее отсутствие: qk ,i = 0 . Один из возможных способов определения вычислимости последовательности формул связан с возможностью приведения матрицы Q к нижнему треугольному виду с помощью одновременной перестановки соответствующих строк и столбцов. Поясним на примере, как работает алгоритм. Зададим введенную пользователем последовательность формул и ее матрицу структуры Q (табл. 3.1).
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
145
Таблица 3.1 Ôîðìóëû
Ìàòðèöà ñòðóêòóðû
s32 = g1 ( s12 , s 22 , s 22 ) = s11 + s12 s 22 = g 2 ( s12 , s 22 , s 22 ) = s12 − s32 s12
=
g 3 ( s12 , s 22 , s 22 )
=
s13
s32
s22
s12
g1
0
0
1
g2
1
0
0
g3
0
0
0
Приведем матрицу структуры Q к нижнему треугольному виду с помощью одновременной перестановки строк и столбцов. В данном случае достаточно сначала поменять местами первую и третью строки и соответствующие столбцы исходной матрицы, а затем в получившейся матрице поменять вторую и третью строки и соответствующие столбцы (табл. 3.2). Таблица 3.2 Ïðåîáðàçîâàíèå
Èçìåíåííàÿ ìàòðèöà ñòðóêòóðû
Q → Qt
s12
s32
s22
g3
0
0
0
g1
1
0
0
g2
0
1
0
Таким образом, переменные следует вычислять в следующем порядке: s12 , s32 , s22 .
Несколько видоизменив алгоритм, можно ответить на вопрос, соответствует ли число нелинейных алгебраических уравнений числу неизвестных. Это не всегда очевидно с первого взгляда. Рассмотрим вектор s размерности n и вещественную вектор-функцию v(s) размерности m . Значение m не обязательно совпадает со значением n . Будем называть систему нелинейных алгебраических уравнений v(s) = 0 относительно компонентов вектора s : формально определенной, если число уравнений равно числу неизвест-
ных — n = m ;
146
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
переопределенной, если число уравнений больше числа уравнений —
n>m;
недоопределенной, если число уравнений меньше числа неизвестных —
n<m.
Переопределенные и недоопределенные системы назовем структурно вырожденными. Рассмотрим задачу об определении структурной невырожденности формально определенной системы уравнений v(σ) = 0 , где v — вектор-функция размерности n , и m = n . Сопоставим формально определенной системе v(s) = 0 квадратную матрицу структуры Q , строкам которой соответствуют уравнения системы, а столбцам — компоненты вектора s . Пометим вхождение i -го компонента вектора s в k -е уравнение единицей в матрице структуры — qk ,i = 1 , и нулем ее отсутствие — qk ,i = 0 . Очевидно, что структурная невырожденность системы связана с рангом матрицы Q , и если rank (Q) = n , то система структурно невырожденна. Конструктивный способ определить структурную невырожденность системы заключается в возможности последовательно выражать компоненты вектора неизвестных si = g i ( s1 , ..., si −1 , si +1 , ..., s n ) , i = 1, n , начиная с первого уравнения системы, и подставлять в оставшиеся j = i + 1, n (прямой ход процесса подстановки) до тех пор, пока не будет построено уравнение, зависящее только от одной переменной. Для определения структурной невырожденности необязательно уметь строить явно подстановку si = gi ( s1 , ..., si −1 ,
si +1 , ..., sn ) , нужна только информация о вхождении неизвестных в соответствующее уравнение. Прямой ход процесса подстановки можно описать последовательностью матриц Q i , i = 0, n − 1 ; Q 0 = Q . Каждая из матриц, начиная с i = 1 , совпадает по форме с матрицей, соответствующей исключению i -й неизвестной в методе Гаусса при решении систем линейных алгебраических уравнений. Единственным отличием процесса исключения в методе Гаусса и процесса проверки невырожденности является правило формирования новых строк в подматрице (i − 1) × (i − 1) на каждом шаге. При "подстановке" i -й неизвестной в оставшиеся j = i + 1, n уравнения при проверке невырожденности, в новом уравнении число единиц может только увеличится — к уже существующим единицам j -й строки добавляются не совпадающие по положению единицы i -й строки. Этот процесс в точности эквивалентен процессу появления
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
147
новых ненулевых элементов в методе Гаусса при использовании любого ненулевого элемента в столбце в качестве ведущего, что позволяет применять для определения невырожденности уже существующее программное обеспечение. Таким образом, если исходную матрицу системы описанным выше алгоритмом формальной подстановки можно привести к верхней треугольной матрице, то система уравнений структурно невырождена. В качестве примера рассмотрим систему нелинейных уравнений и ее матрицу структуры, где x , y , z , w — неизвестные, ci — известные константы (табл. 3.3). Таблица 3.3 Ôîðìóëû
Ìàòðèöà ñòðóêòóðû
x + y − c1 = 0 = f1
x
y
z
w
x − y − c2 = 0 = f 2
f1
1
1
0
0
x ∗ y − c3 = 0 = f 3
f2
1
1
0
0
f3
1
1
0
0
f4
0
0
1
1
z ∗ w − c4 = 0 = f 4
Результат работы алгоритма псевдоисключения показывает, что данная система структурно вырождена, т. к. содержит нулевую строку (табл. 3.4). Таблица 3.4 Ïðåîáðàçîâàíèå
Èçìåíåííàÿ ìàòðèöà ñòðóêòóðû
x
y
z
w
f1
1
1
0
0
f2
0
1
0
0
f3
0
0
0
0
f4
0
0
1
1
Q → Qt
Заметим, что структурно-невырожденная система может быть численно вырожденной. Рассмотрим следующую исходную систему и ее матрицу структуры (табл. 3.5).
148
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Таблица 3.5 Ôîðìóëû
f1 : x + y − c1 = 0
Ìàòðèöà ñòðóêòóðû
x
y
z
w
f 2 : x + y − c2 = 0
f1
1
1
0
0
f 3 : z ∗ w − c3 = 0
f2
1
1
0
0
f3
0
0
1
1
f4
0
0
1
1
f 4 : z ∗ w − c4 = 0
Результат псевдоисключения, показывает, что система структурно-невырождена (табл. 3.6), однако конкретные значения коэффициентов при неизвестных делают ее числено вырожденной. Таблица 3.6 Ïðåîáðàçîâàíèå
Èçìåíåííàÿ ìàòðèöà ñòðóêòóðû
x
y
z
w
f1
1
1
0
0
f2
0
1
0
0
f3
0
0
1
1
f4
0
0
0
1
Q → Qt
Подчеркнем, что мы рассмотрели на примерах только проблему проверки корректности записи уравнений в компонентах. Корректно записанные уравнения еще не гарантируют отсутствия трудностей при численном решении. Например, система нелинейных алгебраических уравнений может не иметь единственного решения. Индекс системы алгебро-дифференциальных уравнений (см. главу 4) может оказаться достаточно высоким, что не позволит ее решать существующими численными методами. Система просто может оказаться жесткой, что потребует слишком больших вычислительных затрат. Переход от композиции непрерывных изолированных компонентов к композиции непрерывных компонентов, взаимодействующих через входы и выходы, оставляет справедливым утверждение о том, что если компонентные уравнения записаны корректно и имеют единственное решение, то и соответствующая их функциональной схеме совокупная система уравнений имеет единственное решение.
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
149
Уравнения компонента в форме (3.5) с входами и выходами отличаются от уравнений изолированного компонента только тем, что множество w переменных состояния изолированного компонента теперь представлено в виде трех непересекающихся множеств w = In ∪ Out ∪ S и In ∩ Out ∩ S = ∅ . Будем называть элементы x множества In входами, элементы y множества Out — выходами, а элементы s множества S — внутренними переменными состояния. Запишем уравнения компонентов в форме (3.5) с входами и выходами: ⎧ 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. ⎩
Параллельно работающие ориентированные блоки могут взаимодействовать между собой, образуя функциональные схемы. Образование блок-схем, или связывание ориентированных блоков по входам и выходам, определяется следующими правилами: любой выход может быть связан с любым числом входов; любой вход может быть связан только с одним выходом.
В результате композиция двух связанных ориентированных блоков с уравнениями ⎧ ds11 ⎧ ds12 = f1 (t , s11 , s12 , x1 ) = f 2 (t , s12 , s 22 , x 2 ) ⎪ ⎪ и dt dt ⎨ ⎨ ⎪0 = g (t , s1 , s1 , x , y ) ⎪0 = g (t , s 2 , s 2 , x , y ) 1 1 2 1 1 2 1 2 2 2 ⎩ ⎩
и связями x11 = y12 , x12 = y11 , где x11 и x12 — подвекторы, составленные из связных входов x1 первого и x 2 второго автоматов, y 11 и y 12 — векторы, составленные из связанных выходов, имеет совокупную систему ⎧ ds11 = f1 (t , s11 , s12 , x11 , x12 ), ⎪ dt ⎪ ⎪0 = g (t , s1 , s1 , x1 , x1 , y1 , y1 ), 1 1 2 1 2 1 2 ⎪ 2 ⎪ ⎪ ds1 = f (t , s 2 , s 2 , x 2 , x 2 ), 2 1 2 1 2 ⎨ ⎪ dt ⎪0 = g 2 (t , s12 , s 22 , x12 , x 22 , y12 , y 22 ), ⎪ 1 ⎪x1 = y 12 , ⎪ 2 1 ⎪ ⎩x1 = y 1 .
150
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Рассмотрим в качестве примера функциональную схему двух открытых блоков "вход — выход — состояние" B1 и B2 и назовем ее "кольцом", если выход y1 первого блока B1 подан на вход x2 второго блока B2, а его выход y 2 , в свою очередь, подается на вход x1 первого (рис. 3.15).
Рис. 3.15. Блок-схема "кольцо"
Предположим, что речь идет о скалярных переменных и уравнениях блоков: ⎧ ds1 ⎧ ds = f1 (t , s1 , x1 ), ⎪ 2 = f 2 (t , s 2 , x2 ), ⎪ и ⎨ dt ⎨ dt ⎪ y = g (t , s , x ), ⎪ y = g (t , s , x ), 2 2 ⎩ 1 1 1 1 ⎩ 2 2
(3.6)
связи имеют вид y1 = x 2 ; y 2 = x1 , и, следовательно, совокупная система не имеет свободных переменных типа вход или выход ⎧ ds1 ⎪ dt = f1 (t , s1 , x1 ), ⎪ ⎪ ds 2 = f (t , s , x ), 2 2 2 ⎨ dt ⎪ ⎪0 = x2 − g1 (t , s1 , x1 ), ⎪0 = x − g (t , s , x ). 1 2 2 2 ⎩
(3.7)
Обратите внимание, что если уравнения (3.6) были записаны в традиционной форме, в которой выходы были представлены в виде явных формул, то в результате объединения возникла форма (3.5). Таким образом, форма (3.5) инвариантна относительно соединения компонентов с входами и выходами в блок-схемы и может использоваться как синтаксическая единица языков моделирования.
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
151
Рис. 3.16. Функциональная блок-схема с алгебраическим циклом
Примером неинвариантных форм задания являются "математические" блоки, используемые в Simulink. На рис. 3.16 показана компонентная модель из ориентированных блоков, поведение которых задается формулами: генератор периодического сигнала: G.Y = A ⋅ sin(ω ⋅ t ) ; блок вычитания: S .Y = S . X 1 − S . X 2 ;
A1.Y = A1.K ⋅ A1. X , A2.Y = A2.K ⋅ A2. X .
Однако при добавлении формул связей ⎧ S . X 1 = G.Y ⎪ A1. X = S .Y ⎪ ⎨ ⎪ A2. X = A1.Y ⎪ ⎩ S . X 2 = A2.Y
возникает цикл A1.Y → A2. X → A2.Y → S . X 1 → S .Y → A1. X → A1.Y . Для его устранения необходимо одну из формул связей рассматривать как алгебраическое уравнение, например, A2. X − A1.Y = 0 и определять значение той же самой искомой переменной A2. X путем численного решения этого уравнения. Указанное свойство сохранять инвариантными вычислительные формы уравнений чрезвычайно удобно. Оно позволяет заранее создавать программные модули для стандартных блоков и быстро и эффективно строить компьютерную модель просто путем объединения соответствующих программных компонентов. Конечно, при этом формулы связей необходимо вычислять путем интерпретации, однако ввиду их предельной простоты это практически не сказывается на эффективности модели. Преимуществами "блочного"
152
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
моделирования являются отсутствие нужды в сложных трансляторах и сохранение исходной формы системы уравнений. К сожалению, при объединении блоков с входами и выходами может возникать необходимость в символьных преобразованиях, если изменить допустимый вид формул (3.3)—(3.5). Например, в блоке "ПД-регулятор" на рис. 3.5 в правой части формулы для вычисления управляющего воздействия используется производная ошибки, в то время как в блоке вычисляется только само значение ошибки. Поэтому в эквивалентной модели значение этой производной либо нужно вычислять численно, либо заменить уравнения блока генератора программного сигнала и три уравнения связей на другие, полученные дифференцированием исходных уравнений:
⎧ de dX пр dX изм − , ⎪ = dt dt dt ⎪ ⎪ dX изм dX ⎪⎪ dt = dt , ⎨ ⎪ dX пр = dX ген , ⎪ dt dt ⎪ ⎪ dX ген = A ⋅ ω ⋅ cos(ω ⋅ t ). ⎪⎩ dt При этом исходные уравнения нельзя не учитывать. Исходные уравнения должны быть использованы в начальный момент времени для согласования значений начальных условий. Дело в том, что использование дифференциальных уравнений вместо алгебраических требует задания начальных условий, а их можно найти только из исходных алгебраических. Таким образом, при использовании блоков с уравнениями общего вида, но приводимых к вычислительной форме, в худшем случае необходимо выполнять либо численное, либо символьное дифференцирование. Необходимость приведения уравнений компонентов и связей к совокупной системе имеет ряд, скорее всего, технических, преодолимых в будущем, недостатков: непростой задачей для пакета моделирования является диагностика и ра-
зумное объяснение проблемы в терминах, понятных пользователю (диагностические сообщения относятся к совсем другой системе уравнений, которую пользователь не строил); эквивалентная система уравнений обычно имеет достаточно высокую
размерность, так что даже демонстрация ее пользователю часто не помогает ему в понимании проблемы.
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
153
Íåîðèåíòèðîâàííûå áëîêè При использовании неориентированных компонентов до составления эквивалентной системы уравнений в общем случае ничего нельзя сказать о корректности записи уравнений и даже о числе независимых переменных. Для определенной проблемной области часто можно выделить некоторый ограниченный базисный набор типовых компонентов (например, резистор, конденсатор, индуктивность, источник напряжения, источник тока), для которого гарантируется корректность построенных из них компонентных моделей и имеется алгоритм нахождения вычислительной формы эквивалентной системы уравнений без символьных преобразований. Эти области подробно рассмотрены в книге "Теоретические основы САПР"1. В частности, для электрической схемы на рис. 3.13 никаких символьных преобразований не требуется, эквивалентная система сводится к линейной системе дифференциально-алгебраических уравнений (рис. 3.17).
Рис. 3.17. Совокупная система уравнений для электрической цепи рис. 3.13
1
Корячко В. П., Курейчик В. М., Норенков И. П. Теоретические основы САПР. — М.: Энергоатомиздат, 1987.
154
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
При ее автоматическом анализе, как и ожидалось, выяснилось, что система записана корректно, после чего она была преобразована к совокупной системе, представленной на рис. 3.18, где слева указано имя искомой переменной, а справа — уравнение для ее нахождения. Именно в этом виде она и передается программной реализации численного метода. Хорошо видно, что в ней много "лишних" уравнений, которые не составляет труда также автоматически исключить из совокупной системы. Появление новых переменных, например, U ′ , обусловлено тем, что любая система вида ⎛ dx ⎞ F ⎜ , x, t ⎟ = 0 dt ⎝ ⎠ в данном случае преобразуется к виду ⎧ dx ⎪ = x′, ⎨ dt ⎪ ⎩0 = F(x′, x, t ), x (0) = x 0 ; x′(0) : 0 = F ( x′(0), x 0 , 0 ) . Поиск x ′(0) называется поиском согласованных начальных условий для алгебраического уравнения.
Рис. 3.18. Преобразованная совокупная система уравнений для электрической цепи (рис. 3.13), передаваемая численному методу
Однако для общего случая неориентированных, или смешанных, компонентов необходимо использовать специальные методы контроля корректности записи и преобразования эквивалентной системы уравнений к виду, необходимому программной реализации численного метода.
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
155
Рассмотрим пример ненаправленной компонентной модели общего вида. Пусть имеются: невесомый и нерастяжимый стержень длиной L , свободно закрепленный
одним концом в начале координат (рис. 3.19, а). Сила S действует вдоль стержня;
точечная масса m , которая может перемещаться в вертикальной плоско-
сти под воздействием внешней силы F с проекциями Fx и Fy , а также силы тяжести mg (рис. 3.19, б). y
y x1
y x2
x
x1 x2
x
L
y1
x
L Fy
Sr S
а
y2 mg
F F Fx
y1 y2
б
mg
в
Рис. 3.19. Компонентная модель маятника
Движение материальной точки с массой m под действием силы F и сила тяжести задаются системой уравнений (закон Ньютона): ⎧ d 2 x 2 Fx , ⎪ 2 = m ⎪ dt ⎨ 2 ⎪ d y 2 Fy ⎪ dt 2 = m + g . ⎩
(3.8, а)
Поведение стержня задается уравнениями, отражающими нерастяжимость (сила S и сила реакции S r действуют только вдоль стержня) и невесомость стрежня: ⎧⎪ x12 + y12 = L2 , ⎨ ⎪ ⎩ S + S r = 0.
(3.8, б)
156
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Для того чтобы из компонентов получить маятник (рис. 3.18, в), надо совместить свободный конец стержня и материальную точку, так возникают уравнения связи, и приравнять действующие силы: ⎧ x1 = x2 , ⎪ ⎪ y1 = y 2 , (3.8, в) ⎨ ⎪ Fx + S x = 0, ⎪ Fy + S y = 0. ⎩ Совокупная система уравнений (3.8, а)—(3.8, в) описывает поведение математического маятника. Решение обеих систем — незатухающие гармонические колебания. Попробуем решить (3.8, а)—(3.8, в) численно. Скорее всего, попытка передать систему (3.8, а)—(3.8, в) в приведенном виде программной реализации численного метода, допускающего свободную форму, приведет к неудаче (рис. 3.20).
Рис. 3.20. Решение системы в исходной форме записи
Выполним вручную все подстановки и получим совокупную систему (3.9).
⎧ d 2 x2 x2 , ⎪ 2 = −S ⋅ ⋅ dt m L ⎪⎪ 2 y2 ⎨ d y2 ⎪ dt 2 = − S ⋅ m ⋅ L + g , ⎪ 2 2 2 ⎪⎩ x2 + y2 = L .
(3.9)
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
157
В системе (3.9) три неизвестных ( x 2 , y 2 , S ) и три уравнения. Первой особенностью этой системы является то, что для переменной S на первый взгляд нет уравнения. Второй — что начальные условия для обоих дифференциальных уравнений не являются независимыми. Действительно, для пар ( x 2 , y 2 ) и dx dy ⎛ dx 2 dy 2 ⎞ 2 2 2 , ⎜ ⎟ существуют два уравнения x2 + y 2 = L и x2 2 + y 2 2 = 0 , dt dt ⎝ dt dt ⎠ которые должны выполняться всегда, в частности и в начальной точке ⎞ ⎛ (x2 (0), y 2 (0) ) , ⎜⎜ dx2 , dy2 ⎟⎟ . Более того, в этой системе только одна пере⎝ dt t =0 dt t =0 ⎠ менная пары ( x 2 , y 2 ) действительно является решением дифференциального уравнения ("дифференциальной" переменной), пусть это будет x2 . Наличие
уравнений x12 + y12 = L2 , x1 = x 2 , y1 = y 2 делает вторую переменную y 2 алгебраической, несмотря на то, что для нее написано дифференциальное уравнение. Попробуем построить уравнение для S . Для этого продифференцируем уравнение x22 + y 2 2 = L2 дважды: x2
dx2 dy + y2 2 = 0 , dt dt
2
2
d 2 x2 ⎛ dy 2 ⎞ d 2 y2 ⎛ dx2 ⎞ + + =0. ⎜ ⎟ + x2 ⎜ ⎟ dt 2 ⎝ dt ⎠ dt 2 ⎝ dt ⎠
(3.10)
Умножим первое дифференциальное уравнение в (3.9) на x2 , второе — на y2 , сложим их и вычтем из (3.10): 2
2
S ⎛ dx ⎞ ⎛ dy ⎞ − y2 g + ⎜ 2 ⎟ + ⎜ 2 ⎟ = 0 . m ⎝ dt ⎠ ⎝ dt ⎠
Уравнения
⎧ d 2 x2 x2 ⎪ 2 =S⋅ ⋅ , m L ⎪ dt 2 2 ⎪ y2 = − x2 + L2 , ⎪ dy2 ⎨ ⎪ w = dt , ⎪ 2 ⎪S 2 ⎛ dx2 ⎞ ⎪ m = y2 g − ⎜ dt ⎟ − ( w ) ⎝ ⎠ ⎩
(3.11)
158
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
образуют требуемую нам систему, ее численное решение приведено на рис. 3.21. Однако подчеркнем еще раз. Систему не удалось бы решить, если бы мы не продифференцировали соответствующие уравнения, не исключили бы лишние уравнения и не нашли бы нужные уравнения. Мы сделали это вручную — среда моделирования обязана это делать автоматически.
Рис. 3.21. Решение преобразованной системы (3.11)
В системе (3.11): независимое дифференциальное уравнение для переменной x2 ; согласованные с начальным условием по дифференциальной переменной
x2 начальные условия по алгебраической переменной y2 ;
переменную y2 можно найти только с помощью численного дифферен-
цирования. В правильности приведенного решения легко убедиться, если решить систему ⎧⎪ d 2 ϕ g ⎨ 2 = − ⋅ sin ϕ; x 2 = L ⋅ sin ϕ; y 2 = − L ⋅ cos ϕ . L ⎪ ⎩ dt
Подобные «трудные» алгебро-дифференциальные уравнения возникают и в более простом случае, даже если уравнения линейны. Определять корректность их записи проще, чем уравнений общего вида.
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
159
Рассмотрим два уравнения:
⎧ dx ⎪ dt = α ∗ x + z ∗ a, ⎪ ⎨ dy = β ∗ y + z ∗ b, ⎪ dt ⎪ ⎩ x + y = c = const; α , β < 0.
(3.12)
Дифференцируя алгебраическое уравнение в системе (3.12), получим связь dx dy α ⋅ x + β⋅ y . + = 0 ⇒ α ⋅ x + z ⋅ a + β⋅ y + z ⋅b = 0 ⇒ z = − dt dt a+b Это позволяет решать систему дифференциальных уравнений
(3.13)
α ⋅x+β ⋅y ⎧ dx ⎪ dt = α ⋅ x − a + b ⋅ a, ⎪ ⎨ dy = β ⋅ y − α ⋅ x + β ⋅ y ⋅ b, ⎪ dt a+b ⎪ ⎩ x(0) = x0 ; x(0) + y (0) = c с одним независимым начальным условием и вторым, согласованным с алгебраическим уравнением. В результате получилась система в форме Коши, разрешенная относительно производных. К сожалению, процедура построения системы в форме Коши, разрешенной относительно производных, может потребовать нескольких шагов. Предположим, что a = −b , тогда в (3.13) получим dx dy + = 0 ⇒ α ⋅ x + β⋅ y = 0 . dt dt
Для получения нужного нам дифференциального уравнения, из которого можно будет найти z , придется дифференцировать еще раз. Число дифференцирований, необходимых для построения системы дифференциальных уравнений в форме Коши, разрешенных относительно производных, называется индексом системы.
Ïàðàëëåëüíîå îáúåäèíåíèå ãèáðèäíûõ êîìïîíåíòîâ Как показано в главе 2, для описания широкого класса динамических систем, меняющих свое поведение под воздействием событий можно использовать иерархические гибридные автоматы. При моделировании дискретной системы с помощью гибридного автомата вводится фиктивное непрерывное
160
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
время (такты), и на последнем уровне вложенности непрерывные локальные деятельности не определяются, считаются пустыми (NULL). Пустая непрерывная деятельность рассматривается как динамическая система, в которой продвигается только непрерывное время. Динамическая система с непрерывным временем рассматривается как гибридный автомат с единственным состоянием, которому приписана непрерывная деятельность. Таким образом, гибридный автомат охватывает все формы представления классических динамических систем. Гибридная компонентная модель представляет собой параллельную композицию гибридных автоматов, функционирующих в гибридном времени и взаимодействующих через связи. Возможны различные случаи параллельного функционирования блоков, чье поведение задано гибридными автоматами. Самый простой случай — это функционирование изолированных блоков, чье поведение определяется примитивным гибридным автоматом. Гибридным поведением могут обладать ориентированные и неориентированные блоки. Рассмотрим композицию A&B изолированных блоков A и B с поведением, описанным примитивными гибридными автоматами (рис. 3.22). Pr_1/Ac_1 s1
A
do_1
Pr_2/Ac_2
s2
B
do_2
s1
Pr_1/Ac_1 or Pr_2/Ac_2
s2
A&B
t
do_1&2 t0
t1
t2
Рис. 3.22. Композиция A&B двух изолированных блоков A и B с поведением, заданным примитивными гибридными автоматами
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
161
Поведение внутренних переменных s1 и s2 автоматов A и B описывается разрывными функциями. В момент достижения нуля любой из переменных, происходит смена поведения, заключающаяся в задании новых начальных условий. На отрезке [t 0 , t 2 ] непрерывного времени первый автомат A ведет себя как динамическая система, а автомат B в точке t0 < t1 < t 2 меняет поведение. В точке t 2 поведение меняют оба автомата. С точки зрения непрерывного времени в точке t1 неоднозначно поведение автомата B, а в точке t 2 — обоих. Гибридное время первого автомата задается последовательностью T 1 = {( gap11 , [t 0 , t 2 ], gap12 ), ...} ,
второго —
T2 =
{( gap , [t , t ], gap ) , ( gap , [t , t ], gap ) , ...} , 1 1
0
1
1 2
2 1
1
2 2
2
и, следовательно, гибридное время композиции автоматов T 3 совпадает с гибридным временем второго автомата T 3 = T 2 . Совокупная система уравнений композиции A&B является объединением систем автоматов A и B. В точке t1 в автомате A&B происходит смена поведения, соответствующая смене поведения в автомате B, дополненная фиктивной сменой поведения в автомате A. Это означает, что необходимо доопределить мгновенные действия для автомата A, в данном случае непрерывно сшить решение в точке t1 . В точке t 2 никаких доопределений делать не нужно, оба автомата меняют поведение по своим законам. Последовательность смены поведения во временной щели второго такта гибридного времени композиции автоматов в данном случае не имеет значения, т. к. переменные s1 и s2 независимы. При синхронизации изолированных автоматов столь же легко разрешается конфликт, показанный на рис. 3.23. Жирными точками выделены значения переменных s1 и s2 , полученные ими при входе очередное текущее состояние, немедленно покинутое, так как для этих значений оказался истинным предикат, предписанный переходу. Гибридное время композиции теперь выглядит так:
T3 =
{( gap , [t , t ], gap ) , ( gap , [t , t ], gap ) , ( gap , [t , t ], gap ) , ( gap ,[t , t ], gap ) , ( gap , [t , t ], gap ), ...} 1 1
0
1
1 2
2 1
1
4 1
2
2
4 2
5 1
2
1
2
2 2
3 1
1
2
3 2
5 2
и показывает, что в точке t1 мгновенная смена поведения происходит дважды. Первое вычисленное начальное значение функции s2 делает предикат
162
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
истинным уже в начальной точке, и автомат мгновенно покидает текущее состояние и снова вычисляет новое начальное значение, и только после этого возникает длительное поведение. В точке t 2 аналогичные действия совершаются для обеих переменных s1 и s2 . Pr_1/Ac_1 s1
A
do_1
Pr_2/Ac_2
s2
B
do_2
s1
Pr_1/Ac_1 or Pr_2/Ac_2
s2
A&B
t
do_1&2 t0
t1
t2
Рис. 3.23. Композиция A&B двух изолированных блоков A и B с поведением, заданным примитивными гибридными автоматами, имеющими конфликт во временной щели
Примером мгновенного покидания текущих состояний может служить задача о лыжнике, поднимающемся дискретно с шагом h по вертикальной лестнице до тех пор, пока не превысит высоты H , после чего начинает спуск по закону "Движение" (рис. 3.24): dx = a⋅ x +b , dt dx = a ⋅ x + b; a = −1; b = 2; x(0) = 0 . dt
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
а
163
б
Рис. 3.24. Мгновенная смена поведения: а — гибридный автомат, порождающий конечное число текущих состояний, у которых отсутствуют длительные действия; б — дискретный подъем и длительный спуск лыжника
На рис 3.24, б хорошо видно, что до тех пор, пока не началось движение непрерывного времени на одиннадцатом такте гибридного времени, десять раз произошла смена поведения, во время которого дискретно и мгновенно изменялась высота. Композиция двух "летающих лыжников" ведет себя аналогично. В случае изолированных блоков порядок выполнения мгновенных операций в щели безразличен, и поэтому мы видим две идентичные картины поведения (рис. 3.25). Обратите внимание, что счетчик тактов гибридного времени опять показывает число 11. Блоки с примитивными гибридными автоматами не демонстрируют всех проблем, возникающих при использовании гибридных иерархических автоматов общего вида. Перейдем к рассмотрению блоков с автоматами общего вида. Как уже было показано на примере блоков композиции с примитивными гибридным автоматами поведение модели будет определяться последовательностью совокупных систем уравнений C 0 , C1 , ..., Ci , ..., C n (включая пустую — NULL), каждая из них является объединением непрерывных систем, приписанных текущим состояниям компонентов с учетом связей (рис. 3.26, а). Это локальная последовательность, т. к. зависит от начальных условий, параметров и внешних воздействий на модель. Совокупность переменных Vi на интервале существования системы Ci часто делят непрерывные и дискретные переменные: Vi = ViC ∪ Vi D . Непрерывные переменные ViC являются искомыми переменными для текущей системы уравнений
164
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
ViC = f i (t ) , а дискретные переменные Vi D на этом интервале непрерывности не изменяются.
Рис. 3.25. Композиция "одновременный полет лыжников". Новый автомат не строится явно, используются автоматы исходных блоков. Число тактов гибридного времени в композиции осталось тем же, что и для автомата одного лыжника Cj
Cj
C2
C2 C1
C1
C0
t t0
t1
t2
а
t3
C0 t t0
t1
t2
б
Рис. 3.26. Представление гибридной модели в виде последовательности непрерывных систем: а — с ненулевыми интервалами непрерывности; б — с временной щелью
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
165
В момент смены поведения происходит формирование новой совокупной системы Ci → Ci +1 (на рис. 3.25 эти переходы показаны стрелками). Переменные первоначально имеют значение pre(Vi ) = f i (t ie ) ∪ Vi D . Далее в результате выполнения совокупных выходных действий и действий переходов значения части дискретных и непрерывных переменных могут измениться и мы получим значение новые значения post (Vi ) . В общем случае наборы переменных систем Ci и Ci +1 могут не совпадать: Vi +1 = Vi +P1 ∪ Vi +N1 , где Vi +P1 ∩ Vi ≠ ∅ , Vi +N1 ∩ Vi = ∅ . Если новая система является алгебродифференциальной, то прежде, чем приступить к ее интегрированию относительно новых переменных Vi +1 , необходимо проверить корректность ее записи, рассортировать переменные на дифференциальные и алгебраические, а для алгебраических переменных найти согласованные начальные условия, то есть решить алгебраические уравнения системы Ci +1 .
Последовательность непрерывных систем C 0 , C1 , ..., Ci , ..., C n может быть порождена некоторым последовательным гибридным автоматом с состояниями S 0 , ..., S n , которым приписаны эти совокупные непрерывные системы, а также предикатами и мгновенными действиями переходов, обеспечивающими смену состояний в моменты смены поведения tie и вычисление нужных начальных значений. Для этого достаточно построить граф гибридного автомата композиции и преобразовать его в дерево (рис. 3.27). Отдельные пути и образуют локальное поведение. На рис 3.26 особо выделены переходы, при которых одновременно меняются состояния в обоих компонентах. Этот случай особый, и требует более детального рассмотрения, которое будет проведено далее. Поскольку правила интерпретации последовательного гибридного автомата известны, то такой эквивалентный последовательный гибридный автомат может однозначно интерпретироваться исполняющей системой пакета моделирования. Возможны два подхода к формированию этого эквивалентного последовательного автомата. Первый подход состоит в том, что множество состояний эквивалентного автомата строится как декартово произведение множеств состояний автоматов-компонентов, множество переходов строится как соответствующее расширение множеств переходов компонентов, и заранее формируется все множество непрерывных систем, которые могут возникнуть при всех возможных комбинациях состояний в параллельных гибридных автоматах. Такой подход привлекателен тем, что позволяет производить построение эквивалентного автомата на этапе компиляции, однако надо строить и хранить все дерево (рис. 3.27, в). Недостатками подхода является громоздкость
166
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû A
B C
A
C
A
B
B
а
D
F
D
F
б
AD
AF
CD
CF AF
CF AD
BD
BD
BF
CD
BD
BF CF
BF BF
в Рис. 3.27. Построение к композиции и превращение графа гибридного автомата в дерево
эквивалентной модели, возможная нереализуемость некоторых эквивалентных состояний и принципиальная невозможность использования для систем с переменным составом. Второй подход состоит в динамическом построении состояний эквивалентного автомата и соответствующей новой эквивалентной непрерывной системы при каждом срабатывании перехода (не внутреннего) в любом из автоматов-компонентов. Фактически мы строим композицию примитивных автоматов, выбирая в каждом блоке только текущие состояния (рис. 3.28). На рис. 3.28, а показаны гибридные автоматы компонентов и их композиции, а на рис. 3.28, б — последовательность "динамических" композиций, сводящаяся только к учету текущих состояний. Этот подход универсален, но требует анализа и построения эквивалентной системы уравнений во время работы модели.
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
167
A
AB
AD
BC
DB
B 1
C
D 2
а
A
B
A
B
1
C
1
D
C 2
D 2
τ1 = ( gap1i , [ti , ti +1 ], gap2i )
τ 2 = ( gap1i +1 , [ti +1 , ti + 2 ], gap2i +1 ) б
Рис. 3.28. Динамическое построение текущего узла композиции гибридных автоматов
Второй вопрос состоит в том, как синхронизировать гибридные автоматы во временной щели (см. рис. 3.26, б). Предположим, что функциональная схема состоит из двух компонентов, связанных между собой. Может случиться так, что в обоих связанных между собой компонентах будут одновременного готовы к срабатыванию два перехода. В гибридном времени композиции автоматов
168
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
две временные щели исходных автоматов сольются в единую щель. В каждой из щелей отдельных автоматов совершаются свои мгновенные действия, они выполняются в том порядке, как они записаны. Но что можно сказать о порядке обеих последовательностей во временной щели композиции автоматов? Дискретные времена во временных щелях отдельных автоматов несопоставимы между собой. Поэтому в случае, когда в нескольких гибридных автоматах несколько переходов одновременно готовы к срабатыванию, возникает проблема упорядочивания мгновенных (дискретных) действий всех автоматов. Пусть в гибридных автоматах A и B в момент t1 одновременно готовы к срабатыванию переходы T12A и T12B (рис. 3.29). t=0
t = t1
t = t1
j=1
j=2 B TT12
B SB1
SB2 временная щель
j=1
j=2 A TT12
A SA1
j=3 A TT23
SA2
SA3
Рис. 3.29. Пример параллельных процессов в компонентной гибридной модели
Возможны три варианта выполнения этих переходов (рис. 3.30). Очевидно, что результат для взаимосвязанных компонентов будет зависеть от порядка выполнения переходов. На рис. 3.30 показаны три возможные интерпретации одновременного срабатывания переходов. Они эквивалентны, если компоненты независимы. При выполнении объединенного перехода T12A + T12B результат будет однозначным, если автоматы не имеют общих переменных. В результате выполнения объединенного перехода дискретная составляющая гибридного времени модели увеличится на единицу, что соответствует интуитивному представлению о непрерывной одновременности. Если же у блоков существуют общие переменные, то при согласовании начальных условий для алгебраических переменных, при различном порядке выполнения пере-
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
169
ходов, будут решаться различные системы уравнений, и это может привести к различным новым согласованным начальным условиям. A TT12
(SA1, SB1)
(SA2, SB1)
TA122 + TB122 B TT12
B TT12
(SA1, SB2)
(SA2, SB2) A TT12
Рис. 3.30. Возможные способы формирования эквивалентного перехода
Для того чтобы избежать неоднозначности, предлагается выполнять переход в композиции, как показано жирной стрелкой на рис. 3.30, т. е. переход T12A + T12B . Такой способ будем называть принципом синхронной композиции.
Принцип синхронной композиции гибридных автоматов предполагает, что: гибридные автоматы взаимодействуют только через систему уравнений
компонента-контейнера; все готовые к срабатыванию переходы выполняются одновременно в гиб-
ридном времени модели. Принцип синхронной композиции фактически утверждает, что во временной щели композиции для определения новых начальных условий нужно решать совместную систему алгебраических уравнений, построенную из уравнений компонентов и связей. Его можно реализовать практически только в случае, если связи существуют между переменными вещественного типа. Для направленных связей, в которых участвуют невещественные переменные (целые, булевские, строковые), добавим к системе уравнений соответствующий набор формул, который не может участвовать в преобразованиях системы уравнений связи к вычислительному виду. Этот набор формул просто должен дополнительно вычисляться при каждом решении совокупной непрерывной системы. Ненаправленные связи с невещественными переменными запретим. В языке Modelica аналогичная проблема решается с помощью принципа синхронного потока данных, в соответствии с которым все формулы в обработ-
170
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
чиках дискретных событий добавляются к последней совокупной системе уравнений, включающей уравнения связей, и ищется решение этой "мгновенной" совокупной системы уравнений. Однако мгновенные действия в автоматных моделях часто бывает затруднительно выразить в форме уравнений. Кроме того, "мгновенная" совокупная система алгебраических уравнений может оказаться вырожденной. Часто логика дискретного поведения моделируемой системы требует явной синхронизации двух или более последовательных процессов. Для этого обычно используется механизм сигналов. Сигнал — это переменная специального типа signal. Послать сигнал можно только с помощью специального оператора send. Переменная-сигнал может фигурировать в качестве условия срабатывания перехода в других картах поведений. Пусть, например, в действиях перехода T12A посылается сигнал, по которому срабатывает переход T12C (рис. 3.31). Рассмотрим, как соотносится явная синхронизация посредством сигналов с синхронной композицией автоматов. t=0
j=1
t = t1
t = t1
j=2
C TT12
C SC1
SC2
j=1
j=2 B TT12
B
временная щель
j=1 A SA1
A TT12
j=2
A TT23
SA2
j=3
SA3
Рис. 3.31. Явная синхронизация с помощью сигнала
Информация о посылке сигнала должна передаваться немедленно, не дожидаясь решения уравнений связи. Все переходы, ожидающие этого сигнала,
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
171
должны быть добавлены в множество срабатывающих переходов (если их там еще нет) и выполнены в том же эквивалентном переходе. Для примера на рис. 3.31 будет получен следующий эквивалентный процесс: ( S1A , S1B , S1C ) → [T12A + T12B + T12C ] → ( S 2A , S 2B , S 2C ) → [T23A ] → ( S 3A , S 2B , S 2C ) .
Таким образом, явная синхронизация параллельных гибридных автоматов с помощью сигналов приводит к динамическому формированию перехода в эквивалентном автомате во время его выполнения.
Êîìïîçèöèÿ ïàðàëëåëüíî ðàáîòàþùèõ áëîêîâ ñ êîíòàêòàìè Здесь возможны две ситуации. Функциональная схема блоков с контактами погружена в изолированный контейнер, и рассматривается композиция блоков контейнеров. Она ничем не отличается от композиции непрерывных блоков. Если в функциональной схеме есть переключения, например ключи в электрической схеме, то основной трудностью построения композиции является построение совокупной системы и проверка корректности ее записи.
Ïðèìåð: ñèíõðîííàÿ è àñèíõðîííàÿ êîìïîçèöèÿ ãèáðèäíûõ àâòîìàòîâ Рассмотрим систему, показанную на рис. 3.32. Эта система включает два сумматора и два периодических прерывателя. Sum1
B1
1 y = x1 + x2
y = x1 + x2 –1 Sum2
B2
Рис. 3.32. Пример компонентной гибридной модели
172
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Прерыватель с периодом T мгновенно передает значение входа x на выход y (рис. 3.33). after T actions {y := x;}
S1
S2
Рис. 3.33. Карта поведений прерывателя
Если на входы системы подать указанные значения, то при B1.T < B 2.T схема через время B1.T переходит в устойчивое состояние B1. y = 1 , B 2. y = 0 (рис. 3.34, а), а при B1.T > B 2.T схема через время B 2.T переходит в устойчивое состояние B1. y = 0 , B 2. y = −1 (рис. 3.34, б). Эти зависимости справедливы как для синхронного, так и для асинхронного объединения. Однако при B1.T = B 2.T мы получаем качественно различные поведения системы: при асинхронном объединении система по-прежнему переходит в одно из
устойчивых состояний в зависимости от случайного порядка срабатывания переходов; при синхронном объединении наблюдаются колебания с периодом
2 ⋅ B1.T (рис. 3.34, в).
Попробуем разобраться, какое из этих поведений правильное. В рассматриваемой системе имеются два идеальных допущения: замыкание цепи и передача значения входа на выход прерывателя проис-
ходит мгновенно; сумматор вычисляет сумму мгновенно.
Модифицируем карту поведений прерывателя: пусть теперь в течение ΔT он ведет себя как непрерывная система с уравнением y = x (рис. 3.35).
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
173
а
б
в Рис. 3.34. Результаты моделирования при использовании: а, б — асинхронной композиции; в — синхронной композиции
174
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû do {y = x}
after T
S1
S2
after ΔT
Рис. 3.35. Модифицированная карта поведений прерывателя
Заметим, что при ΔT = 0 такая карта поведений имитирует обработчик дискретных событий языка Modelica: во временной щели решается система уравнений, включающая уравнения сумматоров и "мгновенные" уравнения замыкания. Однако в данном примере такая система уравнений оказывается вырожденной и имеет бесконечно много решений. Если же мы заменим уравнение y = x на уравнение y = pre( x) , то получим колебания, показанные на рис. 3.34, в. Чтобы убрать второе идеальное допущение, вставим после сумматоров апериодические звенья (рис. 3.36) с постоянной времени TA . При ΔT → 0 , TA → 0 мы должны получить предельный случай, соответствующий идеальному. Sum1 1 y = x1 + x2
y = x1 + x2 –1 Sum2
AU1
B1
K Ts + 1
K Ts + 1
AU2
B2
Рис. 3.36. Модифицированная компонентная модель
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
175
На рис. 3.37 показаны зависимости выходов от времени при значениях ΔT = 0.1 (рис. 3.37, а), ΔT = 0.05 (рис. 3.37, б), ΔT = 0.001 (рис. 3.37, в), ΔT = 0 (рис. 3.37, г) (во всех случаях TA = 0.001 ). Таким образом, поведение синхронного гибридного автомата действительно соответствует предельному случаю поведения неидеальной системы.
а
б
в
г
Рис. 3.37. Зависимости выходов модифицированной модели от времени при значениях: а — ΔT = 0.1 ; б — ΔT = 0.05 ; в — ΔT = 0.01 ; г — ΔT = 0 (во всех случаях TA = 0.001)
Ïîñëåäîâàòåëüíàÿ êîìïîçèöèÿ êîìïîíåíòîâ При последовательной композиции отдельные компоненты выступают в качестве деятельностей, приписанных различным состояниям карты поведений гибридного автомата. В качестве примера рассмотрим компонентную модель отрывающегося маятника (рис. 3.38).
176
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Рис. 3.38. Карта поведений отрывающегося маятника
Карта поведений отрывающегося маятника включает два качественных состояния: колебания (SOsc) и свободное движение (SFlight). В качестве деятельности в состоянии колебаний используется непрерывный компонент — экземпляр класса Pendulum, поведение которого задается уравнением d 2α dt
2
= − g ⋅ sin α α (t 0 ) = α 0 ,
dα (t 0 ) = ω0 . dt
В качестве деятельности в состоянии свободного движения используется второй непрерывный компонент — экземпляр класса Flight, поведение которого задается уравнениями, рассмотренными в главе 1. dα . Пеdt реход из состояния колебаний в состояние свободного движения происходит по сигналу Break, подаваемому, например, пользователем с помощью нажатия кнопки. Условием обрыва можно также задать, например, превышение углом α некоторого максимального значения α max и т. п. В момент обрыва
До момента отрыва состояние модели задается переменными α и
t * возникает так называемая "временная щель". Уравнения колебаний перестают решаться. В действиях перехода по текущим значениям переменных α dα и вычисляются начальные значения координат, скорости и угла бросаdt ния для второго компонента. По окончании перехода первый компонент —
Ãëàâà 3. Êîìïîíåíòíûå ìîäåëè
177
экземпляр класса Pendulum перестает существовать и создается второй компонент — экземпляр класса Flight. После этого состояние модели задается dx dy набором переменных x , y , , . dt dt Таким образом, модель отрывающегося маятника является последовательной композицией двух независимых компонентов — модели математического маятника и модели тела, брошенного под углом к горизонту, взаимодействующих через начальные условия. Последовательная композиция компонентов является удобным способом задания плана вычислительного эксперимента. Предположим, что мы хотим провести статистический эксперимент — бросить тело N раз, задавая случайные значения начальной скорости и угла бросания, и получить N значений дальности падения. Такую модель легко получить на основе компонента Flight. Сначала мы создадим гибридный компонент Fall, в котором движение прекращается в момент пересечения горизонтальной плоскости, а значение координаты x в этот момент запоминается в переменной L (рис. 3.39).
Рис. 3.39. Карта поведений компонента Fall
Используя этот компонент в качестве деятельности, создадим модель испытаний (рис. 3.40). Каждый раз при входе в состояние T создается новый экземпляр компонента Fall, в котором значения параметров — начальной скорости и угла бросания — разыгрываются по нормальному закону распределения. Нетриггерный переход из состояния T срабатывает, когда гибридная деятельность в состоянии T завершается, т. е. в момент падения. Полученное значение дальности падения заносится в вектор L[N ] .
178
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Таким образом, карту поведений модели испытаний (рис. 3.40) можно рассматривать как визуальное представление плана вычислительного эксперимента.
Рис. 3.40. Карта поведений модели испытаний
При последовательном объединении компонентов не следует забывать, что их локальные часы начинают отчитывать время с начального значения (по умолчанию с нуля) всякий раз, когда заново создается экземпляр компонента. В ряде случаев (например, в испытаниях на рис. 3.40) это вполне естественно. Однако если вы в модели прыгающего мячика моделируете отскок с помощью внешнего перехода (рис. 3.41), то это означает, что каждый раз после отскока, вообще говоря, летит новый мячик. Вполне естественным в этом случае является передача в качестве начальных значений не только скорости, угла и горизонтальной координаты, но и текущего значения времени модели. Глобальным временем вычислительного эксперимента в целом является локальное время объекта самого верхнего уровня иерархии, т. е. модели в целом.
Рис. 3.41. Карта поведений прыгающего мячика
Ãëàâà 4
×èñëåííîå ìîäåëèðîâàíèå В этой книге мы рассматриваем модели, представленные системами уравнений различного типа: системами линейных и нелинейных алгебраических уравнений, системами обыкновенных дифференциальных и алгебро-дифференциальных уравнений. Когда имеешь дело с уравнениями, всегда, прежде всего, хочется найти ответы на "глобальные" вопросы. Например, единственно ли решение, существуют ли решения с требуемыми свойствами, есть ли среди решений устойчивые, возможно ли появление колебательных процессов? К сожалению, ответить на эти вопросы, не прибегая к вычислительному эксперименту, удается далеко не всегда. Решения уравнений и, следовательно, свойства моделей, могут по-разному зависеть от входящих в уравнения параметров, в частности от начальных условий. Они могут непрерывно зависеть от параметров. И это хорошее свойство, особенно если зависимость от параметров интуитивно ожидаемая — малые изменения параметров приводят к малым отклонениям от невозмущенного решения. Сильная зависимость от параметров, когда малые отклонения приводят к значительным изменениям решения и даже качественно другим решениям при некоторых значениях параметров, — свойства, о которых хорошо знать уже заранее, на этапе проектирования модели. Говоря о зависимости решения задачи от параметров, мы обычно употребляем термины "чувствительность" или "обусловленность" задачи. Если предварительный анализ чувствительности не проведен, то исследователь часто затрудняется дать ответ, что является причиной резких изменений решений — сама модель из-за ее сильной чувствительности к параметрам или, возможно, не слишком удачные методы построения решения. Решение уравнений редко удается получить в замкнутой форме, но даже если такое решение построено, все равно приходится прибегать к помощи вычис-
180
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
лительных машин из-за громоздкости формул и сложности вычислений. Это одна из причин, почему, несмотря на многовековой опыт математического моделирования, его повсеместное практическое применение началось только с появлением различных быстродействующих вычислительных устройств. Численное решение — это всегда приближенное решение, и важно, чтобы его погрешность была соизмерима с погрешностью самой модели. Использование удачных приближений для построения решения и составляет суть численного анализа. Мы не всегда умеем вычислять интегралы в "явном виде", но можем заменить интеграл суммой, сосчитать которую уже много проще, и тем самым получить приближенное значение интеграла. Вместо дифференциальных уравнений мы чаще всего решаем разностные точно так же, как и для вычисления производных используем их разностные аналоги. Исходную систему уравнений, решение которой мы хотим, но не можем найти, мы заменяем другими уравнениями, решение которых мы умеем получать. И это первый источник погрешности в будущем численном решении. Численное решение находится с помощью вычислительных машин, "применяющих" для этих целей "свою" машинную арифметику, чаще всего арифметику чисел с плавающей точкой. В свое время, когда вычислительные машины только появились, эта арифметика доставила много неудобств разработчикам вычислительных методов. Машинная арифметика отличается от арифметики вещественных чисел и может сильно искажать результаты вычислений при неправильном с ней обращении. И это второй источник погрешности. Погрешности, возникающие из-за приближений, и погрешности вычислений, должны быть меньше или, в крайнем случае, одного порядка с погрешностью самой модели — результаты моделирования должны совпадать с результатами натурных измерений с заданной точностью. Исключение составляют модели, от которых ожидают только качественного совпадения поведения модели и реального объекта, но и в этом случае вносимые погрешности не должны изменять качественных характеристик решения. Для каждого типа уравнений существует, конечно же, не один, а много численных методов построения решения, и каждый из них может быть различным образом реализован на выбранном языке программирования. Путь от уравнений до конкретного численного решения в свое время был описан в виде триады: "математическая модель — численный метод — программная реализация численного метода". Методика численного исследования свойств модели на вычислительных машинах была названа вычислительным экспериментом, а использовавшиеся для этого программные средства — пакетами прикладных программ. Указанный путь редко приводит к успеху с первой попытки, и потому вычислительный эксперимент приходится многократно повторять, меняя что-либо на одном или каждом из этапов.
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
181
Многолетняя работа математиков и программистов привела к тому, что появились так называемые специализированные коллекции и численные библиотеки — особый вид библиотек программ, где лучшие численные методы реализованы в виде программ с учетом всех известных на сегодняшний день свойств машинных арифметик. Мы упомянули только один тип машинной арифметики — арифметику чисел с плавающей точкой, но существует еще и интервальная арифметика, и символьные вычисления. Появление надежных коллекций позволяет большинству пользователей забыть о проблемах разработки математического обеспечения и предоставить их профессионалам. Использование специализированных коллекций и библиотек резко расширилось, когда появились языки, где обращение к достаточно сложно организованным подпрограммам библиотек, написанным чаще всего на языках Fortran или С, приобрело простой и понятный вид, очень похожий на математическую запись. Примером такого языка "высокого уровня" может служить язык пакета MATLAB, или любой графический язык математических пакетов, таких как Maple, Mathematica, Mathcad. Современные графические оболочки для моделирования удачно используют как графические языки для описания сложных моделей, так и надежное программное обеспечение для их исследования, упрощая и ускоряя этапы создания и изучения модели. В современных графических средах моделирования модель даже редко предстает перед пользователем в виде системы уравнений, которую предстоит решать численно — уравнения формируются оболочкой автоматически. И уже тем более не видны программные реализации применяемых численных методов. С одной стороны, это хорошо — пользователь может всецело сосредоточиться только на исходной постановке задачи и ее свойствах. В то же время пользователь должен уметь проверять, хотя бы качественно, результаты вычислений, т. е. знать, как устроены применяемые численные методы и чего от них можно ожидать. В этой главе мы попытаемся описать и перечислить свойства численных методов, программные реализации которых можно встретить практически в любой среде визуального моделирования.
Ñèñòåìû ëèíåéíûõ àëãåáðàè÷åñêèõ óðàâíåíèé Решение систем линейных алгебраических уравнений с постоянными коэффициентами возникает при моделировании динамических систем как в качестве основной, так и вспомогательной задачи.
182
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Системы линейных алгебраических уравнений записываются обычно в матричной форме A⋅x +b = 0,
A ∈ ℜ n×n ,
b, x ∈ ℜ n ,
где A ∈ ℜ n×n — в данном случае вещественная квадратная матрица, а b, x ∈ ℜ n — векторы-столбцы. Примером основной задачи может служить задача построения стационарных режимов для моделей, записанных в виде системы линейных дифференциальных уравнений с постоянными коэффициентами. Действительно, если модель представлена уравнением в матричной форме dx = A ⋅ x + b, x (0) = x 0 dt и система устойчива, то устойчивое решение системы может быть записано в виде dx = 0 ⇒ A ⋅ x + b = 0 ⇒ x = − A −1b . dt Линейным алгебраическим уравнениям могут удовлетворять и вспомогательные переменные, используемые для вычисления новых начальных условий дифференциальных уравнений после смены поведения. Иными словами, системы линейных уравнений могут появиться как при описании непрерывного, так и дискретного поведения. Линейные уравнения часто возникают при аппроксимации результатов вычислений. Например, вместо некоторой сложно вычисляемой функции f (x) вещественного аргумента, заданной на промежутке [a, b] , может оказаться достаточным использовать ее аппроксимацию в виде полинома небольшой степени P2 ( x ) = c0 x 2 + c1 x1 + c 2 x 0 , коэффициенты ( c0 , c1 , c2 ) которого минимизируют функционал b
b
a
a
J (c0 , c1 , c2 ) = ∫ ( P2 ( x) − f ( x)) 2 dx = ∫ (c0 x 2 + c1 x1 + c2 x 0 − f ( x)) 2 dx → min .
В этом случае мы говорим об аппроксимации по методу наименьших квадратов. Как легко показать, искомые коэффициенты в данном случае удовлетворяют системе линейных уравнений третьего порядка: b
A = [ai , j ], i, j = 1, n; n = 3; ai , j = ∫ x 2n−(i + j ) dx, a
b
b = [bi ], i = 1, n; bi = ∫ x n−i f ( x)dx. a
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
183
При решении систем линейных алгебраических уравнений пользователь может столкнуться с двумя постановками задачи, когда требуется найти: решение системы с невырожденной квадратной вещественной (реже ком-
плексной) матрицей; решение системы с прямоугольной вещественной матрицей полного
ранга. В обоих случаях вектор правой части может быть либо единственным, либо их может быть несколько для одной и той же матрицы системы. Иногда возникает необходимость найти обратную для заданной матрицы. Источником первой задачи служат приведенные выше примеры. Возможность решать системы с комплексными коэффициентами существует не во всех оболочках. Однако задача с комплексными коэффициентами может быть сведена к задаче с вещественными коэффициентами большей размерности. Вторая задача характерна для обработки результатов экспериментов. Например, мы предполагаем, что исследуемая нами закономерность, полученная в результате натурного эксперимента, может быть описана полиномом второй степени P2 ( x ) = c0 x 2 + c1 x1 + c2 x 0 , коэффициенты ( c0 , c1 , c2 ) которого хотим найти. Мы выбираем точки [ x1 , x2 , ..., x m ] , m > 3 и измеряем с некото~ ~ ~ рыми погрешностями значения полинома P2 ( x1 ), P2 ( x2 ), ..., P2 ( xm ) в этих точках. Если бы наши измерения были бы идеально точными, достаточно было бы трех точек и трех измерений для однозначного определения неизвестных коэффициентов:
[
]
P2 ( x k ) − c0 x k2 + c1 x1k + c 2 x k0 = 0, k = 1, 3 .
Однако на практике при измерениях появляются ошибки, и мы намеренно делаем измерений больше необходимого числа. Затем определяем коэффициенты не из приведенной системы линейных уравнений, а по методу наименьших квадратов: m ~ J (c0 , c1 , c2 ) = ∑ (P2 ( xk ) − c0 xk2 + c1 x1k + c2 xk0 ) 2 → min , k =1
усредняя тем самым погрешности измерений. Такая постановка в нашем случае приводит к новой системе из трех уравнений относительно трех неизвестных: ∂J (c0 , c1 , c 2 ) ∂J (c0 , c1 , c 2 ) ∂J (c0 , c1 , c 2 ) = 0; = 0; = 0. ∂c0 ∂c1 ∂c 2
184
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Если ввести матрицу A ⎡ x12 x11 x10 ⎤ ⎢ ⎥ ⎢ x22 x12 x 20 ⎥ A=⎢ ⎥ ⎢. . . . . ⎥ ⎢ x 2 x1 x 0 ⎥ ⎣ m m m⎦ ~ ~ ~ и вектор правой части A T ⋅ b , где b = P2 ( x1 ), P2 ( x2 ),...P2 ( xm ) , то новая система (нормальных уравнений) относительно искомых коэффициентов ( c0 , c1 , c2 ) может быть записана в виде
[
]
AT ⋅ A ⋅ c = AT ⋅ b .
Если квадратная матрица A T ⋅ A не вырождена, то у такой системы существует единственное решение, и это решение и называется решением исходной системы с прямоугольной матрицей по методу наименьших квадратов. Таким образом, можно говорить непосредственно о решении систем с прямоугольными матрицами A ⋅c = b ,
подразумевая решение системы нормальных уравнений. В общем случае решение по методу наименьших квадратов существует и единственно, если прямоугольная матрица системы имеет полный ранг. Прямоугольная матрица A с m строками и n столбцами называется матрицей полного ранга, если у нее есть минор порядка min (n, m) с определителем, отличным от нуля. Модели, представленные в виде систем линейных алгебраических уравнений с квадратными, невырожденными матрицами, хорошо исследованы с точки зрения зависимости решения от коэффициентов матрицы системы. Простая геометрическая интерпретация решения системы в виде точки пересечения двух прямых на плоскости показывает, какие системы следует считать хорошими (слабо зависящими от изменения коэффициентов матрицы), а какие — плохими. Если прямые параллельны, решения не существует, и чем острее угол между ними, тем сильнее чувствительность решения к изменению коэффициентов. Уже на примере системы второго порядка с диагональной матрицей a11 ⋅ x1 = b1 a 22 ⋅ x2 = b2
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
185
видно, как изменение коэффициентов ( a11 + ε1 ) ⋅ ~ x1 = b1 ⇒ ( a11 + ε1 ) ⋅ ( x1 + δ1 ) = b1 сказывается на абсолютной и относительной ошибке в решении δ1 = −
ε1b1 (a11 + ε1 ) ⋅ a11
δ1 a11 ε a11 ε = ⋅ 1 = ⋅ 1 . (a11 + ε1 ) a11 (a11 + ε1 ) a11 x1
Аналогично, сравнивая решения систем A ⋅ x = b и ( A + δA ) ⋅ (x + δx) = b , можно показать, что относительная ошибка равна δx x
≤
A ⋅ A −1 1− A ⋅ A
−1
⋅
δA δA
A
.
A
Первая система A ⋅ x = b называется исходной, вторая, ( A + δA ) ⋅ (x + δx) = b , — возмущенной. Число A ⋅ A −1 — числом обусловленности матрицы A по отношению к задаче обращения (матрицы), и именно оно характеризует чувствительность решения системы к изменению матрицы коэффициентов. Аналогичные оценки можно построить и для решения систем с прямоугольными матрицами по методу наименьших квадратов. Одновременное знание числа обусловленности и возмущения, "вносимого" в систему конкретным численным методом при работе с числами с плавающей точкой, позволяет оценить погрешность полученного решения. Под вносимой или эквивалентной погрешностью метода понимается следующее. Предположим, что мы нашли численное решение. Мы знаем, что оно отличается от истинного ("точного") решения системы A ⋅ x = b . Численное решение является точным решением какой-то другой, неизвестной нам возмущенной системы ( A + δA ) ⋅ (x + δx) = b . Если бы удалось оценить значение δA , то мы могли бы предсказать и значение δx . Оказывается, что значения δA можно найти для каждого численного метода решения систем линейных алгебраических уравнений. Оценки погрешности обычно достижимы, т. е. для заданной матрицы найдется такой вектор правой части, что соответствующее ему решение будет найдено с указанной в оценке погрешностью. Однако сказать, насколько далек конкретный вектор от того вектора, что приводит к максимально возможной
186
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
погрешности, невозможно. Если у вас есть дополнительные основания считать оценку завышенной в конкретном случае, можете не принимать ее во внимание. Выбор алгоритма решения задачи (решение системы, решение системы по методу наименьших квадратов, построение обратной матрицы) существенно зависит от размера матрицы. При машинном счете успех зависит от сложности задачи, быстродействия компьютера и объема свободной оперативной памяти. Большая размерность задачи может потребовать как большого числа операций (большого быстродействия), так и большого объема памяти для хранения исходных данных и промежуточных результатов вычислений. Среди задач большой размерности выделяют задачи с разреженными матрицами. Разреженной называется матрица, у которой число ненулевых коэффициентов много меньше общего числа коэффициентов. Коэффициентом разреженности называется отношение числа ненулевых элементов к общему числу элементов. К числу разреженных матриц регулярной структуры можно отнести треугольные матрицы (разреженность почти 50%), ленточные матрицы, в частности трехдиагональные матрицы большого порядка, у которых разреженность пропорциональна числу ≈ 3 n , где n — порядок матрицы. Чаще всего разреженные матрицы имеют нерегулярную структуру, т. е. ненулевые элементы в них расположены в произвольных местах. Методы решения систем линейных алгебраических уравнений делятся на прямые и итерационные. Применяемые прямые методы решения систем линейных алгебраических уравнений основаны на матричных разложениях. Если квадратную матрицу A можно представить в виде сомножителей A1 и A 2 , A ⋅ x = b ⇒ A1 ⋅ A 2 x = b ,
то можно последовательно решать две новые системы A 1 ⋅ y = b; A 2 ⋅ x = y .
Если множители A1 и A 2 обладают особыми свойствами, упрощающими решение новых систем, то такой способ может оказаться выгодным. Например, если множители оказываются треугольными матрицами, то решение находится очень просто. Если множители найдены, то решение систем с одной матрицей и многими правыми частями так же упрощается — для каждой новой правой части можно использовать уже готовые множители. Наиболее часто используются следующие матричные разложения: LU-разложение и QR-разложение. LU-разложение, в котором множители являются треугольными матрицами, служит основой метода Гаусса. Программная реализация метода Гаусса
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
187
содержит две подпрограммы. Первая формирует нижнюю треугольную матрицу L , верхнюю треугольную матрицу U , такие что A = L ⋅ U , и оценивает число обусловленности (но не вычисляет, так в приведенную выше формулу для числа обусловленности входит обратная для исходной матрицы, и вычислять ее значение невыгодно). Вторая подпрограмма вычисляет решение для заданного вектора правой части, используя найденные множители. QR-разложение применяется и для решения систем линейных уравнений и для решения проблемы собственных значений. Матрица Q в этом разложении — ортогональная матрица, т. е. обратной для нее является транспонированная матрица QT , а R — треугольная матрица. Строить QR-разложение можно различными способами. Для характеристики и сравнения численных методов, базирующихся на различных разложениях, используют: меру сложности, выражаемую в числе операций.
2 3 n операций сложения и умножения чисел с пла3 вающей точкой. Для различных вариантов методов, основанных на QR-
Метод Гаусса требует
разложении необходимо ≤ 2n 3 операций; оценку погрешности вычисленного решения.
x − x x
E
≤ 2 ⋅ cond( A ) ⋅ f (n) ⋅ p −t +1 ,
E
где •
x − x x
E
— относительная погрешность вычисленного решения для
E
евклидовой нормы; •
cond( A ) — число обусловленности матрицы системы;
•
f (n) — функция погрешности численного метода;
•
p −t +1 — машинная погрешность для машин с основанием системы счисления p , использующих t -разрядную арифметику чисел с плавающей точкой.
Функция f (n) погрешности метода зависит от порядка решаемой системы n . Для метода Гаусса функция погрешности имеет вид f (n) = α ⋅ n . Число α
188
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
зависит от вида матрицы системы и теоретически может достигать значений порядка 2 n , однако, как показывает практика, это происходит чрезвычайно редко. Для различных вариантов методов, основанных на QR-разложении, функция погрешности имеет вид f (n) = 2.9 ⋅ n . В качестве программных реализаций прямых численных методов наиболее часто используют специализированные коллекции LINPACK, LAPACK. Многокомпонентные модели обычно приводят к системам уравнений с разреженными матрицами. Сложность работы с разреженными матрицами заключается в том, что в прямых методах из разреженности исходной матрицы отнюдь не следует разреженность ее множителей, а уж тем более не приходится рассчитывать на разреженность обратной матрицы. При реализации прямых методов для систем с разреженными матрицами, прежде всего, выбирают способ хранения разреженных матриц. Самый простой заключается в организации списка, элементом которого является значение ненулевого элемента матрицы и его координаты (номер строки, номер столбца). Затем стараются в пределах возможного изменить алгоритм построения множителей так, чтобы в результате построить разреженные множители. Изменения заключаются в поиске такой перестановки строк и столбцов исходной матрицы, разреженность множителей которой больше, чем у множителей для исходной. Если это удается сделать, выигрыш может оказаться значительным. Решению систем линейных уравнений уделяется особое внимание, т. к. эта операция в качестве вспомогательной входит в очень многие численные методы.
Ïðîáëåìà ñîáñòâåííûõ çíà÷åíèé С задачей о поиске собственных чисел и собственных векторов матриц мы сталкивались как с основной задачей при определении свойств динамических систем и при построении стационарных решений для цепей Маркова. Напомним, что решение системы линейных дифференциальных уравнений dx = A ⋅ x, x(0) = x 0 dt может быть представлено в виде x (t ) = e At x(0) ,
где e At — матрица, которая называется матричным экспоненциалом. Матричный экспоненциал определяется как ряд
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
189
e At = ∑ i
(At ) i . i!
Решение для системы из n уравнений, записанное в координатной форме, можно представить как xi (t ) = ∑ e λit ⋅ cij , i = 1, n , j
где λ i — собственные числа матрицы A , или корни характеристического полинома det(A − λE) = A − λE = 0 , а коэффициенты cij зависят от начальных условий. Если собственные числа вещественной матрицы вещественны и различны, то существует такая вещественная матрица S , что матрица A может быть приведена к диагональному виду с помощью преобразования подобия S −1 ⋅ A ⋅ S = Λ, Λ = diag (λ i ), i = 1, n .
Это равенство обычно записывают в виде A ⋅ S = S ⋅ Λ , а матрицу S называют матрицей собственных векторов. Знание собственных чисел и собственных векторов позволяет представить систему линейных уравнений в очень простом виде: S −1
dx = S −1 ⋅ A ⋅ S ⋅ S −1x, S ⋅ S −1 ⋅ x (0) = x 0 dt
dy = S −1 ⋅ A ⋅ S ⋅ y , y (0) = S −1x 0 , y = S −1x . dt dy = Λ ⋅ y , y (0) = d. dt
Не стоит обольщаться простотой формы последнего уравнения, так как может оказаться, что численно найти матрицы Λ и S будет трудно. В то же время эта форма наглядно показывает, что для устойчивости решения системы линейных дифференциальных уравнений необходимо, чтобы все корни характеристического уравнения, если речь идет только о вещественных корнях, были бы отрицательны. И ради выяснения только этого факта можно пойти на дорогостоящие вычисления, численно решая при этом исходные уравнения. При исследовании цепей Маркова было показано, что стационарное распределение вероятностей существует, если решение разностного уравнения z k +1 = z k ⋅ P , k = 0, 1, 2, ... стремится к решению уравнения π = π ⋅ P , где z k и π — векторы-строки, а P — переходная матрица вероятностей. В последнем
190
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
уравнении легко узнается собственный вектор πT матрицы P T , соответствующий собственному числу, равному единице: π T = λ ⋅ P T ⋅ π T , λ = 1 . Очевидно, что даже у вещественной матрицы собственные числа могут оказаться не только различными вещественными числами, но и комплексными, и кратными, т. к. речь идет о корнях полинома с вещественными коэффициентами. Оказывается, что произвольную матрицу нельзя привести к диагональному виду с помощью преобразования подобия. Оказывается, что наиболее простой формой, к которой можно привести вещественную матрицу с помощью преобразования подобия, является блочнодиагональная матрица, состоящая из блоков двух типов — диагональных и двухдиагональных матриц. Диагональные матрицы содержат вещественные или комплексные собственные числа кратности 1, а двухдиагональные матрицы размером k × k — собственные числа кратности k . При этом и матрица S в общем случае оказывается комплексной. Примером такой простой формы может служить матрица, содержащая два вещественных собственных числа λ1 и λ 2 кратности один и два соответственно и комплексную пару μ ± iν : 0 0 0 ⎡λ1 ⎢ 0 μ + iν 0 0 ⎢ ⎢0 μ − iν 0 0 ⎢ λ2 0 0 ⎢0 ⎢⎣ 0 0 0 0
0⎤ 0 ⎥⎥ 0 ⎥. ⎥ 1⎥ λ 2 ⎥⎦
Часто в приложениях требуют, чтобы и матрица S , и матрица наиболее простой формы, к которой приводится исходная матрица, были бы вещественными. И в этом случае наиболее простой формой остается блочная матрица, но теперь в ней появляются блоки с вещественными коэффициентами, собственными числами которых являются комплексные пары, различные или кратные. Приведенная выше матрица теперь будет выглядеть так ⎡λ1 ⎢0 ⎢ ⎢0 ⎢ ⎢0 ⎢⎣ 0
0 μ
0 +ν
0 0
−ν 0
μ 0
0 λ2
0
0
0
0⎤ 0 ⎥⎥ 0 ⎥. ⎥ 1⎥ λ 2 ⎥⎦
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
191
Новая клетка ⎡ μ + ν⎤ ⎢− ν μ ⎥ ⎣ ⎦
с вещественными коэффициентами и содержит комплексную пару μ ± iν . И при поиске собственных чисел естественно поставить вопрос о зависимости собственных чисел от коэффициентов исходной матрицы. Даже на простом примере видно, что клетки вида ⎡λ 2 ⎢0 ⎣
1⎤ λ 2 ⎥⎦
с кратными корнями могу доставлять большие неприятности при появлении возмущения ε : ⎡λ 2 ⎢ε ⎣
1⎤ . λ 2 ⎥⎦
Действительно, мало того, что погрешность может достигать величины k ε для клеток размерности k , но и сами числа при определенных значениях ε могут превратиться из кратных вещественных в комплексные или в почти равные вещественные. Тем самым искажается очень важная, качественная информация о структуре матрицы. Числом обусловленности матрицы A для задачи поиска собственных чисел называется число S ⋅ S −1 для тех матриц, которые приводятся преобразованием подобия к диагональному виду. Для матриц, не приводимых к диагональному виду, число обусловленности для задачи поиска собственных чисел полагается равным бесконечности. Обнаружить практически, что мы имеем дело с кратными собственными числами, сложно, т. к. ошибки округления неминуемо искажают структуру таких матриц, и мы обнаруживаем в матрице только диагональные блоки. Среди матриц, приводимых преобразованием подобия к диагональному виду, выделяют симметричные матрицы. Как известно, симметричные матрицы, приводятся к диагональному виду с помощью ортогональных матриц, для которых S −1 = S T , и таким образом S ⋅ S −1 = 1 , что говорит об их прекрасной обусловленности. Оценка погрешности при поиске собственных значений для матриц приводимых к диагональному виду, выглядит следующим образом. Обозначим собст-
192
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
венные числа исходной матрицы A через λ , а собственные числа возмущен~ ной матрицы A + δA через λ . Тогда ~ λ i − λ i ≤ k i ⋅ δA 2 ,
ki =
si
2
⋅ s *i *
( si , s i )
2
,
где:
k i — коэффициенты перекоса матрицы A ;
( si , s *i ) — скалярное произведение собственных векторов матриц A и A T , соответствующих одному и тому же собственному числу λ i .
Эту оценку можно записать и в таком виде (теорема Бауэра–Файка): λi* − λ i ≤ S ⋅ S −1 ⋅ δA .
Последнее неравенство говорит о том, что для каждого собственного значе~ ния λ возмущенной матрицы найдется некоторое значение собственного числа λi* исходной матрицы, такое, что возмущение собственного числа будет пропорционально возмущению элементов матрицы. Эта формула еще раз подтверждает, что симметричные матрицы, для которых коэффициенты перекоса равны единице, хорошо обусловлены для задачи поиска собственных значений. Наиболее распространенным алгоритмом поиска собственных значений является QR-алгоритм. Рассмотрим исходную матрицу A , и положим A1 = A . Построим итерационный процесс
Ak = Qk ⋅ R k , A k +1 = R k ⋅ Q k для k = 1, 2, 3, ... . Матрицы Q k и R k — это ортогональная и треугольная матрица соответственно. Матрицы A и A k , во-первых, подобны, т. е. имеют одинаковые собственные числа, а во-вторых, матрицы A k постепенно сходятся к блочной верхней треугольной матрице, блоки которой и содержат искомые собственные числа. В таком виде алгоритм не применяют из-за его медленной сходимости, но если его дополнить вспомогательными операциями — масштабированием, приведением масштабированной матрицы к форме Хессенберга и вычислением
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
193
сдвигов, то получится работоспособный и повсеместно применяемый численный алгоритм. Заметим, что мы имеем дело с итерационным процессом, и не можем рассчитывать на то, что за конечное число шагов получим точные значения собственных чисел. Матрица A k при любом числе итераций будет оставаться приближением к искомой матрице простой формы. Масштабирование, или уравновешивание матрицы, — это попытка построить ~ ~ матрицу A , подобную исходной A = D ⋅ A ⋅ D −1 , с помощью диагональной матрицы D , так чтобы норма построенной матрицы была бы меньше нормы исходной матрицы. Дело в том, что погрешность, появляющаяся в процессе вычисления, пропорциональна норме исходной матрицы, и чем норма меньше, тем точнее будут найдены собственные числа. Очевидно, что погрешность особенно сильно сказывается на младших по модулю собственных числах. Второй прием, который стоит отметить, поскольку он все чаще применяется в вычислениях, — это изменение формы исходной матрицы, так чтобы операции над новой матрицей стали менее трудоемкими. Очень часто в качестве такой формы выбирают форму Хессенберга. Например, верхняя хессенбергова форма матрицы — это верхняя треугольная матрица, у которой не равна нулю еще одна, примыкающая к главной наддиагональ. Аналогично можно определить и нижнюю хессенбергову матрицу. При выполнении QRразложения оказывается, что все матрицы A k будут хессенберговы, если исходная матрица A была таковой. Приведение исходной матрицы к хессенберговой — безопасная с точки зрения внесения дополнительных ошибок и недорогая операция, зато QR-разложение такой матрицы требует всего лишь 4 ≈ 2n 2 арифметических операций, по сравнению с числом ≈ n 3 в общем 3 случае. На скорость работы QR-алгоритма, оказывают влияние так называемые сдвиги, когда в процессе самого алгоритма учитывается информация о найденных приближениях собственных чисел. Наиболее известной специализированной коллекцией подпрограмм для поиска собственных значений является коллекция EISPACK. Сегодня чаще используют коллекцию LAPACK. Программы для поиска собственных чисел и собственных векторов можно найти в любой численной библиотеке. В заключение можно отметить, что для симметричных матриц, численный поиск собственных значений, выполняется и быстро, и надежно. В случае несимметричных матриц, а именно, системы с такими матрицами наиболее характерны при исследовании динамических систем, к найденным собственным числам следует относиться с осторожностью и, как и при решении всякой сложной задачи, использовать как можно больше дополнительной информации.
194
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Ñèñòåìû íåëèíåéíûõ àëãåáðàè÷åñêèõ óðàâíåíèé Системы нелинейных алгебраических уравнений возникают в качестве основной задачи при решении очень многих задач. В качестве дополнительной задачи мы сталкиваемся с ними при численном решении обыкновенных дифференциальных уравнений неявными методами (см. разделы, посвященные обыкновенным дифференциальным и алгебро-дифференциальным уравнениям). Рассмотрим систему из n нелинейных алгебраических уравнений с n неизвестными, записанную в виде G ( x, t ) = 0; x ∈ ℜ n ,
где G (x, t ) — вещественная вектор-функция, а переменная t ∈ [0, T ] трактуется как время. Даже при фиксированном значении t = t * решение системы нелинейных уравнений может вызывать трудности. Как и в случае систем линейных уравнений воспользуемся примером уравнений на плоскости. В отличие от пересечения или совпадения двух прямых, мы имеем дело с пересечением или совпадением гладких кривых. Точек пересечения: может не быть вовсе; может быть одна или их, возможно, будет несколько; может быть счетное число, но они будут изолированными; кривые могут частично совпасть — и тогда решений будет континуум. Численный алгоритм должен "понимать", что решений нет, и не тратить время на поиск несуществующих решений. Численный алгоритм должен также "понимать", что в окрестности искомого корня, возможно, находятся еще несколько, и выбирать один, а не перепрыгивать с корня на корень по ходу решения. В нашем случае поиск корня осложняется тем, что мы ищем не просто корень, а функцию, зависящую от времени, которая в каждый момент является корнем системы нелинейных уравнений. И алгоритм должен уметь "двигаться" по этой кривой. Это достаточно трудные численные задачи, и они требуют специального подхода. При решении нелинейных уравнений выделяют две различные фазы работы алгоритма. Первая задача — локализовать корни и тем самым свести задачу ко второй, более простой, когда заранее известно, что корень существует и единственен. Для оценки чувствительности решений нелинейных уравнений не существует столь же простых формул, как для решения линейных уравнений или поиска собственных значений.
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
195
Как и при решении проблемы собственных значений, для поиска корней применяются итерационные методы. Сложность и работоспособность итерационных методов определяется в данном случае во многом тем, какую информацию о системе используют в процессе решения. Одна группа методов не использует информацию о производной функции G (x, t ) либо ее конечноразностной аппроксимации, как, например, в разновидностях метода простой итерации, другая использует. Среди методов, использующих информацию о производной, наиболее распространены метод Ньютона и его модификации. Именно они реализованы в большинстве численных библиотек. Обобщение метода Ньютона для поиска корня нелинейной функции на систему уравнений приводит к формуле x k +1
⎛ ∂G ( x k , t * ) ⎞ ⎟ = xk − ⎜ ⎜ ⎟ ∂ x ⎝ ⎠
−1
⋅ G (x k , t * ), k = 0, 1, 2, ... .
Эта формула не гарантирует успеха для произвольного начального приближения x 0 . Даже, если корень существует и единственен, совсем не обязательно, что итерационный процесс будет сходиться к нему от любого начального приближения. Более того, никто не гарантирует, что, начавшись удачно, процесс поиска корня не приведет к такому очередному приближению, что сходимость нарушится. Еще одной часто встречающейся трудностью является то, что линейное приближение, лежащее в основе формулы, может и не ∂G ( x k , t * ) существовать, а так происходит, если матрица Якоби становится ∂x вырожденной. Для скалярного уравнения это реализуется, если кривая не пересекает ось абсцисс, а касается ее. Решение может быть найдено только случайно, за счет ошибок вычисления матрицы Якоби. Все перечисленные и не перечисленные трудности, конечно же, имеют место при практических вычислениях, но многие задачи все-таки решаются, и пользователь даже не подозревает, каких неприятностей он счастливо избежал при построении решения. В приведенном выше виде метод Ньютона не применяют, т. к. в него входит матрица, обратная для матрицы Якоби. Формулу переписывают ∂G ( x k , t * ) ( x k +1 − x k ) = G ( x k , t * ) , k = 0, 1, 2, ... , ∂x и на каждой итерации решают систему линейных алгебраических уравнений.
Однако и эта формула используется не столь часто, т. к. на каждой итерации требуется вычислить новое значение матрицы Якоби. Известно, что матрицу
196
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Якоби можно не вычислять на каждом шаге итерационного процесса. Это можно делать реже — например, на каждой третьей итерации. В большинстве случаев такая модификация метода приведет только к незначительному замедлению сходимости и к сокращению числа вычислений конечноразностной аппроксимации матрицы Якоби. Более того, иногда матрицу Якоби заменяют специально подобранной диагональной. Упрощенная формула метода Ньютона в сочетании с хорошим начальным приближением работает очень эффективно. При моделировании динамических систем сама постановка задачи гарантирует наличие хорошего начального приближения. Действительно, если решение не претерпевает значительных изменений в окрестности точки t * и ведет себя достаточно гладко, то в качестве нового приближения для точки t * + δt достаточно выбрать x (t * ) , а если сходимость окажется плохой, уменьшить δt .
Ñèñòåìû îáûêíîâåííûõ äèôôåðåíöèàëüíûõ óðàâíåíèé Мы рассмотрим только одну задачу, связанную с решением дифференциальных уравнений. Будем искать решение системы из n уравнений первого порядка: ds = f (s) , s ∈ℜn , dt проходящее через заданную точку в заданный момент времени, или, иначе, задачу построения решения с заданными начальными условиями. Начальные условия s(0) = s 0 для простоты будем всегда задавать при t = 0 , что никак не ограничивает общности.
Написанная система называется автономной (вещественная вектор-функция f (s) зависит только от вектора s(t ) и не зависит явно от времени) или динамической системой, в отличие от неавтономных систем, где функция f явно зависит и от времени f = f (s, t ) , и от вектора s(t ) . Решение автономной и неавтономной систем ищется на заданном промежутке времени — конечном [0, T ] или бесконечном [0, ∞] . Говорят, что в приведенной выше форме уравнения разрешены относительно производных. Эту форму также называют формой Коши. Возможность построить решение уравнения явно, через известные функции, предоставляется редко, но всегда, прежде чем начинать решать уравнение
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
197
численно, стоит обратиться к одному из современных математических пакетов. В дальнейшем мы будем говорить только о численном решении уравнений. Среди динамических систем выделяют системы линейных дифференциальных уравнений ds = A ⋅ s + b , s(0) = s 0 , dt решение которых может быть представлено в явном виде t
s(t ) = e At s0 + ∫ (e Aτ − E) ⋅ b ⋅ d τ , 0
где e Aτ — матричный экспоненциал, а E — единичная матрица, однако построить такое решение сложно. Основная трудность связана с необходимостью строить матричный экспоненциал. Для динамических систем известны условия существования и единственности решения. Они сводятся к требованию либо непрерывности вектора правой части и его производной, либо удовлетворению требования Липшица для всех аргументов вектора правой части f ( x, t ) − f ( y , t ) ≤ L x − y ,
где L — константа Липшица. Теория динамических систем редко интересуется формой решаемых уравнений, в то же время при численном решении форма уравнений становится важной характеристикой систем. К уравнениям первого порядка, представленным в форме Коши, приводятся системы уравнений порядка выше первого, разрешенные относительно старших производных. Исторически сложилось так, что задача приведения исходных уравнений к уравнениям первого порядка в форме Коши долго возлагалась на пользователей программного обеспечения. Программисты, вслед за математиками, считали, что интерфейс программного обеспечения должен быть единым для всех видов уравнений, и выбрали в качестве эталона форму Коши. Постепенно стало выясняться, что, например, формы A⋅
ds = f (s) , A ∈ ℜ n×n ; A = [ai , j = const] dt
или A (s ) ⋅
ds = f (s) , A ∈ ℜ n×n dt
198
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
ничем не хуже, и при численном решении даже не требуют явного разрешения написанных уравнений относительно производных. Выяснилось, что можно успешно создавать программное обеспечение непосредственно для уравнений вида d 2s
= f (s) , s ∈ℜn . dt 2 Наконец возникла практическая потребность в численном решении нелинейных относительно производных уравнений общего вида ⎛ ds ⎞ F ⎜ , f (s ) ⎟ = 0 . ⎝ dt ⎠ В этом разделе мы предполагаем, что решение уравнений всегда существует и единственно для всех приведенных форм. При численном решении становится важным не только сама возможность привести уравнения к форме Коши, но и способ приведения. В какой бы форме ни были написаны уравнения и как бы они ни решались, очень важны такие свойства, как зависимость s − s решения s(t ; s 0 ) от начальных условий s 0 – s = s (t ; s1 ) и возмущения правой части g (s) ,
ds = f (s ) + g (s ) . dt Обратившись вновь к уравнению ds = A ⋅ s + b , s(0) = s 0 dt
и предполагая, что матрица A −1 существует, перепишем его решение в виде s(t ) = e At s 0 + A −1 ⋅ (e At − E) ⋅ b .
Точка − A −1 ⋅ b является особой точкой уравнения, т. к. в ней производная правой части равна нулю. Если все вещественные собственные числа и вещественные части комплексных чисел матрицы A отрицательны, то матричный экспоненциал e At с ростом t стремится к нулю, а это означает, что все решения такой линейной системы стремятся к решению − A −1 ⋅ b с ростом времени независимо от начальных условий. Это хорошо видно, если переписать решение в виде s(t ) = e At (s 0 + A −1 ⋅ b ) − A −1 ⋅ b .
Про такие системы говорят, что они устойчивы в целом.
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
199
Если бы среди собственных чисел матрицы A нашлись бы положительные числа, чисто мнимые, или комплексные числа с положительной вещественной частью, то решение уже не стремилось бы к решению − A −1 ⋅ b при произвольных начальных условиях. И даже если мы начнем решение с точки − A −1 ⋅ b , то малейшее возмущение приведет к стремительному отклонению от начального значения. Такие особые точки следует назвать неустойчивыми.
Когда мы имеем дело с уравнениями общего вида, рассчитывать на то, что любое отклонение от устойчивого решения, как это было для устойчивых в целом систем линейных уравнений, будет со временем сведено к нулю, не приходится. В общем случае, для уравнения ds = f (s) , s ∈ℜn dt
точки, для которых f (s) = 0 , также называются особыми. В общем случае, решение s(t ) называется устойчивым по Ляпунову, если для всякого ε > 0 можно указать такое δ > 0 , что из неравенства y (0) − s0 ≤ δ следует неравенство y (t ) − s(t ) ≤ ε , ∀t ≥ 0 . Здесь под y (t ) понимается любое другое решение исходного уравнения с начальным условием y (0) . Особо выделяют устойчивые решения, обладающие тем свойством, что для них существует ρ -окрестность начальной точки y (0) − s0 ≤ ρ ,
в которой все решения y (t ) обладают свойством бесконечно близко приближаться к устойчивому решению с ростом времени lim y (t ) − s(t ) = 0 .
t →∞
Такие решения называют асимптотически устойчивыми. Подчеркнем, что в данном случае речь шла о поведении решений на бесконечном промежутке времени. Рассмотрим теперь решения s(t ) , s (t ) двух систем на конечном промежутке времени t ∈ [0, T ] : возмущенной
ds = f (s ) + g (s ) , s (0) = s 0 ; dt
200
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
не возмущенной
ds = f (s) , s(0) = s 0 . dt
Предположим, что возмущение правой части g (s ) ≤ η , отклонение по начальным
условиям
s0 − s 0 ≤ δ
и
правая
часть
таковы,
что f (s) − f (s ) ≤ L s − s . Тогда можно показать, что s(t ) − s (t ) ≤
η Lt ⋅ (e − 1) + δ ⋅ e Lt L
при t ∈ [0, T ] . Если возмущение правой части g (s ) отсутствует, то s(t ) − s (t ) ≤ δ ⋅ e Lt ,
и по любому ε = δ ⋅ e Lt можно найти такое δ , что из s0 − s 0 ≤ δ следует s(t ) − s (t ) ≤ ε . Это означает, что на конечном промежутке решение всегда устойчиво по начальным условиям. Точно также, если возмущение по начальным условиям отсутствует, то
s(t ) − s (t ) ≤
η Lt ⋅ (e − 1) , L
η Lt ⋅ (e − 1) можно найти η , при котором из g (s ) ≤ η следуL ет s(t ) − s (t ) ≤ ε . И в этом случае мы наблюдаем устойчивость.
и по любому ε =
Следовательно, решение на конечном промежутке устойчиво как к возмущению начальных условий, так и к возмущению правой части. Как уже отмечалось, на бесконечном промежутке малейшее возмущение любого типа может привести к тому, что решения невозмущенной и возмущенной систем будут отличаться на сколь угодно большую величину. Для устойчивости систем линейных уравнений с постоянными коэффициентами необходимо и достаточно, чтобы все вещественные части собственных чисел матрицы системы были бы отрицательными. С точки зрения численного решения становятся важными и такие свойства решения, как: временные масштабы протекающих в системе процессов — наличие бы-
стрых и медленных процессов одновременно (жесткость);
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
201
качественные отличия одновременно протекающих процессов — наличие
одновременно монотонных и колебательных процессов, существование сильно различающихся по частоте колебаний, возникновение быстрых переходных процессов: почти скачкообразного поведения отдельных компонентов. Остановимся, прежде всего, на явлении жесткости, связанной с существованием в системе одновременно протекающих быстрых и медленных процессов. Явление жесткости проще всего продемонстрировать на примере систем линейных уравнений с постоянными коэффициентами. Предположим, что мы имеем дело с устойчивой системой, матрица которой имеет только отрицательные вещественные собственные числа. Обозначим эти собственные числа через
{λ1 ≤ λ 2 ≤ ... ≤ λ N } и упорядочим по возрастанию. Предположим, что среди собственных чисел существует группа больших по модулю {λ1 ≤ λ 2 ≤ ... ≤ λ k } и группа малых {λ k << λ k +1} собственных чисел. Если вспомнить, что любое решение системы можно выразить через линейную комбинацию независимых решений ci ,1e λ1t + ci , 2 e λ2t + ... + ci , N .e λ N t ,
то становится очевидным, что, начиная с определенного момента времени, в этой сумме практически будут отсутствовать члены, соответствующие большим по модулю собственным числам. Чем больше группа больших по модулю собственных чисел и чем больше их модули по сравнению с остальными собственными числами, тем явственнее наблюдается следующий эффект — какие бы начальные условия ни были заданы, буквально сразу же решение приближается к одному и тому же медленно меняющемуся решению, определяемому маленькими по модулю собственными числами. Говорят, что такая система является жесткой. В жестких системах существенно различаются два масштаба времени: один для быстрых составляющих, второй — для медленных. Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений весьма разнообразны. Будем придерживаться очень простой классификации. Разделим все методы на одношаговые, вычисляющие правую часть уравнения только в пределах одного шага интегрирования, и многошаговые, использующие информацию о правой части в предыдущих точках. И те, и другие могут быть как явными, так и неявными численными методами.
202
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Применяемые на практике численные методы решения обыкновенных дифференциальных уравнений основаны на аппроксимации исходного дифференциального уравнения ds = f ( s, t ) , s (0) = s 0 dt
разностным. Например, можно представить написанное дифференциальное уравнение в виде t
s(t ) = s(0) + ∫ f ( s (τ),τ)dτ , 0
и аппроксимировать интеграл суммой m
s (t ) = s (0) + ∑ k i ⋅ f ( s (τ i ), τ i ) , τ 0 = 0 , τ m = t . i =0
Если коэффициент k m = 0 , то мы получаем явные методы, в которых для нахождения s (t ) достаточно вычислить сумму i = 0, ..., m − 1 считаются известными.
m
∑ ki ⋅ f (s(τi ), τi ) ,
i =0
где s ( τ i ) ,
Если k m ≠ 0 , то для нахождения s (t ) уже необходимо решать нелинейное уравнение, что и позволяет называть методы этого типа неявными. Учитывая, что нам предстоит искать решение уравнения на промежутке [0, T ] произвольной длины, разобьем его точками t i +1 = t i + hi , i = 1, ..., N , t 0 = 0; t i +1 = T на меньшие промежутки и будем выбирать hi достаточно малыми, т. к. точность аппроксимации интеграла зависит и от количества точек разбиения. Применим нашу аппроксимацию на каждом небольшом отрезке в надежде, что построенное нами приближенное решение будет близким к искомому решению дифференциального уравнения. Рассмотрим простейший пример. При аппроксимации интеграла значением функции на левом конце промежутка получим z i +1 = z i + hi ⋅ f ( z i , t i ) , i = 0, 1, ... , z 0 = s (0)
или так называемый явный метод Эйлера. При аппроксимации интеграла значением функции на правом конце промежутка получим
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
203
z i +1 = z i + hi ⋅ f ( z i +1 , t i +1 ) , i = 0, 1, ... , z 0 = s (0)
или так называемый неявный метод Эйлера. Увеличивая точность аппроксимации и вычисляя интеграл как на левом, так и на правом конце одновременно hi ⋅ ( f ( zi , ti ) + f ( zi +1 , ti +1 )) , i = 0, 1, ... , z 0 = s (0) , 2 получим метод трапеций. zi +1 = z i +
Во всех этих методах через zi = z (ti ) обозначено приближение к искомому решению zi ≈ s (ti ) . Во всех приведенных формулах мы использовали информацию о поведении правой части и решения только внутри каждого рассматриваемого отрезка. Обобщая приведенные формулы и используя информацию о правой части в предыдущих точках, получим: z i +1 = z i + hi ⋅ (β m f i +1 + β m−1 f i + ... + β 0 f i −m+1 ) , i = 0, 1, 2, ... , f i = f ( z i , ti ) .
Если теперь дополнительно использовать и информацию о самом решении, то последняя формула приобретет вид: α m z i +1 + α m−1 z i + ... + α 0 z i −m +1 = hi ⋅ (β m f i +1 + β m−1 f i + ... + β 0 f i −m+1 ) , i = 0, 1, 2, ...
Если коэффициент α m отличен от нуля, методы называются неявными линейными многошаговыми методами, в противном случае — явными. Существуют различные способы выбора коэффициентов α i , βi , и эти способы дают конкретные имена методам: методы Адамса
5 8 1 f n+1 + fn − f n−1 ) , 12 12 12
z n+1 = z n + h( методы Милна–Симпсона
1 4 1 z n+1 = z n−1 + h( f n+1 + f n + f n−1 ) , 3 3 3 методы Куртиса–Хиршфельдера, или формулы дифференцирования назад 2 1 z n+1 − 2 z n−1 + z n = hf n+1 . 3 2
204
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Все три формулы — неявные, и во всех для вычисления z n+1 необходимо предварительно вычислить значения z n , z n−1 . Таким образом, использование информации о предыдущих точках приводит нас к необходимости особым образом начинать процесс численного интегрирования, т. к. в начальной точке нам известны только начальные условия z 0 и неизвестна предыстория — z −1 . Этого недостатка лишены простейшие методы. Например, явный метод Эйлера, при работе с которым вычисления во всех точках одинаковы. Желание пользоваться только информацией на промежутке интегрирования приводит нас к методам Рунге–Кутты. Явные s-стадийные методы Рунге–Кутты имеют вид: k1 = f (ti , zi ) k 2 = f (t i + c2 hi , z i + hi a 21k1 ) k 3 = f (t i + c3 hi , z i + hi (a31k1 + a32 k 2 )) ...................................................... k s = f (t i + c s hi , z i + hi (a s1k1 + a s 2 k 2 + ... + a s ,s −1k s −1 )) zi +1 = z i + hi (b1k1 + a s 2 k 2 + ... + bs k s ),
что позволяет описывать их с помощью только таблицы, представленной на рис. 4.1. 0 c2
a 21
c3
a31
a32
c4
a41
a42
a43
a s1
as 2
as3
...
a s , s −1
as, s
b1
b2
b3
...
bs −1
bs
. . cs
Рис. 4.1. Таблица s-стадийных методов Рунге–Кутты
В неявных методах Рунге–Кутты коэффициенты матрицы A = [ai , j ] уже не образуют строго нижней треугольной матрицы и могут быть записаны в виде
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
205
k1 = f (ti , zi ) k 2 = f (ti + c2 hi , zi + hi (a 21k1 + a22 k 2 + ... + a2,s k s )) k 3 = f (ti + c3 hi , zi + hi (a31k1 + a32 k 2 + ... + a3,s k s )) ...................................................... k s = f (ti + c s hi , zi + hi (a s1k1 + a s 2 k 2 + ... + a s ,s k s )) zi+1 = zi + hi (b1k1 + a s 2 k 2 + ... + bs k s )
или в виде таблицы, представленной на рис. 4.2. 0 c2
a 21
a 22
a 23
...
a 2, s
c3
a31
a32
a33
...
a3, s
c4
a41
a42
a43
...
a 4, s
a s1
as 2
as3
...
as, s
b1
b2
b3
...
bs
. . cs
Рис. 4.2. Таблица неявного метода Рунге–Кутты
Как видно из таблицы неявных методов, теперь для получения решения в очередной точке приходится решать систему нелинейных алгебраических уравнений. Различный выбор коэффициентов методов дает конкретные методы: явный метод Рунге (рис. 4.3); неявный метод Хаммера–Холлингсуорта (рис. 4.4). 0 1 2
1
1
0
1
1
0
0
1
2
6
2
3
0 2
1 0
1
6
Рис. 4.3. Таблица явного метода Рунге
3
0 1 1
3 4
0 1 3
3 4
Рис. 4.4. Таблица для записи неявного метода Хаммера–Холлингсуорта
206
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Процесс нахождения решения в одношаговых методах не зависит от точки, в которой мы вычисляем решение. В начальный момент времени нам известны начальное приближение z 0 и значение h , при котором мы хотим найти приближение z1 к точному решению s(h) . Говорят, что метод Рунге–Кутты имеет порядок p , если s (h) − z1 ≤ K ⋅ h p+1 ,
или, иными словами, ряды Тейлора для точного и приближенного решений совпадают до порядка p включительно. Локальная погрешность формул численного интегрирования дифференциальных уравнений или погрешность на одном шаге интегрирования определяется порядком метода. Необходимо помнить, что современные численные методы умеют контролировать только локальную погрешность — все исходные данные для очередного шага считаются точными, и метод лишь подбирает величину очередного шага, обеспечивающего заданное пользователем значение локальной относительной или абсолютной погрешности. Мы не погрешим против истины, если скажем, что выбор между одношаговыми методами и многошаговыми — дело вкуса и предмет ожесточенных дискуссий профессионалов. В различных открытых библиотеках вы можете найти программные реализации и тех, и других методов на различных алгоритмических языках. Гораздо серьезнее обстоит дело при выборе между явными и неявными методами. Из сравнения формул для явных и неявных методов видно, что неявные всегда требуют дополнительного, по сравнению с явными методами, решения системы нелинейных алгебраических уравнений. Следовательно, если рассмотреть только один шаг интегрирования, то неявные методы требуют гораздо больше вычислений, чем явные. Почему же их применяют? Ответ на вопрос связан со свойствами разностных уравнений, используемых для построения приближенных решений. Вернемся к простейшему явному методу Эйлера и выберем постоянный шаг интегрирования: z i +1 = z i + h ⋅ f ( z i , ti ) , i = 0, 1, ... , z 0 = s(0) .
Применим этот метод для решения системы линейных дифференциальных уравнений ds = A ⋅ s , s(0) = s 0 . dt
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
207
Численное решение такой системы запишется в виде: z i +1 = z i + h ⋅ A ⋅ z i = (E + h ⋅ A)i +1 z 0 .
Предположим, что собственные числа {λ1 ≤ λ 2 ≤ ... ≤ λ N } матрицы системы вещественны и отрицательны, и любое решение системы при достаточно большом значении времени t стремиться к нулю. Будет ли тем же свойством обладать приближенное решение? Будет, но только в том случае, если 1 1 E + h ⋅ A ≤ 1 или h ≅ . Таким образом, разностные уравнения могут ≅ A λ1 не просто вносить погрешность в решение, что вполне естественно и допустимо, но даже изменять его качественно, превращая устойчивые процессы в неустойчивые. Если применить неявный метод Эйлера к той же системе
z i +1 = z i + h ⋅ A ⋅ z i +1 = ⎡⎣(E − h ⋅ A ) −1 ⎤⎦ i +1 z 0 , то ограничение на величину шага будет уже выглядеть по-другому — (E − h ⋅ A ) −1 ≤ 1 , что при отрицательных собственных числах позволяет вы-
бирать шаг любой величины, ориентируясь только на требуемый уровень погрешности. Собственные числа матрицы линейной системы определяют скорости протекания процессов. Глядя на ограничения на величину шага интегрирования для явного метода, можно сделать вывод, что его не следует использовать для изучения глобального поведения системы, определяемого малыми по модулю собственными числами, если они существенно отличаются по величине от больших по модулю собственных чисел. Явный метод не позволит "быстро заглянуть в будущее" и всегда будет двигать модельное время обратно пропорционально наибольшему собственному числу, т. е. очень медленно. Простота вычислений на каждом шаге перестанет играть какую-либо роль, т. к. необходимо будет проделать огромное число шагов, прежде чем мы увидим интересующее нас глобальное поведение. Неявные же методы можно заставить двигаться с большим шагом по времени. Сложность вычислений на каждом отдельном шаге будет компенсирована малым числом шагов. В случае если нас интересуют переходные процессы, определяемые большими по модулю собственными числами, или все процессы протекают с одинаковой скоростью, то становится невыгодным применять трудоемкие неявные методы. Таким образом, можно сказать, что для решения жестких задач выгодно применять неявные методы.
208
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Современные численные методы решения обыкновенных дифференциальных уравнений умеют не только строить решение, но и оценивать такие качественные характеристики задачи, как жесткость. Оценка жесткости позволяет автоматически переключаться с методов, предназначенных для решения жестких задач, на методы для решения нежестких задач и обратно, если в том возникает необходимость. Оценка жесткости в линейных системах основывается на оценке величины собственных чисел. Снова предположим, что речь идет только о вещественных собственных числах. Знание наибольшего по модулю собственного числа λ1 и наименьшего по модулю λ N , а также промежутка интегрирования λN ⋅ T . Таким образом, при реλ1 шении систем линейных уравнений мы еще до начала интегрирования можем оценить предполагаемую жесткость и выбрать соответствующий метод. [0, T ] , позволяет нам оценить жесткость —
В случае систем нелинейных уравнений жесткость может меняться по ходу решения, и необходимо ориентироваться уже на матрицу Якоби: ∂f (t , s ) . ∂s Оценка ее собственных значений, максимального и минимального, может быть положена в основу алгоритма, определяющего жесткость задачи по ходу решения и автоматически переключающего методы решения.
Выбор шага интегрирования, обеспечивающего необходимую локальную погрешность, может осуществляться различными способами. И хотя это является "технической задачей", пользователь должен представлять, сколько дополнительных усилий на это приходится тратить. Программные реализации численных методов решения систем обыкновенных дифференциальных уравнений могут быть найдены в Интернете по адресу http://www.Mathlib. Традиционно программные реализации пишутся на языке Фортран, и многие написаны на достаточно старых его диалектах. Существуют библиотеки, написанные на языке C, который также, как и Фортран, достаточно успешно справляется с численными задачами. В последнее время появились и библиотеки, написанные на языке Java, но их, скорее всего, следует рассматривать как требование сохранения многоплатформености приложения. Линейные многошаговые методы реализованы в коллекции ODEPACK. Прекрасно зарекомендовавшие себя реализации одношаговых методов, в том числе и методы Рунге–Кутты, распространяются как приложение к книгам [11, 61].
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
209
Ñèñòåìû àëãåáðî-äèôôåðåíöèàëüíûõ óðàâíåíèé Рассмотрение систем алгебро-дифференциальных уравнений общего вида проще всего начать с систем m линейных дифференциальных уравнений относительно n неизвестных вида A⋅x + B⋅
dx = f (t ), dt
A, B ∈ℜm×n .
Выберем две пока произвольные неособенные матрицы P и Q с постоянными коэффициентами. Введем новый вектор неизвестных z , связанный со старым x преобразованием x = Q ⋅ z . Умножим исходное уравнение на матрицу P . Это соответствует тому, что вместо исходной рассматривается новая система, состоящая из линейной комбинации исходных уравнений:
dz = P ⋅ f (t ), dt A, B ∈ ℜm×n ; P , Q ∈ ℜm×m .
P ⋅ A ⋅Q ⋅ x + P ⋅B ⋅Q ⋅
Возникает вопрос, можно ли одновременно привести матрицы P ⋅ A ⋅ Q и P ⋅ B ⋅ Q к наиболее простому виду, выбирая специальным образом матрицы P и Q , и что будет представлять этот "простой вид"? Если мы ответим на этот вопрос, то найдем простейшие формы алгебро-дифференциальных уравнений. Очевидно, что системы алгебро-дифференциальных уравнений сводятся к системам линейных дифференциальных уравнений, если матрица B квадратная и обратимая. Ответ на этот вопрос дается в теории матриц, где можно найти строгие доказательства. Нам более важен результат. Различных "простых" форм уравнений всего несколько. Первая и уже известная нам форма возникает, если матрицы A , B квадратные и матрица B обратима:
dx dx = f (t ) ⇒ = B −1 ⋅ A ⋅ x + B −1 ⋅ f (t ), dt dt A , B ∈ ℜ n× n . A⋅x + B⋅
В этом случае решение единственно и зависит только от начальных условий. Дальнейшие случаи рассмотрим на примерах систем небольшой размерности, записанных в координатной форме.
210
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
Примером второй формы является система
⎧ dz2 ⎧ z = f2 , + z1 = f1 ⎪ 2 ⎪ ⇒⎨ df 2 ⎨ dt ⎪⎩ z2 = f 2 ⎪⎩ z1 = f1 − dt . у которой есть единственное решение, но оно не зависит от начальных условий. Вдобавок, для того чтобы это решение построить, необходимо знать заdf ранее или вычислять численно производную 2 . dt Третью форму мы покажем на примере системы из трех уравнений: ⎧ dz1 ⎧ ⎪ dt = f1 ⎪z2 = f3 ⎪ ⎪ df 3 ⎧⎪ df 2 d 2 f 3 ⎪ dz 2 ⎪ z f z f + = ⇒ = − ⇒ = − , f ⎨ ⎨ 1 ⎨ 1 1 2 2 2 dt dt ⎪ dt ⎪ dt ⎪ ⎩ ⎪0 ⋅ z3 + z 2 = f 3 ⎪ dz1 = f1 ⎪ ⎪ ⎩ dt ⎩
у которой: нет ни одной свободной постоянной в решении; необходима производная
df 3 ; dt
решение зависит от произвольной функции z3 ; появляется дополнительное требование согласованности правых частей
df 2 d 2 f 3 . − dt dt 2 Столько необычных условий по сравнению с динамическими системами нам еще не встречалось. f1 =
И, наконец, возможен случай:
⎧ z2 = z2 (t ), ⎧ dz1 + z2 = f1 ⎪⎪ dz1 ⎪ ⇒⎨ = − z2 + f1 , dt ⎨ dt ⎪⎩0 ⋅ z2 = f 2 ⎪ ⎪⎩ f 2 ≡ 0.
Здесь решение z1 зависит от произвольной функции z 2 (t ) , произвольного начального условия z10 , а решение системы существует только если f 2 ≡ 0 .
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
211
Простота систем и очевидность условий существования единственного решения в приведенных системах не должны никого вводить в заблуждение — как только мы столкнемся с практическими задачами, размерности систем возрастут, и увидеть, с каким случаем или, точнее, с комбинацией каких случаев, мы имеем дело, станет сложно. Более того, мы должны уметь это делать автоматически. Даже если предположить, что мы умеем правильно определять, какие дополнительные производные нам потребуются, необходимо позаботиться о программных реализациях численного дифференцирования. Пусть f обозначает вещественную функцию, зависящую от времени, чью производную f ′ нам надо найти. Рассмотрим уравнение ds = K ⋅ ( f − s) dt
и его решение t
s (t ) = e − K ⋅t s0 + K ⋅ e − K ⋅t ⋅ ∫ e K ⋅τ ⋅ f (τ)dτ , 0
где K — некоторая постоянная. В случае постоянной функции f = const решение этого уравнения при больших положительных значениях K быстро стремится к стационарному решению: s (t ) t →∞ = e − K ⋅t s0 − (e − K ⋅t − 1) ⋅ f
t →∞
⇒ f.
В этом случае его первая и вторая производные d 2s dt 2
= K ⋅(
df ds d 2s df − )⇒ 2 =K⋅ − K 2 ⋅ ( f − s) dt dt dt dt
стремятся к нулю с увеличением времени, и, следовательно, в качестве приближенного значения производной можно взять выражение f ′ ≈ K ⋅ ( f − s) ,
df − K 2 ⋅ ( f − s ) ≈ 0 . Оказывается, и на это давно обратили внимание, dt последнее соотношение справедливо и для произвольных функций f (t ) .
т. к. K ⋅
212
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
В теории управления приведенное нами уравнение положено в основу линейного дифференциатора. Начальное значение переменной s можно положить равным нулю, но вот значение K , возможно, придется подбирать. Возвращаясь к решению алгебро-дифференциальных уравнений, в случае, если требуется численное дифференцирование, к решаемой системе следует добавить еще одно приведенное выше дифференциальное уравнение, правда, при этом жесткость системы может возрасти. Любое упрощение исходной системы, а приведение к простым (каноническим) формам — это тоже упрощение, желательно и, если такая возможность есть, лучше это проделать. Приводить системы линейных уравнений к канонической форме с помощью матриц P и Q с вычислительной точки зрения сложно, поэтому приведенные выше "простые формы" нужны были нам, прежде всего, для того чтобы показать необычные свойства алгебродифференциальных уравнений, возникающие уже в линейном случае. На практике всегда ищут компромисс между простой формы и сложностью алгоритма приведения к ней. Формы алгебро-дифференциальных уравнений, с которыми может работать программное обеспечение для решения обыкновенных дифференциальных уравнений, представлены в виде уравнения вида
⎧ dx ⎪ = f (x, y , t ), ⎨ dt ⎪⎩0 = g ( x, y , t ), причем неявно предполагается, что в любой точке t можно однозначно найти y = g1 ( x, t ) , и уравнениями A⋅
dx = f ( x, t ) dt
с постоянной матрицей A , которая, возможно, вырождена, или матрицей, коэффициенты которой зависят от искомых переменных. Решение уравнений в первой форме с дифференциальным и алгебраическим компонентом можно найти, используя стандартное программное обеспечение для решения обыкновенных дифференциальных уравнений, разрешая алгебраические уравнения каждый раз, когда это нужно, численно. Например, для этой цели можно использовать метод Ньютона. Если решение меняется достаточно медленно, то можно надеяться, что если алгебраическое уравнение будет решаться, то оно будет решаться быстро.
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
213
Первая форма уравнений демонстрирует еще одну особенность алгебродифференциальных уравнений. Дифференциальный компонент x для построения решения требует задания начальных условий x0 , а алгебраический — знания согласованных начальных условий y 0 = g1 ( x0 , t 0 ) ⇔ g ( y 0 , x0 , t 0 ) = 0 , поиск которых численно может вызывать большие трудности, если хорошие начальные приближения к ним заранее неизвестны. Вторая форма уравнений, не разрешенных относительно производных, интересна тем, что такие системы уравнений можно пытаться решать неявными методами решения систем обыкновенных дифференциальных уравнений, без каких-либо предварительных преобразований. Рассмотрим неявный метод Эйлера применительно к системе A⋅
dx = B ⋅ x ⇒ A ⋅ (z n +1 − z n ) = hn+1 ⋅ B ⋅ z n +1 ⇒ (A + hn +1 ⋅ B) ⋅ z n +1 = A ⋅ z n . dt
Даже если матрица A вырождена, можно пытаться подбирать шаг так, чтобы система ( A + hn+1 ⋅ B ) ⋅ z n +1 = A ⋅ z n имела бы единственное решение. Для решения систем алгебро-дифференциальных уравнений применяют как неявные многошаговые, так и одношаговые методы. Возможность найти решение произвольной системы алгебро-дифференциальных уравнений тесно связана с понятием индекса системы. Рассмотрим систему вида ⎧ dx ⎪A ⋅ + B ⋅ y = 0 ⎨ dt ⎪ ⎩D ⋅ y + C ⋅ x = 0
с квадратными невырожденными матрицами A и D . Продифференцируем второе уравнение ⎧ dx ⎧ dx ⎧ dx +B⋅y = 0 + A −1 ⋅ B ⋅ y = 0 A⋅ + B⋅y = 0 A⋅ ⎪ ⎪ ⎪ ⎪ dt ⎪ dt ⎪ dt ⇒⎨ ⇒⎨ ⎨ d d d d dy y x y x ⎪C ⋅ + D⋅ = 0 ⎪C ⋅ + D⋅ = 0 ⎪ − C − 1 ⋅ D ⋅ A −1 ⋅ B ⋅ y = 0 ⎪ ⎪ ⎪ dt dt dt dt ⎩ ⎩ ⎩ dt
и получим систему обыкновенных дифференциальных уравнений относительно вектора z = [ x, y ]T . Решения второй системы совпадают с решениями первой только в случае, если для нее выбраны согласованные начальные условия по алгебраическому компоненту y 0 = − D−1 ⋅ C ⋅ x 0 . В этом случае их
214
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
можно считать эквивалентными. В данном случае для построения системы обыкновенных дифференциальных уравнений, эквивалентной в указанном смысле системе алгебро-дифференциальных уравнений, потребовалось одно дополнительное дифференцирование. Число таких дифференцирований и называется индексом системы алгебро-дифференциальных уравнений. Для аналогичных по форме нелинейных уравнений ⎧ dx ⎪ = f ( x, y , t ) ⎨ dt ⎪ ⎩ 0 = g ( x, y , t ) дифференцирование приведет к новой системе ⎧ dx = f (x, y , t ) ⎪ ⎪ dt ⎨ ⎪0 = ∂g(x, y , t ) ⋅ dx + ∂g( x, y , t ) ⋅ dy + ∂g(x, y, t ) dt dt ∂x ∂y ∂t ⎩⎪ ∂g ( x, y , t ) на реше∂y нии. Если эта матрица не вырождена, то индекс системы будет равен единице. Современные программные реализации численных методов прекрасно справляются с системами индекса 1, а вот с системами большего индекса могут возникать проблемы. Обычно современное программное обеспечение хорошо работает с системами вида: неразрешенными относительно производных нелинейными уравнениями индекса 1 dx 0 = f ( , x, t ) , dt которые могут быть представлены в форме системы
и ее индекс будет зависеть от невырожденности матрицы
⎧ dx ⎪ = z, ⎨ dt ⎪ ⎩0 = f (z , x, t ); уравнениями индекса 2 в форме Хессенберга
⎧ dx ⎪ = f (x, y , t ), ⎨ dt ⎪ ⎩0 = g (x, t );
Ãëàâà 4. ×èñëåííîå ìîäåëèðîâàíèå
215
неразрешенными относительно производной уравнениями вида
dx = f ( x, t ) dt с постоянной вырожденной матрицей. A=
Во всех остальных случаях требуется вмешательство исследователя. Программное обеспечение для решения систем на неявных многошаговых линейных методах, неявных методах Рунге–Кутты. Для практического использования можно рекомендовать программы DASSL, RADAU5, а также программы из коллекции ODEPACK.
Ëèòåðàòóðà 1. Бахвалов Н. С., Жидков П. Н., Кобельков Г. М. Численные методы. — М.:
Наука, 1987. — 600 с. 2. Бенькович Е. С., Колесов Ю. Б., Сениченков Ю. Б. Практическое моделирование сложных динамических систем. — СПб.: БХВ-Петербург, 2001. — 441 с. 3. Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя: Пер. с англ. — М.: ДМК, 2000. — 432 с. 4. Голуб Дж., Ван Лоун Ч. Матричные вычисления. — М.: Мир, 1999. — 548 с. 5. Деммель Дж. Вычислительная линейная алгебра. Теория и приложения. — М.: Мир, 2001. — 430 с. 6. Емельянов С. В., Коровин С. К. Новые типы обратной связи. — М.: Наука, 1997. — 352 с. 7. Колесов Ю. Б., Сениченков Ю. Б. Визуальное моделирование сложных динамических систем. — СПб.: Мир и Семья & Интерлайн, 2000. — 242 с. 8. Колесов Ю. Б. Объектно-ориентированное моделирование сложных динамических систем. — СПб.: Изд-во СПбГПУ, 2004. — 239 с. 9. Самарский А. А., Михайлов А. П. Математическое моделирование: Идеи. Методы. Примеры. — М.: Наука, Физматлит, 1997. — 320 с. 10. Сениченков Ю. Б. Численное моделирование гибридных систем. — СПб.: Изд-во СПбГПУ, 2004. — 206 с. 11. Хайрер Э., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Нежесткие задачи. Жесткие и дифференциально-алгебраические задачи. — М.: Мир, 1999. — 685 с. 12. Хайрер Э., Нерсетт С., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Нежесткие задачи. — М.: Мир, 1990. 13. Modelica — A Unified Object-Oriented Language for Physical Systems Modeling. Language Specification. Version 2.0. July 10. 2002.
Ëèòåðàòóðà
217
Äîïîëíèòåëüíàÿ ëèòåðàòóðà ê ãëàâå 1 14. Бусленко Н. П.. Моделирование сложных систем. — М.:Наука,1978. —
384 c. 15. Калман Р., Фалб П., Арбиб М. Очерки по математической теории сис-
тем. — М.: Мир, 1971. — 400 c. 16. Касти Дж. Большие системы. Связность, сложность и катастрофы. — М.:
Мир, 1982. — 216 с. 17. Колесов Ю. Б., Сениченков Ю. Б. Компьютерное моделирование в науч-
ных исследованиях и в образовании // Exponenta Pro. Математика в приложениях. — 2003. — № 1. — С. 4—11. 18. Меерович Г. А. Эффект больших систем. — М.: Знание, 1985. — 231 с. 19. Шеннон Р. Имитационное моделирование — искусство и наука. — М.:
Мир, 1978. — 418 с. 20. Harel D. Statecharts: a visual formalism for complex systems. In Science of
Computer Programming, North-Holland. 1987. Vol. 8. No. 3, P. 231—274. 21. Harel D., Gery E. Executable Object Modeling with Statecharts / Computer.
July 1997. P. 31—42. 22. Kesten Y., Pnueli A. Timed and hybrid statecharts and their textual representa-
tion. Lec. Notes in Comp. Sci. Springer-Verlag, 1992. P. 591—620. 23. Ledin J. Simulation Engineering. CMP Books, Lawrence, Kansas, 2001. 24. Mosterman P. J. An overview of hybrid simulation phenomena and their sup-
port by simulation packages. In Hybrid Systems: Computation and Control '99, vol. 1569 in Lecture Notes in Computer Science, Frits W. Vaandrager and Jan H. van Schuppen (eds.). 1999. P. 165—177.
Äîïîëíèòåëüíàÿ ëèòåðàòóðà ê ãëàâå 2 25. Андронов А. А., Леонтович Е. А., Гордон М. И., Майер А. Г. Качественная
теория динамических систем 2-го порядка. — М.: Наука, 1966. — 568 с. 26. Барбашин Е. А. Введение в теорию устойчивости. — М.: Наука, 1967. —
223 с. 27. Барбашин Е. А., Табуева В. А. Динамические системы с цилиндрическим
фазовым пространством. — М.: Наука, 1969. — 299 с. 28. Бромберг П. В. Матричные методы в теории релейного и импульсного ре-
гулирования. — М.: Наука, 1967. — 323 с.
218
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
29. Емельянов Е. С. Системы автоматического управления с переменной
структурой. — М.: Наука, 1967. — 335 с. 30. Колесов Ю. Б., Сениченков Ю. Б. Синхронизация событий при использовании гибридных автоматов для численного моделирования сложных динамических систем // Научно-технические ведомости. — 2004. — № 1. — С. 202—207. 31. Колесов Ю. Б., Сениченков Ю. Б. Современные подходы к компьютерному моделированию динамических систем // Научно-технические ведомости СПбГТУ. — 2002. — № 3. — С. 93—102. 32. Уткин В. И. Скользящие режимы в задачах оптимизации и управления. — М.: Наука, 1981. — 368 с. 33. Уткин В. И. Скользящие режимы и их применение в системах с переменной структурой. — М.: Наука, 1974. — 272 с. 34. Уткин В. И., Орлов Ю. В. Теория бесконечномерных систем управления на скользящих режимах. — М.: Наука, 1990. — 133 с. 35. Филлипов А. Ф. Дифференциальные уравнения с разрывной правой частью. — М.: Наука, 1985. — 223 с. 36. Цыпкин Я. З. Теория импульсных систем. — Гостехиздат, 1958. 37. Цыпкин Я. З. Теория релейных систем автоматического регулирования. — Гостехиздат, 1955. 38. Matveev A. S., Savkin A. V. Quality theory of hybrid dynamical systems. Birkauser Boston, 2000.
Äîïîëíèòåëüíàÿ ëèòåðàòóðà ê ãëàâå 3 39. Арайс Е. А., Дмитриев В. М. Автоматизация моделирования многосвязных
механических систем. — М.: Машиностроение, 1987. — 240 с. 40. Глушков В. М., Гусев В. В., Марьянович Т. П., Сахнюк М. А. Программные средства моделирования непрерывно-дискретных систем. — Киев: Наукова думка, 1975. — 152 с. 41. Колесов Ю. Б., Сениченков Ю. Б. Синхронизация событий при использовании гибридных автоматов для численного моделирования сложных динамических систем // Научно-технические ведомости СПбГПУ. — 2004. — № 1. — С. 78—87. 42. Трудоношин В. А., Пивоварова Н. В. Математические модели технических объектов. — Мн.: Выш. шк.,1988. — 159 с. 43. Хоар Ч. Взаимодействующие последовательные процессы: Пер. с англ. —
М.: Мир, 1989. — 264 с.
Ëèòåðàòóðà
219
44. Elmqvist, H., Cellier F. E., Otter M. Object-Oriented Modeling of Hybrid Sys-
tems, Proc. ESS'93, SCS European Simulation Symposium, Delft, The Netherlands, 1993. P. xxxi-xli. 45. Elmqvist H., Mattsson S. E., Otter M. Modelica — the new object-oriented
modeling language. The 12th European Simulation Multiconference, ESM’98, June 16—19, Manchester, UK.
46. Mattsson, S. E., Elmqvist H., Otter M., Olsson H. Initialization of hybrid diffe-
rential-algebraic equations in Modelica 2.0. 2nd International Modelica Conference, March 18—19, 2002, Proceedings. P. 9—15.
47. Otter M., Elmqvist H., Mattsson S. E. Hybrid modeling in Modelica based on
the synchronous data flow principle. In Proceeding of the 1999 IEEE Symposium on — Computer-Aided Control System Design, CACSD’99, Hawai, USA, August 1999.
Äîïîëíèòåëüíàÿ ëèòåðàòóðà ê ãëàâå 4 48. Воеводин В. В. Линейная алгебра. — М.: Наука, 1980. 49. Воеводин В. В., Кузнецов Ю. А. Матрицы и вычисления. — М.: Наука,
1984. — 320 с. 50. Гантмахер Ф. Р. Теория матриц. — М.: Изд-во ГИТТЛ, 1953. — 491 с. 51. Икрамов Х. Д. Несимметричная проблема собственных значений. — М.:
Наука, 1991. — 240 с. 52. Лоусон Ч., Хенсон Р. Численное решение задач метода наименьших квад-
ратов. — М.: Наука, 1986. — 232 с. 53. Ортега Дж., Рейнболт В. Итерационные методы решения нелинейных сис-
тем уравнений со многими неизвестными. — М.: Мир, 1975. — 558 с. 54. Островский А. М. Решение уравнений и систем уравнений. — М.: Ино-
странная литература, 1963. 55. Парлетт Б. Симметричная проблема собственных значений. — М.: Мир,
1983. 56. Райс Дж. Матричные вычисления и математическое обеспечение. — М.:
Мир, 1984. — 264 с. 57. Ракитский Ю. В., Устинов С. М., Черноруцкий И. Г. Численные методы
решения жестких систем. — М.: Наука, 1979. 58. Стренг Г. Линейная алгебра и ее применение. — М.: Мир, 1980. 59. Уилкинсон Дж. Х. Алгебраическая проблема собственных значений. —
М.: Наука, 1970.
220
Ìîäåëèðîâàíèå ñèñòåì. Äèíàìè÷åñêèå è ãèáðèäíûå ñèñòåìû
60. Фаддеев Д. К., Фаддеева В. Н. Вычислительные методы линейной алгеб-
ры. — М., Л.: Физматгиз, 1963. 61. Форсайт Дж., Моллер К. Численное решение систем линейных алгебраи-
ческих уравнений. — М.: Мир, 1969. 62. Alan C. Hindmarsh, Odepack, a systematized collection of ODE solvers, in sci-
entific computing, R. S. Stepleman Et Al. (eds.), North-Holland, Amsterdam, 1983. P. 55—64. 63. Asscher Uri M., Petzold Linda R. Computer methods for Ordinary differential
equations and differential-algebra equations. SIAM, 1998. — 314 p. 64. Brenan K. E., Campbell S. L., Petzold L. R. Numerical solution of initial-value
problems in differential algebraic equations. Elsevier Science Publishing Co., 1989. — 205 p. 65. Petzold Linda R. Automatic selection of methods for solving stiff and nonstiff
systems of ordinary differential equations, Siam J. Sci. Stat. Comput. 4 (1983), P. 136—148.
Ïðåäìåòíûé óêàçàòåëü
L LU-разложение 186
А Автомат 85 гибридный 92, 159 детерминированный 106 Зенона 101 конечный 117 примитивный гибридный 93 Аналоговая вычислительная машина (АВМ) 14 Аппроксимация по методу наименьших квадратов 182
Б Бифуркация 80 Блок 139
В Временная щель 41, 92 Время 37, 91 гибридное 41 дискретное 38 событийное 38 Вычислительный эксперимент 17, 19, 180
Q QR-разложение 187
Ж Жесткость 201, 208
З Задача о лыжнике 162
И Изображающая точка 35 Индекс системы 159 уравнений 213 Интенсивность потока 129 Интерпретатор знаковой модели 14
К Карта поведений 57, 106 Карта состояний 57 гибридная 57 Композиция компонентов параллельная 138 последовательная 175 Компонент: неориентированный 140 ориентированный 139
222 Компьютерное моделирование 9 Координата: временная 35 пространственная 35 Коэффициент разреженности 186
М Матрица: блочная 190 блочно-диагональная 190 полного ранга 184 разреженная 186 симметричная 191 собственных векторов 189 Матричный экспоненциал 188 Метод: Адамса 203 Гаусса 186 Куртиса–Хиршфельдера 203 Милна–Симпсона 203 неявный линейный многошаговый 203 Ньютона 195 Рунге, явный 205 трапеций 203 Хаммера–Холлингсуорта, неявный 205 Эйлера неявный 203 явный 202 явный линейный многошаговый 203 Минор 184 Моделирование 11 абстрактное 13 аналоговое 14 знаковое 14 имитационное 18, 127 интуитивное 14 математическое 14 предметное 13 распределенное 33 физическое 13 Модель 10 без памяти 45 вероятностная 47
Ïðåäìåòíûé óêàçàòåëü гибридная 32, 51 компонентная 160 детерминированная 46 динамическая 45 дискретная 32 идеальная 13, 14 изолированная 31, 44 компьютерная 18 материальная 13 на микроуровне 121 непрерывная 32, 57, 65 открытая 31 охоты на лис 78 полунатурная 18, 34 прогнозирования численности зайцев и волков 115 простая 133 прыгающего мячика 85 с дискретным временем 117 с непрерывным временем 65 составная 32, 133 статическая 45 элементарная 32 Модель времени: гибридная 50 дискретная 50 непрерывная 49
О Объект: изолированный, однокомпонентный 63 открытый 44 экземпляр 64 Особая точка, неустойчивая 199
П Пакет: "исследовательский", 27 "промышленный", 27 автоматизации моделирования 28 интерпретирующим 25 компилирующий 25 математический 26 специализированный 25 универсальный 26
Ïðåäìåòíûé óêàçàòåëü Переменная состояния 36 Переход 60 внешний 60 внутренний 60 нетриггерный 61 триггерный 61 Поиск согласованных начальных условий для алгебраического уравнения 154 Поток: пуассоновский 130 стационарный 130 событий 129 Принцип синхронной композиции 169 Пространство состояний объекта 35 Процесс с запаздывающим аргументом 48
Р Расширенный фазовый вектор 35 Решение системы уравнений: асимптотически устойчивое 199 устойчивое по Ляпунову 199
С Связь: неориентированная 139 ориентированная 138 Сигнал 170 Система: гибридная 84, 90 траектория 98 динамическая 14, 66 классическая динамическая 66, 99 корректно заданная 143 с малыми параметрами 80 с непрерывным временем 160 Система автоматизации моделирования 24 Система уравнений: автономная 196 алгебро-дифференциальная 70 в форме Коши 196
223 возмущенная 185 жесткая 201 исходная 185 линейных алгебраических 181 нелинейных алгебраических 194 обыкновенных дифференциальных 14 с переменной структурой 111 структурно вырожденная 146 Скольжение 108 Сложная динамическая система (СДС) 5 Событие 36 дискретное 41 Состояние: конечное 59 начальное 59 обычное 58 особое 58 точка ветвления 59 Состояние объекта 35 конечное 35 начальное 35 особое 36 Стратегия случайного выбора 106
Т Точка бифуркации 80 Траектория движения 35 Требование Липшица 197
У Уравнение: в частных производных 121 линейной кинетики 69 теплопроводности 122 Условие Липшица 66
Ф Фаза объекта 35 Фазовое пространство объекта 35 расширенное 35 Форма Хессенберга 193
224
Ц Цепь Маркова 125 конечная 127 непрерывная 128 однородная 127
Ч Численное решение 180 Число обусловленности матрицы 185, 191
Ïðåäìåòíûé óêàçàòåëü
Э Экземпляр объекта 64 Эффект Зенона 101, 106
Я Язык моделирования 28