Научная статья на тему 'Объектно-ориентированная структура данных для хранения конструктивных параметров оптических систем в программах автоматизированного проектирования'

Объектно-ориентированная структура данных для хранения конструктивных параметров оптических систем в программах автоматизированного проектирования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
94
34
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Домненко Виталий Михайлович, Шехонин Александр Александрович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Домненко Виталий Михайлович, Шехонин Александр Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Объектно-ориентированная структура данных для хранения конструктивных параметров оптических систем в программах автоматизированного проектирования»

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

В.М. Домиеико, A.A. Шехонин

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

Введение

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

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

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

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

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

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

Исходными данными для решения большинства задач компьютерного моделирования и проектирования оптических систем являются ее конструктивные параметры [6]. Поэтому важность выбора структуры данных для хранения

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

системотехнический, схемотехнический, конструкторский, технологический [7, 8].

На информационно-логическом и системотехническом уровне проектирования используется внешняя функциональная модель оптической системы. Оптическая система представляется в виде единого блока, который характеризуется набором передаточных (масштабных, энергетических, структурных) и присоединительных (предметных, зрачковых, спектральных) характеристик [6]. Определение конструктивных параметров начинается на схемотехническом уровне проектирования, при решении задач синтеза, анализа и оптимизации оптической системы.

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

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

На этапе анализа многократно выполняется большое количество вычислительных операций, таких как определение гауссовых характеристик и габаритов пучков, вычисление аберраций и характеристик качества оптической системы [6]. Но основной вычислительной процедурой является расчет прохождения лучей через оптическую систему, который производится на этапах анализа и синтеза и еще более интенсивно -на этапе оптимизации. Все это приводит к заключению о том, что, несмотря на все повышающееся быстродействие процессоров, необходимо стремиться к высокой вычислительной эффективности алгоритмов, а структура данных должна обеспечивать высокую скорость доступа к любому параметру. Это позволит организовать вычисления с максимальной скоростью и повысить их точность, так как в некоторых случаях можно будет обходиться без процедуры аппроксимации. Еще одно требование к структуре данных - это оптимальное расходование оперативной и дисковой памяти. Хотя объем памяти, доступный в программах, неуклонно увеличивается, но все же остается не безграничным.

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

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

Объектно-ориентированный подход к организации структуры данных

Большая доля операций при автоматизации проектирования оптических систем является объектно-ориентированной [6]. Поэтому структура данных для хранения конструктивных параметров легко реализуется с использованием объектно-ориентированного подхода.

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

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

Рис. 1. Пример объекта типа "Оптическая поверхность": г - радиус поверхности; п - показатель преломления до поверхности; п' - показатель преломления после поверхности; И - световая высота; с! - расстояние до следующей

поверхности

Рис. 2. Диаграмма наследования от элементарного объекта типа

"Оптическая поверхность"

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

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

i i

■ч т.

(х,уГ' п } Г

6 м——►

Рис. 3. Пример объекта типа "Оптическая деталь": (х, у) - положение детали;

- радиус первой поверхности; Р2 - радиус второй поверхности; п - показатель преломления материала; Э - световой диаметр; с! - толщина

вдоль оптической оси

Рис. 4. Диаграмма наследования от элементарного объекта типа "Оптическая

деталь"

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

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

Рис. 5. Пример объекта типа "Оптическая преобразователь"

Рис. 6. Диаграмма наследования от элементарного объекта типа "Оптический

преобразователь"

Использование объекта "преобразователь" в качестве элементарного приемлемо на уровне схемного проектирования оптики при решении задач анализа, синтеза и оптимизации. Объект "преобразователь" недостаточно конкретен для использования на

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

После выбора основного объекта структуры данных следует решить вопрос, как организовать хранение их наборов. Как уже было отмечено, современные языки программирования (С++, Java, Python и др.) предоставляют в распоряжение разработчика большое количество разнообразных контейнеров, которые можно использовать для организации структуры данных [3].

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

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

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

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

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

Заключение

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

другой и преобразования всей структуры в целом. Кроме того, к структуре данных для хранения конструктивных параметров предъявляются следующие требования:

• близость внутреннего представления к внешнему;

• простота использования и реализации;

• высокая скорость доступа к любому параметру;

• экономичность в расходовании аппаратных и программных ресурсов;

• расширяемость.

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

Литература

1. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. М: Бином, СПб: Невский диалект, 1998. 560 с.

2. Страуструп Б. Язык программирования С++. СПб: Невский диалект, М.: Бином, 1999. 991 с.

3. Топп У., Форд У. Структуры данных в С++. М.: Бином, 1999. 816 с.

4. Дейт К. Дж. Введение в системы баз данных. К.: Диалектика, 1998. 784 с.

5. Вычислительная оптика: Справочник Под общ. ред. М. М. Русинова. JL: Машиностроение, 1984. 423 с.

6. Родионов С. А. Автоматизация проектирования оптических систем . JI.: Машиностроение, 1982. 270 с.

7. Проектирование оптико-электронных приборов: Учебник. Под ред. Ю. Г. Якушенкова. М.: Логос, 2000. 488 с.

8. Родионов С.А., Шехонин A.A. Методология проектирования оптических приборов: Учебное пособие. СПб: СПбГИТМО(ТУ). 1996. 84 с.

9. Слюсарев Г.Г. Методы расчета оптических систем. Л.: Машиностроение, 1969. 670 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.