|
Моделирование оптических приборовВведениеВ последнее десятилетие существенно расширились возможности и изменились инструменты разработчиков программ проектирования оптических систем. Развитие и широкое распространение объектно-ориентированных технологий создания программного обеспечения оказывает существенное влияние на математические модели и численные методы решения прикладных задач. Включение в стандарты языков программирования таких универсальных структур данных как массивы с переменным количеством элементов, связанные списки, деревья, ассоциативные массивы требует пересмотра организации хранения информации о моделируемом или проектируемом объекте. Системы управления реляционными и объектно-ориентированными базами данных для организации эффективного хранения, поиска и быстрого доступа к данным стали надежными, широко доступными и могут использоваться при создании каталогов оптических материалов и библиотек оптических систем. С другой стороны, существенно возросли потребности специалистов-оптиков, перед которыми стоят новые задачи. Расширилась номенклатура физически реализуемых и используемых оптических поверхностей, сред, элементов и деталей. При создании современных прецизионных оптических систем требуется учитывать новые факторы, влияющие на работу оптической системы. Усложняется компоновка оптических систем (многоконфигурационные системы, системы c синтезированной апертурой и др.) Требуются новые режимы анализа, оптимизации, синтеза оптических систем и автоматизация других этапов жизненного цикла оптического прибора. Таким образом, с одной стороны компьютерные технологии предоставляют новые возможности при проектировании и конструировании оптических систем, но с другой стороны требуют развития теории, алгоритмов и численных методов вычислительной оптики. Требования к структуре данных при автоматизации проектирования оптических системИсходными данными для решения большинства задач компьютерного моделирования и проектирования оптических систем являются ее конструктивные параметры. Поэтому важность выбора структуры данных для хранения конструктивных параметров в программах проектирования оптики трудно переоценить. Оптимальная организация структуры хранения конструктивных параметров определит эффективность автоматизации проектирования в целом. Внешнее и внутреннее представление конструктивных параметров зависит от уровня проектирования, на котором используется программа автоматизации. Вообще, выделяют следующие уровни проектирования оптических приборов: информационно-логический, системотехнический, схемотехнический, конструкторский, технологический. На информационно-логическом и системотехническом уровне проектирования используется внешняя функциональная модель оптической системы. Оптическая система представляется в виде единого блока, который характеризует набор передаточных (масштабных, энергетических, структурных) и присоединительных (предметных, зрачковых, спектральных) характеристик. Определение конструктивных параметров начинается на схемотехническом уровне проектирования, при решении задач синтеза, анализа и оптимизации оптической системы. На этапе синтеза определяется структура оптической системы и основные параметры, составляющих ее оптических элементов. Синтез может выполняться с использованием различных методик. В одних из них для синтеза сразу используются конкретные оптические элементы с заранее известными аберрационными свойствами (например, анастигматическая или апланатическая линза). В других – для синтеза используются абстрактные элементы, обладающие требуемыми оптическими характеристиками (например, “тонкий” компонент, обладающий оптической силой). При использовании такого подхода в программах автоматизированного проектирования после синтеза должна быть предусмотрена процедура преобразования абстрактных элементов в оптические элементы с конкретными конструктивными параметрами. Таким образом, на этапе синтеза в структуре данных наряду с информацией о конкретных оптических элементах должна храниться информация об абстрактных оптических элементах с возможностью последующей замены абстрактного элемента на конкретную оптическую поверхность или деталь. На этапе анализа оптическая система описывается конструктивными параметрами в приближении достаточном для математического моделирования ее работы. Конструктивные параметры включают в себя параметры оптических сред, параметры оптических элементов, параметры световых размеров оптических элементов и апертурной диафрагмы, параметры взаимного расположения оптических элементов. Оптическая система при проектировании большую долю времени находится в состоянии анализа, поэтому при создании структуры данных для хранения конструктивных параметров требование оптимального проведения процедуры анализа должно быть определяющим. На этапе анализа многократно выполняется большое количество вычислительных операций, таких как определение гауссовых характеристик и габаритов пучков, вычисление аберраций и характеристик качества оптической системы. Но основной вычислительной процедурой является расчет прохождения лучей через оптическую систему, который производится на этапах анализа и синтеза, и еще более интенсивно на этапе оптимизации. Все это приводит к заключению о том, что, несмотря на все повышающееся быстродействие процессоров, необходимо стремится к высокой вычислительной эффективности алгоритмов, а структура данных должна обеспечивать высокую скорость доступа к любому параметру. Это позволит организовать вычисления с максимальной скоростью и повысить их точность, так как в некоторых случаях можно будет обходиться без процедуры аппроксимации. Еще одно требование к структуре данных – это оптимальное расходование оперативной и дисковой памяти. Хотя объем памяти, доступный в программах неуклонно увеличивается, но все же остается не безграничным. Этап оптимизации оптических систем выполняется с использованием объектно-инвариантных методов. Оптимизационную модель оптической системы составляют параметры оптимизации, оптимизируемые функции, критерии оптимизации, ограничения и связывающие их соотношения – проба функций и проба производных. Необходимо предусмотреть процедуру преобразования структуры данных в оптимизационную модель, когда некоторые конструктивные параметры становятся параметрами оптимизации и входят в оптимизируемые функции, и обратную процедуру. На конструкторском и технологическом уровнях проектирования оптический прибор приобретает “материальную” реализацию. Оптическая система представляется состоящей из оптических деталей (линз, призм, зеркал и других), определенным образом расположенных в пространстве посредством закрепления их в оправах. Структура данных должна легко интерпретироваться и преобразовываться в этот вид. Объектно-ориентированный подход к организации структуры данныхБольшая доля операций при автоматизации проектирования оптических систем является объектно-ориентированной. Поэтому структура данных для хранения конструктивных параметров легко реализуется с использованием объектно-ориентированного подхода. При создании объектно-ориентированной системы принципиальным вопросом является вопрос о том, какие объекты структуры данных являются элементарными? Выбор элементарных объектов относительно произволен и может изменяться для организации наиболее эффективного взаимодействия между объектами. Рассмотрим возможные варианты элементарных объектов при создании объектно-ориентированной модели оптической системы: 1) Оптическая поверхность – это регулярная гладкая поверхность раздела двух сред, определенным образом расположенная и ориентированная в пространстве. Благодаря принципам абстракции и наследования мы можем выявить общие атрибуты всевозможных оптических поверхностей (положение, световая высота и др.) и унаследовать эти свойства, реализовав в наследниках особенности конкретных поверхностей (плоскость, поверхность 2-го порядка, асферическая поверхность и т.п.) Пример объекта типа поверхность приведен на рисунке 1, а диаграмма наследования – на рисунке 2. Рис. 1 Пример объекта типа “Оптическая поверхность” Рис. 2 Диаграмма наследования от элементарного объекта типа “Оптическая поверхность” Использование объекта поверхность в качестве элементарного оптимально при решении задач анализа и оптимизации. При решении задач синтеза объект поверхность недостаточно абстрактен. Для конструирования объект поверхность также недостаточно удобен, так как “материальная” реализация линзы, например, будет совокупностью двух объектов типа поверхность. Это потребует процедуры перехода к модели, в которой элементарным объектом является оптическая деталь. Впрочем, такое преобразование не составит большого труда. 2) Оптическая деталь – это материально реализуемый объект, выполняющий преобразование проходящего оптического излучения, определенным образом расположенный и ориентированный в пространстве. Благодаря принципам абстракции и наследования можно выявить общие атрибуты всевозможных оптических деталей (положение, световой диаметр и др.) и унаследовать эти свойства, реализовав в наследниках особенности конкретных деталей (линза, зеркало, призма и др.) Пример объекта типа деталь на рисунке 3, а диаграмма наследования – на рисунке 4. Рис. 3 Пример объекта типа “Оптическая деталь” Рис. 4 Диаграмма наследования от элементарного объекта типа “Оптическая деталь” Использование объекта поверхность в качестве элементарного оптимально на этапе конструирования, технологического проектирования и изготовления, так как является моделью наиболее близкой к реальному воплощению. Объект деталь вполне приемлем для решения задач анализа и оптимизации. При решении задач синтеза по некоторым методикам использовать объект деталь просто невозможно из-за того, что он не является абстрактным. 3) Оптический преобразователь – это абстрактный объект, выполняющий преобразование проходящего оптического излучения. Используя принципы абстракции и наследования можно выявить общие атрибуты всевозможных оптических преобразователей и унаследовать эти свойства, реализовав в наследниках особенности конкретных преобразователей (поверхность, среда и др.) Пример объекта типа преобразователь на рисунке 5, а диаграмма наследования от элементарного объекта типа преобразователь – на рисунке 6. Рис. 5 Пример объекта типа “Оптическая преобразователь” Рис. 6 Диаграмма наследования от элементарного объекта типа “Оптический преобразователь” Использование объекта преобразователь в качестве элементарного приемлемо на уровне схемного проектирования оптики при решении задач анализа, синтеза и оптимизации. Объект преобразователь недостаточно конкретен для использования на уровнях конструирования, технологического проектирования и изготовления, но легко преобразуется в конкретные детали и обратно. После выбора основного объекта структуры данных следует решить вопрос, как организовать хранение их наборов? Как уже было отмечено, современные языки программирования (С++, Java, Python и другие) предоставляют в распоряжение разработчика большое количество разнообразных контейнеров, которые можно использовать для организации структуры данных. При использовании описания конструктивных параметров оптической системы последовательного типа для хранения требуются контейнеры, которые организуют последовательное хранение и последовательный доступ к элементам. Рассмотрим возможность использования различных контейнеров при создании объектно-ориентированной модели оптической системы. К последовательным контейнерам относятся в первую очередь массивы и очереди. Главными достоинствами массива являются простота и высокая скорость индексированного доступа к элементам. Особенностью реализации массивов в языке С++ является возможность изменения его размеров в процессе выполнения. Существенным недостатком массивов является неоптимальное выполнение процедуры вставки элементов в начало и в средину контейнера. Вставка элементов в произвольной позиции массивов требует переразмещения всего массива в памяти. Кроме того, что эта процедура трудоемка, она еще и опасна. Если в программе используются ссылки на объекты, хранящиеся в массиве, то они становятся недействительными. При определении габаритов пучков и аберраций может потребоваться двусторонний обход элементов контейнера. В этом случае для хранения объектов лучше использовать двустороннюю очередь. По своим свойствам она похожа на массив, но более эффективно выполняет операции вставки в начало контейнера и обхода элементов в обратном порядке. Недостатки контейнеров типа массив и очередь можно преодолеть, если использовать разновидность последовательных контейнеров – списки. Эти узловые контейнеры так же просты в использовании, но оптимальны для вставки элементов в произвольной позиции, так как это происходит без переразмещения памяти. Недостатком списков является то, что при последовательном обходе списки несколько уступают по эффективности массивам. Это связано с тем, что элементы хранятся в памяти не в последовательном блоке, а разрозненно. Связи между элементами обеспечиваются специальными объектами – узлами, в которых хранится ссылка на предыдущий и последующий элемент последовательности (для двусвязных списков). Узлы требуют дополнительного объема памяти для хранения этих ссылок. Тем не менее, список является наиболее универсальным контейнером, который удовлетворяет большинству требований к структуре данных для хранения конструктивных параметров оптических систем. При анализе структуры данных для хранения конструктивных параметров особо следует выделить системы с переменными характеристиками и многоконфигурационные оптические системы. Для хранения конструктивных параметров таких систем необходимо разрабатывать специализированную структуру данных на основе многосвязных списков или деревьев. ЗаключениеТаким образом, главным требованием, которое предъявляется к структуре данных для хранения конструктивных параметров, является полиморфизм, то есть возможность представления в различных формах, преобразования одного элемента структуры в другой и преобразования всей структуры в целом. Кроме того, к структуре данных для хранения конструктивных параметров предъявляются следующие требования:
Объектно-ориентированный анализ оптической системы как объекта проектирования показал, что одним из наиболее приемлемых вариантов при организации структуры данных для хранения конструктивных параметров является использование двусвязного списка, в котором хранятся элементарные объекты типа оптических преобразователей. Этот вариант обеспечит оптимальное выполнение требуемых действий, по размещению, изменению, удалению хранимых объектов, высокую скорость и экономичность расходования памяти, а главное – он легко преобразуется в любую другую структуру данных. |