本文介绍了如何通过使用 ZPLM 优化操作数在 评价函数编辑器 (Merit Function Editor )中使用 ZPL 宏定义复杂的优化目标。本文介绍了如何使用 ZPLM 约束系统的质心,以确保其能正确地平衡。
OpticStudio 中有将近400个操作数,几乎可以将任何感兴趣的值作为目标,包括SINE,PROD,SQRT 等数学操作数,可以定义详尽的评价函数。有时所需的值需要进行复杂的计算,但是无法在评价函数编辑器中执行。在这种情况下,可以使用优化操作数 ZPLM 执行宏来确定操作数的值。运行宏,并使用 OPTRETURN 关键字将值返回给评价函数。
ZPLM 操作数包含六个参数: Mac#, Data, Hx, Hy, Px, Py
下面的示例将说明与 ZPLM 优化操作数一起使用的宏的定义。
在某些光学系统(瞄准镜,双筒望远镜,安装在三脚架上的照相机等)中,质心是要考虑的重要的机械因素。假设我们正在设计瞄准镜,其中一个约束条件是使系统平衡。这意味着,质心(CM)应该位于前组元件和后组元件之间的中间位置。
加载示例文件:<Documents>\Zemax\Samples\Sequential\Afocal\Afocal Riflescope.zmx
出于本示例的目的,将做出一些简化示例的假设:
要限制质心的位置需要有以下参数:
因此,将使用以下 ZPL 函数和关键字:
文章附件中“质心”宏,如下所示:(联系我们获取文章附件)
将宏另存为:ZPL01.ZPL,以便可以使用 Mac#= 1调用它。
在评价函数中,添加 Mac#= 1,Data= 0 的 ZPLM 操作数,这将运行宏并返回系统的质心。
此处仅返回一个值,要返回其他值,只需在宏中添加额外的 OPTRETURN 行:
OPTRETURN data_number, value
在此示例中,不进行优化,但是,操作过程与其他操作数相同(即设置所需的目标值和非零权重)。请注意,宏返回的值的单位可以是任意的,因此需要考虑ZPLM操作数的权重,以准确地表达此目标值相对于评价函数中列出的其他目标值的重要性。特别是,此宏需要非常小的权重才能使ZPLM与其他针对系统性能的操作数保持平衡。
如前所述,ZPLM 可以使用最多四个值(Hx,Hy,Px,Py)将数据传递到宏。可以使用 PVHX(), PVHY(), PVPX(), PVPY() 数值函数在宏中访问传递的值。在此示例中,可以将镜筒质心的位置和质量传递给宏,以说明镜筒和透镜组合的质心。
按照下图修改宏,并将修改后的宏另存为ZPL02.zpl。
在评价函数中,将 Mac#设置为2,输入镜筒质心位置(Hx)和质量(Hy)的值,并注意报告的数据值的变化:
切记:仅当 Data = 0 时才执行宏,以提高评价函数的评估速度。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删