Объектно-ориентированная модель конструктивных параметров оптической системы Моделирование оптических систем кафедра прикладной и компьютерной оптики 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 – световая высота 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) для систем с переменными характеристиками и многоконфигурационных оптических систем Компьютерные модели света Моделирование оптических систем кафедра прикладной и компьютерной оптики Векторная модель э.м. поля Уравнения Максвелла: rot E H t E rot H c t div D c E Ex E Ey Ez Hx H Hy Hz H div B 0 E – вектор электрической напряженности поля H – вектор магнитной напряженности поля D – электрическая индукция B – магнитная индукция ρ – объемная плотность заряда: ε, μ – электрическая и магнитная проницаемость среды S Скалярная модель э.м. поля Переход к скалярной модели возможен для линейных и однородных сред и монохроматического поля Комплексная амплитуда поля: ik E (r ) U (r ) a(r ) e 0 где a(r ) U (r ) – вещественная амплитуда, E (r ) k0 c – волновое число в вакууме Уравнение Гельмгольца: 2 k 2 U 0 0 k0 – эйконал поля, Интенсивность поля Регистрируется усредненная во времени величина – интенсивность поля Интенсивность равна квадрату модуля комплексной амплитуды: 2 I U UU * Компьютерное представление поля Интенсивность света – выборка (n×m) Комплексная амплитуда поля – 2 выборки (n×m) Интенсивность Вещественная часть к.а. поля Мнимая часть к.а. поля Векторная модель поля – 12 выборок (n×m): Ex электрическая компонента поля E E y : 3×2 выборки (n×m) Ez Hx магнитная компонента поля H H y : 3×2 выборки (n×m) Hz Объектно-ориентированная модель поля PAR Sample -m_data : PAR -m_nx : int -m_ny : int +Maximum() : double +Minimum() : double +Sum() : double Field -m_sample : Sample<complex<double> > -m_left -m_rigth -m_xstep -m_ystep FullField -m_field_x : Field -m_field_y : Field -m_field_z : Field ElectricField : FullField MagneticField : FullField m_field_x : Field m_field_y : Field m_field_z : Field m_field_x : Field m_field_y : Field m_field_z : Field Волновой фронт Волновой фронт – это поверхность равной фазы или равного эйконала: E r const P const q – оптический лучевой вектор q n X n cos x q Y n cos y Z n cos z где X, Y, Z – направляющие косинусы Волновой фронт и лучи Луч – это нормаль к волновому фронту направление луча совпадает с направлением распространения волнового фронта и определяется оптическим вектором в каждой точке пространства (x, y, z) x s y z X q Y Z луч q E3 E1 E2 Оптический луч в однородной и неоднородной среде В однородной среде n const направление луча остается постоянным: q const в однородной среде лучи являются прямыми линиями на границе раздела двух сред луч преломляется в соответствии с законом преломления В неоднородной среде луч искривляется в сторону градиента показателя преломления n q кривизна луча пропорциональна n n луч Пучок лучей Гомоцентрические пучки лучей имеют общий центр, то есть все лучи выходят или сходятся в одной точке волновой фронт гомоцентрического пучка сферический в частном случае волновой фронт плоский Квазигомоцентрический пучок лучей - это пучок, все лучи которого проходят через небольшую область пространства О Габаритные лучи Апертурный луч – это луч, идущий из осевой точки предмета и проходящий через край апертурной диафрагмы Главный луч – это луч, идущий из внеосевой точки предмета и проходящий через центр апертурной диафрагмы Верхний (нижний) луч внеосевого пучка – это луч, проходящий через верхний (нижний) край апертурной диафрагмы и соответствующие ему сопряженные точки входного и выходного зрачков апертурный луч верхний луч главный луч нижний луч вх. зрачок вых. зрачок Объектно-ориентированная модель реального луча ORealRay +m_X : double +m_x : double +m_Y : double +m_y : double +m_Z : double +m_z : double +ORealRay() +ORealRay(in other : const ORealRay&) +~ORealRay() +operator=(in other : const ORealRay&) : ORealRay& +Reset() : void +Transfer(in l : double) : void ORealRayPath * 1 -m_length : double -m_ray : vector<ORealRay> +ORealRayPath() +ORealRayPath(in other : const ORealRayPath&) +~ORealRayPath() +operator=(in other : const ORealRayPath&) : ORealRayPath& +Reset() : void +Reserve(in size : int) : void +GetRay(in index : int) : ORealRay& +SetRay(in ray : const ORealRay&, in index : int) : void +AddLength(in length : double) : void +GetLength() : double * OBeam +m_chief : ORealRayPath +m_marginal : vector<ORealRayPath> +MeridAxisBeamForm() +MeridNonAxisBeamForm() +SagNonAxisBeamForm() 1 Параксиальные лучи Параксиальный луч - луч, идущий бесконечно близко к оптической оси Параксиальный луч в меридиональной плоскости: y Y y Y где Y n y , y – угол между лучом и оптической осью в меридиональной плоскости x=0, X=0 для параксиального луча (углы до 20º (sin(0.349)=0.343 [1.7%])): cos sin Преобразование координат оптических лучей Действие оптической системы заключается в преобразовании координат лучей: y y ОС Y Y Преобразование координат луча оптической системой в матричной форме: y A B y Y C D Y Матрица преобразования лучей (гауссова матрица, ABCD-матрица): A B G C D Матрицы преломления и переноса Матрица преломления сферической поверхности: 1 0 R ( n n ) 1 Матрица переноса между поверхностями: 1 T 0 d где n d n 1 – приведенное расстояние между опорными плоскостями Матрица оптической системы: G RnTn ...R1T1T0 Расчет параксиальных лучей через оптическую систему Нулевые лучи – это лучи, которые преломляются по законам параксиальной оптики, но имеют произвольно большие координаты Этапы расчета нулевых лучей: определение входных координат луча последовательное определение координат луча на всех компонентах определение выходных координат луча Для расчета берется пара лучей: апертурный луч главный луч нет смысла считать весь пучок, т.к. отсутствуют аберрации нет смысла считать нижний и верхний лучи внеосевого пучка, т.к. для нулевых лучей отсутствует виньетирование и ограничения пучков Объектно-ориентированная модель параксиального луча ONullRay -m_a : double -m_h : double +ONullRay() +ONullRay(in h : double, in a : double) +ONullRay(in other : const ONullRay&) +~ONullRay() +operator=(in other : const ONullRay&) : ONullRay& +Reset() : void +GetA() : double +GetH() : double +SetA(in a : double) : void +SetH(in h : double) : void ONullRayPair * 1 ONullRayPath -m_ray : vector<ONullRayPair> +ONullRayPath() +ONullRayPath(in other : const ONullRayPath&) +~ONullRayPath() +operator=(in other : const ONullRayPath&) : ONullRayPath& +Reset() : void +Reserve(in size : int) : void +GetCount() : int +GetRay(in index : int) : ONullRayPair& +SetRay(in ray : const ONullRayPair&, in index : int) : void -m_marginal : ONullRay -m_principal : ONullRay +ONullRayPair() +ONullRayPair(in other : const ONullRayPair&) +~ONullRayPair() +operator=(in other : const ONullRayPair&) : ONullRayPair& +Reset() : void +GetMarginalA() : double +GetMarginalH() : double +GetMarginalRay() : ORealRay& +GetPrincipalA() : double +GetPrincipalH() : double +GetPrincipalRay() : ORealRay& +SetMarginalA(in a : double) : void +SetMarginalH(in h : double) : void +SetMarginalRay(in h : double, in a : double) : void +SetPrincipalA(in a : double) : void +SetPrincipalH(in h : double) : void +SetPrincipalRay(in h : double, in a : double) : void * 1 Отличия расчета реальных и нулевых лучей через поверхность Перенос и преломление реального луча: H d y y Y n Y Y y где d – расстояние вдоль луча между поверхностями (косая толщина), – оптическая сила поверхности в точке преломления луча H d -a y d S S Оптическая сила поверхности в параксиальной области: (n'n) Оптическая сила поверхности для реального луча: ( n' cos 'n cos ) где , – углы падения и преломления реального луча Расчет реального луча Преобразование координат Нахождение длины луча между поверхностями Перенос Преломление