吾爱光设

 找回密码
 注册
会员须知
会员须知
实用帮助
实用帮助
查看: 507|回复: 7

[我分享] 算法生成操作数控制zemax像面光线分布(平顶光转类似高斯光束的分布)

[复制链接]
  • TA的每日心情
    开心
    2025-3-28 10:07
  • 签到天数: 226 天

    [LV.7]常住居民III

    20

    主题

    179

    回帖

    5

    积分

    小白

    积分
    5
    发表于 2025-2-21 15:11 | 显示全部楼层 |阅读模式
    本帖最后由 开心的安倍 于 2025-2-21 15:40 编辑

    先吐槽
    一开始用的宏函数,但真的有一说一,但凡有学过其他编程语言的人,都不会觉得宏语言用的舒服。二三十行的简单逻辑代码还可以,超一百行,我都不知道怎么debug。

    也用宏编写了一个,是参考官网那个改写的,放附件了。
    ————————————————

    正题
    1、操作的可行性

    生成操作数的前提是MF文件的格式:发现MF的数据大概对应了这样的格式:

    第一列空着是因为以为会有行数,仔细翻阅MF的内容之后发现其实没有行元素。但后面懒的改写代码了,所以就这样了。
    所以MF本身其实有1列操作数名称+6列数据+目标以及权重。生成这个格式的文档,直接复制B-L列数据到MF文件中(记事本打开)做替换即可,再用Zemax操作数那边打开MF。

    2.算法or光线排布思路

    这里得先明确是xy对称式系统还是xy非对称的?想实现的光线排布方式是什么样的?
    分开来讨论。
    第一点,xy对称式系统或者近似,那生成reax或者reay都可以;xy非对称的,如果是长方形,椭圆形,大概率需要柱面镜这种,需要同时生成reax或者reay(由于我的系统只是近似xy对称,后者这个只是猜想)。
    第二点,想实现的光线排布方式,这个还是得自己有数,虽然我做出来下图类似高斯的效果,但实际上我追求的东西的副产品是这个分布,而非这个分布本身,所以还是要明确自己的核心需求。要实现的排布样式确定后,即,有了大概的曲线,不知道这个曲线的函数那就把问题抛给deepseek,或者自己再写代码做曲线拟合,这里不做讨论。


    接下来是整体的算法思路:(以我自己为例,生成近似xy对称式系统,类高斯分布光斑)
    (1)光线追迹
    首先,reax操作数,hx和px分别采样,循环嵌套即可。这里需要注意的是,千万要注意渐晕的问题!!!我自己的系统,由于是反射式物镜,中心就存在遮拦,直接生成的结果是有问题的。解决办法:需确认遮挡比例,以遮挡面为光阑,设置px通光起始点和终点可规避。
    (2)像面采样
    根据想要的光线分布函数,生成积分,就可以知道每一个部分能量对应了光总能量的占比。
    下面我会把上面这句话拆开说清楚。这里由于是x方向的全采样,但是只关心整体分布情况,所以,至于每一条光线的结果不是追求的目的。所以,能搞定这个问题的就是区域的光线数占比。
    然后问题出现了光线数占比,该怎么用操作数表述?这里光线追迹的reax的结果已经出来了,由于是两边对称的,所以可以用abso操作数,将采样结果翻转到正半轴,方便简化算法的构建。这时候光线采样点距离原点位置是知道的,像面的分布方程也是确认的。需要将像面采样划分,利用diff结合oplt操作数(opgt也可以)。以下图为例,当对于像面0.1、0.3、0.5、0.7采样时,若光线位置在0.28。使0.28减去像面采样点,oplt取该值与0比较,可以得到与0.1对比结果是0.28-0.1=0.18,而其他则会返回0值。

    之后,将每条光线挨个采样,就可以得到和像面采样点的关系,将目标操作数用osum求和之后,就可以得到总的像面采样点的数值。目标分布函数和这里的求和总值是存在关系的函数,解方程即可。将目标分布函数的计算结果解出来,设为目标。
    这里我就不放我的屎山代码了,放我计算得到的Excel操作数吧,感兴趣的朋友可以试试。
    小弟第一次做分享,希望大佬轻喷。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册

    ×

    评分

    参与人数 2金币 +3 收起 理由
    有生之年 + 1 赞一个!
    jnu-cgl + 2 原创

    查看全部评分

    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-3-5 10:00
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    16

    主题

    84

    回帖

    0

    积分

    小白

    积分
    0
    发表于 2025-2-28 09:55 | 显示全部楼层
    你好 想问下这个excel文件怎么使用,插入zpl宏之前要先做什么吗
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-3-28 10:07
  • 签到天数: 226 天

    [LV.7]常住居民III

    20

    主题

    179

    回帖

    5

    积分

    小白

    积分
    5
     楼主| 发表于 2025-2-28 10:04 | 显示全部楼层
    时生i 发表于 2025-2-28 09:55
    你好 想问下这个excel文件怎么使用,插入zpl宏之前要先做什么吗

    那个是复制到评价函数的,找个不用的.mf文件粘过去就行,然后zemax里面打开评价函数
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-3-5 10:00
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    16

    主题

    84

    回帖

    0

    积分

    小白

    积分
    0
    发表于 2025-3-3 08:19 | 显示全部楼层
    开心的安倍 发表于 2025-2-28 10:04
    那个是复制到评价函数的,找个不用的.mf文件粘过去就行,然后zemax里面打开评价函数
    ...

    那里面那些计算的 是需要手动计算吗
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-3-28 10:07
  • 签到天数: 226 天

    [LV.7]常住居民III

    20

    主题

    179

    回帖

    5

    积分

    小白

    积分
    5
     楼主| 发表于 2025-3-3 10:17 | 显示全部楼层
    时生i 发表于 2025-3-3 08:19
    那里面那些计算的 是需要手动计算吗

    不用,点运行就行
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-3-5 10:00
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    16

    主题

    84

    回帖

    0

    积分

    小白

    积分
    0
    发表于 2025-3-3 16:31 | 显示全部楼层

    想请教一下您 如果做匀光的话 里面的数据如何给值如何运行
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-3-28 10:07
  • 签到天数: 226 天

    [LV.7]常住居民III

    20

    主题

    179

    回帖

    5

    积分

    小白

    积分
    5
     楼主| 发表于 2025-3-5 09:42 | 显示全部楼层
    其实匀光的话,你只要点对点,没渐晕干扰就行,就用zemax自生成的函数就行,你要是觉得均匀性差点,那就看看非序列里面的匀光
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2025-3-28 10:07
  • 签到天数: 226 天

    [LV.7]常住居民III

    20

    主题

    179

    回帖

    5

    积分

    小白

    积分
    5
     楼主| 发表于 2025-3-5 09:42 | 显示全部楼层
    时生i 发表于 2025-3-3 16:31
    想请教一下您 如果做匀光的话 里面的数据如何给值如何运行

    其实匀光的话,你只要点对点,没渐晕干扰就行,就用zemax自生成的函数就行,你要是觉得均匀性差点,那就看看非序列里面的匀光
    发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    联系我们|本论坛只支持PC端注册|手机版|小黑屋|吾爱光设 ( 粤ICP备15067533号 )

    GMT+8, 2025-3-29 13:46 , Processed in 0.125000 second(s), 24 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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