☰
CODE V实战:定焦镜头从规格反推到MTF验收
2026/10/17 13:48:31 网站建设 项目流程

简介:这是一份CODEV光学设计入门实操文档,以定焦VGA数码相机镜头为实例,完整演示从建立镜头、缩放镜头到查看像差曲线的设计流程。文档面向需要快速上手CODEV或希望学习成像系统设计方法的工程师与学习者,尤其适合理解如何将规格要求转化为实际镜片结构。包体为1个doc文件,共45KB,内容以图文讲解和操作指引为主,虽体量不大,但覆盖设计规格、新镜头向导选起始点、设置F/#与视场、查看一阶近轴属性、缩放焦距至6mm以及像差曲线分析等关键环节。已有1338人学习下载,是光学设计初学者较为实用的入门参考。读者可按文档步骤逐步操作,掌握利用专利镜头库检索起始点、调整系统数据、评估MTF、畸变和相对照度等核心能力,为后续独立完成小型镜头设计打下基础。

1. 拿 CODE V 做定焦数码相机物镜:先立规格,再谈像差曲线

做 CODE V 设计实例时,最容易翻车的往往不是那些复杂变焦系统,反而是定焦数码相机物镜这种看起来"不就是两三片玻璃"的题目。规格书上写着 640×480 的 VGA 分辨率、7.4 微米像素、6mm 焦距、F/3.5,乍一看都够普通,但把这些数字换算成光学设计语言,就会发现一个硬约束:像素尺寸对应的 CCD 截止频率是 67.6 LP/mm,你要在 F/3.5 的孔径下让 MTF 在中心 3mm 区域低频做到 85% 以上,这已经不是靠"随便找两片透镜凑个数"能应付的了。这套方案适合两类人——正在做光学设计课设、需要完整走一遍 CODE V 建模流程的学生,以及刚接触成像镜头、想搞清"从规格书到可分析模型"怎么落地的从业者。整个过程的难点不在于点菜单,而在于怎么从规格反推起始点、怎么缩放镜头、怎么从像差曲线上看出问题在哪。

2. 光学系统建模:从规格反推半视场角与起始点

拿到一份镜头规格,第一件事不是打开 CODE V 就开始填表面,而是先做一阶光学闭环。规格里焦距是 6mm,传感器对角线是 6mm,这两个数字放在一起,就已经把视场角锁死了,剩下的设计自由度其实是靠这个角度反推出来的。

2.1 用像高公式确定半视场角:26.5° 是怎么来的

像高与视场角的关系在无穷远物距下就是 h = f·tanθ。传感器对角线 6mm,半像高取 3mm,焦距 6mm,那么 tan(半视场角) = 3 / 6 = 0.5,半视场角就是 26.5°。这个 26.5° 是后面所有视场设置的基准,也是专利检索时的目标值。

这里要特别提醒:规格里给的是传感器尺寸 3.55×4.74mm,这是矩形靶面,但做初步的视场角估算时用对角线半像高 3mm 就够,因为轴上和边缘视场的评价都要靠这个对角线方向的极端值。真正要画畸变网格的时候,才需要把水平和垂直方向分别换算成视场角——最大 Y 方向角度是 arctan(4.74/2/6) ≈ 21.55°,最大 X 方向角度是 arctan(3.55/2/6) ≈ 16.48°,这两个数后面分析畸变网格时要手动输入,很多人在这一步出错,原因就是用了对角线角度去代矩形靶面。

另一个容易被忽略的换算关系是 CCD 截止频率。像素大小 7.4 微米,最大可分辨空间频率是 1/(2×0.0074) ≈ 67.6 LP/mm。这意味着光学系统的 MTF 在 67.6 LP/mm 附近不能归零,否则图像细节会直接丢失。所以后面做 MTF 分析时,最大频率设到 68 LP/mm 是有依据的,不是随便填的。

2.2 新镜头向导与专利过滤器:为什么搜索范围要放宽

起始点从哪里来?CODE V 带一个包含 2400 个过期专利的镜头数据库,新镜头向导可以从这里面筛选。关键在过滤器参数的设置,我一般会这么做:

过滤器参数输入范围目标值原因
F/#1.0 ~ 4.03.5起始点的 F/# 要比目标小,给优化留余量
半视场角20° ~ 33°26.5°视场角后期很难做大,起始点宜大不宜小
元件数1 ~ 33控制成本,元件越少越好

这条过滤规则里有血泪经验:视场角这种东西,优化时想从小往大推非常费劲,因为边缘视场的像差校正难度是随角度非线性增长的。所以宁愿让起始点的视场略大一点,也不要选刚好 26.5° 的。搜索结果里 or02248 这个专利镜头看起来有潜力——半视场 27.5°,F/# 2.4,元件数 2。F/# 2.4 比目标 3.5 要快,孔径余量充足,元件数也满足 3 片以内。这类选型原则和"留优化余量"的思想,比具体选哪个专利更重要。

2.3 系统数据录入:波长权重与四视场设置的意义

选定起始点后,新镜头向导会依次问系统数据,这里有几个值得留意的设置。

孔径类型选 Image F/Number 并输入 3.5,用像方 F/# 定义孔径的好处是:后续对镜头做 Scale 缩放时,F/# 作为一个比值不会跟着焦距变化而漂移。波长设置里把绿光 589.0nm 的权重改为 2,这是因为人眼和 CCD 的响应峰值都在绿光附近,权重高会让优化优先保证这个波段的像质,同时也更贴近实际成像的亮度贡献。

视场设置是容易踩坑的地方。向导默认给的是 0 和最大视场,我习惯插入 0°、11°、19°、26.5° 四个视场。多插一个中间视场不是凑数,而是为了控制像散这类视场相关像差——如果只有边缘和轴上两个视场,优化器在中间视场的像散几乎是"盲区",等 MTF 曲线出来发现中间视场掉下去,再回去补视场就得重跑一轮。一般习惯是最少要有 0、0.7 倍和全视场,多加一个中间的带状视场对控制像散有帮助。

3. 表面数据管理与镜头缩放:从专利镜头到 6mm 焦距

起始点选好后,镜头数据会以 LDM 表格的形式呈现。CODE V 里几乎所有操作最终都会落到这个表格上,理解它的结构比记住菜单路径更关键。

3.1 LDM 表格的结构:哪一列能改、哪一列是算出来的

LDM 表格每一行代表一个光学表面,从物面开始,到像面结束。核心列包括表面编号、表面名称、表面类型、Y 方向曲率半径、厚度、玻璃、折射方式和 Y 方向半孔径。其中灰色单元格表示该数据由程序计算得出,不能直接改,比如系统自动算出的边缘光线高度、由近轴求解得到的厚度等。

厚度列的含义要特别注意:定义为当前表面到下一表面的距离,沿光轴方向测量。像面前一面的厚度如果是灰色且带小写 s 标记,说明它是通过近轴像求解得到的——PIM solve 会让近轴边缘光线在下一表面的高度归零,也就是把近轴像面位置定下来。这并不一定是最佳焦面,所以实际设计中像面位置通常由 PIM 求解值再加上一段离焦变量构成,离焦量留给优化去决定。很多新手直接把 PIM 求解当成了最终像面,结果 MTF 怎么优化都上不去,其实问题出在焦面根本没放开。

表面后的玻璃单元格如果为空,表示该间隔是空气。玻璃名称决定折射率,这是光线追迹的基础。设计前期可以用虚拟玻璃把折射率和阿贝数设为变量参与优化,后期再通过玻璃匹配宏转换成实际可购买的牌号。折射方式选项决定表面是折射还是反射,双击单元格可以切换,反射面在后续折反式系统中才会用到。

Y 方向半孔径代表该表面的有效通光口径,默认由程序根据所有视场的参考光线和变焦位置计算。这个值可以先接受默认,等渐晕分析出来再按需调整。

3.2 修改数据与提交机制:Undo 的范围和两种窗口的区别

在 LDM 中改数据很简单,单击非灰色单元格直接输入数值,或者双击进入编辑状态。这里有两个容易造成翻车的细节:

第一,Undo 只在数据表或命令窗口处于当前激活状态时才有效。如果你在图形窗口或某个对话框里点了 Undo,是撤不了镜头数据的,必须先把焦点切回 LDM 表格或命令窗口再操作。所以我每次都养成习惯:任何有意义的修改之前,先 File->Save Lens As 存一个副本,这相当于设计过程中的后悔药。

第二,CODE V 有两类窗口,提交机制完全不同。一类是带 OK 和 CANCEL 的对话框,比如 MTF 分析设置框,不点 OK 就不会提交,点 CANCEL 就是什么都没改。另一类是表面属性窗口、系统数据窗口这类跟 LDM 绑定的无按钮窗口,改动会即时提交,关闭只是收起界面。两者混在一起用的时候最容易混乱——我见过有人在面属性窗口里改完曲率没注意,转头去调别的参数,等执行分析才发现前面的修改已经生效了。

命令窗口是另一种改动数据的方式,适合批量修改。例如:

THI S5 2.3

这条命令把表面 5 的厚度改为 2.3mm。命令输入后回车,LDM 表格会同步更新。用命令改数据的好处是可以直接写进宏里做批量扫描,坏处是语法记不住时会反复翻参考,对初学者来说还是以表格操作为主更稳妥。

3.3 缩放镜头到 EFL = 6mm:为什么起始点必须缩放

专利镜头初始的焦距几乎不可能正好等于 6mm。显示一阶属性窗口(Display->List Lens Data->First Order Data)可以看到初始 EFL 只有 0.9528mm,和目标的 6mm 差了 6 倍多,这种状态下做任何像质分析都没有意义,因为所有像差大小都是相对焦距的。

缩放操作是标准流程:在 LDM 中选中表面 1 到像面,选择 Edit->Scale,勾选 Scale Effective Focal Length,Scale Value 输入 6.0,执行后镜头整体比例缩放。缩放后的近轴像高会变成 2.99mm,与规格要求的 3mm 半像高非常接近,说明一阶参数已经闭环。

参数缩放前缩放后目标值
有效焦距 EFL0.9528mm6.0mm6.0mm
近轴像高0.48mm2.99mm约 3.0mm
F/#2.43.53.5

这里有个细节值得说:即使在新镜头向导中已经指定了 Image F/Number 3.5,缩放后最好还是回一阶属性窗口确认一次 F/#。因为个别专利文件里可能带了非标准的光阑定义,缩放会按比例调整所有尺寸,如果孔径类型不是像方 F/#,结果会出现漂移。确认无误后,把镜头存成 DigCamStart.len,这个文件就是后面所有优化的起点。

提示:缩放前要确保表面范围从物面后第一个面到像面都选中。漏选表面会造成只缩了一半、焦距不对、元件间距乱掉的诡异结果。

4. 像差曲线与快速分析:读懂起始点的真实水平

起始点确定并缩放到 6mm 焦距后,接下来的任务是用像差曲线和点列图快速判断这个设计能不能用。一个技巧是先用图形工具里的放大缩小把显示比例调大——默认自动比例往往让曲线看起来"很完美",实际上在自动缩放下所有像差都显得很小,不对比比例尺等于白看。

4.1 快速像差曲线:横向光线像差的判读方法

横向光线像差衡量的是同一视场点发出的特殊光线与主光线在像面交点间的距离,理想镜头里所有光线交点应该重合为零。以瞳孔坐标为横轴画出来,不同波长分离的曲线反映色差,曲线之间的错位反映像散和彗差。

快速像差曲线按钮实际上是由内部宏实现的,自动决定坐标比例,同时提供一个由 ANA 选项产生的文本页面。起始点的自动缩放比例显示为 0.023mm,也就是 23 微米。作为对比,F/3.5 下艾利斑直径约为 2.44×波长×F/#,按 0.589 微米波长算是 5 微米左右,起始点像差是艾利斑直径的 6 倍——没有达到衍射极限,但这就是合格起始点的正常水平,后面通过优化可以压下来。

注意:快速像差曲线的自动比例只适合看像差的相对大小分布,不要拿它直接评估 MTF。如果想精确对比各视场像差,应该把三个视场的曲线窗口并列摆放,手动统一坐标比例。

4.2 快速点列图:每视场点的散开形状

点列图把每个视场发出的多条光线在入瞳处排成方形网格,追迹到像面后形成散点分布,颜色编码代表波长。这个分析快捷直观,但不是规格的一部分,所以不要把它当验收标准,只当质量参考。

对 or02248 这个起始点,各视场的点列图大小大致相同,但形状不同——中间视场可能呈非对称散布,边缘视场可能拉长,这分别对应彗差和场曲的表现。比例条显示 0.050mm,也就是 50 微米,和像差曲线的结论一致:起始点有像差,但整个视场分布均匀,有优化潜力。系统还提供了 spotdet.seq 宏,能在点列图上叠加一个表示像素大小或艾利斑尺寸的方形或圆形框,用来直观比较几何弥散圆是否小于像素尺寸。

4.3 畸变分析:曲线和网格两种看法的差异

畸变是视场相关的像差,真实像高和近轴像高不一致就会产生畸变,它经常和像散一起作为视场相关像差来分析。场曲曲线以视场角为纵坐标、畸变百分比为横坐标,起始点的畸变在整个视场内小于 ±1%,满足规格要求的小于 4%,但中间视场能看到带状的残留畸变——这是视场采样不够密时的典型表现,也是后面优化时要重点盯的区域。

畸变网格更直观:矩形网格表示理想近轴像高,畸变网格叠加在上面对比。做这个分析时,需要在 X FOV Semi-field 输入 21.55、Y FOV Semi-field 输入 16.48,这两个数对应传感器 3.55×4.74mm 的水平和垂直半宽换算出的视场角。很多人拿 26.5° 直接填进去,画出来的网格和实际传感器格式对不上,这是常见的低级错误。畸变小的时候参考网格和畸变网格几乎重合,需要放大局部区域才能看清形变趋势。

4.4 可行性分析:元件能不能加工出来

在进入优化之前,必须先回答三个问题:元件尺寸是否适合加工?厚度是否在合理范围?玻璃牌号是否能买到且成本可控?对两片或三片的居中小组件,口径通常几毫米,注意边缘厚度不能太薄,塑料镜片太薄注塑会变形,玻璃镜片太薄则易碎难装。另外要考虑装配:镜片间隔太小,结构件难加工;间隔太大,镜筒长度失控。这些判断没有软件能替你完成,只能靠基本的镜头数据常识和经验对比,必要时请教做过相似系统的人。

5. MTF 评估与常见问题排查:从曲线到规格的对照检查

MTF 是所有规格里最绕不开的硬指标,也是新手最容易产生挫败感的地方。这一章把 MTF 分析流程和最常翻车的现象集中整理成排查手册。

5.1 MTF 设置与判读:68 LP/mm 和 17 LP/mm 的设计依据

MTF 以空间频率为横轴、调制传递函数值为纵轴。做衍射 MTF 分析时,在 Frequency/Calculation 选项卡里把最大频率设为 68 LP/mm、频率增量设为 17 LP/mm,这样正好覆盖规格中低频 17 LP/mm 和高频 51 LP/mm 两个关键检查点,还能看到 CCD 截止频率 67.6 LP/mm 附近的衰减趋势。

判读规格要抓住两组数值:中心 3mm 区域在 17 LP/mm 时 MTF 要大于 85%,这是保证大面积对比度;51 LP/mm 时中心要大于 25%,这是保证细节分辨率;边缘视场 51 LP/mm 也要大于 25%。用衍射 MTF 分析而不是几何 MTF,因为 F/3.5 孔径下衍射效应已经占主导,几何 MTF 在接近截止频率时会误导判断。

对照规格逐项打钩时,最忌只看 0 视场一条曲线。要把 0°、11°、19°、26.5° 四个视场的 MTF 曲线叠在一起看趋势,尤其是 19° 中间视场——前文说过它的像散容易被视场采样不足掩盖。

5.2 坑一:中心视场 MTF 在截止频率前归零

现象:0° 视场的 MTF 曲线在 40 LP/mm 附近掉到接近零,但边缘视场反而正常。

原因:这类问题九成出在焦面位置。起始点的像面厚度由 PIM 求解给定,PIM 只保证近轴焦点位置,不代表 F/3.5 孔径下的最佳焦面。球差和色差会造成孔径不同时最佳焦点位置不同,PIM 给的近轴焦点偏前或偏后,导致中心视场在高频处对比度反转。

解决:把像面厚度设为变量,或者保留 PIM 求解的同时加入一个小的离焦变量参与优化。通常的做法是把 PIM 求解状态取消,改设成变量,让优化器自己找最佳像面。注意一次只放开这一个变量,观察 MTF 中心曲线是否先提升再谈其他像差。

5.3 坑二:畸变曲线出现带状残留

现象:畸变虽在 4% 以内,但中间视场(约 0.5~0.7 视场)存在明显的 S 形残留,网格畸变图上矩形发生局部扭动。

原因:起始点视场采样只有四个角度,中间视场的场曲和像散信息不足,优化器在视场之间"失控"。

解决:回到视场设置,在 0~26.5° 之间再插入 0.5 倍和 0.85 倍两个视场,把这些视场的畸变引入优化约束。条纹残留本质是视场相关高阶像差,密采样比加大权重更有效。

5.4 坑三:角落相对照度低于 60%

现象:相对照度分析显示边缘视场只有 45% 左右,比规格要求的 60% 低一大截。

原因:多数情况是渐晕设置不合理或光阑位置不佳。CODE V 默认的通光口径按参考光线计算,边缘视场的光束被前后镜片有效口径切掉过多,尤其起始点为了缩短镜筒会让边缘光线以大角度入射。

解决:先在 Y Semi-Aperture 列上右键,把边缘视场对应的表面口径放宽,观察照度是否回升。如果放宽后照度够但像质下降明显,就要考虑移动光阑面位置——这类镜头光阑在前组中间或后组之前,对边缘照度影响很大。这个调节没有公式,属于"试几次就明白"的玄学范畴,每轮只改一个表面,记录照度和 MTF 的变化。

5.5 坑四:缩放后 F/# 或视场角不是目标值

现象:执行 Scale 后焦距正确了,但一阶窗口里 F/# 显示 4.2,半视场角也偏了。

原因:缩放只保证 EFL=6mm,如果孔径类型定义成了入瞳直径而不是像方 F/#,缩放不会"重新计算 F/#",而是把入瞳直径按比例缩放;视场同理,按角度定义的视场在缩放后不变,但按像高定义的视场会跟着靶面尺寸变。

解决:在系统数据里把孔径改回 Image F/Number 并重新输入 3.5,然后把视场重新按 0、11、19、26.5 度确认一遍。每次缩放后强制做这个复核,能省掉后面分析阶段的大把返工。这个习惯也是很多老手从血泪教训里带出来的。

6. 设计验收:把每项规格变成可以演示的证据

设计方案做到这里,评审和答辩时怎么证明"设计满足规格"?我有一套固定的验收清单,从一阶参数到像质逐项过:EFL 必须显示 6.0mm,F/# 等于 3.5,半视场角 26.5°,一阶像高 2.99mm 与 3mm 的偏差在公差范围内。然后是畸变曲线小于 4% 且在 1% 内的截图,网格畸变显示矩形成型正常。MTF 部分要放四个视场的叠加曲线,标注 17 LP/mm 和 51 LP/mm 两条竖线,让评审一眼看到中心 0 行 3mm 区域和边缘视场均高于规格线的结果。最后是相对照度曲线大于 60%、透过率大于 80% 的数据表。

答辩演示有个技巧:先放畸变网格这种图像直观的东西暖场,再放 MTF 曲线体现专业性,把一阶参数表留在第一张或最后一张作为结构完整感。如果评审问到"起始点为什么选这个专利",不要只答"过滤器搜出来的",要说出选型依据:视场角 27.5° 比目标大 1°,后期缩减容易;F/# 2.4 比目标快,孔径余量充足;元件数 2 片满足低成本约束。这三个理由就能把选型过程讲完整。

验收项判定标准演示证据
一阶参数EFL=6mm,F/#=3.5First Order Data 窗口截图
畸变全视场小于 4%,实际约 ±1%场曲曲线与畸变网格
MTF17 LP/mm 中心大于 85%,51 LP/mm 大于 25%MTF 四视场叠加曲线
照度角落相对照度大于 60%相对照度曲线
透过率400~700nm 大于 80%透过率分析数据表

我从第一次做这种定焦镜头设计开始,走过不少弯路,后来强制自己养成一个习惯:拿到任何规格先花十分钟把像高、视场角、截止频率算清楚再开软件,每次缩放后必须回一阶窗口复核 F/# 和视场角,每跑完一轮优化看 MTF 前先检查像面是不是变量。这套流程后来从定焦物镜延伸到变焦系统,一直没再出过大的低级事故。这次把这个完整流程整理出来,也是希望对正在做类似课设或入门光学设计的人有所帮助。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询