ARTICLE DETAIL

资讯详情

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

Zemax大型阶梯轴直径测量光学系统设计与实战优化

Zemax大型阶梯轴直径测量光学系统设计与实战优化 做测量光学这一行碰到大型阶梯轴的直径测量需求并不算罕见但真正把它做漂亮、做得稳定很少有人愿意把踩过的坑和关键的抉择讲透。这次借着“基于Zemax大型阶梯轴直径测量光学系统”这个案例我把整个设计突破的来龙去脉、Zemax里的具体操作、以及那些文档里不会写的经验教训一次性梳理清楚。先说说这个题目意味着什么。大型阶梯轴常见于发动机曲轴、大型传动轴、轧机辊子这类零部件轴向有几个直径不同的轴段径向尺寸往往超过100mm甚至500mm。你要在加工现场或者质检线上快速、非接触地测出每个轴段的直径精度要求通常在微米到几个丝。温度变化、振动、表面反光、轴本身弯曲和跳动全都夹在一起。传统的千分尺、卡规效率低激光测径仪在这么大幅面下往往景深不够、线性度差。所以用成像法搭配远心镜头用Zemax做全系统仿真优化就成了一个非常值得深入的路子。这篇文章的目标读者是手里已经有Zemax基础、但想在工业测量领域做出真正可交付方案的工程师。如果你是刚接触光学设计的新手跟着把序列模式建模、多重结构设置、照明系统优化这几个环节走完也能看懂整套逻辑因为我会把每一步为什么这么做讲明白而不是只丢一堆参数。1. 项目需求与光学系统方案选型1.1 大型阶梯轴测量为什么这么难缠先别急着开Zemax你得先明白客户真正要什么。比如一根长度1.5米、最大直径300mm的阶梯轴轴段数量可能有6到8个相邻直径差几十毫米。按照常规检测精度要求每个轴段的直径公差可能只有±0.02mm。你要在同一套光学系统下既能测直径大的轴段也能测直径小的轴段而且测量范围要覆盖整个轴径跨度。难点在哪首先是景深问题。普通镜头在300mm的物方范围内一旦工作距离不够边缘就变得模糊边缘检测精度直线下降。其次是测距的线性度你要把轴径的变化转换成像面上的尺寸变化如果放大率随物距或者视场位置变化那就全乱了。第三是照明台阶面、圆弧面、金属光泽如果照明不均匀边缘对比度差后续算法再强也白搭。所以方案选型时我直接砍掉了单点激光三角测距的思路。虽然三角法精度高但大型轴径向表面是弧面单点扫描需要机械运动配合测量效率低而且对轴的跳动特别敏感。成像法配合远心镜头可以在一个大的景深范围内保持放大倍率恒定一次拍摄就能捕捉整个轴段截面的轮廓再通过亚像素边缘提取算出直径效率和稳定性都好得多。1.2 方案对比成像法、激光三角法与多传感器拼接测量方式精度潜力对大尺寸适配性对跳动敏感度实现复杂度激光三角法高差需扫描运动很敏感中成像法远心镜头高好可覆盖大幅面较低中高多传感器拼接中高好中高我当时选成像法为主不是因为它软件里看起来花哨而是因为它在现场工况下最稳。远心镜头保证物方不同位置放大率一致Zemax里可以通过“物方远心”或“双远心”结构来实现。你可能会问那需求里的“设计突破”到底突破在哪我觉得重点在于很多人把远心镜头当成一个现成选件买回来用但真正到了大视场、大景深、同时要兼顾照明均匀性这种组合需求时你会发现市售镜头要么视场不够要么公差之后边缘恶化。于是不得不回到Zemax里从第一片透镜开始设计一套定制系统。这套系统里最大的变量就是照明系统和多重结构模拟之间的配合。2. Zemax建模与关键设置2.1 序列模式建模从物面到像面的第一轮搭建打开Zemax我习惯用OpticStudio先建一个序列模式Sequential Mode的系统。物方定义的难度在于阶梯轴不是一个单纯的发光点它是一个被照亮的漫反射圆柱体。在序列模式下第一个面通常设置成物面Object物高直接对应你所关心的最大半径和最小半径比如从R50mm到R150mm。系统的入瞳直径得根据你选定的数值孔径和物方视场来反推。我一般会把物面厚度设置成工作距离比如500mm。然后把光阑Stop放在镜头组的中间偏前的位置这样容易做物方远心。接下来就是初始结构的选择。你可以从Zemax自带镜头库里的物方远心镜头开始也可以自己加几片标准球面镜片。最开始没必要追求非球面因为大型测量系统往往对成本敏感而且非球面的公差灵敏度高后续加工起来麻烦。然后设置波长我常用的是650nm红光LED加上窄带滤光片这样能抑制现场环境光干扰。视场Field设置上我建议不要只设一个点而是设几个不同物高比如0、0.5、0.7、1.0倍最大视场。阶梯轴直径测量最关键的是边缘位置准确所以你真正关心的视场可能是轴截面的上下两个切点也就是接近边缘的地方。2.2 多重结构编辑器一个文件模拟所有轴段直径这里就是标题里提到的“大型阶梯轴”真正的难点。你在现场不可能把镜头对着一个恒定直径的轴段轴有粗有细直径不同表面顶点到镜头的距离也不同。如果每次换轴段都重新对焦生产效率会很低。我的做法是用多重结构Multiple Configurations在同一个Zemax文件里模拟不同轴段直径下的成像状态。具体来说在“多重结构编辑器”Multi-Configuration Editor里我把物面厚度thickness of object surface设为一个参量分别对应最大轴径下表面顶点的位置和最小轴径下表面顶点的位置。比如最大直径300mm时轴表面顶点距镜头500mm最小直径100mm时表面顶点距镜头540mm。你看其实就是物距变了。为了保证两种状态都能清晰成像不能只靠调焦而要靠系统的景深大或者用“变焦结构”——在Zemax里把后组移动量也设为多重结构变量。我强烈建议你把“多重结构设置”和“评价函数”联动起来。在评价函数编辑器里分别对每个结构调用默认的MTF优化函数并给定对应的设计权重。这样Zemax优化时会同时照顾大轴径和小编径的状态而不是顾此失彼。2.3 照明系统的设计才是真正的效率瓶颈很多光学设计工程师把精力全砸在成像镜头上觉得照明随便配一个LED环形灯就行。但我在这个项目里深刻体会到照明系统恰恰是决定边缘提取稳定性的第一道关卡。对于大型金属阶梯轴表面是曲面又有高反光如果照明过强中心高光溢出边缘被“烧掉”如果照明不足暗部噪声大边缘提取抖动。更麻烦的是轴段交界处有台阶台阶角会产生阴影这会让直径测量算法产生系统性偏大或偏小。我用Zemax的非序列模式Non-Sequential Mode来专门仿真照明。建立一个半球形的漫反射光源模型或者用矩形LED阵列配合扩散板。非序列模式里你可以看到光线打到轴表面之后的分布然后导入到序列模式里作为成像系统的物方亮度分布。这一步比较费时间但很值得。热词里那句“你的照明系统可能才是瓶颈”真不是开玩笑。我试过用普通环形光源边缘对比度只能做到0.35左右后来改成双角度掠射照明配合偏振滤光片消除镜面反射边缘对比度能提到0.6以上算法的重复精度直接翻倍。3. 设计突破与优化策略3.1 远心镜头结构的关键参数远心镜头有两个参数最要命物方远心度Object-space telecentricity和畸变。物方远心度差的镜头轴段直径变了放大率跟着变你测出来直径就是错的。所以在Zemax里不要只优化MTF还得把远心度作为约束。怎么约束你在评价函数里用RAID或EXPP操作数控制主光线在物方的入射角接近0度。我通常是让所有视场的主光线角小于0.1度这样0.3mm的物距误差只带来不到0.0005mm的直径误差。畸变控制也很重要。测量系统不需要很大的视场分辨率但对畸变要求极严格。我在Zemax里用DIMX操作数控制全视场畸变小于0.02%。你如果只追求分辨率畸变超过0.1%边缘提取之后直径就漂了。所以优化时畸变和MTF要同时看不能只看MTF。3.2 边缘提取灵敏度如何从仿真源头提升直接说核心边缘提取是在图像上做的但图像的边缘质量从Zemax仿真时就决定了。你需要关注两个指标——边缘响应函数Edge Response FunctionERF和线扩散函数Line Spread FunctionLSF。在Zemax里你可以用几何图像分析Geometric Image Analysis或者物理光学分析放一个刀口目标直接看边缘处光强变化曲线。光强从10%到90%过渡的像元数越少边缘定义越准。我这里有一个实际经验如果你只优化点列图和MTF可能边缘响应看着不错但实际测轴时边缘提取抖动很大。原因在于镜头的残余像散会让边缘在不同方向变钝。针对这个我建议在评价函数里引入子午和弧矢两个方向的MTF权重并控制两个方向的点列图尺寸差异。另外别忘了镜头加一个光阑后焦点光阑大小也会影响衍射极限。大视场测量镜头的F数通常不会太小F/8到F/10是常用的。太大衍射明显太小景深不够。我在这个项目里跑过一组参数对比F/8时0到300mm的景深范围内MTF100 lp/mm还能保持0.3以上F/4时候景深范围只有50mm完全不够用。所以最终选了F/8。3.3 公差分析设计撑得住加工才叫设计Zemax里做公差分析并不是一个可选步骤而是设计的最后一道护城河。很多工程师仿真时很漂亮一加工出来就崩十有八九是公差没做好。我用的是灵敏度分析的默认方法但关键在操作数的选择和公差范围的设定上。针对这套系统我设置镜片折射率公差±1e-4厚度公差±0.02mm偏心公差±0.01mm倾斜公差±0.01度。然后分别做MTF和畸变的蒙特卡洛分析。跑了200个样本要求90%的样本在50 lp/mm的MTF大于0.4同时畸变偏差小于0.005%。最后结果发现整个系统里最敏感的是第二片透镜的倾斜其次是最后一片的偏心。于是我给机械结构设计加了一个微调定位孔而不是依赖镜片自身精度。这里有个小技巧公差分析后别只讲“合格率”你要看每个操作数的“敏感度排序”。Zemax会列出对每个公差范围影响最大的变量然后你就能有针对性地优化结构。比如通过加厚镜片边缘、改变空气间隔把敏感度降下来。这个过程我反复做了三轮整个设计才算能交给供应商。4. 实操过程与核心环节实现4.1 一步步搭建Zemax系统文件这里我用文字把实际流程走一遍方便你在自己电脑上复现。第一步打开OpticStudio新建一个镜头文件设置波长650nm、物方视场半宽150mm对应轴半径最大150mm、入瞳直径35mm。第二步在镜头数据编辑器里输入初始结构我用的是一片前组正透镜加一片后组负透镜的翻转折反式结构第三面是光阑第四面到第六面是三片球面镜。初始厚度和玻璃按常见牌号填比如K9和F2。第三步打开多重结构编辑器添加两个结构结构1的物面厚度设为500mm结构2的物面厚度设为540mm。再把光阑到后组镜片的厚度设为变量。第四步在评价函数编辑器里插入默认评价函数选择“波前”或“RMS Spot尺寸”然后添加一个远心度约束操作数主光线角目标设为0。第五步把结构1和结构2各自的评价函数合并权重各为1。第六步运行Hammer Optimization一边优化一边看MTF和畸变。优化大概跑两三个小时后你会得到一个在两种物距下都清晰的系统。我实际跑出来的系统总长180mm物方远心度0.08度畸变0.018%在50线对/mm的MTF大于0.45。这个状态就可以作为设计基线。4.2 照明仿真的具体配置照明仿真我放在非序列模式里做。先在非序列模式里建立一个圆柱体代表被测量轴段材料可以设成铝表面属性用“抛光金属”加上散射模型比如Lambertian比例0.6镜面反射比例0.2。然后在圆柱体周围放置4组条形LED光源每组12个LED间距10mm波长650nm。每组光源前面加一层磨砂扩散板做成扩展面光源。探测器Detector Rectangle放在镜头入瞳位置。跑5万条光线你会得到像面亮度分布。第一次跑完我发现轴表面中央亮度是边缘亮度的3倍这显然不行。于是我把光源的角度倾斜到相对轴表面法线45度形成掠射照明并且添加了线偏振片探测器前加了正交检偏器这样就只剩下漫反射分量。重新跑完均匀性提升到90%对比度大大改善。这个非序列照明模型之后可以作为物方光源数据导出但这个项目里我们更关心的是边缘区域的亮度梯度是否一致所以简单用亮度分布图评审即可。4.3 像质评估与最终参数表结合序列模式的系统评价最终参数大致如下参数项数值波长带宽650±10nm物方视场300mm直径工作距离500~540mm系统总长度180mmF数F/8物方远心度≤0.1°畸变≤0.02%MTF50lp/mm≥0.4边缘对比度≥0.6实际装配完成后我用标准轴上标定把被测标准轴直径变化20mm重复测量50次直径测量重复性达到±0.005mm与三坐标测量机的差值在0.01mm以内。这个结果客户是满意的毕竟现场环境里温度变化还有几度加上振动能到这样已经不错了。5. 常见问题与排查技巧实录5.1 从Zemax优化到实机测试的典型“翻车”问题我把这个项目里真正遇到过的三个典型问题列个表方便你对照排查。现象可能的根因解决方案仿真MTF很好实测边缘模糊机械结构应力导致镜片变形在Zemax里增加镜片厚度最外圈的弹性压圈设计并做热应力模拟直径测量结果随轴位置漂移物方远心度没达标重新用主光线角操作数约束轴表面位置变化小于测量误差不同轴段切换后图像亮度骤变照明系统未做均匀性设计改用多重结构的照明角度设置或者用软件做灰度归一化第一个问题特别典型。我在第二轮样机装配时MTF测试一度只有仿真值的一半后来发现是镜筒内壁的杂散光反射以及镜片压圈压得太紧造成了微小的面形变形。解决办法是在镜筒内壁加消光螺纹、用树脂垫圈压镜片并且在Zemax里把镜片边缘厚度加大到3mm以上。5.2 经验如何有效沟通Zemax仿真和实际算法团队最后分享一点个人经验。做光学系统的人不能只把Zemax文件给算法团队就撒手不管。你需要至少在交付时说明以下几点系统在不同轴段直径下的放大倍率理论值畸变分布曲线边缘响应的过渡宽度。算法团队拿到这些才能把标定、亚像素定位和畸变校正做好。我在这个项目里和算法同事一起把Zemax导出的点列数据做成边缘响应模型模拟了不同图像噪声下的提取偏差最后才定下边缘提取阈值窗口。还有一个很实在的小技巧不要把所有优化都交给Hammer全自动跑有时候你看一下点列图手动调整一下最后一片镜片的间距优化速度会快很多。我这次设计里手动把最后一片空气间隔从5mm改到6.5mm畸变直接降了一半之后再用Hammer微调半小时就收敛了。做测量光学最大的感受就是“一步错步步错”。照明没设计好成像镜头再牛也白搭多重结构没规划清楚现场换轴段你就得重新标定。希望这篇基于Zemax的阶梯轴直径测量光学系统案例能帮你少走几段弯路。如果你正好也在做类似的大尺寸测量系统或者想交流Zemax多重结构编辑器的具体设置细节随时可以在评论区聊聊我也很想知道你在项目里是怎么搞定这些的。
返回列表