手电大家谈-手电筒爱好者之家

 找回密码
 注册成为会员,享受更多功能。

QQ登录

只需一步,快速开始

只需一步,快速开始

搜索
查看: 1494|回复: 0

ZEMAX软件编程使用教程:使用ZPL宏进行优化——ZPLM操作数

[复制链接]

该用户从未签到

发表于 2022-12-12 09:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册成为会员,享受更多功能。

x
本文介绍了如何通过使用ZPLM优化操作数在评价函数编辑器(Merit Function Editor )中使用ZPL宏定义复杂的优化目标。本文介绍了如何使用ZPLM约束系统的质心,以确保其能正确地平衡。
作者 Alessandra Croce
附件下载
文章附件
简介
OpticStudio中有将近400个操作数,几乎可以将任何感兴趣的值作为目标,包括SINE,PROD,SQRT等数学操作数,可以定义详尽的评价函数。有时所需的值需要进行复杂的计算,但是无法在评价函数编辑器中执行。在这种情况下,可以使用优化操作数ZPLM执行宏来确定操作数的值。运行宏,并使用OPTRETURN关键字将值返回给评价函数。
ZPLM操作数
ZPLM 操作数包含六个参数: Mac#, Data, Hx, Hy, Px, Py
  • Mac#是OpticStudio应该执行的宏的编号。应将与ZPLM操作数一起使用的宏另存为ZPLnn.zpl,其中,00 ≤ nn ≤ 99。
    • 例如,ZPLM调用宏ZPL03.zpl时,Mac#应该为3。
  • Data是由宏计算出来的数据值。单个宏中最多可以计算51个数据值 (0 ≤ Data ≤ 50)。 为了提高效率,仅当Data = 0时才执行宏;否则,将使用来自先前宏调用的数据(即Data = 0,至少需要调用一次)。
  • Hx, Hy, Px, 和 Py 是可以传递给宏以用于计算的值,它们不一定必须是归一化的视场/光瞳坐标:

                               
登录/注册后可看大图
下面的示例将说明与ZPLM优化操作数一起使用的宏的定义。
ZPLM 示例:质心约束
在某些光学系统(瞄准镜,双筒望远镜,安装在三脚架上的照相机等)中,质心是要考虑的重要的机械因素。假设我们正在设计瞄准镜,其中一个约束条件是使系统平衡。这意味着,质心(CM)应该位于前组元件和后组元件之间的中间位置。
加载示例文件: <Documents>\Zemax\Samples\Sequential\Afocal\Afocal Riflescope.zmx

                               
登录/注册后可看大图
出于本示例的目的,将做出一些简化示例的假设:
  • 所有透镜均旋转对称
  • 所有材料为均匀介质
  • 每个透镜的质心都位于顶点的中间(严格来说,这仅适用于曲率相等且符号相反的透镜)
  • 表面1是全局坐标参考(GCRS)
要限制质心的位置需要有以下参数:
  • 每个元件的全局位置
  • 每个元件的质量
  • 系统总长(前透镜至后透镜)
因此,将使用以下ZPL函数和关键字:
  • GLCZ() 函数返回表面的全局z坐标
  • OPEV() 函数使用TMAS优化操作数提取元件的质量
  • GETSYSTEMDATA 关键字返回总光路长度(表面1到像面)
  • OPTRETURN 关键字将数据返回到宏
ZPLM 宏代码
可在文章附件中找到“质心”宏,如下所示:

                               
登录/注册后可看大图
将宏另存为: ZPL01.ZPL,以便可以使用Mac#= 1调用它。
评价函数中的 ZPLM
在评价函数中,添加 Mac#= 1,Data= 0 的ZPLM操作数,这将运行宏并返回系统的质心。

                               
登录/注册后可看大图
此处仅返回一个值,要返回其他值,只需在宏中添加额外的 OPTRETURN 行:
OPTRETURN data_number, value
在此示例中,不进行优化,但是,操作过程与其他操作数相同(即设置所需的目标值和非零权重)。请注意,宏返回的值的单位可以是任意的,因此需要考虑ZPLM操作数的权重,以准确地表达此目标值相对于评价函数中列出的其他目标值的重要性。特别是,此宏需要非常小的权重才能使ZPLM与其他针对系统性能的操作数保持平衡。
如前所述,ZPLM可以使用最多四个值(Hx,Hy,Px,Py)将数据传递到宏。可以使用 PVHX(), PVHY(), PVPX(), PVPY() 数值函数在宏中访问传递的值。在此示例中,可以将镜筒质心的位置和质量传递给宏,以说明镜筒和透镜组合的质心。
  • Hx = 镜筒质心到系统中心的距离
  • Hy = 镜筒质量
按照下图修改宏,并将修改后的宏另存为ZPL02.zpl。

                               
登录/注册后可看大图
在评价函数中,将Mac#设置为2,输入镜筒质心位置(Hx)和质量(Hy)的值,并注意报告的数据值的变化:

                               
登录/注册后可看大图
切记:仅当Data = 0时才执行宏,以提高评价函数的评估速度。


Ansys Zemax国内可靠代理商



  光研科技南京有限公司是国内可靠的光学软件和仪器光电供应商,提供企业定制化上门培训服务,承接各类光学设计项目,并有一系列自主编写出版的光学设计书籍。公司拥有一支高素质、高水平、实战经验丰富的管理,销售以及研发团队,从成立到现在已经为广大企业,研究所以及高校提供了很多优秀的产品和服务,是光电圈内值得信赖的企业。追光逐梦,研以致用!以用户的需求为起点,为客户提供有价值的光学产品和服务一直都是光研科技南京有限公司的宗旨。



  AnsysZemax光学软件咨询与订购联系方式

       联系人:南京光研   徐保平

  手机号:15051861513

  微信号:13627124798


       您也可以扫一扫下面的二维码直接咨询



                               
登录/注册后可看大图


回复 dsu_marcocopyright:copyright

使用道具 举报

本版积分规则

小黑屋|手机版|Archiver|论坛自带搜索|下载论坛app|手电大家谈-手电筒爱好者之家 ( 备案序号:鲁ICP备05002565号 )
以上言论纯属个人观点,与手电大家谈立场无关。
最佳浏览模式:1920*1080


GMT+8, 2024-11-22 13:17 , Processed in 0.117410 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表