Объектно-ориентированная модель конструктивных параметров оптической системы Компьютерные методы моделирования оптических приборов кафедра прикладной и компьютерной оптики 2 Требования к структуре данных при автоматизации проектирования ОС Требования разработчиков оптического прибора внешнее представление Требования программистов внутреннее представление внутреннее представление должно быть как можно ближе к внешнему 3 Уровни проектирования ОП Информационно-логический Системотехнический Внешняя функциональная модель Передаточные и присоединительные характеристики Схемотехнический Синтез, анализ, оптимизация Конструкторский Технологический 4 Синтез, анализ, оптимизация Синтез: определяется структура оптической системы и основные параметры, ее оптических элементов оптические элементы с известными аберрационными свойствами (апланатическая линза) абстрактные элементы с требуемыми оптическими характеристиками (“тонкий” компонент, обладающий оптической силой) информация о конкретных оптических элементах и абстрактных оптических элементах 5 Синтез, анализ, оптимизация Анализ: оптическая система описывается конструктивными параметрами в приближении достаточном для математического моделирования ее работы параметры оптических сред и оптических элементов световые размеры оптических элементов и апертурной диафрагмы параметры взаимного расположения оптических элементов многократно выполняется большое количество вычислительных операций оптимальное расходование оперативной и дисковой памяти 6 Синтез, анализ, оптимизация Оптимизация: использование объектно-инвариантных методов параметры оптимизации оптимизируемые функции критерии оптимизации ограничения и т.д. Необходимо преобразование структуры данных в оптимизационную модель Внешние представления конструктивных параметров: электронной таблицы графические представления оптической схемы документальное представление (оптического выпуска) 7 Уровни проектирования ОП Информационно-логический Системотехнический Внешняя функциональная модель: Передаточные и присоединительные характеристики Схемотехнический Синтез, анализ, оптимизация Конструкторский Технологический оптические детали расположенные в пространстве посредством закрепления их в оправах 8 Требования к структуре данных Полиморфизм Близость внутреннего представления к внешнему Простота использования и реализации Высокая скорость доступа к любому параметру Экономичность в расходовании аппаратных и программных ресурсов Расширяемость 9 Традиционный подход R(NS) массив кривизн сферических поверхностей С(NS) массив эксцентриситетоыв поверхностей D(NS-1) массив осевых расстояний H(NS) массив световых высот поверхностей N(NS, NL) двумерный массив показателей преломления на разных длинах волн NS – количество поверхностей в системе NL – количество длин волн на которых будет производиться расчет 10 Объектно-ориентированный подход Что представляет собой базовый объект в структуре данных оптической системы? Как организовать хранение набора объектов и их взаимного расположения? 11 Объект типа “Оптическая поверхность” Оптическая поверхность – это регулярная гладкая поверхность раздела двух сред, определенным образом расположенная и ориентированная в пространстве r – радиус поверхности n – показатель преломления до поверхности n’ – показатель преломления после поверхности h – cветовая высота d – расстояние до следующей поверхности h n r n’ d 12 Диаграмма наследования для базового объекта “поверхность” Оптическая поверхность Сплайн-поверхность Поверхность 2-го порядка Асферическая поверхность Конус Тор Решетка Цилиндрическая поверхность Поверхность Френеля ... 13 Объект типа «Оптическая деталь» Оптическая деталь – это материально реализуемый объект, выполняющий преобразование проходящего оптического излучения, определенным образом расположенный и ориентированный в пространстве (x,y) – положение детали r1 – радиус 1-й поверхности r2 – радиус 2-й поверхности n – показатель преломления материала D – cветовой диаметр d – толщина вдоль оптической оси r1 r2 D (x,y) n d 14 Диаграмма наследования для базового объекта «деталь» Оптическая деталь Линза Зеркало Призма Решетка Линза Френеля ... 15 Объект типа «Оптический преобразователь» Оптический преобразователь – это абстрактный объект, выполняющий преобразование проходящего оптического излучения Элемент – это объект, который осуществляет такие преобразование оптического излучения как преломление, отражение и тому подобные. Направляющая – это объект, который осуществляет перенос оптического излучения в среде и описывает взаимное положение элементов П 16 Диаграмма наследования для базового объекта «преобразователь» Оптический преобразователь Оптическая среда Однородная среда Оптический элемент Поверхность ... Тонкий компонент ... Голографический элемент ... Градиентная среда ... 17 Хранение объектов Массивы и очереди (vector, queue) простота и высокая скорость доступа к элементам, возможность изменения его размеров в процессе выполнения неоптимальное выполнение вставки элементов в начало и в средину контейнера Двустороннюю очередь (deque) более эффективно выполняет операции вставки в начало контейнера и обхода элементов в обратном порядке. Списки (list) оптимальны для вставки элементов в произвольной позиции при последовательном обходе списки уступают по эффективности массивам Многосвязные списки или деревья (set, map) для систем с переменными характеристиками и многоконфигурационных оптических систем Лабораторная работа №2 Компьютерные методы моделирования оптических приборов кафедра прикладной и компьютерной оптики 19 Задание к лабораторной работе №2 Создать приложение на основе диалогового окна, вычисляющее параксиальные характеристики линзы. Для выполнения задания создать классы, представленные на диаграмме. Последовательность вычислений указана на диаграмме последовательности. 20 Surface Matrix #m_h : double +Surface() +~Surface() +SetH(in h : double) +GetH() : double +GetTransformMatrix(out transform : &Matrix, in n : double, in n_ : double) : void SphericalSurface -m_r : double +GetTransformMatrix(out transform : &Matrix, in n : double, in n_ : double) : void +SphericalSurface() +~SphericalSurface() +SetR(in r : double) : void +GetR() : double Paraxial +m_f : double +m_f_ : double +m_sf : double +m_sf_ : double +m_sh : double +m_sh_ : double +Paraxial() +~Paraxial() DlgLens Lens -m_d : double -m_n : double -m_surface1 : SphericalSurface -m_surface2 : SphericalSurface +Lens() +~Lens() +SetIndexOfRefraction(in n : double) : void +GetIndexOfRefraction() : double +SetThickness(in d : double) : void +GetThickness() : double +CalculateParaxial(out paraxial : &Paraxial) : void +OnButtonCalculate() : void DlgParaxial -m_paraxial : Paraxial +DoModal() 21 lensDl paraxial len m_surface OnButtonCalculate Paraxial() Lens() SphericalSurface() SphericalSurface() CalculateParaxial() GetTransformMatrix() GetTransformMatrix() DoModal() m_surface paraxialDlg