切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
    • 2777阅读
    • 2回复

    [原创]SYNOPSYS 光学设计软件课程四十:从Scratch开始的非球面相机镜头 [复制链接]

    上一主题 下一主题
    离线optics1210
     
    发帖
    476
    光币
    310
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2019-01-24

    在开发一款现代手机镜头或针孔间谍相机时,设计师们越来越多地使用非球面。它们通常是很小的塑胶元件,尽管制作模具很昂贵,但镜头可以大量生产,成本很低。甚至可以用法兰机直接模压到元件上,使组装更简单,这种方法可以使某些元件尺寸保持在非常小的公差范围内。

    为帮助设计此类系统,DSEARCH™可以对具有非球面的系统进行全局搜索。 建议用户阅读SYNOPSYS™用户手册中关于这一强大功能的介绍。 我们在此给出一个如何将DSEARCH用于典型系统的示例。

        PROJ                ! start project timer

        CCW                 ! clear command window

        CORE 16             ! use 16 cores for speed

        DSEARCH 1 QUIET      ! start DSEARCH; put best lens in library location 1

        SYSTEM                ! define the system specs

        ID DSEARCH ASPHERIC CAMERA LENS ! identification

        OBB 0 41.3 .285     ! infinite object, semi field 41.3 degrees, semi ap. 0.285

        UNI MM           ! lens will be in millimeters

        WAVL CDF          ! use visual wavelengths at C, d, and F lines

        END           ! end of system section

        GOALS           ! define the goals here

        ELEMENTS 5       ! we want a four-element lens with a cover glass

        BACK 0.4 SET      ! ask for 0.4 mm back focus distance

        FNUM 2.7 10       ! ask for F/2.7, weight of 10

        THSTART 1          ! global search use thicknesses 1 mm

        RSTART 30          ! and starting radius of 30 mm

        ASPH Q           ! use conic constant even in quick mode

        ASPH 3           ! allow three aspheric terms: CC, 4th, 6th power of aperture

        DELAY OFF          ! these runs are fast, so don’t ask to continue on timeout

        ANNEAL 10 1 Q      ! anneal each case, temp 10 degrees, cool 1, including quick

        SNAP 5             ! redraw PAD screen every five passes

        STOP FIRST      ! put the stop in front

        STOP FIXED      ! and keep it there

        QUICK 50 50      ! run quick mode 50 passes, then real mode 50

        NGRID 6          ! 6x6 grid of rays in pupil

        NPASS 50           ! 50 passes in the MACro when finished

        TOPD           ! correct both transverse aberrations and OPDs

        FOV 0.2.4.6.8 1     ! correct six field points

        FWT 5 4 3 3 3 3     ! with these weights

        COVER .3 1.51872 64 ! the cover glass will be 0.3 mm thick with this GLM

        PLASTIC 1 3 5 7     ! the four elements will be plastic

        END                   ! end of goals section

        SPECIAL AANT        ! start of special AANT section; these go into the merit fn.

        ACC 1.0             ! center thickness no more than 1.0 mm

        ACM .2 .1 .2        ! and no thinner than 0.2 mm

        ACA 60              ! avoid critical angle; 60 degrees from surface normal

        AEC .2 .1 .2        ! keep edges over 0.2 mm

        M 1.35 10 A P YA 1  ! target the chief ray at three field points

        M .945 10 A P YA .7 ! to control distortion

        M .54 10 A P YA .4

        END                 ! end of AANT section

        GO                  ! DSEARCH runs

        PROJ                ! when it is finished, see how long the run took.

    DSEARCH在其优化MACro中的默认边缘控制目标(1 mm),这对于上面的镜头边缘控制来说太厚了。 所以我们用自己的AEC监视器替换它。 此外,监视器默认的最小空气间隔和厚度为1毫米,这也太厚,让我们用0.2毫米的ACM替换它。 我们增加的ACC显示器不会让厚度增加到超过1.0毫米从而替换默认值25.4毫米。

    这些显示器控制的设置权重不会很高。这样做是有目的的:如果你严格地控制这些项,DSEARCH将倾向于那些不会违反它们的要求——但是我们希望这个程序能支持图像误差较小的设计,并且一开始并不太在意机械性能。当我们得到一个好的设计,我们可以很容易地修改这些控制量,增加其权重,使以后的设计更加实用。

    由于我们允许使用非球面,我们必须小心提供高于默认NGRID为4的网格,并在六个视场进行校正。 否则可能会有中间光瞳和镜外视场区域失控。玻璃变量的界限也需要注意。当我们得到一个好的设计时,我们将用来自U目录(不寻常的材料)的塑胶材料替换模型玻璃,并且我们希望模型玻璃分布在塑胶材料的区域。任何指定的表面都被限制在下面的玻璃库中。

    红点是在塑胶材料区内。该程序将在所示区域内保留玻璃模型变量。那些到达边界的玻璃材料会沿着边界上下滑动。

    我们运行上面的DSEARCH MACro,我们看到程序找到的最佳设计,如下所示。

    透镜几乎达到衍射极限,波前差都小于½波长。然而,0.75视场的TFAN值得怀疑。我们必须关注视场的像质,看看哪里需要校正。我们打开几何图像菜单(MGI)在RMS部分的视场上选择,多色,然后单击RMS按钮。光斑尺寸在0.7和0.9视场中最大。

    该程序创建了一个优化MACro,我们又向AANT文件添加了两个命令行:

        GNO     0.000000     0.094362      6  M     0.700000

        GNO     0.000000     0.094362      6  M     0.900000

    然后我们运行MACro并模拟退火。 评价函数值为0.037,我们有一个很棒的设计!

    9 GTB H BSC7

    我们将表面9上的材料更改为客户想要使用的真正的玻璃材料:Hoya型BSC7。 为此,我们打开WorkSheet(WS)并在编辑窗格中键入

    9 GTB H BSC7

    单击“更新”,然后保存检查点。 该模型已被替换。 现在我们打开真实玻璃菜单(MRG)并选择U目录。 该目录没有普通的光学玻璃 - 但它确实有塑料材料。 当您指定U目录时,ARGLASS程序(从MRG对话框运行)会自动选择塑胶材料,并且替换RLE文件中指定为PLASTIC的GLM。 它有两种模式; 它可以按数字顺序替换镜头,或者可以对它们进行分类,以便它首先取代最远离真实材料的镜头。 第二个选项有时更好,因此我们在MRG对话框中选择Sort,选择Quiet选项,然后选择OK。

    有时换成真正的玻璃材料会导致光线故障。 程序调整曲率以保持元件光焦度,但如果存在非球面项,则某些光线仍然可能失效。 如果发生这种情况,请在更改其他材料后再次运行ARGLASS。 这通常有效。

    现在都是真实的材料。 为了确保我们有一个最佳设计,我们删除PANT文件中的GLM变量(或将它们更改为单个VLIST GLM ALL,这只会改变镜头中已有的GLM),并进一步优化。 现在是时候尝试更多的非球面项了。 我们在PANT文件中添加了如下命令

        VY 1 G 10

        VY 2 G 10

        VY 3 G 10

        VY 4 G 10

    并再次优化。但是现在全视场的OPD TFAN开始向上边缘光线偏离。

    因此,我们在AANT文件中添加了一个新命令行,并进行了更多优化。 结果好多了!

        M 0 .5 A P OPD 1 0 1

    以下是此设计的MTF曲线。 它接近完美。

    现在你知道如何使用这个程序了,但是我们能做些什么不同的呢?这种设计达到衍射极限,但在全视场的MTF要比在轴上低得多。这是为什么呢?由于镜头前面有光阑,我们正在校正畸变,因此图像必然会显示cos ** 4变暗。 事实上,在41.3度的视场角,这意味着边缘比中心暗32%。 它如何做到这一点? 通过改变有效F /number! 我们输入命令

        FN 0 FN 1

    并且观察到轴上F/number大约是2.7时,在边缘处子午方向是6.2,在弧矢方向是3.5。F/number越高,Airy衍射斑的尺寸越大,在Y方向的截止频率越低。这就是MTF曲线告诉我们的。

    如果这种情况令人满意,我们就完成了。 但是我们假设你真的希望在视场上照度均匀分布。 除非你让畸变变大,否则你无法得到这样的结果。 如果您计划设计完成以后以电子方式进行补偿,这可能不是问题。 接下来执行如下操作:

    1.删除(或注释掉)SEARCH输入的SPECIAL AANT部分中的那一命令行,这些命令行在三个视场点为主光线的YA中提供目标。

        SKIP

        M 1.35 10 A P YA 1 M .945 10 A P YA .7

        M .54 10 A P YA .4

        EOS

    2.添加一些新的要求。 这些将控制五个视场点的相对照度。

        M    1 1 A P ILLUM .2

        M 1 1 A P ILLUM .4

        M 1 1 A P ILLUM .6

        M 1 1 A P ILLUM .8

        M 1 1 A P ILLUM 1

    3.由于视场的边缘处的F /number现在将更小 - 这更难校正,我们将外部两个视场的权重从3.0增加到4.0。

        MI

        MII    0 1 A P OPD 1 0 -1

    现在在DSEARCH上运行此版本,镜头结构非常不同。 我们进行了一些优化,并注意到全视场的下边缘射线正在快速消失,因此我们将命令行添加到评价函数上

        M0 1 A P OPD 1 0 -1

    并再次优化。 镜头更好。

    在优化并使用MRG对话框插入真正的塑胶材料后,镜头如下:

    MTF非常好,如下所示。

    用命令绘制的照度相当均匀

        ILLUM 500 P

    该操作确实引入了严重的畸变。 这是命令生成的图

        GDIS  21 G

    结尾

    如果你按照上面的步骤操作,它看起来会很简单。 以下是您可能遇到的一些问题,以及如何处理它们:

    1. 我们在这个例子中指定了3个高阶项给非球面,将表达式R ** 6分配给曲面。作为一项规则,最好从较小的项开始,然后在尽可能优化结果后添加更多高次项。如上所述,一开始就有太多的约束可能将设计发送到一个尴尬的区域,这些区域的约束相互冲突并变得太大。此外,光线追踪可以证明许多高阶项的问题,因为光束可以表现出离焦或大光线角度,而您不需要它们。我们只用两个约束开始,然后在优化结果时添加更多约束,从而获得了出色的结果。

    2.注意DSEARCH输入文件中的FNUM请求指定权重为10。如果我们不考虑权重因子,程序将通过近轴求解精确地控制F /number - 如果得到的半径太大,则可能导致光线失效。 因此,对于像这样的F /number镜头,我们通常会增加一个权重。 然后程序向评价函数添加一个控制F /number的约束,半径由RSTART值给出。 在第二个例子中,我们没有以像高为目标,如果我们分配了较低的权重,则F / number可能会比目标值大。如果我们分配了更低的权重。这个程序将会做任何事情来减少评价函数,并且放弃一点代价可能会显著降低其他的像差,从而在更高的F/number下产生一个完美的图像。所以我们指定了一个10的权重,这样的解是一个最终平衡的结果。

    3.在本例中,我们选择将后焦距设为固定值。如果我们在BACK命令行上输入权重因子,程序会将YMT求解分配给最后一个表面,因此图像将始终处于近轴焦点,然后将目标添加到AANT文件以将目标优化到设置的值。这两种方法都有效,但是当您定位所选光线的YA以控制像高时,最好自己设置该值。否则程序可能无法校正虚拟图像,因为像高在优化的过程中会发生改变。

    4.请记住DSEARCH使用模拟退火功能,并且该功能会一次又一次地对镜头进行小的随机更改。这极大地改善了每种情况的优化,但结果在运行期间不可重复。出于这个原因,通常不止一次运行DSEARCH,并查看每次返回的其他结果。我们为本课程运行了几次,上面显示的结果是最好的。

    5.这些设计很好地实现了我们的目标。但是假设你不想用四个镜片的透镜。你能用三个镜片设计出来么?请尝试一下,它可能不会那么好,但是,也许你的探测器不需要那么高的分辨率。

    6.请记住,DSEARCH正在搜索一个数量非常大的设计树,并且每次都无法检查每个分支。如果您更改DSEARCH输入中的任何内容,例如RT参数,视场权重,监视目标等等 - 程序将搜索不同的分支集并返回不同的结果。这种方法的强大之处在于它可以同时搜索大量的分支,并且大多数情况下我们可以发现并运行返回至少一个符合或接近我们要求的镜头。通过各种方式尝试输入并在库中保持更好的结果,以便您可以在闲暇时检查它们。这是在此过程中返回的另一个镜头,经过畸变校正。它与我们的第一个设计有很大的不同,但具有相同的性能:

    本课程所有镜片都使用塑胶材料。如果你想要一些元件由玻璃材料和其他塑胶材料制成怎么办?只需在DSEARCH输入文件中声明哪些元件是塑胶的,程序会将它们限制在可以找到塑胶材料范围内。另一方面,玻璃元件仍然可以在玻璃目录的通常范围内自由移动。当设计令人满意并运行ARG时,如果选择“U”目录,程序将仅匹配塑胶材料元素 - 并且不会与任何其他目录匹配。

    2条评分光币+3
    jessen 光币 +2 优秀文章,支持! 2019-04-15
    jessen 光币 +1 - 2019-04-15
     
    分享到
    离线craftsman
    发帖
    170
    光币
    282
    光券
    0
    只看该作者 1楼 发表于: 2019-04-12
    厉害我参我猜你为此我你
    离线jessen
    发帖
    127
    光币
    612
    光券
    0
    只看该作者 2楼 发表于: 2019-04-15
    优秀文章,支持!