2. 时间基础与时钟模型

在多传感器系统中,所有“同步”问题最终都会落到同一个根问题上:不同传感器对“现在几点”这件事的理解是否一致。要回答这个问题,必须先建立一套关于时间的共同语言——时间戳、时钟、频率、周期、抖动、漂移、偏移。这些概念不是抽象术语,而是后续做时间对齐、插值、融合、标定与故障排查时反复使用的“度量尺”。本节先把这把尺子校准。

一、核心概念:从“时钟”到“时间戳”

时钟(Clock)是产生时间读数的物理或逻辑装置。它可以是晶振驱动的硬件计数器,也可以是操作系统维护的软件计时器,还可以是 GPS/北斗接收机输出的授时脉冲。时钟的本质是“以某个已知频率累加计数”,因此它天然带有频率误差。

时间戳(Timestamp)是某个事件发生时,从某个时钟上读取到的一个具体数值。它回答的是“这件事发生在该时钟的哪一刻”。注意:时间戳本身不是“绝对时间”,它只是“某个时钟坐标系下的坐标”。同一物理事件,用不同时钟打时间戳,会得到不同数值。

频率(Frequency)是时钟每秒振荡或计数的次数,单位 Hz。例如 1 MHz 时钟表示每秒计数 100 万次。周期(Period)是频率的倒数,表示一次计数或一个节拍持续的时间,单位秒。频率越高,周期越短,时间分辨率越高,但功耗与成本也越高。

偏移(Offset)描述两个时钟在同一物理时刻的读数差。若 A 钟读 1000,B 钟读 1005,则 B 相对 A 的偏移为 +5 个计数单位。偏移是“静态”或“慢变”的差值,通常可以通过一次对齐来修正。

漂移(Drift)描述时钟频率本身随温度、电压、老化而发生的缓慢变化。漂移会让偏移随时间不断累积。例如晶振标称 10 MHz,实际可能因温漂变成 10.0002 MHz,每秒多走 0.2 μs,一小时就累积约 0.72 ms。

抖动(Jitter)描述时间戳或时钟边沿相对理想位置的短期、随机或周期性波动。抖动是“快变”的,通常表现为同一事件多次测量时间戳的方差。它与漂移的关键区别在于时间尺度:抖动是毫秒级以下的快速波动,漂移是秒级以上的缓慢趋势。

一句话区分:偏移是“表差多少”,漂移是“表越走越偏”,抖动是“表针在抖”。三者叠加,构成真实时钟与理想时钟的全部差距。

二、理想时钟与真实时钟的差异

理想时钟满足三个条件:频率恒定、无抖动、无漂移,且与参考时间完全对齐。真实时钟永远无法同时满足这三点。工程上我们通常用一个线性模型来近似真实时钟:

t_real = α · t_ideal + β + ε(t)

α:频率比例因子(含漂移,理想为 1)
β:初始偏移(理想为 0)
ε(t):抖动项(理想为 0)

这个模型是后续所有同步算法的出发点。α 和 β 可以通过观测估计并补偿,而 ε(t) 只能通过滤波、平均或冗余设计来抑制。理解这一点,就能明白为什么“同步”不是一次性动作,而是持续估计与修正的过程。

理想时钟 vs 真实时钟:偏移、漂移、抖动 真实时间 t 时钟读数 理想时钟 真实时钟 抖动 ε(t) 初始偏移 β 漂移累积 α·t 理想:频率恒定、无抖动、无漂移 真实:α≠1、β≠0、ε(t)≠0 抖动:短期随机波动

三、方法流程:如何用这些概念描述一个时钟

在工程实践中,描述一个时钟通常遵循以下步骤,这也是后续做时间同步前的“体检清单”:

  1. 确定参考时钟:选择一个系统内公认的基准,如 GPS 秒脉冲、PTP 主时钟或系统单调时钟。
  2. 测量频率与周期:用参考时钟统计被测时钟在固定时间窗内的计数,得到实际频率与周期。
  3. 估计偏移 β:在某一时刻同时读取两个时钟,差值即为该时刻的偏移。
  4. 估计漂移 α:在多个时间点重复测量偏移,用线性回归拟合斜率,得到频率比例因子。
  5. 评估抖动 ε(t):对同一事件重复打时间戳,计算标准差或 Allan 方差,量化短期波动。
  6. 建立补偿模型:用 α、β 做线性修正,用滤波抑制 ε(t),输出对齐后的时间戳。

四、案例场景:两个 IMU 与一个相机的时间戳差异

假设一个机器人系统中有两个 IMU(IMU-A、IMU-B)和一个相机。IMU-A 使用 1 kHz 内部晶振,IMU-B 使用 1.0002 kHz 晶振,相机使用系统时钟打时间戳。运行 10 分钟后:

对象 标称频率 实际频率 10 分钟累积偏移 抖动(1σ)
IMU-A 1000 Hz 1000.0 Hz 0 ms 0.05 ms
IMU-B 1000 Hz 1000.2 Hz 约 120 ms 0.08 ms
相机 30 Hz 30.0 Hz 取决于系统时钟 1.5 ms

可以看到,IMU-B 的漂移在 10 分钟内就累积到 120 ms,远超多数融合算法可容忍的范围。如果不做漂移补偿,直接按标称频率对齐,融合结果会出现明显的运动模糊或姿态漂移。相机的抖动虽然只有 1.5 ms,但在高速运动场景下同样会造成图像与 IMU 数据错位。

常见误区:把“时间戳”当成“绝对时间”。很多开发者直接比较两个传感器的时间戳数值,却忽略了它们来自不同时钟坐标系。正确做法是先统一到同一参考时钟,再比较或对齐。

五、复盘与要点清单

  • 时间戳是坐标,不是真理:它只在所属时钟坐标系内有意义。
  • 偏移可测可补,漂移需持续估计:偏移一次对齐即可,漂移必须周期性重估。
  • 抖动无法消除,只能抑制:通过滤波、平均、冗余设计降低其影响。
  • 频率与周期决定分辨率:高频时钟时间分辨率高,但功耗与成本上升。
  • 理想时钟是参照系,真实时钟是待估计对象:所有同步算法的本质,都是估计 α、β 并抑制 ε(t)。

掌握这些基本概念后,后续讨论 PTP、NTP、硬件触发、时间戳插值、时钟驯服等内容时,就能始终抓住“我们在估计什么、补偿什么、抑制什么”这条主线,而不会迷失在具体协议细节中。