[我分享]解决非球面反曲的5种方法(很详细)
查看: 18100|回复: 25
[我分享]
解决非球面反曲的5种方法(很详细)
荐
火...
[复制链接]
14479
14479
当前离线
积分8
TA的每日心情奋斗2025-2-10 16:05签到天数: 157 天
[LV.7]常住居民III
11
主题58
回帖8
积分
小白
小白, 积分 8, 距离下一级还需 7 积分
小白, 积分 8, 距离下一级还需 7 积分
积分8
收听TA
发消息
电梯直达
楼主
发表于 2024-5-16 16:27
|
只看该作者
|倒序浏览
|阅读模式
在zemax种进行非球面优化时,常常会遇到面型在某些地方产生拐点,导致面型难看,甚至难以加工,这就是我们常说的反曲,如下图边缘孔径处所示,在进行非球面反曲的校正前,有必要对反曲的产生有较为详细的了解。
以球差校正为例,我们都知道非球面校正球差的能力比普通球面镜的能力更强,同时其比正负透镜组合校正球差更节约空间,优越性很明显。而球差的产生是各孔径的光线没汇聚到一点,而利用正负透镜相组合,可以使得各孔经光线在经过正和负透镜上产生光线高度和光焦度的差异,这种一正一负的差异可以对球差进行一定的消除。非球面透镜消球差的能力和正负透镜组合的原理相同,区别在于单个非球面在各孔径处具有不同的光焦度分布,为了使得边缘光线和中心光线能够汇聚一点,有些孔径表面的光焦度甚至可以由正变负,从面型表现上就是反曲。
在了解反曲之后我们还有对后续操作数所用到的一些基本概念进行补充,如下面两张图所示。一般来说,矢高是随着口径而变化的,口径增大,矢高也随着而增大这种情况下是没有反曲产生的:而当发生了在某个口径处,矢高发生了减小的现象时,这时候就产生了反曲。表面的陡度就是面的斜率角,如图中红色的两条切线的斜率,一般控制在70以内。
非球面大多采用的均是塑料镜片,一般是采用注塑的工艺。这意味着镜片的诸多参数需要向采样注塑的工艺进行妥协,所以需要设计者针对不同的注塑工艺,进行非球面的限制。对于塑料非球面镜头尽可能避免边缘的反曲,中间的适量反曲是可以接受的,但同时也需要对表面斜率进行控制,而玻璃非球面则更加的严苛。
下面就是进行解决非球面反曲5种方法的详细步骤了,我们首先人为的优化了一个简单的3片式的非球面系统,如下图所示,以这个为优化的初始结构,主要针对第三片透镜的边缘孔径处的反曲来进行优化。
方法1:利用SDRV操作数进行反曲的控制:
首先,SDRV定义是:计算某个面上,由X和Y定义的实际孔径坐标点处表面矢高(沿着局部Z轴)的一阶数据(data),这意味着我们可以利用该操作数对反曲孔径处的一阶导数进行提取,可以看到边缘处提取的数据为负数,而非边缘孔径所提取的数据为正数,这也侧面说明了反曲的产生。
所以思路很简单,他所提取的一阶数据为负,那我只需要让他的数据为正,从而没有产生相应的拐点,解决流程如下图1所示,可以看到,反曲有明显的改善,同时我们还可以对SDRV所提取的数据进行一次ATAN的求解,获得角度数据,控制角度来压反曲,如下图2所示。
图1
图2
方法2:利用SSAG,SAGY操作数进行反曲的控制:
同样的,SSAG定义:Surf定义的面上X和Y定义坐标点上的矢高,即可以提取任意孔径点处的矢高。SAGY定义:Surf定义的表面上Y=有效通光孔径,X=0处的矢高,即可以理解为边缘孔径的矢高,那么我们同样可以直接提取,反曲所在位置处的孔径的矢高值,进行约束,如下图所示,同样能够对反曲进行控制。
方法3:利用RENB操作数进行反曲的控制:
与上述两种与矢高相关的方法不同,RENB的定义为表面法线Y方向余弦。在波长(wave)定义的波长下指定光线与面(surf)定义的交点处表面的法线的Y方向余弦,这个相当于是提取光线和镜头表面相交的点,我们针对反曲所在的位置,通过设置HY,PY,来获取光线所交到反曲位置的方向余弦,对其进行约束,从而实现控制住反曲,如下图所示。
方法4:利用MXEA操作数+虚拟面进行反曲的控制:
从MXEA的定义我们也可以看到,空气的最大边缘厚度。该边界操作数约束从Surf1到Surf2表面中每个玻璃类型为空气(即没有玻璃)的面的边缘厚度要小于指定的目标值。区域(Zone),如果是非零值,缩放计算该处的厚度(Zone为0.5的话将计算0.5乘以半口径处的厚度。该操作数有一个模式(mode)标志,模式为0(默认)表示使用的是机械孔径,模式为1表示使用的是通光口径。这意味着我们可以通过此来提取反曲位置的坐标点。首先如下图所示,第三片透镜后面插入一个虚拟面,通过提取反曲处的坐标点和虚拟面之间的距离,然后与正常没有反曲的坐标点和虚拟面的距离做差,再进行约束,从而控制反曲。
方法5:利用REAZ操作数进行反曲的控制:
与RENB很相似,REAZ的定义是:实际光线Z向坐标。在波长(wave)定义的波长下,面(surf)定义的表面上指定出射光线的Z向坐标。如下图所示,有两种方式,一种是直接对坐标点进行限制,另一种则是在反曲位置进行角度的计算,利用角度来限制反曲。
以上这五种方法中本质上可以分为两种,一种是提取矢高,另一种则是提取坐标值,利用这种思路,甚至可以写各宏来进行反曲的限制。但同时我们也能够发现,方法1,方法2,方法4的缺点在于需要自己输入X和Y的坐标,在进行优化的时候如果光学口径发生变化,会导致角度无法被成功限制。这种比较适合在有镜片口径限制的情况下进行优化。方法3,方法5的优点在于可以计算镜片的光学有效径,在光学有效径的边缘位置进行计算,缺点是不能够计算机械半口径位置。
而且在优化过程中没必要一开始就人为的压制反曲,需要明白的是反曲它本质上也能够反映出系统控制光线的分布,明白了各孔径处的光焦度分布,这对优化的方向也具有一定的指导意义。而且这些方法还可以进一步的使用,例如利用方法4,可以按照顺序多几个不同孔径的位置,按顺序对不同孔径的MXEA进行作差处理,然后进行作差后的控制,这样可以对整个矢高的变化进行控制,使得面型不至于那么凸或者凹。所有的方法zmx文件都在附件当中,可以进行下载。
总之,条条大路通罗马,这几种方法也仅局限于个人的微薄的经验,大家如果有更好的方法可以进行交流。创作不易,求大佬们可以给点贡献或者金币
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
评分
参与人数 7金币 +68
收起
理由
风叶1900
+ 1
很给力!
小耳朵
+ 1
赞一个!
浅海A
+ 3
很给力!
jnu-cgl
+ 50
原创
荣耀属于曼联
+ 5
赞一个!
confus
+ 3
很给力!
姚xinjian
+ 5
赞一个! 终于有大佬讲清楚了
查看全部评分
收藏172
转播
分享1
淘帖0
支持,很有价值36
价值不大0
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
jnu-cgl
jnu-cgl
当前离线
积分84
TA的每日心情开心2025-10-23 08:51签到天数: 1651 天
[LV.Master]伴坛终老
47
主题679
回帖84
积分
版主
积分84
收听TA
发消息
沙发
发表于 2024-5-17 09:17
|
只看该作者
多点了一个0,不过帖子质量也是值得的。楼主有推荐哪个方法效率更高吗?就是更有效点。
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
14479
14479
当前离线
积分8
TA的每日心情奋斗2025-2-10 16:05签到天数: 157 天
[LV.7]常住居民III
11
主题58
回帖8
积分
小白
小白, 积分 8, 距离下一级还需 7 积分
小白, 积分 8, 距离下一级还需 7 积分
积分8
收听TA
发消息
板凳
楼主|
发表于 2024-5-17 10:24
|
只看该作者
jnu-cgl 发表于 2024-5-17 09:17
多点了一个0,不过帖子质量也是值得的。楼主有推荐哪个方法效率更高吗?就是更有效点。 ...
感谢大佬的金币。我个人还是习惯提取矢高来进行约束,也就是前面的两种方法,但有些情况下可能会限制优化。这时候用一下另外的方法来约束,可能会有助于跳出优化的限制。
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
姚xinjian
姚xinjian
当前离线
积分30
TA的每日心情擦汗2025-10-21 01:39签到天数: 891 天
[LV.10]以坛为家III
48
主题214
回帖30
积分
新手
新手, 积分 30, 距离下一级还需 20 积分
新手, 积分 30, 距离下一级还需 20 积分
积分30
收听TA
发消息
地板
发表于 2024-5-17 11:15
|
只看该作者
楼主,我对表面斜率那个地方不太了解。
G2镜头中心部分(方框中部分)的角度应该非常大,但是很明显是可以加工的,这好像跟我想的不一样。
楼主方便提供一下这个的原档文件么?
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
opticalor920
opticalor920
当前离线
积分4
TA的每日心情衰2024-6-25 05:51签到天数: 22 天
[LV.4]偶尔看看III
14
主题49
回帖4
积分
小白
小白, 积分 4, 距离下一级还需 11 积分
小白, 积分 4, 距离下一级还需 11 积分
积分4
收听TA
发消息
5#
发表于 2024-5-17 11:20
|
只看该作者
ZPLM FCT 求面型的一阶导数最大最小值很方便
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
14479
14479
当前离线
积分8
TA的每日心情奋斗2025-2-10 16:05签到天数: 157 天
[LV.7]常住居民III
11
主题58
回帖8
积分
小白
小白, 积分 8, 距离下一级还需 7 积分
小白, 积分 8, 距离下一级还需 7 积分
积分8
收听TA
发消息
6#
楼主|
发表于 2024-5-20 08:36
|
只看该作者
opticalor920 发表于 2024-5-17 11:20
ZPLM FCT 求面型的一阶导数最大最小值很方便
确实,用宏更加的方便,我这里给出的主要都是利用操作数的,大佬有机会也分享一下呗
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
14479
14479
当前离线
积分8
TA的每日心情奋斗2025-2-10 16:05签到天数: 157 天
[LV.7]常住居民III
11
主题58
回帖8
积分
小白
小白, 积分 8, 距离下一级还需 7 积分
小白, 积分 8, 距离下一级还需 7 积分
积分8
收听TA
发消息
7#
楼主|
发表于 2024-5-20 09:17
|
只看该作者
本帖最后由 14479 于 2024-5-20 09:20 编辑
姚xinjian 发表于 2024-5-17 11:15
楼主,我对表面斜率那个地方不太了解。
G2镜头中心部分(方框中部分)的角度应该非常大,但是很明显是可以 ...
中心部分肯定能加工呀,它一点也不弯曲,可能是我表述的问题,你只要控制各孔径面型不要太过于弯曲就行了,这样会影响脱模。要想更准确的去验证,你可以把这个面型导入到sw里面,用里面的拔模功能试试看,看能否拔模。文件我上传了,是论坛里面坛友的文件。
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
知音2020
知音2020
当前离线
积分76
TA的每日心情擦汗2025-10-23 09:19签到天数: 1353 天
[LV.10]以坛为家III
20
主题383
回帖76
积分
入门
入门, 积分 76, 距离下一级还需 74 积分
入门, 积分 76, 距离下一级还需 74 积分
积分76
收听TA
发消息
8#
发表于 2024-6-17 11:48
|
只看该作者
点评一下第一种方法,
我个人的理解,SDRV是表面的一阶或者二阶导数,二阶数学上其实就是一阶导的导数,当一阶导都>0,或者都<0时,SDRV二阶导数提取的y值要么都大于0要么都小于0.。这样就有了约束思路:
SDRV 2 y值得孔径取密集一些美隔0.1mm取一个值,然后,用操作数范围maxx/minn operand#1-#N都大于0或者都小于0,这样表面就是光滑的了。
为什么觉得用二阶导比较好?我个人觉得如果只控制某些点的导数之类的,会导致别的地方会反曲,二阶导+采样密集就会解决这个问题。
我觉得如果觉得操作数太多,可以考虑写进zpl。再用ZPLM调用,
这个方法和CODEV里面的SDERIVF函数很像,
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
5579
5579
当前离线
积分28
TA的每日心情衰2025-10-22 19:06签到天数: 1756 天
[LV.Master]伴坛终老
18
主题250
回帖28
积分
新手
新手, 积分 28, 距离下一级还需 22 积分
新手, 积分 28, 距离下一级还需 22 积分
积分28
收听TA
发消息
9#
发表于 2024-6-19 16:02
|
只看该作者
知音2020 发表于 2024-6-17 11:48
点评一下第一种方法,
请问这个教材哪里可以获取?
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
知音2020
知音2020
当前离线
积分76
TA的每日心情擦汗2025-10-23 09:19签到天数: 1353 天
[LV.10]以坛为家III
20
主题383
回帖76
积分
入门
入门, 积分 76, 距离下一级还需 74 积分
入门, 积分 76, 距离下一级还需 74 积分
积分76
收听TA
发消息
10#
发表于 2024-6-20 09:33
|
只看该作者
5579 发表于 2024-6-19 16:02
请问这个教材哪里可以获取?
论坛里的资源
程德文-自由曲面与非球面讲义
http://www.optzmx.com/thread-30233-1-1.html
(出处: 吾爱光设)
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
回复
使用道具
举报
品牌IP化是什么?