Skip to main content
Solved

公差分析中的视场设置和视场权重考虑

  • July 15, 2022
  • 1 reply
  • 929 views

Haosheng.Hu
Zemax Staff
Forum|alt.badge.img+1

请教一下,视场有渐晕的情况下,zemax在公差分析时会使用 user design 作为视场设置选项,比如我设置了5个视场,并勾选seperate field,公差结果可否输出一个最终的MTF值和这5个视场的MTF值?

我想知道最终的MTF值是如何得出的,是将五个视场按照一定权重计算吗?怎么分配权重的?我试了下五个视场直接求平均值好像与结果数值不符。

Best answer by Haosheng.Hu


首先需要补充一下公差分析中 Criterion 设置背后的逻辑。当例如 几何 MTF 或 衍射 MTF 这样的公差分析标准设置完成后,OpticStudio 将根据您的视场设置和公差标准设置在背后直接生成对应的评价函数组,就如同我们进行优化时候生成的默认评价函数一样。
如果上述情况下,同时设置了 User Defined 作为视场选项,那么在上述评价函数生成的时候将采用您 视场数据编辑器 内的视场设置以及每个视场的对应权重,最终生成的总评价函数值(也就是公差分析中的 Nominal MF 值)将根据各视场结果加权平均得到:
?name=image.png
在您的系统中,如果所有视场权重不相同,直接求取平均值是无法得到十分接近的结果的。并且公差分析中的以 MTF(几何以及衍射)设置为标准时,背后进行的计算和我们直接采用 MTFA 这样类似的操作数是不完全一样的,所以在计算本身上也是会有一些些偏差的。
 
关于第二个问题,如果想要查看某一特定视场针对 MTF 值的 MC 统计结果,我的建议是不再使用默认的 几何 MTF 或者 衍射 MTF 公差标准设置,而是采用 User Script 作为公差分析标准,从而帮助您通过某个或某一系列手动定义的操作数,返回指定视场特定设置下的 MTF 值(利用 MTFA 这类操作数):
?name=image.png
 
在我们的帮助手册中,有以下关于 User Script 编写语句的详细定义,您可以作为参考:
The Tolerance Tab > Tolerancing Overview > Using Tolerance Scripts > The Tolerance Script Commands
主体上的思路是需要采用 LOADMERIT 语句载入已经设置好对应操作数的评价函数 .MF 文件,如果需要补偿器再使用 CPAR 定义一些参数作为补偿器,并使用 OPTIMIZE 控制优化,最终使用 REPORT 输出对应评价函数内某一行操作数的值(直接可以对应您所需的 MTF 值)。
您也可以参考帮助手册中的如下章节,参考我们默认读取 MTF 值的一个 Script 示例:
The Tolerance Tab > Tolerancing Overview > Using Tolerance Scripts > Tolerance Script Example

 

这边我也简单建立一个示例用于详细说明:
1. 首先需要在 MFE 中定义 MTF 对应的操作数,假设我使用 MTFA 操作数观察对应空间频率(例如 12 线对)的 MTF 值,然后将对应的评级函数保存为 MTF.mf 文件:
?name=image.png
 
2. 如果需要采用 Tolerance Script 进行公差分析,我们需要将公差扰动的操作数提前定义,但是所有的补偿器操作数(例如 COMP/CPAR)需要在 Script 中进行定义。
3. 可以按照如下方式定义 Tolerance Script:
 

! 请除系统中的所有补偿器
CLEARCOMP 
! 载入所编写的评价函数
LOADMERIT MTF.MF
! 定义系统中的补偿器,使用 COMP/CPAR 命令
CPAR 3 1
CPAR 3 2
! 使用 OPTIMIZE 对于补偿器进行优化
OPTIMIZE 4
!采用 REPORT 命令,返回对应评价函数中的某一行操作数,例如上方截图中 MTFA 位于第三行,所以使用 “=3”
REPORT "MTF at field 1 = " 3

 
如此,您可以完成 Script 的编写,然后结合先前描述中的描述采用 Tolerance Script 方法进行公差分析。
 

View original
Did this topic help you find an answer to your question?

1 reply

Haosheng.Hu
Zemax Staff
Forum|alt.badge.img+1
  • Author
  • Zemax Staff
  • 43 replies
  • Answer
  • July 15, 2022


首先需要补充一下公差分析中 Criterion 设置背后的逻辑。当例如 几何 MTF 或 衍射 MTF 这样的公差分析标准设置完成后,OpticStudio 将根据您的视场设置和公差标准设置在背后直接生成对应的评价函数组,就如同我们进行优化时候生成的默认评价函数一样。
如果上述情况下,同时设置了 User Defined 作为视场选项,那么在上述评价函数生成的时候将采用您 视场数据编辑器 内的视场设置以及每个视场的对应权重,最终生成的总评价函数值(也就是公差分析中的 Nominal MF 值)将根据各视场结果加权平均得到:
?name=image.png
在您的系统中,如果所有视场权重不相同,直接求取平均值是无法得到十分接近的结果的。并且公差分析中的以 MTF(几何以及衍射)设置为标准时,背后进行的计算和我们直接采用 MTFA 这样类似的操作数是不完全一样的,所以在计算本身上也是会有一些些偏差的。
 
关于第二个问题,如果想要查看某一特定视场针对 MTF 值的 MC 统计结果,我的建议是不再使用默认的 几何 MTF 或者 衍射 MTF 公差标准设置,而是采用 User Script 作为公差分析标准,从而帮助您通过某个或某一系列手动定义的操作数,返回指定视场特定设置下的 MTF 值(利用 MTFA 这类操作数):
?name=image.png
 
在我们的帮助手册中,有以下关于 User Script 编写语句的详细定义,您可以作为参考:
The Tolerance Tab > Tolerancing Overview > Using Tolerance Scripts > The Tolerance Script Commands
主体上的思路是需要采用 LOADMERIT 语句载入已经设置好对应操作数的评价函数 .MF 文件,如果需要补偿器再使用 CPAR 定义一些参数作为补偿器,并使用 OPTIMIZE 控制优化,最终使用 REPORT 输出对应评价函数内某一行操作数的值(直接可以对应您所需的 MTF 值)。
您也可以参考帮助手册中的如下章节,参考我们默认读取 MTF 值的一个 Script 示例:
The Tolerance Tab > Tolerancing Overview > Using Tolerance Scripts > Tolerance Script Example

 

这边我也简单建立一个示例用于详细说明:
1. 首先需要在 MFE 中定义 MTF 对应的操作数,假设我使用 MTFA 操作数观察对应空间频率(例如 12 线对)的 MTF 值,然后将对应的评级函数保存为 MTF.mf 文件:
?name=image.png
 
2. 如果需要采用 Tolerance Script 进行公差分析,我们需要将公差扰动的操作数提前定义,但是所有的补偿器操作数(例如 COMP/CPAR)需要在 Script 中进行定义。
3. 可以按照如下方式定义 Tolerance Script:
 

! 请除系统中的所有补偿器
CLEARCOMP 
! 载入所编写的评价函数
LOADMERIT MTF.MF
! 定义系统中的补偿器,使用 COMP/CPAR 命令
CPAR 3 1
CPAR 3 2
! 使用 OPTIMIZE 对于补偿器进行优化
OPTIMIZE 4
!采用 REPORT 命令,返回对应评价函数中的某一行操作数,例如上方截图中 MTFA 位于第三行,所以使用 “=3”
REPORT "MTF at field 1 = " 3

 
如此,您可以完成 Script 的编写,然后结合先前描述中的描述采用 Tolerance Script 方法进行公差分析。
 


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings