2. 飞行时间测距核心公式:光速、相位差与距离的数学关系
各位同学,今天我们来啃一块硬骨头——ToF测距最核心的数学公式。说实话,我刚入行那会儿,觉得这玩意儿不就是“距离=速度×时间”嘛,有啥好讲的?后来在项目里栽了跟头,才发现这里面门道深着呢。
咱们先把这个公式掰开揉碎了讲。你想想看,光从发射到接收,走了个来回。这个时间差,就是我们要测量的“飞行时间”。
核心公式:
d = (c × Δt) / 2
其中:
- d — 目标距离(单位:m)
- c — 光速(约 3×10⁸ m/s)
- Δt — 光脉冲往返时间(单位:s)
嗯,这里要注意。除以2是因为光走了个来回。我见过不少新手工程师,一上来就忘了除2,结果测出来的距离翻了一倍。我自己也犯过这个错,那是在一个工业测距项目里,调试了整整两天才发现问题……
2.1 连续波调制与相位差
直接测时间?太难了。光速太快,1纳秒光就能跑30厘米。你想想看,要测毫米级的精度,时间分辨率得做到皮秒级。这成本,啧啧。
所以实际工程中,我们用的是连续波调制(CW)方案。说白了,就是给激光打个“标签”,通过测量相位差来反推时间。
我的经验:连续波调制就像给光波“刻上刻度”。我习惯用正弦波调制,因为它的相位信息最容易提取。当然,方波调制也有它的优势,这个后面再聊。
连续波ToF的公式长这样:
d = (c × Δφ) / (4π × f_mod)
这里:
- Δφ — 发射信号与接收信号之间的相位差(单位:rad)
- f_mod — 调制频率(单位:Hz)
为什么会多出个4π?因为相位差Δφ对应的是往返距离,而一个完整周期2π对应一个波长λ。所以距离d = (Δφ / 2π) × (λ/2) = (c × Δφ) / (4πf)。
2.2 相位模糊与最大无模糊距离
这里有个坑,我必须提醒你。相位差Δφ只能在0到2π之间测量。一旦超过2π,你就分不清到底是第几个周期了。这就是所谓的“相位模糊”。
避坑指南:我曾经在一个仓储机器人项目里,因为没处理好相位模糊,机器人把10米外的货架认成了2米外的障碍物,差点撞上去。从那以后,我每次设计系统都会先算清楚最大无模糊距离。
最大无模糊距离的计算公式:
d_max = c / (2 × f_mod)
举个例子:
| 调制频率 f_mod | 最大无模糊距离 d_max |
|---|---|
| 10 MHz | 15 m |
| 20 MHz | 7.5 m |
| 50 MHz | 3 m |
你看,频率越高,精度越好,但测距范围反而变小了。这就是个trade-off。我一般会先用低频测个大概范围,再用高频精测。这叫“双频解模糊”,后面章节会详细讲。
2.3 光速的温度依赖性
你以为光速是常数?在真空中是的。但在空气中,光速会随温度、湿度、气压变化。这个变化虽然不大,但在高精度测量中绝对不能忽略。
光速修正公式:
c_actual = c₀ / n
其中n是空气折射率,跟温度T(℃)、气压P(hPa)、湿度RH(%)有关:
n = 1 + (79 × P × 10⁻⁶) / (T + 273.15) - (11 × RH × 10⁻⁶) / (T + 273.15)
我的习惯:在户外项目中,我通常会加一个温湿度传感器,实时修正光速。有一次在沙漠里做测试,白天50度,晚上10度,光速变化带来的误差超过了2厘米。如果不修正,整个系统就废了。
2.4 知识体系总览
下面这张图,是我自己总结的ToF测距核心公式的知识脉络。你把它存下来,以后做项目时对照着看,能少走很多弯路。
2.5 实际应用中的注意事项
讲完了理论,咱们聊聊实际干活时要注意什么。
- 多路径干扰:光打到玻璃、镜面等光滑表面,会产生二次反射。我有个项目,测距值老是偏大,排查了三天,最后发现是旁边一块不锈钢板搞的鬼。
- 环境光噪声:太阳光里也有红外成分,会干扰接收器。我建议加窄带滤光片,只让调制波长的光通过。
- 温度漂移:电子器件会发热,导致测量偏差。我习惯在系统启动后先跑5分钟预热,等温度稳定了再开始测。
一句话总结:ToF测距的核心公式很简单,但真正用好它,你得把相位模糊、光速修正、环境干扰这些因素都考虑进去。工程嘛,从来不是纸上谈兵。
公众号:蓝海资料掘金营,微信deep3321