3. 实时同步的基本概念与时钟模型

在飞控HIL(Hardware-in-the-Loop)系统中,实时同步不是一句“跑得快”就能概括的工程属性,而是一套可度量、可追溯的时间基准体系。要判断一次仿真是否“同步”,我们必须先回答:谁的时间在走?以什么为参照?误差多大算可接受?本节围绕实时时钟、时间戳、采样周期、抖动、漂移以及同步/异步系统这几个核心概念,建立后续延迟分析所依赖的时间坐标系。

一、实时时钟:HIL系统里的“时间尺子”

实时时钟(RTC,Real-Time Clock)在HIL语境下通常指两类对象:一是硬件层面持续计时的时钟源,如晶振、CPU时间戳计数器(TSC)、PTP硬件时钟;二是软件层面用于读取“当前时刻”的接口,如clock_gettime(CLOCK_MONOTONIC)。HIL系统真正依赖的是单调时钟,而不是墙上时钟(wall clock)。墙上时钟可能因NTP校时而跳变,一旦回跳,延迟计算会出现负值,破坏因果判断;单调时钟只增不减,适合测量时间间隔。

在典型HIL架构中,实时仿真机(如运行RT-Linux或VxWorks的目标机)与飞控计算机(FCU)各自拥有独立时钟。若两者不共享同一时间基准,那么“飞控在t时刻发出的舵面指令”与“仿真机在t'时刻收到的信号”之间就无法直接比较。因此,HIL同步分析的第一步,是选定一个主时钟(通常为仿真机时钟),并将其他节点的时钟通过时间戳映射到该基准上。

二、时间戳:给每个事件贴上“时间标签”

时间戳(Timestamp)是事件发生瞬间的时钟读数。在HIL中,关键事件包括:仿真步长开始/结束、传感器数据生成、总线报文发送/接收、飞控控制律解算、执行机构反馈采样等。时间戳的精度和放置位置直接决定延迟分析的可信度。

工程上常区分三种时间戳:

  • 打点时间戳:在代码中调用时钟接口记录的时刻,受函数调用开销和中断延迟影响;
  • 硬件时间戳:由网卡、CAN控制器或FPGA在物理层捕获的时刻,精度可达微秒甚至纳秒级;
  • 逻辑时间戳:仿真步数乘以步长得到的“仿真时间”,用于与真实时间对照。

一个常见的错误是:只在应用层打时间戳,却忽略操作系统调度延迟和协议栈排队时间,导致测得的“端到端延迟”偏小。正确的做法是在信号链的物理入口和物理出口分别打硬件时间戳,中间环节用逻辑时间戳辅助定位。

三、采样周期、抖动与漂移:三个必须区分的量

采样周期Ts是系统设计时确定的标称值,例如飞控内环1 kHz对应Ts=1 ms,HIL仿真步长可能为0.5 ms或1 ms。但实际相邻两次采样的时间间隔并不会严格等于Ts,由此引出两个关键指标:

  • 抖动(Jitter):实际周期围绕标称周期的短期波动,通常用标准差或峰峰值表示。例如标称1 ms,实测周期在0.98~1.03 ms之间,峰峰抖动约50 μs。抖动主要来自调度延迟、中断抢占、总线仲裁和CPU缓存抖动。
  • 漂移(Drift):时钟频率的长期偏差导致的累积误差。例如两个晶振标称均为1 MHz,实际一个为1.000 02 MHz,另一个为0.999 98 MHz,相对漂移为40 ppm。运行1秒后,两者时间差约40 μs;运行1小时后,累积差可达144 ms。漂移是同步系统必须周期性校正的原因。

抖动影响单次延迟的不确定性,漂移影响时间基准的长期一致性。在HIL中,若仿真机与飞控时钟漂移未校正,即使单步延迟很小,长时间运行后也会出现“仿真时间与真实时间脱节”,导致测试结果不可信。

HIL时间基准与同步关系示意 仿真机主时钟 CLOCK_MONOTONIC 飞控计算机时钟 独立晶振 / 本地计时 PTP / 硬件触发同步 周期性校正漂移 t₀ t₁ t₂ t₃ t₄ 抖动 未校正漂移:时间基准逐渐偏移 标称采样时刻 实际采样时刻(含抖动) 漂移趋势

四、同步系统与异步系统:两种时间关系

同步系统指各节点共享同一时间基准,或通过周期性同步使时钟偏差保持在允许范围内。HIL中常见的同步方式包括:

  • 硬件触发同步:由FPGA或同步脉冲发生器向仿真机和飞控同时发送触发信号,抖动可控制在纳秒级;
  • IEEE 1588 PTP:通过以太网交换硬件时间戳,实现亚微秒级同步,适合分布式HIL;
  • GPS/IRIG-B:提供绝对时间基准,适合多站联合试验。

异步系统则指各节点独立运行,仅通过数据缓冲区交换信息。异步系统实现简单,但延迟不确定,且无法直接比较时间戳。在HIL中,若飞控与仿真机之间采用异步串口或非同步CAN通信,则必须通过“往返延迟测量”或“事件对齐”来估计时间关系,而不能假设两者时钟一致。

判断一个HIL系统是否属于同步系统,关键看三点:是否存在公共时间基准、同步误差是否可量化、同步是否周期性执行。若同步仅在上电时进行一次,之后任由漂移累积,则长期运行后仍会退化为异步系统。

五、建立HIL同步分析的时间基准:一个可操作的检查框架

在实际项目中,建议按以下顺序建立时间基准,而不是直接测量端到端延迟:

  1. 选定主时钟:以仿真机单调时钟为基准,记录其频率源类型和标称频率。
  2. 测量时钟漂移:让飞控与仿真机同时运行1小时,每10秒记录一次双方时间戳,计算相对漂移率(ppm)。示例:若1小时后偏差为36 ms,则漂移约10 ppm。
  3. 评估抖动:在仿真步长中断入口和飞控控制律入口分别打时间戳,统计连续1000个周期的均值和标准差。示例:标称1 ms,实测均值1.002 ms,标准差18 μs,峰峰抖动约70 μs。
  4. 定义同步误差预算:根据飞控控制带宽和测试目标,分配允许的同步误差。例如内环1 kHz,允许相位误差不超过周期的5%,即50 μs。
  5. 选择同步机制并验证:若漂移和抖动超出预算,引入PTP或硬件触发,并重新测量残差。
工程提示:在HIL报告中,任何延迟数据都必须附带时间基准说明——主时钟是谁、同步方式是什么、测量期间漂移和抖动是多少。缺少这些信息,延迟数字无法复现,也无法判断是否满足测试要求。

总结来说,实时同步的本质是让所有时间戳可比较。实时时钟提供尺子,时间戳标记事件,采样周期定义节拍,抖动和漂移描述误差,同步与异步则决定误差是否可控。只有先建立这套时间基准,后续对HIL延迟的分解、归因和优化才有意义。