简介:这是一份面向光学设计初学者的CODEV实战资料,以数码相机定焦镜头为例,完整演示从新镜头向导筛选专利起点、设定F/#与视场、缩放镜头至6mm焦距,到通过一阶属性窗口和像差曲线评估成像质量的过程。内容包含设计规格解读,如VGA分辨率、7.4微米像素、MTF要求、相对照度与透过率等,帮助读者理解如何将参数转化为CODEV操作。资源为doc格式压缩包,共1个文档,大小45KB,轻量易用,目前已有1335人学习。读者可从中获得镜头缩放的具体操作路径、像差曲线判读方法,以及优化前的分析思路,适合正在学习CODEV或需快速上手镜头设计的人员参考。
1. 从一纸规格到可跑的模型:定焦 VGA 镜头在设计器里怎么起步
先把话说透:用 CODE V 做设计,新手最容易被吓住的不是光线追迹本身,而是「我面对的是几百行数字,不知道从哪下手」。这次拆的实例很典型——一个低价位定焦 VGA 数码相机物镜,规格明确、元件数 1 到 3 片、焦距 6mm、F/3.5、半视场角 26.5°,而且要求你用 CODE V 从零建镜头、缩放焦距、看像差曲线。它不涉及非球面、不涉及多重结构,却很完整地覆盖了从规格到起始点再到初步评判的闭环。适合刚接触 CODE V 的工程师照着走一遍,也适合那些会点菜单但没搞懂「为什么这么设」的人回头补课。下文所有操作都基于新镜头向导 + 专利库起始点,不走手敲镜头数据的野路子,这是提升效率的关键习惯。
2. 新镜头向导与专利筛选:过滤器参数怎么填才不会漏掉好起点
2.1 新镜头向导:从专利库起步而不是从空白页硬啃
CODE V 的新镜头向导(File -> New)默认会引导你选择一个起始点,而不是让你面对空白的 LDM 表格发呆。向导分几步:先选起始点来源,再定义孔径、波长、视场,最后生成镜头模型。对这套数码相机物镜来说,最合适的入口是 Patent Lens,也就是从专利库里捞一个过期专利作为起点,而不是从零开始构建面型。
为什么推荐专利库起步?因为一个 6mm 焦距、F/3.5、半视场 26.5° 的两片或三片式镜头,光学结构上已经被反复设计过。你要做的是「找一个接近目标的结构,然后改到满足你的规格」,而不是重新发明结构。专利库里的镜头是别人验证过的合理起点,直接拿来做缩放和优化,收敛速度远快于自己拍脑袋定曲率半径和厚度。向导里点选 Patent Lens 后,下一步就是设置过滤器(Filter)来缩小搜索范围。
实际操作时,进入新镜头向导后:
- 选择 File -> New,在欢迎屏幕点 Next。
- 选择 Patent Lens,点 Next。
- 点击 Filter 按钮,进入过滤器对话框。
过滤器是决定起点质量的关键一步。CODE V 的专利库里有两千多个过期专利镜头,如果不加过滤条件,搜索结果是没法用的。过滤器允许你按 F/#、视场角、元件数三个维度框定范围。
2.2 过滤器参数:搜索范围要「留有余量」而不是精确命中
镜头设计里有个很容易犯的错:把过滤器的范围卡得正好等于目标规格。比如目标 F/3.5,就在 F/# 栏里填 3.5 到 3.5,半视场角填 26.5 到 26.5,元件数填 3 到 3。这么干的结果往往是搜到零个或极少结果,或者搜到的镜头结构完全没有优化潜力。
正确的做法是放大边界,让搜索结果包含一些「比你需要的更大视场、更小 F/#」的候选,然后人工挑一个潜力最大的。这个实例里,目标 F/# 是 3.5,那过滤器里可以试着填:
- F/#:最小 1,最大 4,目标值 3.5 在范围内。
- 半视场角:最小 20,最大 33,目标值 26.5 在范围内。
- 元件数:最小 1,最大 3,目标是低成本,元件越少越好。
填完后点 OK,向导会返回一个专利列表。这个实例里搜出来 12 个符合条件的结果。注意列表里的每个镜头都有 F/#、视场、元件数目、玻璃类型等信息,你需要逐个看,而不是随便点第一个。
选起点有个经验法则:视场角在后期比较难扩大,所以宁可选一个半视场角比目标略大的起始点,也不要选一个刚好 26.5° 的。实例里选中的 or02248 号镜头,半视场角 27.5°,比目标 26.5° 略大,F/# 是 2.4,比目标 3.5 更快。这看起来奇怪——F/# 更快不是更难做吗?但注意:更快的起始点在缩放到目标 F/# 后,像质会变好,优化时会留出更多余量。这是专利库选型的一个通用思路:起点性能略优于目标,给后续优化留缓冲。
2.3 定义系统数据:孔径、波长、视场的设定顺序
选定专利镜头后,向导会进入系统数据定义阶段。这一步很多人直接点 Next 跳过,但这里埋着几个影响后续优化的重要设置。
孔径类型这一步,从下拉列表里选 Image F/Number,输入 3.5。为什么选 Image F/Number?因为 F/# 是一个比值,当镜头被缩放时它不会变化。如果你选的是数值孔径之类的其他孔径类型,缩放后 F/# 会漂移,还得回头改。选 Image F/Number 是定焦镜头设计里的常规操作,后续缩放焦距时孔径会自动保持 F/3.5。
波长设置页,默认通常是可见光那几条谱线,F、d、C 之类的。实例里要求把绿光(589.0nm)的权重改为 2。这是一个很实际的优化技巧:权重代表着这条波长在优化中的优先级,绿色是人眼和传感器响应的敏感区,权重调高,优化时会优先保证绿光的像质。
视场设定这一步,实例给了四个视场角:0、11、19、26.5。这个设置的逻辑很清晰——0 是中心视场,26.5 是全视场,11 和 19 是中间视场。多数人偷懒只设 0 和全视场两个,但那样中间视场的像散和场曲完全不受控,优化时容易出现中心边缘都还行、中间一塌糊涂的结果。多插入一个中间视场对控制带状的视场相关像差很有帮助。习惯上最少要有 0、0.7 倍全视场、全视场三个点,这里加到了四点,更稳妥。
2.4 为何不止步于专利原值:起始点只是引子,不是答案
从向导点 Done 出来之后,很多人以为这就算「设计完了」。实际上这只是起点。or02248 的焦距是 0.9528mm,跟目标的 6mm 差了六倍多,像高、相对孔径、视场全都不对。它只是提供了一个结构拓扑:几片镜片、什么玻璃、大概的曲率顺序。接下来的缩放、优化、像差分析才是重头戏。
这里有一个观念要立住:专利库的起始点不是拿来直接用的,而是拿来「改」的。你选的镜头可能光圈、焦距、视场都跟目标不同,这些都不重要,重要的是它的结构形式是否合理、有没有优化空间。这一点在后续的缩放章节会体现得特别明显。
3. LDM 数据表实操:读懂厚度求解、玻璃列和灰度单元格
3.1 LDM 表格的基本布局:每一行是一个面,每一列是一种属性
镜头数据管理表格(LDM)是 CODE V 里最核心的数据窗口,几乎所有操作最终都以某种方式落到 LDM 上。它打开后常驻界面,不能关闭,只能最小化或缩小。这个设计的逻辑是:CODE V 的一切操作本质都是光线追迹,而光线追迹的定义全部来自 LDM 里的表面数据。
LDM 的行代表光学系统中的每一个表面:物面、各个透镜面、光阑面、像面。列代表表面属性,包括表面序号、表面名称、表面类型、Y 方向曲率半径、厚度、玻璃类型、折射模式、Y 方向半孔径。每个镜头模型都以物面开始,以像面结束。物面通常是第 0 面,像面是最后一个面,中间是实际的光学表面。
需要注意:表格里有些单元格是灰色的,表示里面的数值由程序自动计算,不能直接编辑。灰色单元格最典型的是系统自动算出的边缘光线高度、某些求解厚度。如果你非要去改灰度单元格的数据,右键菜单里会提供操作选项,但改之前要确认你是不是真的想覆盖程序的计算逻辑。
3.2 厚度列与 PIM 求解:像面位置的自动计算逻辑
LDM 里每个表面的厚度表示「当前表面到下一个表面的距离」,沿光轴方向测量。表面 6 的厚度是灰色的,旁边有一个小 S 标记,意味着这个厚度是通过近轴像求解(Paraxial Image Solve,PIM)得到的。PIM 求解的目标是让近轴边缘光线在下一表面的高度为 0,也就是把近轴像面放在该位置。这是 CODE V 的一种自动求解方式,它的作用是给出一个近似的聚焦位置,方便后续分析时有一个起点。
这个 PIM 位置通常不是最佳焦点。真实的最佳焦点需要考虑衍射、像差平衡,往往需要通过优化离焦量来找到。所以在设计过程中,很像面的厚度既可以用 PIM 求解,也可以把像面厚度设成变量参与优化。一般推荐的做法是:保留 PIM 求解和离焦变量配合使用,PIM 给你一个稳定的近轴参考,离焦变量负责找到真正的最佳像面位置。
实际改数据时,直接在非灰色单元格里点一下输入新数值就行。但要注意:如果一个单元格旁边有小图标,说明它处于特殊状态,比如被设为变量、启用了求解、或者是多重结构(ZOOM)数据。右键该单元格会弹出菜单,可以查看或修改这些状态。
3.3 玻璃列的选择逻辑:品牌玻璃、私有玻璃和虚拟玻璃
玻璃列存放的是表面之后材料的名称,空着代表空气。玻璃决定了折射率,是光线追迹的基础。实例中提到了 IR 滤光片使用某品牌 IR-638 或某品牌 CM500,这在后续优化里会作为一片平行平板加入系统。但起步阶段,专利库起点的玻璃一般是设计当时的材料,可能已经停产,也可能不适合量产。
CODE V 的玻璃库里有品牌玻璃条目、私有玻璃和虚拟玻璃三种状态。品牌玻璃是供应商提供的真实材料,可以直接买;私有玻璃是设计者自己定义的材料,仅存在于设计文件中;虚拟玻璃是折射率和阿贝数被设成变量、参与优化的材料——它不是一个确定的真实材料,而是「优化时自由变化、最后再用实际玻璃拟合」的中间产物。
对数码相机物镜而言,玻璃的成本和可获得性直接影响是否量产。实例里后续用了一个名为 glassfit.seq 的宏,可以把虚拟玻璃转换成可以购买的实际玻璃。这是一个很实用的技巧:先用虚拟玻璃优化出理论性能,再让宏去玻璃库找最接近的实际材料回填。不要在一开始就锁定具体玻璃牌号,那样优化自由度会被过度约束。
3.4 修改数据后的提交逻辑:COMMIT 与 UNDO 的边界
CODE V 里的数据提交逻辑跟常见软件不同,很多人在这里翻车。LDM 表格和表面属性窗口这类窗口,当你改完数据后在另一个单元格或窗口上单击,改动会立即提交到镜头数据库,同时命令窗口会出现对应的 CODE V 命令。这个机制跟 Excel 类似,但问题在于:带有 OK 和 Cancel 按钮的对话框(比如 MTF 设置对话框)在点 OK 之前不会提交数据,点 Cancel 则全部丢弃;而表面属性窗口没有 OK/Cancel,改了就提交。
这种双轨制容易造成困惑:你在表面属性窗口里改了值,以为没点确定就不生效,实际上已经生效了。反过来,在 MTF 对话框里设了参数,以为设置已经生效并开始计算,实际上如果没点 OK,CODE V 用的还是旧值。处理这类问题有一个稳妥做法:每次改完关键数据,看一眼命令窗口里是否出现了对应的命令;如果不确定改动是否符合预期,用 Edit -> Undo 回退。注意 Undo 只有在数据窗口或命令窗口处于当前激活状态时才可用,图形窗口和对话框当前时 Undo 是不可用的。
修改数据还有一个快捷入口:命令窗口直接输入 CODE V 命令,比如THI S5 2.3把表面 5 的厚度改为 2.3。这种方式适合批量修改,也适合记录操作步骤,但对新手不那么友好。建议先通过 LDM 界面操作,同时留意命令窗口生成的命令文本,时间长了自然能积累一套常用命令。
3.5 画图检查:为什么每次都该先看一眼 2D 图再分析
在 LDM 里敲完数据之后,第一件事永远是用 Quick 2D 按钮画一张镜头结构图。点击工具栏上的 Quick 2D-Labeled 图标,会弹出一个带标注的二维镜头图。很多人在这一步略过,直接跑分析,这是不对的。镜头结构图能直观告诉你:元件厚度是不是太薄、空气间隔是不是为负、镜片是不是交叉了。这些光靠看数字很难发现。
图形窗口保留在工作区,后续每次修改 LDM 数据后,点击左上角的执行按钮重新绘图,方便实时对比结构变化。一个常见问题是,改了数据后图形窗口没刷新,你以为修改没生效,实际上只是没重绘。还有一个细节:Quick 2D 的显示比例是自动的,但有时自动比例会掩盖局部结构的小问题,建议用图形工具的放大功能检查边缘区域。
4. 把镜头缩放到 6mm 焦距:First Order Data 与 Scale 命令的配合
4.1 First Order Data:一阶数据窗口告诉你镜头现在的真实状态
从专利库出来的 or02248 号镜头,焦距只有 0.9528mm,离目标的 6mm 差了六倍。在动手缩放之前,先要确认当前镜头的一阶属性。选择 Display -> List Lens Data -> First Order Data 菜单,弹出一阶数据窗口,里面包含有效焦距 EFL、近轴像高、F/#、放大率等关键近轴参数。实例里的起始镜头 EFL 是 0.9528mm,这就是需要缩放的原因。
一个小技巧:可以把 EFL 和其他一阶属性添加到工作区底部的状态栏里,随时监控。选择 Tools -> Customize 菜单,进入用户定制对话框的状态栏选项卡,把 EFL、F/#、像高这些常用属性加进去。这样后续缩放和优化时,数值变化是实时可见的,不用反复打开一阶数据窗口。
4.2 Scale 缩放操作:为什么要先缩放再优化
在 LDM 窗口里,从表面 1 拖选到像面,选中所有光学表面,然后选择 Edit -> Scale 菜单。对话框里关注的选项是 Scale Effective Focal Length,在 Scale Value 区域输入 6.0,然后点 OK。
缩放的本质是把所有光学表面的曲率半径、厚度按同一比例因子改变,同时保持镜头的结构形式不变。具体到 CODE V 的实现,它会自动计算当前 EFL 与目标 EFL 的比值,然后把这个比值应用到所有相关几何量上。F/# 因为是比值,缩放后保持不变。
这里有一个时序问题:一定要在缩放之后再开始优化,不要在缩放前花时间优化一个焦距不对的镜头。原因很直观——优化是在当前结构参数上做小范围扰动搜索,如果焦距差六倍,优化器的大部分努力会花在补偿焦距误差上,而不是改善像差。先缩放把焦距拉到位,优化才能集中精力处理像质问题。
4.3 缩放后的验证:像高对了吗?F/# 变了吗?
缩放不是点完 OK 就结束。点 OK 后,回到一阶数据窗口,点击重新计算按钮,确认 EFL 变成了 6.0mm。同时注意近轴像高(Paraxial Image Height),缩放后它应该接近 2.99mm。目标像高 3mm 是根据传感器对角线 6mm 的一半算出来的——半对角线 3mm、焦距 6mm,因此半视场角是 arctan(3/6) ≈ 26.5°,这部分已经在向导的视场设置里对应好了。
如果缩放后像高不是这个值,先检查视场设置有没有输错。另一个常见问题是:有人不知道从哪里看到了缩放还有其他选项,比如 Scale Image Height、Scale Focal Length 的区别。这个实例里只改 EFL,是因为视场角已经固定了,像高也会相应正确。缩放后顺手保存:File -> Save Lens As,命名为 DigCamStart.len 之类的文件名。保存的是缩放后的起始点,后续优化时随时可以回来重来。
4.4 缩放后的一阶合理性检查:镜头是不是太小或太薄
缩放到 6mm 焦距后,除了看一阶数据,还要用经验判断一下结构尺寸是否合理。6mm 焦距、1/4 英寸级别的传感器,镜片通光孔径大概在 2 到 4mm 量级。中心厚度如果小于 0.5mm,实际加工和装配都会很麻烦——塑料件可能注塑不出来,玻璃件容易碎。
这一步在实例里没有展开,但实际设计中我会在画 2D 图时顺手量一下:镜片中心厚度和边缘厚度的比值是否合理,空气间隔是否够装配操作。这些问题在起始点阶段发现,比在优化完成后再发现要省事得多。如果你不确定什么尺寸算合理,可以参考同类商用镜头:定焦手机镜头镜片中心厚度通常在 0.3mm 到 1mm 之间。缩放后如果镜片薄得像纸,就要考虑换一个起始点,而不是硬着头皮优化下去。
5. 起始点像差分析:快速像差曲线、点列图与畸变网格的判读要点
5.1 横向光线像差曲线:读出色差、彗差与像散
这个设计实例明确要求关注像差曲线,具体工具是快速像差曲线(Quick Ray Aberration)。它是 CODE V 里的一个单击版本,点击工具栏对应的快速像差曲线按钮即可运行,不需要额外设置参数。它基于 RIM 分析,输出以瞳孔坐标为横轴、横向光线像差为纵轴的曲线图。
读横向光线像差曲线,重点看三个东西。第一,曲线零点处的斜率——如果斜率很大,说明球差明显;第二,不同波长曲线之间的分离程度——分离大说明色差重;第三,曲线的对称性和曲率——不对称通常意味着彗差,形状像 S 形的则常跟高级像差有关。
实例里的起始镜头,快速像差曲线自动缩放比例为 0.023mm,也就是 23 微米。作为参考,F/3.5 时艾利斑直径约 0.004mm(用 2.44 × 波长 × F/# 估算)。也就是说起始点的像差是衍射极限的六倍左右。这不是一个需要惊慌的数字——起始点本来就该如此——但它在明确告诉你:这个镜头有足够的像差余量,优化空间很大。如果起始点像差很小,反而是值得警惕的信号,可能意味着起点结构里某些参数已经过于激进。
5.2 快速点列图:看形状比看大小更重要
点列图不是设计规格里的硬性要求,但它是快速判断成像质量的直观工具。点击快速点列图按钮,每个视场会输出一簇光线在像面上的落点分布。实例里所有视场的点列图大小大致相同,但形状不同——这说明像差类型随视场在变化。中心视场主要受球差和色差影响,边缘视场则叠加了彗差和像散。
要看的是点列图的形状:如果是圆形的均匀弥散,说明以球差为主;如果带尾巴或者不对称,说明有彗差;如果不同视场的形状差异很大,说明视场相关的像差没有被很好控制。查看时注意比例条,默认自动缩放比例是 0.050mm。自动缩放会把图形拉到适合屏幕的尺寸,不手动检查比例条的话,容易误判点列图的实际大小。
一个小技巧:CODE V 的示例宏里有一个 spotdet.seq,可以在点列图上叠加一个代表接收器像素大小或艾利斑尺寸的方框/圆框。这样你能直接看出像差点的大小相对于像素尺寸是几倍,对判断「衍射极限 vs 像差主导」很有帮助。运行宏的路径在 Tools -> Macro 下的 Sample Macros -> Geometrical Analysis 里。
5.3 畸变曲线与畸变网格:近轴像高和真实像高的偏差
畸变是视场相关的像差,表现为真实像高与近轴像高的不一致。规则里要求几何畸变小于 4%,起始点的畸变分析可以通过 Analysis -> Diagnostics -> Field Curves 或快速视场绘图按钮查看。畸变曲线以视场角为纵轴、畸变百分比为横轴。这个起始镜头在整个视场内畸变小于 ±1%,满足 4% 的要求,但在中间视场存在带状残留畸变——这是畸变曲线里常见的「S 形」走势,后期优化时要重点压制。
畸变网格则更直观。选择 Analysis -> Diagnostics -> Distortion Grid,输入 X 方向半视场 21.55、Y 方向半视场 16.48,参考网格选 Fiducial Marks Only。这两个数值怎么来的?传感器尺寸是 3.55mm × 4.74mm,半尺寸就是 1.775mm 和 2.37mm,再用像高公式 h = f × tan(θ) 反推,就能得到 16.48° 和 21.55°。这里有个新手经常踩的坑:网格畸变的视场设置跟之前 MTF 或点列图的视场设置不是一回事,它需要以传感器半尺寸换算出来的角度为准,而不是直接用之前设的 26.5° 全视场角。
5.4 像差曲线结果的导向作用:从分析到优化的过渡
快速像差曲线和点列图给的是一个「方向性」的诊断结果,不是最终的验收报告。它们的意义在于告诉你这个起始点的问题集中在哪:是色差主导、是轴外像差主导,还是畸变需要额外处理。根据这些判断,你可以决定优化时的变量选取和权重分配。
比如,如果横向光线像差曲线里不同波长分离明显,优化时要重点控制色差——加入消色差玻璃组合或者调整光焦度分配。如果每个视场的点列图尺寸都差不多但形状不同,说明主要问题是像散和场曲,优化时可以加重(FIE 权重)中间视场,或者在变量里加入非球面系数。如果畸变网格显示边缘畸变超标,优化时单独用畸变操作数控制。总之,像差曲线分析的价值不是得到一个「好或坏」的结论,而是让你知道下一步优化往哪个方向打。
6. 避坑与常见问题:定焦 VGA 镜头设计里的五个高发翻车点
6.1 视场设置与畸变网格的视场角不一致
现象:畸变网格分析结果跟实际镜头表现对不上,或者网格里显示的视场范围明显不对。 原因:MTF、点列图、像差曲线用的是镜头视场设置里的角度(半视场 26.5°),但畸变网格需要自己输入 X/Y 方向的半视场角,这个角度要根据传感器实际长宽比换算,而不是直接用镜头全视场的一半。 解决:先用像高公式 h = f × tan(θ) 把传感器半尺寸换算成视场角,再填入畸变网格的 X FOV 与 Y FOV。本实例里就是 21.55° 和 16.48°,而不是 26.5°。记住:镜头全视场是按对角线定义的,网格畸变按传感器的 X/Y 轴分别定义。
6.2 缩放了焦距但忘记检查 F/# 和像高
现象:缩放后 EFL 正确了,但 F/# 漂了,或者像高不对。 原因:孔径类型选错了。如果在向导里选的是数值孔径之类的孔径类型而不是 Image F/Number,缩放焦距时口径不会自动按比例变化,F/# 就会偏离目标的 3.5。另外,视场如果定义成角度而不是像高,缩放后角度不变、像高才会跟着焦距走,这里有一个对应关系,漏了一个就会出问题。 解决:从头确认向导里孔径类型选的是 Image F/Number;缩放后重新计算一阶数据,逐一核对 EFL、F/#、近轴像高三个值。我自己习惯把这三个属性放在状态栏里实时监视,任何一步操作后瞄一眼就知道有没有错位。
6.3 在欧拉角还是近轴求解上纠结过度
现象:表面厚度列是灰色改不了,或者改了之后系统自动变回去,让人抓狂。 原因:灰色厚度通常带 PIM 求解,这是程序在算近轴像面位置。有些人想直接把像面厚度改成某个固定值,却发现改不动。这个不是软件出 bug,而是求解状态还挂着。 解决:右键灰色单元格,菜单里可以取消求解(Remove Solve),然后再手动输入厚度。但要注意:取消 PIM 后,像面位置不再自动追踪近轴焦点,后续如果再缩放镜头,像面位置是错的。一般推荐的做法是保留 PIM 求解,把像面离焦量作为变量参与优化,而不是粗暴取消求解。
6.4 MTF 设置里忘了点 OK 或者频率单位看错
现象:MTF 曲线出来跟预期完全不一样,或者曲线明显异常。 原因:MTF 对话框是一个带 OK/Cancel 的窗口,你在选项卡里改了频率设置,但如果没点 OK 就执行分析,CODE V 用的还是旧值。另外,MTF 频率的单位默认是 lp/mm(每毫米线对),但也有可能被设置成 cycles/mm,频繁切换时容易记混。 解决:改完 MTF 选项卡里的任何参数后,确认选项卡旁边出现红点提示(表示有未提交的修改),再点 OK 提交;每次跑 MTF 前,看一眼频率轴单位。这个实例里最大频率设 68 lp/mm、增量 17 lp/mm,是基于像素尺寸计算的截止频率,如果单位不对设置就会错乱。
6.5 把起始点的像差大小误判为最终性能
现象:快速像差曲线显示 23 微米的横向像差,跟艾利斑的 4 微米一比,觉得镜头太差,怀疑是不是起点选错了。 原因:起始点本来就不应该是完美的。它存在的意义是结构合理、优化空间大,而不是一上来就满足所有像质指标。拿起始点像差跟衍射极限比,属于期望值错位。 解决:把起始点分析当作优化前的「体检」,而不是验收。关注像差的类型分布(色差、彗差、像散各自多大),而不是总大小。只有当你发现某一类像差大到即使优化也压不回来时,才需要重新换起始点。我一般在跑优化之前就把起始点的像差曲线和点列图截图存档,优化后做对比,能更清楚地看到每一步的改善来源。
7. MTF 频率设置与离焦检查:从分析结果定优化方向
MTF 是镜头锐度的最终评判手段,也是这个数码相机规格里最复杂的验收标准。规格要求低频 17 lp/mm 时中心 MTF 大于 85%、边缘大于某一阈值,高频 51 lp/mm 时中心与边缘也有明确下限。这两个频率不是随便定的:17 lp/mm 对应的是传感器奈奎斯特频率附近的一个低频基准,51 lp/mm 接近 CCD 截止频率的 75%。计算方式是把像素尺寸 7.4 微米代入截止频率公式 f_c = 1 / (2 × 像素尺寸),得到约 67.6 lp/mm。在这个频率上 MTF 必须大于 0,否则传感器无法分辨任何高于截止频率的细节。设计目标通常把最高分析频率设在 68 lp/mm 附近。
操作上,选择 Analysis -> Diffraction -> MTF,在 Frequency/Calculation 选项卡里把最大频率设为 68、频率增量设为 17,这样会输出 17、34、51、68 四个频率点的 MTF 曲线。四个视场分别评估,注意观察离焦对 MTF 的影响。镜头的 PIM 求解给的是一个近轴参考像面,实际最佳焦点往往在 PIM 位置附近偏移一点点。优化时我会把像面厚度设成变量,让优化器自己去平衡不同视场的 MTF——中心视场的 MTF 峰值对应的像面位置和边缘视场往往不完全重合,需要找折中。
离焦检查是分析里容易跳过的一步,但恰恰是判断镜头有没有优化潜力的关键。具体做法是给像面厚度设一个 ±0.05mm 的范围,跑 MTF vs. 离焦曲线,看中心视场和边缘视场的 MTF 峰值是不是存在明显的焦点错位。如果错位超过 0.02mm 量级,就需要在优化中加入场曲控制操作数,或者调整镜片光焦度分配。如果错位很小,说明起始点的结构基础是健康的,可以直接开始常规优化。
畸变和透过率在这个阶段主要是确认性检查。畸变的规格是小于 4%,起始点在 ±1% 以内,优化时用畸变操作数把它压住即可。透过率规格要求 400 到 700nm 范围内单镜片透过率大于 80%,这个主要由玻璃材料决定,CODE V 透过率分析可以给出不同波长下的透过率曲线,如果不够就需要换高透过率材料。IR 滤光片按规格加 1mm 厚的某品牌 IR-638 或某品牌 CM500,作为一块平行平板加入镜头模型,它的厚度和折射率会影响最终像面位置,优化时要把它留在系统里一起算。
从那以后,我每次拿到一个类似的定焦镜头规格,都会强制自己走一遍这套流程:专利库找起点、过滤器放宽边界、缩放焦距后立刻看一阶数据、先跑快速像差曲线和点列图判断像差类型,再做 MTF 离焦检查。四步下来,这个镜头能不能做到目标性能,心里基本有数了。这套方法谈不上高深,但能帮你少走很多弯路,希望帮到你。
本文还有配套的精品资源,点击获取