В библиотеку

Имитационное моделирование сложных динамических систем


Ю.Б.Колесов, Ю.Б.Сениченков


Источник: http://www.exponenta.ru/soft/others/mvs/ds_sim.asp

"И первое, что оказывается необходимым для реализации подобных идей, - это умение организовать серию вариантных расчетов: эксперту важно представить себе характер изучаемого процесса, степень его "управляемости", характер предельных возможностей (множеств достижимости), т.е. организовать многократно повторенный машинный эксперимент с моделью.

Для этой цели и должны быть созданы модели, имитирующие реальность, имитирующие изучаемый процесс. Эксперт с помощью этих моделей, с помощью серии специально организованных вариантных расчетов получает те знания, без которых выбрать альтернативный вариант своей стратегии он не может. Эти возможности ЭВМ были быстро поняты специалистами, и в русском языке появились даже термины "имитационная модель" и "имитационная моделирование", а в английском языке – "simulation modeling". Надо отметить, что если в английском языке термин имеет вполне четкий смысл, ибо симуляция и моделирование не являются синонимами, то по-русски имитационная модель - это нонсенс (Курсив наш. Авторы.). Любая модель, в принципе, имитационная, ибо она имитирует реальность".

Н.Н. Моисеев "Математические задачи системного анализа". М.: Наука, 1981.

 

С выделенным курсивом утверждением Н.Н. Моисеева трудно не согласится, если его назначение - акцентировать внимание читателя на сути терминов модель и моделирование. В тоже время в русском языке прилагательное "имитационный" часто используют как синоним прилагательных "сходный", "похожий". Среди словосочетаний "математическая модель", "аналоговая модель", "статистическая модель", пара - "имитационная модель", появившаяся в русском языке, наверное, в результате неточности перевода, постепенно приобрела новое, отличное от первоначального значение. Указывая, что данная модель имитационная, мы обычно подчеркиваем, что в отличие от других типов абстрактных моделей, в этой модели сохранены и легко узнаваемы такие черты моделируемого объекта, как структура, связи между компонентами, способ передачи информации. С имитационными моделями также обычно связывают и требование иллюстрации их поведения с помощью принятых в данной прикладной области, графических образов. Недаром имитационными обычно называют модели предприятий, экологические и социальные модели.

С учетом последнего замечания, имитационная модель рассматривается нами специальная форма математической модели, в которой:

Имитационное моделирование на цифровых вычислительных машинах является одним из наиболее мощных средств исследования, в частности, сложных динамических систем. Как и любое компьютерное моделирование, оно дает возможность проводить вычислительные эксперименты с еще только проектируемыми системами и изучать системы, натурные эксперименты с которыми, из-за соображений безопасности или дороговизны, не целесообразны. В тоже время, благодаря своей близости по форме к физическому моделированию, это метод исследования доступен более широкому кругу пользователей.

В настоящее время, когда компьютерная промышленность, предлагает разнообразнейшие средства моделирования, любой квалифицированный инженер, технолог или менеджер должен уметь уже не просто моделировать сложные объекты, а моделировать их с помощью современных технологий, реализованных в форме графических сред или пакетов визуального моделирования.

Пакеты визуального моделирования

"Сложность изучаемых и проектируемых систем приводит к необходимости создания специальной, качественно новой техники исследования, использующей аппарат имитации – воспроизведения на ЭВМ специально организованными системами математических моделей функционирования проектируемого или изучаемого комплекса".(стр. 182)

Н.Н. Моисеев "Математические задачи системного анализа". М.: Наука, 1981, 488с.

Это требование было трудно выполнимым до повсеместного проникновения в исследовательскую деятельность персонального компьютера с графическим дисплеем (для нашей страны это в подавляющем большинстве случаев Intel-совместимый компьютер с операционной системой MS Windows) и появления специального программного обеспечения - пакетов визуального моделирования. Системы автоматизации моделирования, разработанные в 60-70-е годы (Simula, SLAM, НЕДИС и другие), были еще слишком сложны для широкого пользователя, прежде всего из-за сложности текстовой формы описания модели и отсутствия программных реализаций эффективных численных методов (в 70-е годы был единственный пакет GEAR, все современные численные пакеты датируются 80 годами).

Пакеты же визуального моделирования позволяют пользователю вводить описание моделируемой системы в естественной для прикладной области и преимущественно графической форме (например, в буквальном смысле рисовать функциональную схему, размещать на ней блоки и соединять их связями), а также представлять результаты моделирования в наглядной форме, например, в виде диаграмм или анимационных картинок.

Одним из главных достоинств систем визуального моделирования является то, что они позволяют пользователю не заботится о программной реализации модели, как о последовательности исполняемых операторов, и тем самым создают на компьютере некоторую чрезвычайно удобную среду, в которой можно создавать виртуальные, "квазиаппаратные" параллельно функционирующие системы и проводить эксперименты с ними. Графическая среда становится похожей на физический испытательный стенд, только вместо тяжелых металлических ящиков, кабелей и реальных измерительных приборов, осциллографов и самописцев пользователь имеет дело с их образами на экране дисплея. Образы можно перемещать, соединять и разъединять с помощью мыши. Кроме того, пользователь может видеть и оценивать результаты моделирования по ходу эксперимента и, при необходимости, активно в него вмешиваться.

Программная реализация виртуального стенда скрыта от пользователя. Для проведения экспериментов не требуется никаких особых знаний о компьютере, операционной системе и математическом обеспечении. Можно сказать, что виртуальный стенд превращает цифровую вычислительную машину в невиданно точную и удобную аналоговую. Таким образом, прогресс средств автоматизации моделирования приводит нас на следующем витке спирали развития к истокам вычислительной техники.

Еще одной важной особенностью современного пакета автоматизации моделирования является использование технологии объектно-ориентированного моделирования, что позволяет резко расширить границы применимости и повторного использования уже созданных и подтвердивших свою работоспособность моделей.

Успех новой технологии резко расширил круг пользователей визуальных пакетов моделирования, что обострило вечную проблему достоверности получаемых решений. Графическая оболочка скрывает от пользователя сложную процедуру получения численного решения. В то же время, автоматический выбор нужного для решения конкретной задачи численного метода и настройка его параметров часто являются далеко не тривиальной задачей. В результате появляется опасность быстрого получения красиво оформленных, но неправильных результатов.

Сложная динамическая система

Под “динамической системой в широком смысле” понимается объект, функционирующий в непрерывном времени, непрерывно наблюдаемый и изменяющий свое состояние под воздействием внешних и внутренних причин.

Н.П. Моделирование сложных систем, М.: Наука, 1978].

Прежде чем переходить к рассмотрению этих проблем и современных подходов к визуальному моделированию, необходимо, прежде всего, уточнить понимание самого предмета моделирования - сложной динамической системы.

Простая динамическая система

Под простейшей динамической системой обычно понимается система, поведение которой задается совокупностью обыкновенных дифференциальных уравнений в форме Коши с достаточно гладкими правыми частями, обеспечивающими существование и единственность решения. Примерами объектов, поведение которых может быть описано дифференциальными уравнениями, является, например, тело, брошенное под углом к горизонту, или известный из школьного задачника бассейн с двумя трубами, через которые вливается и выливается вода. Решение систем уравнений в форме Коши, разрешенных относительно первых производных, - традиционная численная задача. Разработанные в последние годы программные реализации численных методов не только обеспечивают заданные требования к погрешности решения, но стараются самостоятельно определить тип (вычислительную сложность), решаемой задачи.

Более сложной является модель, представленная системой обыкновенных дифференциальных уравнений в форме Коши и нелинейных алгебраических уравнений, сопровождаемая набором вспомогательных формул. Задача численного построения фазовой траектории такой системы значительно сложнее, но если совокупность нелинейных уравнений однозначно разрешима в каждой временной точке, и правые части дифференциальных уравнений достаточно гладкие, то она в основном также вполне успешно решается. Предварительная подготовка для численного решения в данном случае минимальна: нужно проверить равно ли число уравнений числу неизвестных, проверить согласованность начальных условий и провести сортировку формул в правильном порядке (для замены их операторами присваивания). Такую систему будем называть простой динамической системой.

Если бы все моделируемые системы укладывались бы в формализацию простой динамической системы, моделирование было бы светлым и приятным занятием (следует помнить, правда, что конкретные случаи простых динамических систем могут породить массу вычислительных проблем, но мы надеемся, что всегда найдется профессионал, который с ними справится). К сожалению, большинство технических и природных систем являются более сложными. Мы будем выделять структурную и поведенческую сложность моделируемых объектов.

Структурно сложная динамическая система

Как уже отмечалось, структура современных моделей часто соответствует структуру изучаемого объекта. В основе таких моделей лежит элемент (блок), со скрытой от внешнего наблюдателя внутренней структурой. Глядя на такой блок со стороны, можно увидеть только специальные переменные, называемые в общем случае контактными. Как говорят программисты, блок инкапсулирует свои свойства. Структурно сложная модель состоит из множества блоков, взаимодействующих между собой через функциональные связи между видимыми извне переменными. Структура такой системы обычно является иерархической. Множество элементов системы может, вообще говоря, изменяться в процессе функционирования системы. Как правило, элементы сложной системы характеризуются различными физическими принципами действия, что, в конце концов, не столь заметно в итоговой математической модели, но чрезвычайно важно на этапе построения модели.

Предположим, что на нижнем уровне иерархии всем элементарным блокам соответствуют простые динамические системы. Задача визуального пакета, автоматически построить для составного блока такой эквивалентный элементарный блок, чтобы его поведение соответствовало определению простой динамической системы. Поведение эквивалентного блока должно строиться по описаниям локальных систем с учетом функциональных связей. Возможность автоматического построения такого эквивалентного блока, во многом зависит от того, что понимается под функциональными связями.

Наличие связи между контактами означает, что значения переменных, соответствующих контактам, в любой момент равны. В современных визуальных пакетах встречаются связи двух видов:

1) однонаправленные (ориентированные), и тогда, соединяемые контакты, делятся на приемник и источник, а также постулируется, что приемник не может влиять на источник;

2) двунаправленные (неориентированные), в этом случае соединяемые контакты равноправны.

В случае использования только однонаправленных связей контакты блоков делятся на входы и выходы (такие блоки также называются ориентированными). Входная переменная не может находиться в левой части формулы или дифференциального уравнения, а также являться искомой переменной в алгебраических уравнениях. Источником на данном уровне иерархии может быть выход внутреннего или вход внешнего блока, а приемником - вход внутреннего или выход внешнего блока. Любой источник может участвовать в любом числе связей, в то время как приемник может участвовать только в одной связи. Объединение ориентированных блоков выполняется достаточно просто: локальные уравнения и формулы механически объединяются, и каждая связь заменяется дополнительной формулой "<приемник> = <источник>". Объединение локально корректных совокупностей уравнений и формул дает корректную совокупность. Единственной дополнительной проблемой является возникновение в некоторых случаях "алгебраических циклов" в совокупности формул, порожденных связями (выражение в правой части формулы неявно зависит от переменной в левой части этой формулы). В случае обнаружения алгебраического цикла он разрывается путем замены одной из входящих в него формул на алгебраическое уравнение (начальные условия для таких уравнений автоматически согласованы). Предварительная подготовка, таким образом, сводится к сортировке дополнительных формул, а также выявлению и устранению алгебраических циклов. Заметим, что из-за возможности появления алгебраических уравнений при объединении локальных описаний, их не содержащих, следует считать, что "минимально" сложной формой локального поведения является система алгебро-дифференциальных уравнений.

Ориентированные связи позволяют вполне адекватно описывать информационные взаимодействия между блоками в технических системах, где обычно специально принимаются меры, исключающие обратное влияние по связи.

В случае использования неориентированных связей блоки соответственно называются неориентированными. При построении совокупной системы сначала каждая связь заменяется алгебраическим уравнением "0=<приемник>-<источник>". Напомним, что в отличие от формул, заменяемых операторами присваивания, появляющиеся алгебраические уравнения должны решаться численно. Поэтому использование неориентированных связей всегда требует больших вычислительных ресурсов, а также может вызывать проблемы с согласованием начальных условий. Далее следует провести анализ полученных совокупных уравнений и формул и выяснить, может ли она быть решена непосредственно, или требует дальнейших преобразований. К сожалению, в данном случае, в отличие от ориентированных блоков, автоматически преобразовать совокупную систему к виду, пригодному для численного решения, не всегда удается. В общем случае необходимо выполнить достаточно сложный анализ и символьные преобразования для получения эквивалентной, численно разрешимой системы.

Иногда бывает удобным использовать специальную модификацию двунаправленной связи, называемую потоком. Потоку автоматически приписываются алгебраические уравнения, аналогичные законам Кирхгофа.

Неориентированные связи позволяют производить декомпозицию исходного объекта на "физические" компоненты с достаточно простыми законами поведения, а затем собирать их в единую систему, практически также, как мы собираем сложный физический прибор из отдельных блоков. В этом неоспоримое преимущество данного подхода. Недостатком является сложная и не всегда за приемлемое время осуществимая процедура автоматического построения итоговой математической модели.

Сложная динамическая система, меняющая свое поведение во времени

Одной из черт сложного поведения является наличие у системы нескольких качественно различных, последовательно сменяющих друг друга во времени, поведений. Инженеры обычно называют их "режимами функционирования". Например, бассейн с двумя трубами обладает сложным поведением, поскольку его поведение при переполнении качественно отличается от его поведения при нормальном уровне и при опустошении. Такой тип сложного поведения можно реализовать, если описать всю совокупность допустимых, простых, в некотором смысле, частных поведений (возможно, это будет иерархическая структура), и указать правила переключения с одного поведения на другое. Организованная таким образом, сложная динамическая система в каждый конкретный момент времени ведет себя как некоторая простая динамическая система. Например, бассейн может быть представлен как совокупность трех простых динамических систем: "Нормальный уровень", "Переполненный бассейн" и "Пустой бассейн".

Каждое конкретное поведение можно отождествить со значением некоторой дискретной переменной, а мгновенные переключения текущего поведения - с дискретными событиями. Для передачи информации о дискретных событиях в другие блоки используют специальные переменные - сигналы. Набор дискретных состояний вместе с условиями переходов из одного состояния в другое образует обычное дискретное поведение. В моменты переходов могут происходить мгновенные скачкообразные изменения значений переменных. Поскольку в каждом из дискретных состояний элементарный блок ведет себя как некоторая непрерывная система, то поведение блока в целом является непрерывно-дискретным или гибридным.

Граф переходов, узлам которого приписаны некоторые непрерывные отображения, а дугам – условия переходов и выполняемые действия, называется гибридным автоматом. В настоящее время для формального описания дискретных "машин состояний" стандартом de facto стала "карта состояний" (statechart), придуманная Д.Харелом [D.Harel, Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming, North-Holland, Vol.8, No.3, 1987, pp. 231-274.] и "канонизированная" в стандарте UML [Booch G., Jacobson I. and Rumbaugh J.: "The Unified Modeling Language for Object-Oriented Development", Documentation Set Version 1.1, September 1997].

Карта состояний, узлам которой приписаны некоторые непрерывные отображения, называется гибридной картой состояний.

Гибридная карта состояний представляет собой простую и очень наглядную форму визуального представления смены поведений.

Следует отметить, что существуют также системы, которые можно назвать "скрытыми гибридными". Внешне они могут выглядеть как непрерывные, но использовать в правых частях уравнений переменные, имеющие разрывы значений. Причинами этих разрывов (о которых, кстати, пользователь может и не подозревать) могут быть разного рода "нехорошие" функции, соединение непрерывных и чисто дискретных блоков, интерактивное воздействие пользователя.

Структурно-сложная гибридная система

Объединяя структурно-сложные системы и гибридные, получаем новый тип сложных систем - а именно, структурно-сложные гибридные системы. Их главная черта - параллельное функционирование нескольких гибридных систем иерархической структуры.

Такая система получается при соединении функциональными связями блоков, представляющих собой гибридные системы. Нахождение эквивалентной простой динамической системы аналогично процедуре, описанной выше, но выполняться оно должно не один раз, а всякий раз при смене частного поведения в любом из блоков. Это чрезвычайно затрудняет использование гибридных неориентированных блоков (напомним, что для неориентированных блоков при определении эквивалентной системы нужно проводить символьное преобразование набора уравнений).

Объектно-ориентированное моделирование

"Вместе с ростом числа ЭВМ и задач трудности технологические и организационные все больше стали преобладать над трудностями "чисто научными". Сейчас масштаб и объем этих трудностей настолько вырос, что можно говорить, что задача их преодоления сама стала задачей науки и представляет собой проблему фундаментального значения".

Н.Н. Яненко, В.И. Карначук, А.И. Коновалов. "Проблемы математической технологии"/ Численные методы механики сплошной среды. Новосибирск, ВЦ СО АН СССР, 8, 3, 1977.

Основные понятия

Объектно-ориентированное моделирование (ООМ) предполагает поддержку классов и экземпляров блоков, а также наследования и полиморфизма блоков.

Класс определяет некоторый шаблон или прототип блока (например, бассейн вообще). Оперируя с классом, например "Бассейн", нельзя говорить о конкретном значении уровня воды в нем, так как в определении класса присутствуют только информация о типах и именах используемых переменных, но не об их значениях.

Экземпляр блока - это конкретный представитель класса блоков, например, Бассейн_1 и Бассейн_2. Каждый экземпляр имеет свои собственные значения переменных (уровни воды в двух бассейнах могут быть разными). При создании нового экземпляра могут быть конкретизированы его параметры - специальные константы, которые не могут быть, как и любые константы, изменены в процессе функционирования, но могут оказаться разными для различных экземпляров. В функциональную схему могут входить несколько экземпляров одного и того же класса, например, выходная труба блока Бассейн_1 может являться входной для блока Бассейн_2.

Экземпляры могут быть статическими и динамическими. Статический экземпляр создается при создании модели и уничтожается при ее уничтожении. Например, каскад бассейнов явно является статической структурой. Динамические экземпляры создаются и уничтожаются в ходе моделирования. Например, при моделировании работы системы ПВО число самолетов в зоне видимости радиолокатора переменно.

Вообще говоря, понятия класса и экземпляра поддерживались явно или неявно практически всеми языками моделирования. В противном случае достаточно сложно моделировать системы с множеством однотипных блоков и невозможно моделировать системы с динамической структурой.

Более сложными понятиями ООМ являются наследование и полиморфизм.

Часто возникает необходимость создать новый класс "такой же, но ...". Например, нужно описать бассейн с подогревом воды, дополнив описание стандартного бассейна нужными деталями. В этом новом классе "Бассейн_с_подогревом" описание интерфейса и динамики уровня воды будет точно таким же, как и в классе "Бассейн". К нему добавится свое описание тепловых потоков и динамики температуры.

Можно просто перенести в описание нового класса элементы описания старого и добавить новые. Но можно объявить новый класс прямым потомком старого. В этом случае класс "Бассейн" будет являться суперклассом (родителем, базовым классом) для класса "Бассейн_с_подогревом", а тот в свою очередь будет являться подклассом (потомком, производным классом) по отношению к классу "Бассейн". В этом случае производный класс автоматически унаследует все элементы описания своего базового класса. Следует отметить, что наследование не означает простого копирования. Между классами возникает постоянная связь: если в классе "Бассейн" добавить новую переменную состояния (например, показатель хлорированности воды), то она автоматически появится в классе "Бассейн_с_подогревом".

Полиморфизм означает возможность использования вместо экземпляра блока некоторого базового класса экземпляра любого его производного класса. Например, для радиолокационной станции все сопровождаемые объекты являются экземплярами класса "Летательный_аппарат" и характеризуются только положением и вектором скорости. На самом же деле эти объекты могут являться самыми разнообразными потомками класса "Летательный_аппарат" от B-52 до птеродактиля.

Библиотеки классов

Наличие богатых библиотек классов является серьезным преимуществом той или иной системы моделирования. В этом случае модель может строиться механически из экземпляров стандартных классов с их параметрической настройкой. Возможности среды увеличиваются, если библиотеки классов создаются самим прикладным пользователем.

Следует отметить, что при построении библиотеки классов чрезвычайно удобным оказывается использование неориентированных блоков, поскольку это дает возможность создавать блоки, максимально независимые от внешнего окружения.

Численное решение

Традиционная технология численного моделирования требует весьма аккуратного выбора и настройки численного метода (иногда даже несколько раз по ходу решения) и тщательного исследования погрешности результатов. Знание особенностей решаемой системы уравнений (например, что она линейная) может на порядки увеличить скорость решения. Анализ свойств решаемой системы и настройка метода – трудная задача даже для специалистов. Доверить эту работу пользователю визуальных пакетов не представляется возможным. Кроме того, при использовании стандартных библиотечных классов пользователь просто не знает, с какими уравнениями он имеет дело.

Максимально удобным для численного решения является явное представление моделируемой системы в виде такой гибридной, в которой все скачкообразные изменения значений переменных выполняются только во время переходов, а непрерывные поведения соответствуют поведениям простых динамических система с гладкими правыми частями, для каждой из которых автоматически может быть подобран соответствующий численный метод. Наипростейшим случаем является ситуация, когда приходится интегрировать только дифференциальные уравнения. При этом не надо забывать, что этот "наипростейший" случай на протяжении уже многих лет является предметов изучения многих специалистов в разных странах.

Таким образом, задача численного нахождения решения распадается на несколько:

1) выявление скрытой гибридности в описании непрерывных систем и построение гибридной системы, где узлам приписаны "хорошо" решаемые системы уравнений;

2) автоматическое определение численных особенностей текущей эквивалентной системы для уравнений;

3) автоматический выбор численного метода для текущей эквивалентной системы, позволяющего получить хотя бы качественно правильное решение;

4) определение точки переключения - границы существования текущей эквивалентной системы, задаваемой условиями срабатывания переходов.

Существующие подходы к визуальному моделированию сложных динамических систем

В настоящее время существует великое множество визуальных средств моделирования. Договоримся не рассматривать в этой работе пакеты, ориентированные на узкие прикладные области (электроника, электромеханика и т.д.), поскольку, как отмечалось выше, элементы сложных систем относятся, как правило, к различным прикладным областям. Среди оставшихся универсальных пакетов (ориентированных на определенную математическую модель), мы не будем обращать внимание на пакеты, ориентированные на математические модели, отличные от простой динамической системы (уравнения в частных производных, статистические модели), а также на чисто дискретные и чисто непрерывные. Таким образом, предметом рассмотрения будут универсальные пакеты, позволяющие моделировать структурно-сложные гибридные системы.

Их можно условно разделить на три группы:

1) пакеты "блочного моделирования":

2) пакеты "физического моделирования":

3) пакеты, ориентированные на схему гибридного автомата.

Это деление является условным прежде всего потому, что все эти пакеты имеют много общего: позволяют строить многоуровневые иерархические функциональные схемы, поддерживают в той или иной степени технологию ООМ, предоставляют сходные возможности визуализации и анимации. Отличия обусловлены тем, какой из аспектов сложной динамической системы сочтен наиболее важным.

Пакеты "блочного моделирования" ориентированы на графический язык иерархических блок схем. Элементарные блоки являются либо предопределенными, либо могут конструироваться с помощью некоторого специального вспомогательного языка более низкого уровня. Новый блок можно собрать из имеющихся блоков с использованием ориентированных связей и параметрической настройки. В число предопределенных элементарных блоков входят чисто непрерывные, чисто дискретные и гибридные блоки.

К достоинствами этого подхода следует отнести, прежде всего, чрезвычайную простоту создания не очень сложных моделей даже не слишком подготовленным пользователем. Другим достоинством является эффективность реализации элементарных блоков и простота построения эквивалентной системы. В то же время при создании сложных моделей приходится строить довольно громоздкие многоуровневые блок-схемы, не отражающие естественной структуры моделируемой системы. Другими словами, этот подход работает хорошо, когда есть подходящие стандартные блоки.

Наиболее известными представителями пакетами "блочного моделирования" являются:

- подсистема SIMULINK пакета MATLAB (MathWorks, Inc.; http://www.mathworks.com);

- EASY5 (Boeing)

- подсистема SystemBuild пакета  MATRIXX   (Integrated Systems, Inc. );

- VisSim (Visual Solution; http://www.vissim.com).

Пакеты "физического моделирования" позволяют использовать неориентированные и потоковые связи. Пользователь может сам определять новые классы блоков. Непрерывная составляющая поведения элементарного блока задается системой алгебро-дифференциальных уравнений и формул. Дискретная составляющая задается описанием дискретных событий (события задаются логическим условием или являются периодическими), при возникновении которых могут выполняться мгновенные присваивания переменным новых значений. Дискретные события могут распространяться по специальным связям. Изменение структуры уравнений возможно только косвенно через коэффициенты в правых частях (это обусловлено необходимостью символьных преобразований при переходе к эквивалентной системе).

Подход очень удобен и естественен для описания типовых блоков физических систем. Недостатками являются необходимость символьных преобразований, что резко сужает возможности описания гибридного поведения, а также необходимость численного решения большого числа алгебраических уравнений, что значительно усложняет задачу автоматического получения достоверного решения.

К пакетам "физического моделирования" следует отнести:

"20-SIM" (Controllab Products B.V; http://www.rt.el.utwente.nl/20sim/);

- Dymola (Dymasim; http://www.dynasim.se);

- Omola, OmSim (Lund University; http://www.control.lth.se/~cace/omsim.html);

Как обобщение опыта развития систем этого направления междунородной группой ученых разработан язык Modelica (The Modelica Design Group; http://www.dynasim.se/modelica), предлагаемый в качестве стандарта при обмене описаниями моделей между различными пакетами.

Пакеты, основанные на использовании схемы гибридного автомата, позволяют очень наглядно и естественно описывать гибридные системы со сложной логикой переключений. Необходимость определения эквивалентной системы при каждом переключении заставляет использовать только ориентированные связи. Пользователь может сам определять новые классы блоков. Непрерывная составляющая поведения элементарного блока задается системой алгебро-дифференциальных уравнений и формул. К недостаткам следует также отнести избыточность описания при моделировании чисто непрерывных систем.

К этому направлению относится пакет Shift (California PATH: http://www/path.berkeley.edu/shift), а также отечественный пакет Model Vision Studium . Пакет Shift в большей стпени ориентирован на описание сложных динамических структур, а пакет MVS – на описание сложных поведений.

Заметим, что между вторым и третьим направлениями нет непреодолимой пропасти. В конце концов, невозможность из совместного использования обусловлена лишь сегодняшними вычислительными возможностями. В то же время, общая идеология построения моделей практически совпадает. В принципе, возможен комбинированный подход, когда в структуре модели должны выделяться составные блоки, элементы которых имеют чисто непрерывное поведение, и однократно преобразовываться к эквивалентному элементарному. Далее уже совокупное поведение этого эквивалентного блока должно использоваться при анализе гибридной системы.

 

 

Дискуссия

 

Отзыв на статью (Владимир Охота, аспирант Пермского ГТУ, старший инженер ЗАО "Искра-Энергетика" г. Пермь)

 

В этой статье приведено краткое описание пакетов "физического моделирования", с авторами данной статьи в части единственного "недостатка" этих пакетов я категорически не согласен. Возможно при написании статьи они не имели полной информации о языке Modelica, а возможно они специально отразили искаженные сведения. Язык Modelica поддерживает изменение структуры уравнений и нет необходимости в символьных преобразованиях. Предлагаю авторам статьи и всем, кто "копировал" выдержки из этих статей без фактического ознакомления с описываемыми пакетами, ознакомиться с описанием языка моделирования Modelica 2.0 и исправить ошибки, допущенные в опубликованных статьях.

 

Ответ авторов (Ю.Колесов, Ю.Сениченков)

 

В данном случае, как нам кажется, разногласия заключаются в различном понимании одних и тех же слов (мы пытались уточнить точку зрения В.Охоты, но пока, к сожалению, не получили ответа).

Мы ни в коем случае не утверждаем и не утверждали, что в языке Modelica не декларированы уравнения с переменной структурой – утверждать такое было бы просто глупо, так как такие уравнения разрешены в спецификации языка. Мы говорили лишь о сложности РЕАЛИЗАЦИИ таких уравнений при исходных допущениях языка Modelica. Мы хотели показать, чем расплачиваются за устранение недостатков пакетов типа SIMULINK.

 

Действительно, при соединении неориентированных блоков можно получить систему алгебро-дифференциальных уравнений (DAE) общего вида, численное решение которой весьма затруднительно (о характере этих трудностей можно получить представление, прочитав раздел 4 спецификации языка и статьи авторов пакета Dymola). Выход либо в выполнении аналитических преобразований (и для некоторых случаев они необходимы), либо в разработке специальных алгоритмов. В Modelica Tutorial 1.4 прямо было сказано, что полный вариант уравнений с переменной структурой пока не поддерживается. Но “пока” не значит “всегда”. Мы совершенно уверены, что эта проблема будет разрешена, мало того, мы сами работаем над встраиванием таких же конструкций в наш пакет моделирования Model Vision.

 

А в языке Modelica нам нравится почти все за исключением подхода к описанию гибридного поведения. Мы твердо убеждены, что самой наглядной и естественной формой такого описания является гибридная карта состояний и последовательно проводим эту идею (сейчас этот подход поддерживается пакетами Model Vision Studium и AnyLogic).

 

Нам кажется, что была бы полезна дискуссия по проблемам современного моделирования и приглашаем принять в ней участие как пользователей, так и разработчиков отечественных пакетов моделирования.