Моделирование оптических систем кафедра прикладной и компьютерной оптики Тестирование
2 Тестирование вычислений «аналитическое» тестирование – создание специальных примеров с известными из теории результатами сравнением с имеющимися аналогами Тестирование GUI Автоматическое тестирование
Аналитическое тестирование, пример 1 Лучи, перпендикулярные поверхности, не преломляются плоская поверхность – лучи параллельны оптической оси сферическая поверхность – лучи проходят через центр кривизны поверхности
Параллельный пучок лучей собирается в задней фокальной плоскости с погрешностью, обусловленной аберрациями Аналитическое тестирование, пример 2
Сравнение с OPAL-PC 5 A n SD
Сравнение с OPAL-PC 6 Результаты для верхнего луча Координаты луча меняются сильнее: чем меньше радиус чем больше величина предмета чем больше показатель преломления 2 0 1
Сравнение с Zemax Задаем ту же систему: 1) стекло – моделью 2) подгонку для плоскости изображения 3) диаметр входного зрачка 20 мм 4) величина предмета 10 град. 7 1) 2) 1)2)3)4)
Сравнение с Zemax При помощи макросов можно вывести не только высоту луча, но и любые другие координаты луча, с любой точностью: создаем текстовый файл ray_trace.zpl в …/Zemax/Macros копируем туда текст выбираем пункт меню Macro->Refresh Macro List выбираем в меню Macro->ray_trace 8 n = NSUR() print "апертурный луч" ! hx,hy,px,py,wl RAYTRACE 0,0,0,1, 1 for i=0, n,1 format 2.0 print i, format 12.8 print " y=", rayy(i), " Y=", raym(i) next print "главный луч" ! hx,hy,px,py,wl RAYTRACE 0,1,0,0, 1 … print "верхний луч" ! hx,hy,px,py,wl RAYTRACE 0,1,0,1, 1 … print "нижний луч" ! hx,hy,px,py,wl RAYTRACE 0,1,0,-1, 1 …
Сравнение с Zemax 0 – предмет 1 – диафрагма 2 – поверхность 3 – поверхность 4 – изображение Zemax OPAL-PC поэтому проверяем нижний луч (и меняем знак) 9
Для проверки: сравнение OPAL-PC и Zemax OPALZemax Апертурный луч Главный луч Верхний луч Нижний луч