机器视觉用消色差双合透镜

光学系统案例:机器视觉用消色差双合透镜

一、设计规格

1. 应用场景:专为工业相机成像而设计,工作于可见光波段,旨在满足该领域对高精度成像的需求。

2. 核心参数:

• 焦距:精确要求达到 50 mm ±1%,确保成像的清晰度与准确性,对后续的光学系统布局及成像效果起着关键作用。

• F 数:F/4,对应通光孔径为 Φ12.5 mm,此参数决定了系统的进光量,影响着图像的亮度与对比度。

• 视场角:±10°,限定了相机能够捕捉的视野范围,在工业检测等应用场景中,合适的视场角可确保关键区域完整成像。

• 波长范围:覆盖 486 nm(F 线) - 656 nm(C 线),涵盖了可见光的主要波段,以保证在该波段内的成像质量,满足不同颜色物体的清晰成像需求。

• 分辨率:要求大于 100 lp/mm @ MTF30,这是衡量光学系统分辨细微结构能力的重要指标,直接关系到工业相机能否捕捉到微小缺陷或精细特征。

• 畸变:控制在 < 0.5%,确保成像的几何形状不失真,对于精密测量、图像识别等应用至关重要。

• 总长:小于 65 mm,考虑到系统的紧凑性与安装空间限制,合理的总长设计有助于系统集成。

• 工作距离:200 mm ±5 mm,明确了透镜与被观测物体之间的距离要求,适应特定的工业检测场景。

二、初始结构选择

采用经典的双胶合消色差透镜构型,充分利用不同光学材料的特性:

• 前镜片:选用 H-ZF52A 高折射率高色散玻璃,具有正光焦度,负责主要的光线折射与聚焦,其高折射率特性有助于减小镜片厚度,同时高色散特性在后续色差校正中发挥关键作用。

• 后镜片:采用 H-ZK10A 低色散玻璃,具备负光焦度,与前镜片胶合配合,通过合理的曲率设计,胶合界面成为消除色差的关键面,利用两种玻璃的色散差异,有效校正色差,提高成像质量。

三、优化过程

1. Step 1 - 基础像差校正:

• 变量选取:将两镜片的 4 个曲率半径以及胶合面厚度作为优化变量,这些参数直接影响光线的传播路径与聚焦效果,对像差校正起着决定性作用。

• 评价函数构建:以 RMS 波前差与横向色差权重作为评价指标,RMS 波前差反映了光线的波前平整度,横向色差权重则针对不同颜色光线的聚焦偏差进行评估,确保在整个波长范围内的成像一致性。

• 约束条件设定:在优化过程中,通过代码约束 TTHI(表面 4) > 3mm,保证镜片边缘强度,防止因边缘过薄导致强度不足;同时限定 EFFL = 50 ±0.5mm,确保焦距在设计要求范围内。

• 优化成果:经过此步骤优化,球差校正至 < λ/4,色差控制在 < 5 μm,显著提升了成像的清晰度与色彩还原度。

2. Step 2 - 场曲与畸变平衡:

• 引入 Petzval 项约束:添加 PETC < 0.1 mm 的约束条件,Petzval 场曲是光学系统中常见的像差之一,通过对其约束,可有效改善像面的平坦度。

• 后镜片曲率调整:精细调整后镜片的曲率分布,使场曲 < 20 μm,减少因场曲导致的图像边缘模糊现象,保证整个视场范围内的成像质量均匀性。

3. Step 3 - 公差敏感度优化:

• 蒙特卡洛分析:运用 Zemax 公差模块进行蒙特卡洛分析,模拟实际加工过程中的参数随机变化,评估各参数对系统性能的影响敏感度。

• 敏感变量约束:针对敏感变量胶合面曲率 R3,添加松弛约束 |R3| > 80mm,降低其曲率灵敏度,提高系统在实际加工制造过程中的稳定性,减少因加工误差导致的性能劣化。

四、加工良率分析

1. 关键工艺指标:

• 曲率半径公差:要求达到 ±0.5%(干涉仪检测),工艺能力指数 Cpk 为 1.33,这一精度要求确保镜片的曲率加工精度,直接影响光线的折射与聚焦效果。

• 中心厚度公差:控制在 ±0.02 mm(精密铣磨),Cpk 达到 1.67,精确的中心厚度保证了镜片的光程差,对成像质量起着关键作用。

• 面形精度:规定 PV < λ/2 @632.8nm,Cpk 为 1.5,良好的面形精度可减少光线的不规则反射与散射,保证光线按预期路径传播。

• 偏心:限定 < 30 μm(高精度定心车床),Cpk 为 1.2,偏心控制确保镜片的光轴与系统光轴重合,防止因偏心产生像差。

2. 良率提升措施:

• 取消非球面设计:此举可大幅降低 5 倍加工成本,在保证成像质量满足要求的前提下,简化加工工艺,提高生产效率。

• 采用标准玻璃牌号:选择库存率 >95%的标准玻璃,确保原材料的供应及时性,减少因材料短缺导致的生产延误,同时降低采购成本。

• 胶合工艺优化:采用 UV 固化胶进行胶合工艺,使良率提升至 98%,提高镜片胶合的稳定性与可靠性,减少胶合缺陷对成像质量的影响。

五、杂散光控制方案

1. 主要杂散光路径:

• 镜片边缘多次反射:光程差 <5mm,光线在镜片边缘多次反射后进入系统,形成杂散光干扰主光路成像,降低图像对比度。

• 机械内壁散射:机械内壁表面粗糙度 Ra = 0.8μm,粗糙表面易对光线产生散射,使杂散光混入主光路,影响成像清晰度。

• 传感器表面反射回镜组:传感器表面反射的光线若重新进入镜组,会叠加在主像上,造成图像噪声与干扰。

2. 抑制措施:

• 机械结构优化:

• 设置挡光环:设计 3 个阶梯式挡光环,深度 ≥2mm,有效阻挡镜片边缘反射及机械内壁散射的杂散光进入主光路,通过多次反射消耗杂散光能量。

• 镜筒内壁处理:对镜筒内壁进行黑色阳极氧化,使其反射率 <2% @550nm,减少内壁对光线的反射,降低杂散光强度。

• 镜片边缘涂覆:在镜片边缘涂覆炭黑环氧树脂,吸收镜片边缘反射的杂散光,防止其再次进入光路。

• 光学镀膜应用:

• 双面增透膜:在镜片双面镀制增透膜,使单面反射率 <0.5% @400 - 700nm,提高光线透过率,减少镜片表面反射产生的杂散光。

• 胶合面截止膜:在胶合面镀制截止膜,阻断 >700nm 杂光,防止红外杂光进入系统,进一步净化光路。

3. 验证方法:

• 非序列追迹:通过 1e6 条光线的非序列追迹模拟,结果显示 0.1°离轴光源产生的杂散光对比度 <0.1%,鬼像强度 <主像的 1e - 5,有力验证了杂散光控制措施的有效性,确保系统在复杂环境下仍能获得高质量的成像效果。

六、最终性能验证
指标 设计值 实测值(10 个样机平均) 
MTF@100lp/mm 0.42 0.38±0.03 
场曲 <15μm 18μm 
装配良率 - 92% (Cpk = 1.25) 
杂散光抑制比 - 1.2e - 5 

从实测结果来看,大部分指标接近设计值,MTF 实测值虽略低于设计值但在合理误差范围内,场曲稍有超出设计要求,装配良率达到 92%,杂散光抑制比表现优异,表明整体设计在实际生产与应用中具备较高的可行性与可靠性。

七、迭代优化记录

1. v1.2 改进:将前镜片边缘厚度从 2.1mm 增至 2.5mm,有效解决了镜片破裂问题,破裂率从 8%降至 1.5%,提高了镜片的机械强度与稳定性,保障产品在使用过程中的可靠性。

2. v1.5 改进:增加第二挡光环位置优化,使杂散光降低 40%,进一步提升了杂散光控制效果,优化系统成像质量,满足对成像纯净度要求日益提高的工业应用需求。

八、关键设计总结

1. 像差平衡策略:巧妙利用胶合面承担主要色差校正任务,通过合理设计前后镜片表面曲率,分别精确控制球差和场曲,实现了在整个视场范围内的高质量成像,保证不同颜色光线聚焦清晰、像面平整。

2. 成本控制:采用对称式设计,减少元件数量,简化系统结构,降低生产成本;同时标准化镜片直径为 Φ25.4mm,便于批量采购与加工,提高生产效率,从设计源头把控成本。

3. 可制造性设计:确保所有曲率半径 >30mm,避免超精密加工需求,降低加工难度与成本,提高加工良率,使设计方案能够顺利落地量产,兼顾光学性能与生产可行性。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/77003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

批量归一化(Batch Normalization)原理与PyTorch实现

批量归一化&#xff08;Batch Normalization&#xff09;是加速深度神经网络训练的常用技术。本文通过Fashion-MNIST数据集&#xff0c;演示如何从零实现批量归一化&#xff0c;并对比PyTorch内置API的简洁实现方式。 1. 从零实现批量归一化 1.1 批量归一化函数实现 import t…

feedback

这个文件 lib/pages/feedback/index.dart 是一个反馈/留言表单页面的实现&#xff0c;主要功能是&#xff1a; 表单收集功能&#xff1a; 真实姓名&#xff08;必填&#xff09;联系电话&#xff08;必填&#xff0c;需要验证手机号格式&#xff09;电子邮箱&#xff08;选填&a…

数据仓库标准库模型架构相关概念浅讲

数据仓库与模型体系及相关概念 数据仓库与数据库的区别可参考&#xff1a;数据库与数据仓库的区别及关系_数据仓库和数据库-CSDN博客 总之&#xff0c;数据库是为捕获数据而设计&#xff0c;数据仓库是为分析数据而设计 数据仓库集成工具 在一些大厂中&#xff0c;其会有自…

适用于 HAL 的 AIDL

目录 设计初衷 注意 编写AIDLHAL接口 查找AIDLHAL接口 扩展接口 将现有HAL从HIDL转换为AIDL AIDL与HIDL之间的主要差异 针对HAL的供应商测试套件(VTS)测试 Android 11 中引入了在 Android 中使用 AIDL 实现 HAL 的功能, 从而可以在不使用 HIDL 的情况下实现 Android 的部分…

leetcode0547. 省份数量-medium

1 题目&#xff1a;省份数量 官方标定难度&#xff1a;中 有 n 个城市&#xff0c;其中一些彼此相连&#xff0c;另一些没有相连。如果城市 a 与城市 b 直接相连&#xff0c;且城市 b 与城市 c 直接相连&#xff0c;那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相…

【专题刷题】双指针(一)

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;1&#xff0c;本人解法 本人屎山代码&#xff1b;2&#xff0c;优质解法 优质代码&#xff1b;3&#xff0c;精益求精&#xff0c;…

WebSocket 技术详解

引言 在现代Web应用中&#xff0c;实时通信已经成为不可或缺的一部分。想象一下聊天应用、在线游戏、股票交易平台或协作工具&#xff0c;这些应用都需要服务器能够即时将更新推送给客户端&#xff0c;而不仅仅是等待客户端请求。WebSocket技术应运而生&#xff0c;它提供了一…

【redis】初识redis

初识redis Redis 是一种基于键值对&#xff08;key-value&#xff09; 的 NoSQL 的数据库&#xff0c;它与很多键值数据库不同&#xff0c; Redis 中的值可以是 string&#xff08;字符串&#xff09; 、hash&#xff08;哈希&#xff09;、list&#xff08;链表&#xff09;、…

UE5 制作方块边缘渐变边框效果

该效果基于之前做的&#xff08;https://blog.csdn.net/grayrail/article/details/144546427&#xff09;进行修改得到&#xff0c;思路也很简单&#xff1a; 1.打开实时预览 1.为了制作时每个细节调整方便&#xff0c;勾选Live Update中的三个选项&#xff0c;开启实时预览。…

基于springboot的“嗨玩旅游网站”的设计与实现(源码+数据库+文档+PPT)

基于springboot的“嗨玩旅游网站”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;springboot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统首页界面 系统注册…

grafana/loki 部署搜集 k8s 集群日志

grafana/loki 和 grafana/loki-stack 的区别 ​Grafana 提供了多个 Helm Chart 用于在 Kubernetes 集群中部署 Loki 及相关组件,其中主要包括 grafana/loki 和 grafana/loki-stack。​它们的主要区别如下:​ 1.grafana/loki Helm Chart: 专注于 Loki 部署: 该 Chart 专门…

Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置

作者&#xff1a;濯光、翼严 Kubernetes 配置管理的局限 目前&#xff0c;在 Kubernetes 集群中&#xff0c;配置管理主要通过 ConfigMap 和 Secret 来实现。这两种资源允许用户将配置信息通过环境变量或者文件等方式&#xff0c;注入到 Pod 中。尽管 Kubernetes 提供了这些强…

python自动化浏览器标签页的切换

#获取全部标签页的句柄返回句柄的列表 handleswebdriver.window_handles#获取全部标签页的句柄返回句柄的列表 print(len(handles)) 切换标签页 handleswebdriver.window_handles webdriver.switch_to.window(handles[index])#切换到第几个标签页就写几 关闭标签页 关闭标…

微信小程序组件传参

微信小程序组件传参感觉和vue还是挺像的 父组件向子组件传参 在小程序中父组件子组件传参&#xff0c;主要使用properties属性。演示下&#xff1a; 创建组件文件夹component&#xff0c;创建组件demoComponent&#xff0c;记得创建的时候选择组件&#xff0c;不是page页面 …

【嵌入式硬件】LAN9253说明书(中文版)

目录 1.介绍 1.1总体介绍 1.2模式介绍 1.2.1微控制器模式: 1.2.2 扩展模式 1.2.3 数字IO模式 1.2.4 各模式图 2.引脚说明 2.1 引脚总览 2.2 引脚描述 2.2.1 LAN端口A引脚 2.2.2 LAN端口B引脚 2.2.3 LAN端口A和、B电源和公共引脚 2.2.4 SPI/SQI PINS 2.2.5 分布式时…

【C语言基础】双指针在qsort函数中的应用

在C语言中使用 qsort 对字符串数组&#xff08;如 char* 数组&#xff09;排序时&#xff0c;必须转换为双指针&#xff08;char**&#xff09;&#xff0c;这是由字符串数组的内存结构和 qsort 的工作原理决定的。以下是详细解释&#xff1a; 一、底层原理分析 1. 字符串数组…

批处理(Batch Processing)的详解、流程及框架/工具的详细对比

以下是批处理&#xff08;Batch Processing&#xff09;的详解、流程及框架/工具的详细对比&#xff1a; 一、批处理核心概念 定义&#xff1a; 批处理是离线处理大量数据或任务的自动化流程&#xff0c;特点是无人值守、高吞吐量、资源密集型&#xff0c;常用于数据清洗、报表…

基于FreeRTOS和LVGL的多功能低功耗智能手表(APP篇)

目录 一、简介 二、软件框架 2.1 MDK工程架构 2.2 CubeMX框架 2.3 板载驱动BSP 1、LCD驱动 2、各个I2C传感器驱动 3、硬件看门狗驱动 4、按键驱动 5、KT6328蓝牙驱动 2.4 管理函数 2.4.1 StrCalculate.c 计算器管理函数 2.4.2 硬件访问机制-HWDataAccess 2.4.3 …

【初阶数据结构】——算法复杂度

一、前言 1、数据结构是什么&#xff1f; 数据结构(Data Structure)是计算机存储、组织数据的⽅式&#xff0c;指相互之间存在⼀种或多种特定关系的数 据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤&#xff0c;所以我们要学各式各样的数据结构&#xff0c; 如&…

记录 | Pycharm中如何调用Anaconda的虚拟环境

目录 前言一、步骤Step1 查看anaconda 环境名Step2 Python项目编译器更改 更新时间 前言 参考文章&#xff1a; 参考视频&#xff1a;如何在pycharm中使用Anaconda创建的python环境 自己的感想 这里使用的Pycharm 2024专业版的。我所使用的Pycharm专业版位置&#xff1a;【仅用…