第一章 激光三角法原理
各位工程师朋友,大家好。我是老张,在光学测量这行摸爬滚打了十几年。今天咱们开始聊激光三角位移传感器,第一章节,我打算把最核心的原理讲透。
你可能会问:搞懂原理有那么重要吗?我的回答是:太重要了。我见过太多人,选型时只看参数表,结果装上去发现测不准。说白了,原理没吃透,后面全是坑。
1.1 激光三角法的基本原理
激光三角法,名字听着唬人,其实道理很简单。你想想看,一束激光打到被测物体表面,反射光被一个位置探测器接收。物体移动了,光斑在探测器上的位置也跟着变。这不就是个三角形嘛——激光器、被测点、探测器,三个点构成一个三角关系。
核心公式:
位移量 Δh 与光斑移动量 Δx 的关系,近似为:
Δh = Δx / (M * sinθ)
其中 M 是光学放大倍数,θ 是激光入射角。注意,这只是近似公式,实际计算要复杂得多。
我个人习惯把三角法分成两类:直射式和斜射式。直射式,激光垂直入射,结构简单,适合大多数场景。斜射式,激光倾斜入射,能测更粗糙的表面,但光路设计麻烦些。
我在项目中遇到过一件事:有次客户要测黑色橡胶表面,直射式死活测不准。后来换成斜射式,问题解决了。为什么?因为斜射式能捕捉到更多散射光,对低反射率表面更友好。
1.2 朗伯散射与镜面反射
光打到物体表面,会发生什么?这取决于表面特性。我把它分成两种情况:
- 朗伯散射:表面粗糙,光向各个方向均匀反射。大多数工业被测物都是这种,比如磨砂金属、塑料、纸张。
- 镜面反射:表面光滑,光像镜子一样反射。比如抛光金属、玻璃、镜面。
你想想看,传感器设计时,通常假设被测表面是朗伯散射体。但现实世界哪有那么理想?我遇到过测抛光不锈钢的情况,反射光太强,直接把探测器打饱和了。怎么办?
我的经验:遇到镜面反射表面,可以试试这几个方法:
- 调整激光入射角度,避开镜面反射方向
- 加装偏振片,滤掉镜面反射光
- 降低激光功率,防止探测器饱和
说白了,朗伯散射是传感器的"舒适区",镜面反射是"雷区"。选型时一定要搞清楚被测物的表面特性。
1.3 Scheimpflug条件
这个名字有点拗口,但原理很简单。Scheimpflug条件说的是:为了让整个测量范围内的光斑都清晰成像,激光束、透镜平面、探测器平面,这三者必须交于一条线。
为什么会这样?我打个比方。你拍照时,如果被摄物体不在焦平面上,照片就模糊了。激光三角法也一样,物体在不同高度时,光斑到透镜的距离在变。如果不满足Scheimpflug条件,只有中间位置清晰,两端都是模糊的。
数学表达:
设激光束与透镜平面的夹角为 α,探测器平面与透镜平面的夹角为 β,则满足:
tan(α) = M * tan(β)
其中 M 是横向放大率。满足这个条件,整个测量范围内的光斑都能清晰成像。
嗯,这里要注意:Scheimpflug条件不是可选项,是必选项。我见过一些廉价传感器,为了省成本,不满足这个条件,结果测量范围两端误差大得离谱。选型时,一定要确认厂家是否采用了Scheimpflug设计。
1.4 光斑质心算法
光斑打到探测器上,是一个弥散斑,不是理想的一个点。怎么确定光斑的中心位置?这就用到质心算法了。
质心算法,说白了就是加权平均。每个像素的灰度值作为权重,计算光斑的"重心"位置。公式如下:
xc = Σ(i * Ii) / Σ(Ii)
其中 xc 是质心位置,i 是像素序号,Ii 是第 i 个像素的灰度值。
我刚开始做这行时,觉得质心算法太简单了,不就是个加权平均嘛。后来发现,坑多着呢。比如:
- 光斑形状不对称怎么办?
- 背景光干扰怎么办?
- 探测器有暗电流噪声怎么办?
避坑指南:我曾经在一个项目中,直接用原始像素数据算质心,结果噪声大得没法用。后来加了两个预处理步骤:
- 先做背景减除,去掉固定噪声
- 再做阈值分割,只保留光斑区域
这样处理后,质心精度提高了至少一个数量级。
另外,质心算法还有改进版,比如高斯拟合质心法。它假设光斑强度分布是高斯型的,用最小二乘法拟合出中心位置。精度更高,但计算量也更大。现在很多高端传感器都用这个。
知识体系总览
下面这张图,是我自己画的,把本章的核心逻辑串起来了。你一看就明白。
这张图把四个知识点串起来了。你看,基本原理是骨架,散射反射是前提条件,Scheimpflug是光学设计的关键,质心算法是信号处理的灵魂。缺一个,传感器都做不好。
好了,第一章就聊到这儿。原理这东西,光看不行,得在实际项目中反复琢磨。下一章咱们聊传感器的主要性能指标,到时候见。