ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

广角镜头光学设计实战:像差控制与Zemax优化流程

广角镜头光学设计实战:像差控制与Zemax优化流程 这次我们不聊 AI 画图也不聊本地部署大模型而是回到光学设计领域一个非常经典的实战方向广角镜头设计。如果你正在学习光学设计或者已经能做出普通焦距的镜头但一碰广角就遇到像散、场曲、畸变压不住的问题那么这个“广角镜头光学设计训练营节选”的内容就非常值得关注。广角镜头设计难在哪难的不只是视场大而是大视场带来的轴外像差全面恶化。控制不好边缘画质直接崩掉。这篇文章会把广角镜头设计的核心流程、像差控制思路、优化策略和验证方法逐个拆开讲尽量做到你看完能直接照着一套流程去建项目、跑优化、看结果。为了贴合“节选”这个主题这篇内容不会试图覆盖从玻璃选择到最终出图的全部细节而是聚焦广角镜头设计中最关键、最容易卡住人的几个环节包括初始架构怎么定、大视场像差怎么分优先级、材料对场曲和色差的影响、优化过程怎么避免陷入局部极值以及如何用批量任务和像差评估表验证设计结果。1. 广角镜头设计核心能力速览能力项说明设计对象广角镜头、超广角镜头适用全画幅、APS-C、1英寸及以下传感器核心难点大视场引入的场曲、像散、畸变、倍率色差典型视场角半视场角 30° 到 60° 为主超广角可达 70° 以上主流架构反远距结构、双高斯加负弯月、鱼眼/准鱼眼结构常用设计软件Zemax OpticStudio、Code V、OSLO本文以 Zemax 为例评价函数默认 RMS 波前 / RMS 光斑半径配合自定义操作数关键约束总长、后焦、F 数、畸变、相对照度、CRA主光线角批量能力通过 Zemax 编程接口ZPL/ZOS-API做批量像差扫描和参数遍历适合读者光学设计初学者、镜头工程师、成像系统开发人员这里要说明一个原则广角镜头没有“万能结构”只有“适合你的指标约束的结构”。很多教材喜欢直接给一个初始结构然后让你跑优化结果你跑半天发现边缘视场怎么都收不进去。问题往往出在初始架构选择上这一阶段就需要对反远距结构的负组位置和后组光焦度分配做有效规划。2. 广角镜头设计的目标指标与适用边界任何镜头设计项目开工前先把指标定死不能边做边改。广角镜头尤其如此因为大视场下自由度再多也架不住指标之间互相冲突。设计一套广角镜头先要确定以下硬指标传感器靶面尺寸焦距与 F 数半视场角或全视场角后焦距光学总长CRA 匹配要求畸变容忍度下面给出一个典型指标表作为示例真实项目请按你的传感器规格替换指标项示例值传感器1/1.8 英寸分辨率 500 万焦距5.2 mmF 数2.0半视场角55°后焦距大于 6 mm光学总长小于 22 mmCRA小于 22°畸变任意值后期软件校正上面这个例子中有个很关键的设置畸变允许后期软件校正。实际工程中广角镜头畸变往往很难压到 2% 以内尤其在视场角超过 50° 时强行压畸变会让其他像差严重恶化。更常见的做法是保证畸变曲线平滑单调然后在 ISP 或后处理软件里做标定校正。如果你也在设计消费级广角镜头建议把这个指标放进和客户确认的前三项里。适用边界方面这套训练营方法主要覆盖光学设计阶段的像差优化不包含机械结构、热补偿、杂散光抑制等后续工程环节。设计完成后你还需要把透镜数据交给结构工程师做镜筒设计和装配公差分析。3. 广角镜头初始架构选择与光焦度分配广角镜头设计第一步不是直接进 Zemax 敲数据而是先确定架构。对于半视场角大于 35° 的镜头常规的双高斯结构很难同时兼顾大视场和够用的后焦。这时候优先考虑反远距结构。反远距结构的特征是前组为负光焦度、后组为正光焦度。负组先把大视场光线“压平”正组再负责聚焦成像。这种架构天然支持大视场角同时能保证足够的后工作距离避免最后一枚镜片太靠近传感器。反远距结构的初始光焦度分配可以按以下思路来前负组承担主要视场偏折大约贡献 -1.5 到 -2.0 倍系统焦距的负光焦度。后正组承担聚焦光焦度为主系统焦距的 1.2 到 1.5 倍。负组通常由 1 到 2 片负弯月透镜组成形状以朝向物体面弯曲为主。正组内部可参考双高斯结构正负镜片交替方便校正场曲和像散。用 Zemax 建模时可以用近轴面模拟光焦度分配阶段。比如先用 paraxial lens 做系统骨架再逐面替换成真实玻璃。这里给一段 Zemax 的 ZPL 脚本示例用于快速扫描负组光焦度对系统后焦和像散的影响! 负组光焦度扫描示例需在 Zemax 编程选项卡中运行 FOR i 1 20, 1 ! 假设第 2 面为负组主要弯月面改变其曲率半径 cur -0.02 - i * 0.001 UPDATE 2, cur ! 计算当前结构的后焦 paraxial_image_height FOIC(1) PRINT Loop: , i, Curvature: , cur, FFL: , paraxial_image_height NEXT i注意ZPL 的命令参数在不同版本的 Zemax 中略有差异。如果上面脚本报错重点检查UPDATE和FOIC这两个函数在你的版本中是否可用。4. 广角镜头像差优先级排序与评价函数构建广角镜头的像差优先级和大视场角直接相关。很多新手一上来就把所有像差都塞进评价函数结果优化器疲于奔命最后每一项都差一点。从广角镜头的实际成像需求出发像差优先级可以这么排第一梯队场曲、像散、倍率色差。这三个像差直接决定边缘画质。场曲会导致边缘对焦平面和中心不一致拍出来边糊心清。像散会让径向和切向分辨率差异巨大。倍率色差则表现为画面边缘的红绿紫边。第二梯队球差、彗差、轴向色差。这些在中心视场影响更大。F 数越小球差越明显。第三梯队畸变。如果允许软件校正畸变可以放在最后优化只需要确保畸变曲线平滑。在 Zemax 评价函数里建议这样设置用默认评价函数选择 RMS 光斑半径采样密度设为 3 到 5 环、6 到 8 臂。关闭“中心视场权重过高”的默认倾向手动给 0.7 视场和 1.0 视场增加权重。把后焦、总长、CRA、F 数作为边界操作数写死。下面是一个 Zemax 评价函数操作数示例不是完整文件只展示关键操作数布局! 默认评价函数生成后的重点操作数检查清单 ! 第一组像差控制 RMSWAVEFRONT 0.0 0.0 RMSWAVEFRONT 0.7 1.0 RMSWAVEFRONT 1.0 1.0 ! 第二组边界约束 TTHI 1 12 -22.0 0.0 BACK F 0.0 8.0 CRA 0.0 1.0 24.0 ! 第三组倍率色差控制 PETC 0.7 1.0 1.0 1.0上表中RMSWAVEFRONT用于控制波前像差TTHI限制总长BACK限制后焦PETC评估倍率色差。具体操作符编号请在 Zemax 的 Operand 列表中确认不需要强行记背。真正实际操作时建议分阶段优化。第一阶段只优化场曲和像散不加畸变约束。第二阶段再把畸变曲线拉平滑。第三阶段才收紧总长和后焦。先把像差压到合理范围再反过来削指标成功率会高很多。5. 玻璃材料选择对场曲与色差的影响广角镜头设计中玻璃材料的选择往往被低估。很多人觉得材料只是换折射率和阿贝数实际上材料直接决定了系统能不能同时校正场曲和倍率色差。先说场曲。佩兹瓦尔和的表达式是各镜片光焦度与折射率的比值之和。要让场曲变小需要正光焦度镜片用高折射率材料负光焦度镜片用低折射率材料。换句话说正透镜尽量选高折射率玻璃负透镜尽量选低折射率玻璃。再说倍率色差。广角镜头边缘视场的倍率色差通常比较明显。控制倍率色差的关键是让系统的主光线在不同波长下有接近的入射高度。实际操作中负组中的色散匹配非常关键前负组如果用低色散玻璃后正组就要配合使用高色散玻璃来平衡。玻璃选择有一个实用技巧不要一开始就选特殊昂贵材料。先用标准库材料做第一轮优化看场曲和色差的极限在哪里然后再用替换法把瓶颈位置的镜片换成更高折射率或特殊色散材料。下面是一个简化的玻璃材料替换对比表用于快速判断材料升级方向镜片位置初始材料示例问题表现替换方向前组负弯月BK7场曲偏大换低折射率材料如 FK 系列后组正透镜BK7色差偏大换高折射率低色散如 H-LAK 系列靠近像面负透镜SF 系列倍率色差换高色散材料如 H-ZF 系列玻璃替换一次只换一片换完跑一次优化观察像差变化幅度不要一次性把整个系统材料都换了不然你根本不知道是哪片玻璃起了作用。6. 广角镜头 Zemax 优化流程与局部极值规避广角镜头优化最大的坑是陷入局部极值尤其是在大视场角下。系统变量多评价函数地形复杂优化器很容易停在一个看起来“还行”但实际上还有很大改善空间的点。规避局部极值业界常见做法主要有三种。第一种是锤形优化Zemax 的 Hammer Optimization。这个名字很形象就是在评价函数地形里不断锤击跳出局部极小值。锤形的缺点是慢但效果往往是全局性的改善。建议常规 DLS 优化到收敛后接着跑 10 到 30 分钟锤形优化。第二种是逐步增加视场。不要从全视场开始优化。先用 0 视场和 0.5 视场做第一轮优化等中心视场和中间视场像差控制住了再加入 0.7 视场和 1.0 视场。这个大广角的做法很多资深设计师都在用可以显著减少优化器同时处理多组矛盾像差的压力。第三种是凸轮迭代法控制变量分组。把镜片曲率、厚度、玻璃材料拆成三组变量一次只优化一组。比如先优化曲率保持厚度不变曲率收敛后再优化厚度厚度影响后焦再回到曲率微调。这种分组优化方式在广角镜头设计中非常有效因为曲率和厚度对大视场像差的影响耦合度很高。实际操作中我建议你用下面的顺序跑一轮完整优化1. 先用近轴面搭建系统骨架确认光焦度分配和后焦满足要求。 2. 替换真实玻璃设置边界操作数。 3. 开启默认评价函数RMS 光斑半径0视场到 0.7 视场跑 DLS 优化。 4. 加入 1.0 视场增加边缘视场权重重新跑 DLS。 5. 检查倍率色差和 CRA如果不满足手动调整最后一个负镜的色散。 6. 跑 15 分钟锤形优化观察是否有明显改善。 7. 导出评价函数统计表确认所有操作数都满足约束。7. 批量任务与多结构广角镜头自动化分析广角镜头设计过程中批量任务主要用于两类工作一是对工作距离、温度等环境参数的扫描分析二是对玻璃替换、曲率边界等设计空间的批量搜索。在 Zemax 中做批量任务ZPL 宏是入门最轻量的方式ZOS-API 则适合需要外部程序控制的复杂任务。ZOS-API 支持 Python、C#、MATLAB 等语言可以批量修改系统参数、运行优化、提取结果。下面给一个 Python 调用 Zemax ZOS-API 的通用模板用于批量修改某一片透镜的折射率并提取所有视场的 RMS 光斑半径import os import win32com.client # 连接 Zemax 独立模式具体路径需要按本机安装目录调整 zemax_dir rC:\Program Files\Zemax OpticStudio connection win32com.client.Dispatch(ZOSAPI.ZOSAPI_Connection) zemax connection.ConnectAsApplication(zemax_dir) opm zemax.PrimarySystem for index in range(1, 15): # 修改第 index 个面的折射率 surface opm.SurfaceData.Surfaces[index] surface.MechanicalData... # 此处省略具体参数赋值接口 opm.Update() # 提取各视场 RMS 光斑半径 status opm.Analyses.Analyze(...) connection.CloseApplication()需要说明上面这段代码是调用框架示例Zemax 的 ZOS-API 接口方法与版本强相关。真实使用时要参照你安装版本自带的 Python 示例通常在Zemax OpticStudio\ZOS-API\Samples目录下可以找到现成脚本。如果你的需求只是简单扫描某个镜片曲率半径对像差的敏感性用 ZPL 宏更省事! 遍历一组球面曲率输出各视场 RMS 光斑半径 DECLARE output_file, curvature_scan.txt FOR i 1, 12, 1 r 20 i * 2 UPDATE 5, r PRINT output_file, R, r, RMS0, RAG(1) NEXT i CLOSE output_file批量任务跑完之后强烈建议生成一张二维表横轴是扫描参数纵轴是各个视场的像差值方便直接观察趋势。8. 广角镜头像差评估与设计结果验证优化跑完不等于设计完成。你要用一套独立的评估方法确认结果真实可用而不是仅靠评价函数数字。第一部分是查看点列图也就是 Spot Diagram。重点看 0、0.3、0.5、0.7、1.0 视场的 RMS 光斑半径。广角镜头大视场下光斑可能出现明显的不对称这说明像散没有完全校正。如果光斑呈现明显彗星形状说明彗差偏大。第二部分是场曲与畸变图也就是 Field Curvature/Distortion 图。理想情况是 S 线和 T 线尽量靠拢并且平缓。对于广角镜头允许 S/T 分离量在 0.1mm 以内但畸变曲线不能有拐点否则后期校正会非常麻烦。第三部分是 MTF。广角镜头至少要看 20 lp/mm、40 lp/mm、80 lp/mm 三个频率下的全视场 MTF 曲线。边缘视场 MTF 下降是正常的但如果 1.0 视场 MTF 直接掉到 0.2 以下且伴随剧烈振荡说明高空间频率下的像差残留严重需要考虑增加镜片或者重新分配光焦度。第四部分是 CRA 匹配。广角镜头常配小像素传感器传感器微透镜的 CRA 通常小于 25°。如果镜头输出的 CRA 和传感器不匹配边缘照度会严重下降产生颜色偏移。在 Zemax 中可以直接导出 CRA 曲线确认在 1.0 视场时的主光线角度不超过传感器规格。最后给出一个设计结果验证清单验证项通过标准RMS 光斑半径全视场小于单个像素尺寸的 1.5 倍MTF 值40 lp/mm 处边缘不小于 0.3场曲S/T 分离量小于 0.1mm畸变曲线平滑无拐点CRA1.0 视场处小于传感器规格上限后焦大于传感器封装所需的机械间隙总长满足结构尺寸预算不要只看一两个指标就收工广角镜头是整体平衡的产物单项突出没有意义全部达标才是真的可以转入工程化阶段。9. 广角镜头设计常见问题与排查方法广角镜头优化过程中遇到的问题比较集中下面按出现频率排序整理成排查清单问题现象可能原因排查方式解决思路边缘视场 MTF 急剧下降场曲和像散未校正到同一焦面查看场曲图观察 S/T 线分离量增加负组光焦度或调整后组正负镜片间隔中心视场清晰、边缘发虚场曲过大查看 Field Curvature 图调整材料折射率组合降低佩兹瓦尔和画面边缘有明显红绿边倍率色差超标查看 Lateral Color 图调整负组色散匹配或增加色散校正镜片畸变曲线有拐点边端视场权重不足查看 Distortion 图增加 1.0 视场权重加入平滑约束总长超限光焦度分配不合理检查各镜片光焦度贡献加强负组光焦度减小正组负担锤形优化后像差反而变差边界约束与优化目标冲突检查评价函数边界操作数权重放宽非关键约束或分组优化CRA 超标最后一枚负透镜位置不合理查看 CRA 曲线调整靠近像面的负弯月镜曲率上面表格里的排查思路都是基于广角镜头设计的通用规律。实际碰到问题时建议一次只改一个变量不要同时动多个位置否则你很难定位到底是哪个改变导致结果变好或者变坏。10. 最佳实践与设计规范建议广角镜头设计到最后拼的不只是像差理论还有工程习惯。这里整理几条比较重要的实践经验。第一条变量分组管理。广角镜头变量多建议在 Zemax 里用变量注释把镜片面型、间隔、材料分成清晰的组每组对应一个优化阶段。这样做的好处是发现问题时能快速回溯到某个组。第二条评价函数要留“后门”。边界操作数不要全部锁死有些指标比如畸变可以先给一个宽松范围等像差优化到一定程度后再收紧。整套优化流程会更顺滑。第三条玻璃材料替换要保守。国内常用的光学玻璃库比如 CDGM、HOYA 都有不同价格档位。第一轮优化用最普通的玻璃如果像差极限达不到再针对瓶颈位置换成特殊色散材料。否则材料成本会直接失控。第四条批量跑完一定要人工审查关键视场的光斑形状。自动优化只能看到数值数值达标不代表光斑形态合理。有时候某个视场的光斑呈明显双瓣结构RMS 数值上还可以但实际成像会有可感知的散焦感。第五条设计文档要完整记录每一轮优化的评价函数值和改动内容。广角镜头优化迭代频繁没有记录两天后你就会忘记“当时为什么这个镜片要减薄 0.1mm”。第六条合规提醒。如果你做的是车载、监控、内窥镜等涉及人员或车辆隐私数据的应用设计完成后测试时一定要在合规场景下进行采集图像数据需要获得明确授权。这里不展开讲法规细节但这条线不能碰。11. 从像差校正到镜头量产之间的关键一步很多新手觉得 Zemax 里优化结果“看起来不错”就完成任务了。实际项目里光学设计只是整个镜头交付的一半。设计结果还要做公差分析才能知道这个系统在加工和装配误差下是否仍然可用。广角镜头公差分析重点关注三块第一块是镜片曲率半径公差。广角镜头前组负弯月的曲率对像差敏感度非常高尤其是半视场角超过 50° 的系统。建议在 Zemax 公差分析里重点看第 1、2、3 面的曲率公差对 MTF 的影响。第二块是镜片偏心公差。广角镜头中镜片偏心会引入不对称像差表现为视场一侧清晰另一侧模糊。内窥镜、车载镜头对这种公差尤其敏感。第三块是镜片间隔公差尤其是前组与后组之间的空气间隔。这个间隔直接影响后焦和工作距离装调时通常需要用垫片调整。公差分析的操作不复杂在 Zemax 里设置好每个面的公差范围跑 Monte Carlo 模拟看 90% 以上的样本是否满足设计指标。如果模拟结果不达标要么收紧公差要么回头优化设计裕度。广角镜头设计阶段就留出足够裕度比后期逼着加工厂提高精度要省成本得多。12. 总结与实际应用建议广角镜头设计的核心可以浓缩成三句话初始架构决定像差极限材料选择决定场曲和色差上限分组优化决定最终输出质量。如果你是刚开始做广角镜头建议第一次拿到指标时不要直接进软件。先把传感器规格、CRA、后焦、总长几个关键数字写在纸上算一下根据这些约束反推应该选反远距结构还是准鱼眼结构。架构选对了后续优化是在修细节架构选错了后面再怎么调都别扭。这一期节选内容里提到的方法、操作数、脚本模板适合作为你第一个广角镜头项目的起步框架。真正的工艺验证还需要把设计结果投入试做测 MTF、测畸变、测相对照度但那些是下一步的内容了。建议先把这一篇的优化流程在软件里完整跑通一遍再继续往下深入。
返回列表