SYNOPSYS 光学设计软件课程十八:什么是好光瞳?

课程十八:什么是好光瞳? 

镜头设计师已经知道两种常见的光瞳定义:一种是简单结构或者光阑位于系统的最前方。对于更复杂的系统,“光线瞄准”,用于模拟光阑在系统内部的情况。
镜头通常在系统内部有一个“光阑”,如下例所示(可在X32.RLE中找到)。(对于这张图片,我们修改了镜头以显示正确的光瞳类型。你看到的是第二种光瞳类型。)
这里是镜头文件:

RLE
ID 8-ELEMENT LENS 124
FNAME ‘X32.RLE ‘
LOG 124
WAVL .6562700 .5875600 .4861300
APS -7
UNITS MM
OBB 0.0000000 50.0000000 2.5000000 -22.5672845510 0.0000000 0.0000000 2.5000000
MARGIN 1.270000
BEVEL 0.254001
0 AIR
1 RAD 37.4815570000000 TH 2.00000000
1 N1 1.63724049 N2 1.64049314 N3 1.64789652
1 CTE 0.680000E-05
1 GTB S ‘LAK21 ‘
1 EFILE EX1 19.357100 19.357100 19.357100 0.000000
1 EFILE EX2 14.692000 18.849100 0.000000
2 RAD 15.8675620000000 TH 4.00000000
2 N1 1.79607463 N2 1.80516268 N3 1.82772732
2 CTE 0.810000E-05
2 GTB S ‘SF6 ‘
2 EFILE EX1 14.819000 14.819000 14.819000 0.000000
2 EFILE EX2 11.575600 14.565000 0.000000
3 RAD 12.9308330000000 TH 10.91744800 AIR
3 EFILE EX1 11.575600 14.565000 14.819000
4 RAD 305.4637200000000 TH 3.00000000
4 N1 1.63724049 N2 1.64049314 N3 1.64789652
4 CTE 0.680000E-05
4 GTB S ‘LAK21 ‘
4 EFILE EX1 9.781226 9.781226 10.035227 0.000000
4 EFILE EX2 8.075024 9.781226 0.000000
5 RAD 10.9366700000000 TH 11.87440500
5 N1 1.59873780 N2 1.60341201 N3 1.61460225
5 CTE 0.800000E-05
5 GTB S ‘F5 ‘
5 EFILE EX1 8.329025 8.329025 8.329025 0.000000
5 EFILE EX2 8.075024 8.075024 0.000000
6 RAD -166.3317900000000 TH 2.00000000 AIR
6 EFILE EX1 8.075024 8.075024 8.329025
7 CV 0.0000000000000 TH 2.00000000 AIR
8 RAD -33.0806250000000 TH 3.00845460
8 N1 1.63724049 N2 1.64049314 N3 1.64789652
8 CTE 0.680000E-05
8 GTB S ‘LAK21 ‘
8 EFILE EX1 5.649585 5.649585 5.776585 0.000000
8 EFILE EX2 5.776585 5.776585 0.000000
9 RAD -6.9399049000000 TH 7.36548890
9 N1 1.72919661 N2 1.73349009 N3 1.74336100
9 CTE 0.550000E-05
9 GTB S ‘LAK16A ‘
9 EFILE EX1 5.649589 8.868400 9.249400 0.000000
9 EFILE EX2 9.249400 9.249400 0.000000
10 RAD -18.5676100000000 TH 0.82847441 AIR
10 EFILE EX1 9.249400 9.249400 9.249400
11 RAD 533.2038600000002 TH 6.00000000
11 N1 1.72919661 N2 1.73349009 N3 1.74336100
11 CTE 0.550000E-05
11 GTB S ‘LAK16A ‘
11 EFILE EX1 9.905219 9.905219 10.159218 0.000000
11 EFILE EX2 10.159218 10.159218 0.000000
12 RAD -12.4803940000000 TH 2.00000000
12 N1 1.75364679 N2 1.76178544 N3 1.78190782
12 CTE 0.820000E-05
12 GTB S ‘SF55 ‘
12 EFILE EX1 10.159200 11.268300 11.522300 0.000000
12 EFILE EX2 11.268300 11.268300 0.000000
13 RAD -31.2046360000000 TH 41.44465300 AIR
13 EFILE EX1 11.268300 11.268300 11.522300
14 CV 0.0000000000000 TH 0.00000000 AIR
END


各个视场的光线充满了表面7的孔径,这被称为光阑。当你告诉程序追迹光线时,它首先必须知道瞄准光线的位置,以便知道到达光阑上的位置。例如,HBAR = 1且YEN = 1的光线(全视场边缘光线)应该在表面7的边缘处。它是如何知道瞄准目标的?这是光瞳定义的问题。

最常用的两个定义是近轴和真实光瞳。首先,让我们看一下使用简单的近轴光瞳得到的结果

 

可以使用输入在镜头文件中声明该光瞳定义

RLE

APS 7

END

但是你会注意到这个定义有两个问题:主光线不会穿过表面7的中心,而边缘光线不会填满那个表面的孔径。让我们依次解决这些问题。首先,我们声明表面7是一个真正的光阑,用

CHG APS

-7

END   

减号表示这是一个真正的光阑,必须通过迭代找到主光线。这激活了仅针对主光线的光线。

现在主光线还可以,但边缘光线不行。我们需要另一个命令,它将调整光瞳的大小,以便很好地充满光阑。这是WAP 2选项(有三种广角 – 光瞳(WAP),您可以在用户手册中阅读。它通过在光阑的边缘迭代一些光线来找到入瞳的形状。但是这个选项需要在光阑表面上设置一个硬性通光口径,以便于光线瞄准。我们假设当前没有定义孔径。您可以执行CAP列表 – 查看所有当前孔径的值 – 然后为表面7指定一个“通光口径”。该值结果为3.9937,因此我们可以在CHG文件中输入该值或使用工作表。以下是使用CHG文件的方法:

 

CHG

7 CAO 3.9937

END    

    
更简单的方法是在CHG文件或WorkSheet编辑窗格中键入7 CFIX。这可以修复当前值,所以您不需要自己键入它。现在再次使用工作表更改为WAP 2 …


然后单击“更新”按钮。你得到的镜头如上图第一张图所示。现在,主光线和边缘光线都到达了表面7上的正确位置。在这里,我们开启了光线,总共瞄准了五条光线。
到到目前为止,这并不复杂。假设您正在优化镜头并且表面7上所需的孔径不断变化。在这种情况下,我们固定的孔径值将会出现问题。
没问题。我们指定一个选项,每次更换镜头时重新计算该孔径。这是通过将指令CSTOP添加到镜头输入文件来完成的。现在程序将改变7上的CAO,因此它总是等于那里的近轴边缘光线高度。
如果镜头的光瞳像差太大,以至于真正的轴向边缘光线需要与近轴光线有不同的孔径,请将其更改为CSTOP REAL。您甚至可以指定用于定义此孔径的真实光线,如UM中所述。
但是所有这些选择的意义何在?是不是只是为了更容易的对付那种“光线瞄准”?其它程序是不是也可以?
是的,它更容易 – 但速度要慢得多。通常实现时,当这些程序追迹任何类型的像质分析的光线网格时,它们在光阑处创建一个方形网格,然后迭代每条光线,使其通过该网格点。所有迭代都需大量时间。下图是一个超广角镜头设计的例子。
这是镜头文件:

 
RLE
ID JAMIESON LENS 135 DEGREES 37577
FNAME ‘C22L2.RLE ‘
LOG 37577
WAVL 12.00000 10.00000 8.000000
APS -9
FILLSTOP
WAP 2
XPXT
RPUPIL
UNITS MM
OBD 1.00000E+09 135. 1.706199485 -44.99895 0 0 1.706199485
0 AIR
0 CV 1.0000000000000E-09 AIR
1 RAD 42.7770000000000 TH 1.30500000
1 N1 4.00116571 N2 4.00243362 N3 4.00476668
1 DNDT 4.100E-04 4.100E-04 4.100E-04 2.05000E+00 1.10000E+01 2.20000E+01
1 CTE 0.550000E-05
1 GTB U ‘GE ‘
2 CAO 24.89910000 0.00000000 0.00000000
2 RAD 25.9690000000000 TH 63.51400000 AIR
2 HYPERHEMISPHERICAL
3 RAD -34.1700000000000 TH 1.56600000
3 CC 3.32600000
3 N1 4.00116571 N2 4.00243362 N3 4.00476668
3 CTE 0.550000E-05
3 GID ‘GE ‘
3 PIN 1
4 RAD -41.2140000000000 TH 21.08000000 AIR
5 RAD -48.1390000000000 TH 1.82700000
5 N1 4.00116571 N2 4.00243362 N3 4.00476668
5 CTE 0.550000E-05
5 GID ‘GE ‘
5 PIN 1
6 RAD -36.4540000000000 TH 0.05200000 AIR
7 RAD 24.5320000000000 TH 1.82700000
7 N1 4.00116571 N2 4.00243362 N3 4.00476668
7 CTE 0.550000E-05
7 GID ‘GE ‘
7 PIN 1
8 RAD 35.3880000000000 TH 3.65400000 AIR
9 CAO 7.62452400 0.00000000 0.00000000
9 CV 0.0000000000000 TH 15.24900000 AIR
10 CV 0.0000000000000 TH 0.00000000 AIR

 

光阑位于表面9上,并且由WAP 2选项很好地填充。让我们看一下表面上的足迹,它显示来自全视场的光线:


这肯定不是一个均匀的方格!采用“光线瞄准”的那些程序以错误的方式分布填充该孔径,根据该点处的实际光线密度改变每条光线的有效光焦度。虽然这确实可以产生对像质的正确评估,但人们不得不问为什么在所有光线迭代中花费了这么多时间。
相反,SYNOPSYS找到入瞳的大小和形状,然后用均匀的网格填充它。对于上述镜头,表面1上的光瞳如下。

SYNOPSYS中的光瞳选项模拟了此分布的轮廓,因此常规网格可以按原样填充它。没有必要迭代每条光线,因此它更快,并且在光阑处的分布被正确建模。对于这个极端的例子,一个简单的轮廓并不是很好(但通常它是由椭圆形建模)。在这种情况下,通过在镜头文件中声明RPUPIL可以找到更好的光瞳。现在它以一个包围该椭圆的矩形开始,并删除分布在孔径外的任何光线。这是进入镜头时的形状:

以下是通过的光线:

我们更喜欢使用这种方法,而不是其他代码中使用的计算比较慢“光线瞄准”。
不要忘记查看对话框MPW(菜单,光瞳向导)和MOW(菜单,物面向导),您可以通过复选框和从各种选项中选择来定义所需的光瞳类型。这两个对话框都做了很多相同的事情,但它们的原理方式不同; 您可以根据您的喜好选择。
光瞳向导:

物面向导:

哪种方式更好?

SYNOPSYS中独特的光瞳定义提供了一个有趣的可能性 – 这很方便,但需要一些习惯。让我们说明一下。首先,我们将向您展示一些不符合您期望的光线,然后我们将描述一种简单的方法来保持正确的光线。取出命名为1.RLE的镜头。

 

RLE
ID MIT 1 TO 2 UM LENS 119
FNAME ‘1.RLE ‘
LOG 119
WAVL 1.970100 1.529600 1.060000
APS 4
NOVIG
UNITS MM
OBB 0.0000000 7.0000000 17.5000000 -1.05311319975 0.0000000 0.0000000 17.5000000
MARGIN 1.270000
BEVEL 0.254001
0 AIR
1 RAD 86.7200000000000 TH 4.00000000
1 N1 2.26522482 N2 2.27174246 N3 2.28824184
1 DNDT 4.330E-05 4.330E-05 4.330E-05 6.32800E-01 3.39000E+00 1.06000E+01
1 CTE 0.650000E-05
1 GTB U ‘ZNS ‘
1 EFILE EX1 19.582988 19.582988 19.836989 0.000000
1 EFILE EX2 19.117143 19.582988 0.000000
2 RAD 256.1599999999999 TH 1.90921550 AIR
2 EFILE EX1 19.117143 19.582988 19.836989
3 RAD 23.3200000000000 TH 7.64871430
3 N1 2.26522482 N2 2.27174246 N3 2.28824184
3 CTE 0.650000E-05
3 GID ‘ZNS ‘
3 EFILE EX1 17.645011 17.645011 17.645011 0.000000
3 EFILE EX2 15.628478 17.391010 0.000000
3 PIN 1
4 RAD 46.0900000000000 TH 1.00000000 AIR
4 EFILE EX1 15.628478 17.391010 17.645011
5 RAD 50.8000000000000 TH 3.00000000
5 N1 2.42680709 N2 2.43804204 N3 2.46973264
5 GTB U ‘AS2S3 ‘
5 EFILE EX1 15.127101 15.127101 15.381102 0.000000
5 EFILE EX2 12.658484 15.127101 0.000000
6 RAD 17.3870000000000 TH 28.71738800 AIR
6 EFILE EX1 12.658484 15.127101 15.381102
7 RAD 27.1400000000000 TH 3.50000000
7 N1 2.26522482 N2 2.27174246 N3 2.28824184
7 CTE 0.650000E-05
7 GID ‘ZNS ‘
7 EFILE EX1 13.589301 13.589301 13.589301 0.000000
7 EFILE EX2 12.890646 13.335300 0.000000
7 PIN 1
8 RAD 65.2260000000000 TH 16.29978150 AIR
8 EFILE EX1 12.890646 13.335300 13.589301
8 TH 16.29978150
8 YMT 0.00000000
9 CV 0.0000000000000 TH 0.00000000 AIR
END

在PAD中查看:

 

此时镜头已在表面4上指定了一个近轴孔径。在PAD中,单击PAD顶部按钮,然后选择绘制单根光线的选项。单击“确定”,将打开一个小框,您可以使用两个滑块选择要绘制的光线。将顶部滑块移至全视场(HBAR = 1),将底部移至全孔径(YEN = 1)。此对象已定义为正角度,这意味着“全视场”光线从轴下方的对象开始。

 

 

您可以按预期看到全视场边缘光线。

现在将顶部滑块移动到视场的底部(HBAR = -1)。

 

再来一次,光线进入光瞳的顶部。这是近轴光瞳的基本情况。关闭光线显示对话框,打开工作表,并将光阑指定更改为APS -4,

 

在工作表中。请记住,全视场位于负Y坐标处,远离镜头左侧。现在再次打开单光线对话框,再次将其设置为全孔径和全视场。

 

“全孔径”光线现在位于光瞳的底部。为何如此?

简单,此功能旨在使您可以轻松纠正羽化边缘,无论您在哪个视场寻找。如上图所示,如果羽化是一个问题,你可以沿着“上部”边缘光线(显示的光线)进行校正。现在转到较低的视场,HBAR = -1。

 

要纠正的光线仍然是上边缘光线!程序根据您要追迹的视场的方向旋转整个入瞳。如果您在倾斜视场中追迹一个点,“上边缘光线”将变成极端歪斜光线,因此您可以轻松控制羽化边缘。如果我们让所有视场上边缘光线和下边缘光线的定义相同(就像光瞳一样); 你必须找出要修复的倾斜光线,然后为它创建一个像差。

那么如何才能轻松找出要检查或纠正羽状边缘的光线?简单。PAD显示屏打开时,按F7键。只显示“较低”的边缘光线。F8键仅显示“上部”。只需按一下键就可以判断哪条光线在哪里!

这种光瞳定义还有另一个优点:入射光瞳通常被建模为椭圆形,如本课程的第一部分所示,并且事实证明椭圆也随着视场旋转。因此,它可以模拟场中所有点的渐晕光瞳。

有关旋转光瞳的示例,请参阅用户手册中的第2.6.2节。

程序根据全视场物体高度的符号决定哪条光线称为“上部”光线。由于在这个例子中光线在是负视场的,它将边缘光线翻转为正HBAR。在负HBAR处,对象来自正Y坐标,并且光线不会翻转。

在HBAR = 0?为避免混淆既不是正视场也不是负视场,程序会在那里显示一个非常小但非零的视场。

试试F7和F8键。您将了解更多。

 

评论