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

    [产品]5倍无焦望远镜的模拟 [复制链接]

    上一主题 下一主题
    离线infotek
     
    发帖
    6374
    光币
    26015
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2023-05-15
    简介:本文演示了如何模拟一个3反射镜5倍无焦望远镜,参考源于 Warren J. Smith的““Modern Lens Design: A Resource Manual””提供的方法(具体数据可参考本文附件备注数据),由McGraw-Hill出版。本文讨论了如何使用孔径选择基准抛物面的离轴部分来定义离轴抛物面(“OAPs”)。在建立该模型的过程中,使用一个脚本来追迹沿系统光轴的“主光线”,并且输出表面上光线入射的垂直位置,以便用户快速确定所需要垂直位置以及系统中第二和第三反射镜的孔径大小。一旦模型建立好了,可以使用分析面计算像平面的位置点列图来检测系统的性能。 Hqs!L`oW)  
    *hru);OJr  
    使用孔径定义OAPS qdn_ ZE  
    A]TEs)#*7)  
    在创建一个特定的模型之前,本文讨论了如何使用孔径来定义离轴抛物面(“OAPs”)。 wN58uV '  
    ti (Hx  
    当一个表面被定义为抛物面时,用户通过半径和二次圆锥常数(“kappa”)来确定抛物面的形状。然而这并没有确定该表面的大小和范围——这是由表面“孔径”决定的。如下图所示,两种情况的抛物面半径和kappa都是相同的,但是在第二种情况具有更小的x, y孔径。 "[!b5f3!I  
    +<.o,3  
    图1. 两种相同抛物面不同孔径的对比图
    r7oFG!.?  
    可视化视图中的红色线框表示的是孔径量。可以看出,在这种情况下抛物表面被孔径的x和y尺寸所限制。 ?'Hd0)yZ  
    5a'`%b{{  
    移动孔径“中心”远离抛物面轴线可以让我们选择抛物面的一个离轴区域。如下图所示,孔径的大小和先前一样,但是移动了垂轴中心,“离轴”25个单位(系统默认单位为mm)。 ^3BPOK[*gB  
    B{R[z%Y  
    图2.非零中心值
    rJkJ/9s  
    特别注意的是,该表面与图1b中所示表面并不具有相同的形状(也就是说,这不仅仅是移动和重新定向)。它是 以(x,y)=(0,25)为中心、边界由半孔径值指定的抛物面方程的解所决定。 z=) m6\  
    Ak,JPz T  
    在定义一个使用OAPs的光学系统时,工程师需要首先定义基准抛物面,然后使用孔径来定义反射镜。 (Hj[9[=  
    A&)2m  
    图3. 使用基准抛物面和孔径定义离轴反射镜
    ?tL'  X  
    建立模型 !u@P\8M}  
    Rx&O}>"E>l  
    离轴望远镜的光学指标由Warren J. Smith的“Modern Lens Design: A Resource Manual”定义,由McGraw-Hill出版 ,再现于下面的图4和图5。 hNsi  8/  
    [K$5 Rm5  
    图4. 3反射5倍的无焦系统图。黑色的实线定义了系统中每个反射镜垂轴原点,红色的实线定义了像平面。
    2H}y1bkW  
    图5.望远镜系统的规格
    xYCJO(&  
    在这里,厚度参数定义为抛物面顶点之间的距离,该抛物面(对于连续的反射镜)是沿着如上面图4中的实线所示的共同的光轴,厚度如下面图6所示。 [#mk TY  
    ^h$*7u"^y  
    图6. 厚度参数定义为抛物面原点之间的距离
    8T9 s:/%  
    sa参数定义为,对于每个反射镜,从抛物面的原点到反射镜的最外部分的垂直距离。这将在下面阐明。 KD ,3U/ 3  
    Lv]%P.=[G  
    图7. Sa参数定义了反射镜的离轴长度
    3a.!9R>  
    添加第一个反射镜 zmGHI! tP  
    F5RL+rU(h  
    这些离轴反射镜不是“标准的反射镜”,因此在FRED中需要用一个具有自定义表面的元件来定义。 O*GF/ R8B  
    4r7F8*z  
    图8. 使用自定义元件定义反射镜
    \.}T_,I  
    要定义一个抛物表面形状,该表面类型需要设置为二次型的(Conicoid),且具有依据图5中所示规格的特定的半径和二次曲面常数。 &TBFt;  
    babL.Ua8o  
    图9. 反射镜表面的 Surface 标签
    j!>P7 8  
    反射镜表面的尺寸和形状在孔径标签中定义。规格定义了32mm的垂直偏心,所以Y中心的值为32(假设FRED中系统的单位设置为mm)。 E&zf<Y  
    图10. 定义第一个反射镜的孔径
    <+g77NL  
    05R"/r*  
    sa的值指定为44mm,这意味着在x和y方向的半孔径值将是12。孔径在z方向上的值被选择的足够大,以至于不会裁剪到水平方向上的反射镜。 yy=hCjQ)  
    O&BvWik  
    第一反射镜的位置定义为距离光源43.84mm(这已经创建好了),中心距离光源的下方32mm。
    图11. 系统第一片反射镜的位置设定
    :>{!%-1Z  
    lbda/Zx  
    添加到自定义元件中表面的默认涂层和光线控制分别是Absorb和Halt All。显然,这些需要在CoatingRaytrace Control控制选项卡上设置为Reflect和Reflect Specular。 d/ ^IL*O  
    图12. 反射镜表面的膜层和光线控制定义
    Hs'~) T  
    mdEJ'];AH  
    添加第二和第三反射镜 t_jn-Idcf  
    HTT&T9]  
    具有二次表面的自定义元件将再一次用于定义第二和第三反射镜。首先将这些反射镜放置在前一反射镜的坐标系统中,每个反射镜的位置可以很容易的确定,然后根据规格中定义的厚度参数,在z方向使用一个平移操作。 :vb5J33U  
    图13. 第二面反射镜相对于第一面反射镜的开始坐标系统,使用了—Z方向的平移。
    图14. 前两个反射镜的基准抛物面和目标抛物面的可视化视图
    Au'y(KB  
    o& FOp'  
    与第一反射镜不同,后面反射镜孔径的位置和大小并没有明确的定义。 .)b<cH~%  
    &>,]YrU  
    确定合适的孔径最简单的方法是沿着系统的光轴到第二反射镜的表面追迹一束光线。表面上入射点处光线的垂直位置确定了孔径的Y中心值,根据规格中提供的sa值,孔径的大小也可以设置了。 up'`)s'  
    图15. 追迹单条光线到反射镜表面来决定中心和半孔径
    zp;!HP;/=  
    d,Aa8I  
    下面的脚本做到了这一点,通过执行定义于26行的高级光线追迹,停止了表面的光线并且输出垂直位置到输出窗口。请注意光源中的““Single Ray Source”只追迹一条光线。(此处脚本的意义相当于成像软件中的由主光线确定表面的位置) xj;:B( i  
    图16. 脚本的主体结构输出,输出表面反射镜相对于光源的垂直位置。
    IS&qFi}W|W  
    (l^7EpNs  
    使用该脚本,我们发现,当入射到第二个反射镜表面时,光线的y坐标是y=11mm。同样我们知道该反射镜的sa值是17mm,则孔径有如下设定: {\D &*  
    图17. 第二个表面反射镜的孔径设置
    h'-4nu;*  
    ?h&XIM(  
    当改变脚本的第26行为adv.stopSurfID = mirror_3,并遵循以上的过程,第三个反射镜的位置和形状就确定了。计算得到Y方向的偏移-6.4mm。 JkJ @bh Eu  
    8F8?1  
    在像平面添加一个Plane Element Primitive和Analysis Surface后,系统建模就完成了。 B1)Eo2i#  
    ~^' ,4<K-}  
    执行光线追迹的光源定义为由1000条随机定位的网格,分布在x和y均为10mm的半孔径内,均匀分布的波长范围是420nm-650nm。 dgpE3 37Lt  
      
    图18. 光源的设定
    49Jnp>h  
    图19. 在可视化视图中完整的光学系统
    8l5>t  
    图 20. 光线追迹渲染
    }8x+F2i  
    sh_;98^  
    在像平面绘制的位置点图表明有+/- 2mm的扩展,因此证实了这是一个5倍望远系统的规格要求。
    图21. 位置点列图显示像平面的尺寸是光源的尺寸的1/5。
    ]##aAh-P4&  
    备注 F)hj\aHm k  
    q k^FyZ<  
    1. Modern Lens Design: A Resource Manual中的参考来源 ^qR|lA@=\  
    4-.K<-T%D  
    .@,t}:lD  
    2. 单条光线设置方法 q-<DYVG+  
    7x6 M]1F  
    kP%hgZ  
    3.主光线追迹脚本 *I(6hB  
    "5V;~}=S  
    CK7([>2  
    G^ W0!u,@  
    4.系统数据
    x8rg/y  
     
    分享到