光学优化跑不动?可以改改参数定义方式

目前光学镜头的发展方向在于一大一小,不论是大口径的反射式系统,还是小口径的成像模组,都在使用大量的非球面进行设计。同时,由于环境要求越来越严格,可能还需要大量的环境组态和对焦状态共同优化,这样,评价函数的行数一定会非常多。这种时候如何提高优化的效率呢,本期我就简单谈谈我的经验,给大家提供一个思路,也算抛砖引玉。

在具体讨论之前,我们可以简单做个计算。如果我们要设计一个成像模组,这个模组有6片塑料非球面透镜,每个非球面有半径+厚度+6个非球面参数,总共的变量就有48个+光阑+后截距共50个
由于非球面比较多,评价函数和视场的采样还不能太少,如果我们采用12环12臂,8个视场位置,那么一个组态下至少就需要1152行操作数,这里我们至少在考虑三个高低温组态,三个对焦位置组态,一共操作数会超过1万行
这里还只是最简单的估算,实际更复杂的系统,如果有更多的多重结构,更复杂的面型,更多的透镜数,其实评价函数随便设置设置就会超过10万行
大家可以测试一下,这种情况下,你所用的电脑优化速度如何?

为了更清楚的演示,这里我找了一个相对复杂的初始结构。由5片透镜组成,其中四个是非球面透镜。专利中直接给出的参数如下:
专利本身还不是特别理想。这里我们初步优化调整一下,假设我们要设计的镜头,靶面大小12.8mm*9.6mm,视场大于140度,总长小于19mm,后截距大于2mm,F数2.0,结果如下所示:
这个镜头的优化一定会比较复杂,我们姑且先不考虑,只对比一下不同的设置下的优化速度。

首先我们比较一下外部参数定义方式,关于系统的口径,视场,软件中一般都会给我们多种定义方式,从经验上来讲,把口径和视场都定义在物方会比像方优化速度快非常多,甚至可以有十倍的差距
这里我们测试一下,首先用像方F数和像高定义这个系统。光线瞄准开到实际,我们跑一分钟优化,可以看到一共迭代了大约19次
这个速度可以说是极慢了,即使这样我还没考虑高低温和对焦的问题,作为对比,我们把光线瞄准开到近轴,同时采用入瞳直径和视场角定义这个系统。系统光线追迹的复杂度也会影响优化速度(像差大,非球面表面变化大等),为了公平,我把系统撤回到原来的状态。
可以看到,系统在一分钟迭代了231次,虽然这个速度依然不够快,但是对于和上面的比起来,快了大约12倍,这样的提升是巨大的。
虽然把参数定义在物方一定程度上会导致有些约束后续需要重新核算。例如,焦距,视场,畸变,像高之间的关系,对于消费类的产品,加工后要保证一致性,需要控制畸变走向和实际像高等等。但是,这一点麻烦换取更快的优化速度是非常值得的。

作者:光头强

资料为网上搬运,如有侵权立马下架

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注