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

кандидата физико-математических наук
Морозов, Сергей Вячеславович
город
Москва
год
1998
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Объектно-ориентированная инструментальная среда для создания приложений численного моделирования»

Автореферат диссертации по теме "Объектно-ориентированная инструментальная среда для создания приложений численного моделирования"

РОССИЙСКАЯ АКАДЕМИЯ НАУК ИНСТИТУТ СИСТЕМНОГО ПРОГРАММИРОВАНИЯ

РГб ОД

На правах рукописи

- 8 ш(л! ЬЗЗ УДК 681.3.06

МОРОЗОВ Сергей Вячеславович

ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ ИНСТРУМЕНТАЛЬНАЯ СРЕДА ДЛЯ СОЗДАНИЯ ПРИЛОЖЕНИЙ ЧИСЛЕННОГО МОДЕЛИРОВАНИЯ

Специальность 05.13.11 — Математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей

Автореферат диссертации на соискание ученой степени кандидата физико-математических наук

Москва —1998

Работа выполнена в Институте системного программирования Российской Академии наук.

НАУЧНЫЙ РУКОВОДИТЕЛЬ:

Кандидат физико-математических наук Семенов Виталий Адольфович

ОФИЦИАЛЬНЫЕ ОППОНЕНТЫ:

Доктор физико-математических наук Горбунов-Посадов Михаил Михайлович

Доктор технических наук Мадера Александр Георгиевич

ВЕДУЩАЯ ОРГАНИЗАЦИЯ:

Институт математического моделирования Российской Академии наук

Защита состоится "¿С " шок^А- 1993 г в часов на заседании Специализированного совета Д.200.50.01 при Институте системного программирования РАН по адресу:

109004, Москва, ул. Б. Коммунистическая, д. 25.

С диссертацией можно ознакомиться в библиотеке Института системного программирования РАН.

Автореферат разослан 1998 г.

Ученый секретарь

Специализированного совета Д.200.50.01 кандидат физико-математических наук доцент

С.П. Прохоров

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

Целями диссертационной работы являются:

1. Исследование возможностей и проблем применения ООП к реализации программных средств постановки и решения задач численного моделирования разнообразных физических явлений и технических систем;

2. Реализация на языке программирования Си++ объекпго-ориентированной инструментальной среды для создания CAD/CAM приложений в различных научных и технических областях;

3. Апробация использования данной среды при реализации конкретных CAD/CAM приложений.

Актуальность работы.

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

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

На наш взгляд, применение ООП, предоставляющего широкие инструментальные возможности для развития, модификации и множественного использования ПО, помогает решить данные проблемы. Реализация на его основе объектно-ориентированной среды для унифицированной разработки CAD/CAM приложений позволила бы обеспечить проводимые в на-

стоящее время научные и коммерческие проекты в области создания комплексных CAD/CAM систем необходимой инструментальной основой.

К наиболее значимым новым научным результатам выполненной работы относятся следующие:

• предложена методика реализации основных компонентов объектно-ориентированной инструментальной среды для создания CAD/CAM приложений в различных научных и технических областях, основанная на оригинальной обобщенной концепции численного моделирования, применимой к широкому спектру физических явлений и технических систем;

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

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

Апробация работы и публикации. Предложенные методики были апробированы при реализации проектов Российского фонда фундаментальных исследований и Государственной научно-технической программы «Информатизация России», выполненных в Институте системного программирования РАН. Результаты диссертационной работы докладывались на ХХШ международной конференции «Новые информационные технологии в науке, образовании и бизнесе» (г. Гурзуф, 1996), семинарах Института системного программирования РАН, Института автоматизации проектирования РАН и других семинарах и рабочих встречах. По теме диссертации опубликовано четыре печатных работы.

Структура и объем диссертации. Диссертация состоит из введения, трех глав, заключения, двух приложений и содержит 25 рисунков, две таблицы и список литературы из 53 наименований. Объем работы составляет 112 страниц.

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

В первой главе рассматриваются проблемы применения ООП к разработке прикладного ПО для постановки и решения задач численного мо------------------

делирования в различных предметных областях науки и техники.

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

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

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

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

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

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

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

Рис. 1. Объектное представление моделируемой системы

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

ме. Каждая связь объединяет произвольное число соединений компонентов.

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

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

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

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

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

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

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

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

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

Среда представляет собой систему классов объектов, выражающих ключевые понятия рассмотренной концепции моделирования, а именно: System (моделируемая система), Component (компонент системы), Element (элемент системы), Subsystem (подсистема), Connection (связь компонентов в системе), Link (внешнее соединение компонента), Model (математическая модель системы), Analysis (постановка задачи моделирования в терминах пользователя), Simulation (программное приложение численного моделирования). Данное базовое множество вместе с классами математической библиотеки является достаточным для представления разнообразных физических систем и реализации наиболее общих методов постановки и решения задач моделирования в рамках описанной концепции. Особенности реализации данных классов на языке программирования Си++ подробно рассматриваются во второй главе.

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

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

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

Таблица 1

Объектная интерпретация основных понятий схемотехнического моделирования и метода конечных элементов

Понятие обобщенной концепции Соответствующее понятие схемотехнического моделирования Соответствующее понятие метода конечных элементов Объектная реализация

Моделируемая система Электронная схема Ограниченная область пространства Класс System

Подсистема Подсхема Подобласть Класс Subsystem

Элементы системы Электронные компоненты Конечные элементы Библиотека классов, производных от Element

Внешнее соединение компонента Вывод компонента Вершина конечного элемента Класс Link

Связь компонентов в системе Узел схемы Узел дискретизации области Класс Connection

Задача статического анализа системы Задача анализа рабочей точки схемы Стационарная задача математической физики Класс StatlcAnalysIs

Задача динамического анализа системы Задача анализа переходных процессов в схеме Нестационарная задача математической физики Класс DynamicAnalysis

Задача частотного анализа системы Задача частотного анализа схемы Проблема собственных значений для краевой задачи Класс Frequency Analysts

Переменная связи Потенциал узла Значение поля в узле Член класса Connection

Переменные состояния элемента Токи, протекающие через электронный компонент Значения поля во внутренних точках конечного элемента Член класса Element

Математическая модель системы Математическая модель схемы Модель дискретизованной области пространства Класс Model

Вектор состояния системы Вектор потенциалов узлов и токов в особых ветвях Вектор значений поля в узлах дискретизации области Член класса Model

Элементные уравнения ВАХ электронных компонентов Линейные комбинации базисных функций Методы классов, производных от Element

Топологические уравнения Закон токов Кирхгофа для независимых узлов схемы Условия стационарности или минимальности функционала энергии Участвуют при формировании модели схемы в методе класса Model

Во второй главе описывается объектно-ориентированная инструментальная среда для разработки CAD/CAM систем в различных предметных областях науки и техники. Проект создания данной среды преследовал собой цель упростить разработку программных средств постановки задач численного моделирования, составляющих ядро научных и промышленных CAD/CAM систем. Среда спроектирована и разработана на основе ООП и реализует рассмотренную обобщенную концепцию численного моделирования.

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

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

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

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

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

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

и

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

¡Mathematics [

j SimulationCollection I

-1 Component

\ Connection

-¡Link

-1 System

-Г Analysis

-1 Model

Simulation

j Element |

j Subsystem j*~|

-I StaticAnalysis

-iDyrr.amicAnalysis

-fFrequencyAnalysis I

StaticModel

H DynamicModel I —| FrequencyModel [

j StaticModeiTI H StaticModeE] H StaticModeB I

Рис. 2. Иерархия классов инструментальной среды моделирования

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

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

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

Класс Connection реализует понятие связи компонентов в моделируемой системе и инкапсулирует идентификатор, вектор переменных, а также список компонентов, которые она объединяет. Список компонентов оказывается полезным, например, при редактировании моделируемой системы — связь не может быть удалена, если к ней прикреплен хотя бы один компонент. Инструментальная среда использует реализацию списочной структуры данных из стандартной библиотеки шаблонов языка Си++ STL. Интерфейс класса Connection определяет и реализует методы задания и получения идентификатора связи, прикрепления и открепления компонента, оперирования переменными связи, ввода/вывода связи.

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

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

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

Абстрактный класс Analysis предназначен для постановки задач моделирования в терминах пользователя, которая включает указание вида ана-

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

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

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

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

Поскольку каждая физическая система может моделироваться различным образом в соответствии с видом проводимого анализа и способом формирования математической модели, в инструментальной среде организована иерархия модельных классов. Базовый класс Model обеспечивает необходимый доступ к представлению моделируемой системы типа System через соответствующий инкапсулируемый указатель и определяет абстрактные методы формирования и расчета ее математической модели, а также методы постобработки результатов решения и доступа к вычислительному алгоритму. Классы StaticModel, DynamicModel, FrequencyModel, производные от Model, обеспечивают представление статических, динамических и частотных математических моделей в требуемой форме и уточняют специфику их формирования и расчета путем переопределения соответствующих методов.

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

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

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

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

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

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

Основным классом, соответствующим понятию программного приложения и объединяющим все рассмотренные выше средства численного моделирования, является Simulation. Класс реализует методы задания моделируемой системы типа System, ее моделей типа Model, условий моделирования типа Analysis, алгоритмов решения возникающих математических задач, а также методы проведения моделирования, постобработки результатов и вывода их пользователю.

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

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

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

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

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

Рис. 3. Инструментальные средства разработки приложений моделирования

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

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

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

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

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

Третья глава посвящена результатам реализации рабочих прототипов CAD/CAM систем для параметрического геометрического моделирования и моделирования течений в трубопроводных сетях, построенных на основе разработанной инструментальной среды. Реализованные версии CAD/CAM систем предназначены для работы на персональных компьютерах в ОС Windows 3.1+Win32s, Windows 95, Windows NT. Их графический интерфейс был разработан под перечисленные ОС с использованием библиотек классов OWL (Borland) и MFC (Microsoft). Возможен перенос разработанных систем моделирования на другие аппаратные платформы, включая рабочие станции под управлением ОС UNIX. В этом случае необходима лишь дополнительная программная реализация оконного интерфейса.

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

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

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

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

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

ческими примитивами, поэтому они рассматриваются в качестве самостоятельных объектов.

----------- ------- -------- ¡Element | —-------------- ---------- ------------------------------

ParametricElement

GeometricPrimitive WJreframePrimitlve Point Line Circle Arc

ConicSection Ellipse Parabola Hyperbola NliRBSCurve Polygon CSGPrimitive Parallelepiped Cylinder Cone Sphere Torus Polyhedron BoundaryPrimitive Plane

CylindricalSurface ConicSurface SphericalSurface NURBSSurface

ConstructionElement ConstructionPoint

ConstructionLine

ConstructionCircle

ConstructionPlane

Constraint

GeometricConstraint StaticPoint StaticCoordinate EqualSizes EqualProjectlons CoincidentPoints ColncldentCoordinates ParallelLines PerpendicularLines PlanarLines ColinearLines PointLiesOnLlne PointLlesOnCircle DlmensionalConstraint Size

SizeProjection AngleBetweenPoints AngleBetweenLines ProjecticnOnLme

ProjectionOriCircle Perimeter2D Area2D Centroid2D Area3D Volume3D Centroid3D AlgebraicConstraint LinearConstraint

Рис. 4. Иерархия классов элементов параметрического моделирования

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

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

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

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

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

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

Объектная архитектура системы параметрического геометрического моделирования позволяет также достаточно просто организовать ее взаимодействие с другими прикладными программами, например, с объектно-ориентированной системой трехмерного геометрического моделирования VG++, разработанной в Институте системного программирования РАН. Система VG++ обеспечивает построение, редактирование и визуализацию трехмерных геометрических сцен, представленных конструктивной твердотельной и граничной моделями, и сочетает мощные средства манипулирования геометрическими объектами с эффективными процедурами экранизации, включая удаление невидимых линий и тоновую закраску объектов. Взаимодействие между двумя системами было организовано на уровне обмена данными через файлы или буфер обмена ОС Windows. Организация взаимодействия свелась к минимальным изменениям в системе параметрического геометрического моделирования, причем данные изменения носили локальный характер.

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

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

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

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

• Element (абстрактный элемент)

• PipingElement (элемент гидравлической цепи)

• Pipe (труба)

• Pipe2 (квадратичная модель трубы)

• Pipc3 (кубическая модель трубы)

• Tributary (приток жидкости)

• Consumer (потребитель)

• Pressure (источник давления)

• Pump (насос)

• Pumpl (линейная модель насоса, не учитывает его гидравлическое сопротивление)

• Ритр2 (квадратичная модель насоса)

• РитрЗ (кубическая модель насоса)

• Torrent (поток жидкости)

• Reservoir (резервуар)

• Damper (гаситель энергии потока жидкости)

• Regulator (регулятор)

• PressureRegulator (регулятор давления)

• FlowRegulator (регулятор расхода)

• Radiator (радиатор отопления)

• HeatPlant (ТЭЦ)

Рис. 5. Иерархия классов элементов гидравлических цепей

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

Для реализации графической интерактивной системы моделирования течений в интерфейсе класса PipingElement определены методы отображения символического обозначения элемента в заданной плоскости вида, визуализации его текущего состояния, определения принадлежности точки элементу и элемента заданной плоскости вида, редактирования параметров и координат элемента. С аналогичной целью реализован класс PipingNode, производный от Connection. Его дополнительные методы осуществляют рисование узла в заданной плоскости вида, визуализацию значений переменных связи, определение принадлежности узла плоскости вида, вычисление его экранных координат, проецирование узла на указанную плоскость, доступ к его координатам.

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

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

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

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

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

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

В приложении 1 приводятся фрагменты иерархии классов объектно-ориентированной математической библиотеки.

Приложение 2 содержит иллюстрации, демонстрирующие примеры решения прикладных задач с помощью реализованных рабочих прототипов CAD/CAM систем для параметрического геометрического моделирования и моделирования течений в трубопроводных сетях.

ЗАКЛЮЧЕНИЕ

В диссертационной работе получены следующие основные результаты:

1. Исследованы возможности и проблемы применения ООП к реализации программных средств постановки и решения задач численного моделирования разнообразных физических явлений и проектирования различных технических систем.

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

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

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

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

6. Организовано взаимодействие реализованного прототипа системы параметрического геометрического моделирования с объектно------------ориентированной системой трехмерного_ геометрического моделирования VG++, разработанной в Институте системного программирования РАН, на уровне обмена данными через файлы или буфер обмена. Организация взаимодействия свелась к минимальным изменениям в системе параметрического геометрического моделирования, не затрагивающим ее целостности.

Автор выражает особую признательность научному руководителю Семенову Виталию Адольфовичу за ценные советы и постоянное внимание к работе, а также директору ИСП РАН Иванникову Виктору Петровичу, обеспечившему благоприятные условия для ее выполнения. Автор искренне благодарит своих коллег по многолетней совместной работе Тарлапана Олега Анатольевича и Ширяеву Екатерину Юрьевну, а также своих родных за помощь и моральную поддержку.

Основные результаты диссертации опубликованы в следующих

работах:

1. Семенов В А., Морозов C.B. Объектно-ориентированное программирование задач численного анализа. // Вопросы кибернетики. Приложения системного программирования. —M.: НСК РАН, 1995, с. 189—

2. Семенов В.А., Морозов C.B. Объектно-ориентированное программирование квадратурных методов. // Вопросы кибернетики. Приложения системного программирования. Выпуск 2. — М.: НСК РАН, 1996, с. 120-146.

3. Семенов В.А., Морозов C.B., Тарлапан O.A., Ширяева Е.Ю. Объектно-ориентированная среда для разработки вычислительных приложений. // Материалы XXIII международной конференции «Новые информационные технологии в науке, образовании и бизнесе», Украина, Крым, Ялта-Гурзуф, 15-24 мая 1996 г., с. 63-66.

4. Семенов В.А., Морозов C.B., Тарлапан O.A., Ширяева Е.Ю. Объектно-ориентированная инструментальная среда для разработки систем численного моделирования. И Вопросы кибернетики. Приложехшя системного программирования. Выпуск 3. — М.: НСК РАН, 1997,

211.

с. 205-226.