本发明属于工业通信,尤其涉及一种传感器的软件时间同步实现方法。
背景技术:
1、在多传感器集成的应用场景中,确保各个传感器的时间同步是至关重要的。时间同步意味着所有传感器的内部时钟必须保持一致,以便它们在同一时间点上采集数据。这种同步性能够保证传感器之间的数据在时间上具有一致性,从而使多传感器系统能够正确地融合各个传感器的测量结果。如果传感器之间无法保持时间上的同步,系统将面临数据之间缺乏时间关联的问题,可能导致测量结果失真或难以整合,最终影响整个系统的准确性和可靠性。
2、对于单个传感器而言,时间精度同样不容忽视。准确的时间戳不仅有助于记录传感器测量的具体时刻,还能够提高测量结果的精确性。时间戳的准确性直接关系到数据的有效性,尤其是在需要进行长时间监测或对时序要求较高的应用中。无论是单一传感器还是多传感器系统,时间管理的精确性都是确保数据质量和系统性能的关键因素。因此,在设计和实现传感器系统时,时间同步与时间管理应当被优先考虑,并且应采取有效的技术手段来实现这一目标。
3、如图1所示,传感器与soc之间的传输方式通过请求和响应的方式进行通信,soc需要传感器数据时,向传感器发送请求信号,请求信号包括对应传感器的id,请求的内容等等。传感器接收到soc的请求信号后,通过检查是请求的是自身数据后。发送响应信号,响应信号中包括传感器测量出的物理量,在具有片上时间传感器上,还会包含时刻信息,但这个时刻信息受片上晶振准确性的影响。可能存在误差。当存在误差时,其与正常时间的误差会逐渐累积,形成累积误差。
4、在使用传感器的场景中,拥有晶振的传感器拥有片上时间的功能。晶振是在半导体设备上通过某一频率控制片上时间的增加的器件,在初始化时间后,晶振根据频率更新片上时间,保持与现实时间的同步。拥有晶振的传感器能够返回传感器上的时间,但常常会遇到传感器自带的晶振精度不足,导致时间更新产生误差的问题,并且误差可累积,使片上时间与现实时间偏移愈发增大,最终导致传感器上的时间戳变得不可靠,进而使多传感器系统无法实现时间同步。这种情况对系统的整体性能和数据的准确性构成了严重威胁,尤其是在依赖于精确时序的应用中,可能会导致系统出现偏差或错误。
5、为了解决传感器时间同步的问题,可以采用一种基于组策略的方法。相当于放弃了传感器上的片上时间功能。在这种策略下,将数据的读取请求按照预定的组别进行分发,每个组的传感器将保证在一个时间段内接收到数据读取请求,并在同一时间段内采集数据。随后,系统将按照组别读取传感器返回的数据,并为每个组的数据打上相同的时间戳,以表示这些数据是在同一时间段内采集的。这种方法通过将时间同步问题简化为组内同步,减少了个体传感器时间误差对整体系统的影响。然而,这种基于组策略的方法获得的时间是近似的,只能保证一组传感器发生在某个同一时间段内。由于时间戳是基于组的,而不是精确到每个传感器,因此组内各传感器之间仍然可能存在微小的时间差异。此外,这种方法无法根本解决单个传感器时间精度的问题,尤其是在晶振偏差较大的情况下,单个传感器的时间误差依然会对数据的精度产生影响。因此,尽管组策略能够在一定程度上缓解多传感器时间同步的问题,但在高精度要求的应用中,仍需考虑更为先进的同步技术或对传感器的时间基准进行更严格的校准。
技术实现思路
1、针对上述问题,本发明提供了一种传感器的软件时间同步实现方法,应用于传感器与soc端之间通过请求和响应的方式进行通信的场景中,在soc端发出对传感器的请求信号时,soc记录该时刻为传感器请求发送时刻,请求信号到达传感器后,传感器会返回soc一个数据包,数据包中包含数据产生的片上时刻,该时刻包含由于晶振不稳定带来的累积误差;随后,传感器将数据包发送至soc后,soc记录响应到达时刻;n表示第n次对传感器发出请求及响应;使用卡尔曼滤波模型获取第n次的累积误差的估计值,并包括以下过程:
2、s1,根据历史实验数据,获取卡尔曼滤波模型所需的初始值参数;
3、s2,根据传感器请求和响应过程中获得的时刻数据,获得累积误差的观测值;
4、s3,根据累积误差的观测值,输入卡尔曼滤波模型,得到累积误差的估计值;
5、s4,根据累积误差的估计值,以及第n时刻的片上时刻,计算得到校正后的传感器测量时刻。
6、优选的,所述s1中获取卡尔曼滤波模型所需的初始值参数,具体包括:
7、根据实验数据中的多次请求返回获得的时刻数据,获取累积误差的增长速度,恒等于初始值;
8、根据多次实验数据,得出多个累积误差观测值的数据,根据这些数据得出累积误差观测值的协方差;
9、根据多次实验数据,得出多个累积误差预测值的数据,根据这些数据得出累积误差预测的协方差初始值;
10、累积误差的初始值设为为0,即=0。
11、优选的,所述s2中,获得累积误差观测值,通过以下公式计算得到:
12、
13、其中是第n次的片上时刻;是传感器响应到达时刻;是传感器请求发送时刻。
14、优选的,所述s3的具体过程为:
15、s31,基于获得的速度构建出物理模型,即构建状态转移方程用于预测,状态转移方程公式为:
16、
17、其中,是根据n-1次的累计误差估计值对第n次的累计误差预测值;是第n-1次的累计误差估计值;是第n次的与第n-1次时的片上时刻的差值,即:
18、
19、其中,是第n次的片上时刻;
20、其中,预测协方差的状态转移方程:
21、
22、其中,是根据n-1次的预测协方差估计值对第n次的预测协方差外插;是第n-1次的预测协方差估计值;
23、s32,通过第n-1次对传感器请求时卡尔曼滤波的累积误差估计值,以及,获得的状态转移方程,获得累积误差的n时刻的预测值:
24、
25、其中,是根据n-1次的累积误差估计值对第n次的预测值;是第n-1次的累计误差估计值;是第n次与第n-1次时的片上时刻的差值;
26、s33,根据预测协方差转移矩阵:
27、
28、其中,是根据n-1次的预测协方差估计值对第n次的预测协方差外插;
29、s34,根据,计算出的以及计算第n次卡尔曼增益:
30、
31、其中表示第n次的卡尔曼增益,是根据n-1次的预测协方差估计值对第n次的预测协方差外插,是累积误差观测值的观测协方差;
32、s35,根据获得的卡尔曼增益以及累积误差的n时刻的累积误差预测值得出第n次的累积误差估计值:
33、
34、其中,是通过n-1次的累计误差估计值对第n次的累计误差预测值;是累积误差观测值;表示第n次的卡尔曼增益;
35、s36,根据获得的卡尔曼增益以及n-1次的预测协方差估计值对第n次的预测协方差外插得出第n次预测协方差估计值:
36、
37、其中是通过n-1次的预测协方差估计值对第n次的预测协方差外插,表示第n次的卡尔曼增益。
38、优选的,所述s4中的具体过程为:
39、根据s3中计算得到的第n次的累积误差估计值,以及第n次的片上时刻,得出校正后的传感器测量时刻:
40、
41、其中是第n次的片上时间;是第n次的累积误差估计值。
42、与现有技术相比,本发明具有如下有益效果:
43、本发明提供的一种传感器的软件时间同步实现方法,随着时间的推移,通过不断更新卡尔曼滤波中的协方差矩阵,算法会逐渐收敛,使误差估计值更加接近于传感器时间与ntp网络时间之间的真实差值。这种收敛效果不仅提高了时间校正的精度,还减少了误差对系统整体性能的影响,确保传感器时间能够稳定地反映实际时间。
44、在单个传感器的校准过程中,卡尔曼滤波能够有效校正因传感器误差引起的时间偏差。然而,在多传感器系统中,由于每个传感器的时间误差可能各不相同,时间同步问题更加复杂。为了解决这一问题,通过本发明方法将多个传感器的时间线分别与soc的真实时间线进行投影,通过这种投影,能够将多个传感器的时间校正到同一时间基准上,实现多传感器系统的时间同步。这种同步不仅有助于提高系统的整体精度和可靠性,还能在复杂应用场景中,确保不同传感器的数据能够在相同的时间基准上进行有效整合和分析。