光学设计的现状 .t''(0_kC 一个科班毕业的
软件工程师,如果在学校里系统学习了JAVA,C#的基础,到工作岗位后,熟悉一下公司的代码规范和原先的代码库,一个星期左右就能上手工作;而一个光学工程的毕业生,面对实际的设计工作,在经历了一段时间的困惑和迷茫后,会领悟到一个事实:光学理论和
光学设计是两回事。这里我们只谈成像设计,对于非成像光学设计,其实境况也差不多。
K O "U5v 7A?~a_Ep 成像光学的底层原理非常简单。从斯涅耳推导出折射定律开始,一个折射公式就可以计算几乎所有光学
透镜对于
光线路径的影响,光学设计的工作用最简单的大白话来说就是运用折射定律,使得光线按我们的意愿到达相应的位置。
5G cdz u
HqP b8 早期,还在牛顿、伽利略时期,受限于当时的计算能力,
镜头设计者们期望用通过最少的计算获得一个镜头设计结果。随着设计理论的发展,设计师们发现了其中的窍门:只需计算一根中心视场的边缘光线和一根边缘视场的主光线,就可以获得镜头焦距、主面位置、光阑孔位置和大小、入瞳出瞳位置、景深等描述镜头性能的框架性数据;在这基础上再计算两根边缘视场的边缘光线和弧式方向的主光线,就能获得包括球差、慧差、像散等基础像差在内的像质评估数据;基于这些数据,根据实际的焦距、工作距等需求,列出方程,即可求解出镜头结构。这些是我们在学习光学理论时的主要理论框架,一系列经典镜头结构也由此而来。
= ;#?CAa: $5ZBNGr 工具的革命通常会带来一种技术的飞跃式发展,光学设计也一样。自从计算机出现后,由于计算能力指数级的上升,虽然对传统的设计方法也有很大的帮助,可以更精准、更快的求解方程获得镜头结构;但是另一类基于大量计算力的设计方法却更加具有革命性:区别于通过计算直接获得每个镜片的
参数,设计师们建立一个每个镜片参数和我们期望目标之间的联系,然后改变每个参数,观察评估值的变化,计算出改进的方向,再重复上述过程,迭代出最终的设计结果。这也就是我们常说的优化的方法。
z=B*s!G .ml24SeC 在优化的过程中,我们真正设计的不是每一个镜片的参数,而是设计各种“像差”,当然这里的像差是广义的,例如一个镜片的边缘厚度,如果超出了我们的期望值,我们也可以认为是一种“像差”。这使得光学设计工作变成了在理论指导下的一种“调整的技巧”,并且在事实上降低了入门门槛。一个光学设计工程师不需要再去分配每个镜片的光角度、列公式计算像差,而只需要掌握一些软件使用的技巧,加上一些耐心和一些运气,就有可能能获得一个不错的设计结果,因此这种设计方法现在已基本上称为了主流。
ciVN-;vi bB@1tp0+ 传统变焦镜头的设计方法 jIwz
G+)$P UVlD]oXKh 然而,时至今日,还是有不少的设计是基于理论计算获得的,这尤其在变焦镜头设计领域。由于变焦镜头的复杂性,其各个焦距结构之间并不一定存在连续性,但各个变焦结构之间又具有很强的相关性,一般的迭代优化方法很难再像以往一样奏效。当我们要寻找一个可用的初试结构时,除了去各专利库碰碰运气,有时还得排除专利中的故意挖坑,设计师们又必须开始学习复杂的变焦理论,计算各个变焦组、变倍组、补偿组光焦度,综合各类基础像差,列出方程并求解。这样的设计方法不仅有非常高的设计入门门槛,一个不错的变焦镜头设计可以作为一名硕士甚至博士的毕业论文,而且即使对于掌握了这种方法的工程师来说,通过求解方程也不是一个很有效率的设计方法。
0Lmq?D 7{=/rbZT? 现在情况有了一些变化。
T1jAY^^I g-"@%ps 常规工程师在一个领域内通常只会学习一种软件,例如成像设计学
ZEMAX或CODEV,非成像设计学
Tracepro、
Lighttools或者ASAP,而本人是一个喜欢尝试多种设计软件的光学设计师,这一方面是因为各个软件在不同的领域都有其独特的优势,另一方面,从各个软件的文档和案例去学习和理解光学设计对我来说是一种很有效的学习方法。
ra=U, Cqy84!Z< Synopsys是我接触的第三款成像设计软件,原本我只是想判断一下其官方宣称的高效率优化算法是否真的名副其实,虽然该软件在界面上给我的感觉像回到了二十年前,但是在优化算法和处理异常光线上确实有很强的能力,感觉像一辆桑塔纳搭载了一台4.0T的发动机。而真正让我惊叹的是,基于上述的两项能力,常规软件中经常出现的一些导致优化停滞的状况可以自动排除,因此优化过程更加具有连续性,这使得自动优化迭代出一个变焦透镜称为了可能。
{/G~HoY1i j'FSd*5m 使用SYNOPSYS光学变焦镜头的设计 QNn\wz_) 简单来说,Synopsys使得设计“像差”而非设计“透镜”这一思想能够在变焦领域内继续实现。如同定焦镜头设计一样,我们不用再去计算和分配各变倍组光焦度,甚至都不用掌握变焦设计理论的基本框架,只需要从”外部“去描述一个我们希望获得的镜头的性能,例如变焦焦段的范围,F数,后焦距、镜片数量、光阑孔位置、每个变焦组的数量,以及一些常规的外形尺寸限制,然后让程序自动去寻找合理的结构,剩下的就是从程序计算的结果中挑选中意的结果并进行微调即可。软件自带的变焦案例也许不够具有说服力,因此我自己进行了一些尝试。
__M(dN(^ F|3Te?_ 从光行天下论坛中我们可以找到这样一篇论文:
p/L|;c http://www.opticsky.cn/read-htm-tid-129744.html .dX ^3 其论述了使用经典计算方法获得一个10倍放大率镜头的方法和过程,文中的设计指标如下: }Tf~)x /]m5HW(P7K SYd4 3PA 我参考其最终设计结果的镜片数量,将这些指标翻译成Synopsys程序后,获得了一个初试结构,通过简单的玻璃库匹配(使用肖特玻璃库),最终的结果如下:
Z8*E-y0 ,%7>%*nhk ~``oKiPg@ 短焦段
"/[xak!g N,fEta6 中焦段
=]jc{Y%o U Hh 长焦段
`~0)}K.F 对比原文的设计结果:
/ap3>xkt 3y?I^ .B Vc0C@*fVM ci*rem 从结果来看,我没有进行任何的理论计算,用了大约15分钟编程,等待计算机计算了5个小时,同样获得了一个相当不错的变焦镜头结构,镜头焦距等主要参数与论文中一致,但是在外形尺寸、边缘MTF,玻璃库的选择上与原论文的设计有所差距,但是这些对于一个有经验的光学设计工程师来说,都是后期可以调整的,例如添加渐晕等。总体来说我获得了一个相当不错的初始结构,完成了整个设计中比较重要的,70%以上的工作。
Z6C!-a XE8>&&X 一些想法
冷兵器时代,一名弓箭手需要身体健硕,才能拉开百斤长弓,而现在,一个手无缚鸡之力的普通人甚至不用经过任何训练即可扣动扳机。对于任何行业,如果这个行业想要长足发展,入门门槛越来越低,自动化算法越来越强,设计效率越来越高,是一个必然的趋势,这对于光学设计也不例外。
技术永远在发展,也许又会有人开始担心光学设计这个行当要消失了,或是光学设计工程师何去何从等等,但是,正如陈年老鸡汤所说的,危机和机遇只相差一个字,变革来临时,慢性死亡,还是弯道超车,取决于你的选择。