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

advertisement
Объектно-ориентированная модель
конструктивных параметров
оптической системы
Моделирование оптических систем
кафедра
прикладной и компьютерной оптики
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  )

где ,   – углы падения и преломления реального луча
Расчет реального луча
Преобразование координат
Нахождение длины луча между поверхностями
Перенос
Преломление
Download