CN103471588B - 一种基于误差补偿的惯性测量装置异步通讯同步方法 - Google Patents
一种基于误差补偿的惯性测量装置异步通讯同步方法 Download PDFInfo
- Publication number
- CN103471588B CN103471588B CN201310403915.2A CN201310403915A CN103471588B CN 103471588 B CN103471588 B CN 103471588B CN 201310403915 A CN201310403915 A CN 201310403915A CN 103471588 B CN103471588 B CN 103471588B
- Authority
- CN
- China
- Prior art keywords
- cycle
- calculation
- value
- calculated
- measuring unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Navigation (AREA)
Abstract
本发明公开了一种基于误差补偿的惯性测量装置异步通讯同步方法,本发明通过在计算程序中增加中间变量Δ1和Δ2用来记录本周期计算数据与上周期计算数据之差,在485中断时刻通过判断本周期计算是否完成来确定发送数据的补偿方案,实现惯性测量装置的精度保持能力,从而克服485通讯双方晶振存在精度差异造成的时序冲突,克服了现有惯性测量装置与上位机之间通讯不同步时重复发数或丢数的问题,确保了惯性导航的精度。
Description
技术领域
本发明涉及一种异步通讯同步方法,尤其涉及一种基于误差补偿的惯性测量装置异步通讯同步方法,适用于要求实时快速导航的技术领域。
背景技术
对于采用485异步通讯的惯性测量装置在与上位机进行信息沟通时,应该按照5ms的计算周期实时把敏感的载体角速度和视加速度信息发送给上位机,上位机按照5ms的周期把接收到的载体角速度和视加速度信息用于导航解算。由于惯性测量装置的5ms计算时刻与上位机485中断请求时刻之间时间差在每次开机处于不确定的状态,并且要求惯性测量装置在计算过程中如果收到485中断请求信号则优先响应485中断请求。这就使得485中断请求来临时,惯性测量装置的响应有两种可能,第一种是本次计算完成则直接把本周期的计算结果发送出去,第二种是本次计算没有完成则可把上周期的计算结果发送出去。第一种情况是最理想的,不存在时间延迟;第二种情况存在时间延迟,即上位机接收到的一帧数据是上一周期的信息,但这种延迟一般是允许的。
但存在一种情况是,惯性测量装置在每个周期内的计算完成时刻与485中断请求时刻近似重合前后,由于惯性测量装置与上位机的晶振精度差异,导致上位机接收到的数据会由一段本周期的数据逐渐变为上一周期的数据,或由一段上一周期的数据逐渐变为本周期的数据。在具体实现时,通过设置变量TMARK来标示本次计算是否完成,并设置两个缓存区1和2。在每次计算完成后,应把本次计算结果先保存到缓存区1,再保存到缓存区2。
如果本周期计算完成并完成缓存区1的数据保存,则TMARK=0,将本周期的计算结果(缓存区1)发送出去。如果本周期计算还没有完成或者没有完成缓存区1的数据保存,则TMARK=0xFF,5ms角增量和速度增量没有更新,所以会将上一周期计算完成的角增量和速度增量(缓存区2)发送给弹上计算机,计算时序如图1所示。
如图1所示,485请求中断来时有三种可能:
(1)在程序计算时有请求,虽然TMARK=0,但由于缓存区①放置的是上一周期的数据,因此发送的仍然是上一周期的数据;
(2)在TMARK=0xFF和TMARK=0之间时有请求,此时TMARK=0xFF,则应发送缓存区②的数据。由于缓存区②放置的上一周期的数据,因此,此时仍然发送上一周期的数据;
(3)在TMARK=0时,本周期的数据已经完整保存到缓存区1,因此,可把缓存区1的数据发送出去。
按照图1的分析,给出发送数据的流程图如图2所示。其中,TMARK=0表示计算已完成,TMARK=0xFF表示计算没有完成。图1只是表示了一个周期内的时序图,而按照图2的流程,如果上周期计算完成而本周期计算没有完成,则会出现两个周期发送相同数据的情况,此时会丢失一帧数据,对导航结果造成影响。
把多个周期可能出现的时序分三种情况,如图3所示。
在理论上,导航解算的积分值为S=A+B+C+D+E+F+G+...(1)
在图3(a)中,485请求来时补偿程序已计算完,因此在每个周期发送本周期的计算值。此时,导航解算的积分值与理论值相同,如式(1),Sa=S。
而在图3(b)中,485请求来时补偿程序还没有计算完,因此在每个周期发送上一周期的计算值。对于导航解算的结果可表示为
Sb=A+B+C+D+E+F+F+...=S-G(2)
此时,导航解算的误差只取决于最后值G,随着时间的增加,此项误差可以忽略。
而在图3(c)中,485请求来时补偿程序在A、F、G计算完,而在B、C、D、E没有计算完,根据图4的流程图导航解算的结果可表示为
Sc=A+A+B+C+D+F+G+...=S+A-E(3)
可以看出,随着时间的增加,初始值A引起的误差可以忽略。但是,由于E值时刻的不确定性,或此情况发生频率的概率不确定,第三种情况会引起重复发数或丢数时不可控制,在大信号时会对导航精度有较大影响。因此,如何克服通讯不同步时重复发数或丢数,并确保导航精度仍然有效是惯性测量装置与上位机之间通讯的一个难点。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于误差补偿的惯性测量装置异步通讯同步方法,解决了通讯不同步时重复发数或丢数导致惯性测量装置的导航精度受损问题,提高了惯性导航的精度。
本发明的技术解决方案:一种基于误差补偿的惯性测量装置异步通讯同步方法,在计算程序中设置两个缓存区1和2,每次计算完成后,本次计算结果先保存到缓存区1,再保存到缓存区2,其特征在于:
(1)在惯性测量装置的每个计算周期,将计算是否完成标志TMARK=0xFF放在计算程序的开始端,并在计算程序中增加两个变量Δ1、Δ2,其中Δ1为本周期的计算误差,Δ1=本周期的计算值-上周期的计算值;Δ2为上周期的计算误差,设两个计算误差初始值Δ1=0,Δ2=0;
(2)每个计算周期计算程序接收485中断请求,当485中断请求来临时,如果本周期内的计算未完成,则执行步骤(a),如果本计算周期内的计算已完成,则执行步骤(b);
(a)计算是否完成标志TMARK保持不变,TMARK=0xFF,计算程序的输出结果为存储在缓存区2中的值,存储在缓存区2中的值为上周期的计算值+Δ1,计算程序将输出结果通过485总线发出,待计算完成后,置Δ2=Δ1;
(b)置计算是否完成标志TMARK=0,计算程序的输出结果为存储在缓存器1中的值,存储在缓存器1中的值为本周期计算值+Δ2,计算程序将输出结果通过485总线发出,然后重置Δ1=0,Δ2=0;
(3)完成异步通讯同步。
本发明与现有技术相比的优点如下:本发明通过在计算程序中增加中间变量Δ1和Δ2用来记录本周期计算数据与上周期计算数据之差,在485中断时刻通过判断本周期计算是否完成来确定发送数据的补偿方案,实现惯性测量装置的精度保持能力,从而克服485通讯双方晶振存在精度差异造成的时序冲突,克服了现有惯性测量装置与上位机之间通讯不同步时重复发数或丢数的问题,确保了惯性导航的精度。
附图说明
图1为现有计算程序发送数据时序图;
图2为现有计算程序发送数据流程图;
图3为多个周期发送数据的时序图;
图4为本发明程序计算流程图;
图5为本发明发送数据流程图;
图6为本发明方法发送数据时序图。
具体实施方式
为实现惯性测量装置与上位机之间通讯不同步时惯性导航的精度保持能力,本发明的主要改进包括以下几个方面:
图4所示,在每个5ms周期开始计算时,把TMARK=0xFF标志放在程序的开始端,并在计算程序中增加两个变量Δ1、Δ2,其中Δ1为本周期的计算误差,Δ1=本周期的计算值-上周期的计算值;Δ2为上周期的计算误差,设两个计算误差初始值Δ1=0,Δ2=0;缓存区1放置的数据为本周期的计算结果+Δ2,缓存区2放置的数据为上周期的计算结果+Δ1。
如图5所示,每个计算周期计算程序接收485中断请求,当485中断请求来临时,如果本周期内的计算未完成,则执行步骤(a),如果本计算周期内的计算已完成,则执行步骤(b);
(a)计算是否完成标志TMARK保持不变,TMARK=0xFF,计算程序的输出结果为存储在缓存区2中的值,存储在缓存区2中的值为上周期的计算值+Δ1,计算程序将输出结果通过485总线发出,待计算完成后,置Δ2=Δ1;
(b)置计算是否完成标志TMARK=0,计算程序的输出结果为存储在缓存器1中的值,存储在缓存器1中的值为本周期计算值+Δ2,计算程序将输出结果通过485总线发出,然后重置Δ1=0,Δ2=0;
利用图4、图5的方法对图3进行时序分析,设增量初始值Δ1=0,Δ2=0,导航初始值S0=0。
在图3(a)中,485请求来时补偿程序已计算完,由于Δ1=0,Δ2=0,因此在每个周期发送本周期的计算值。发送完后,重新置Δ1=0,Δ2=0。此时,导航解算的积分值与理论值相同,如式(1),Sa=S。
而在图3(b)中,485请求来时补偿程序还没有计算完,因此在每个周期发送上一周期的计算值。对于导航解算的结果可表示为
Sb=(A+A)+(2B-A)+(2C-B)+(2D-C)+(2E-D)+(2F-E)+...
=A+B+C+D+E+2F+...
=S+(F-G)(4)
从上式可以看出,由于误差(F-G)只取决于导航解算的最后两个值,随着导航解算时间的增加,该项误差也可以忽略。因此,式(4)计算方法引起的误差受控。
而在图3(c)中,485请求来时补偿程序在A、F、G计算完,而在B、C、D、E没有计算完,根据图4的流程图导航解算的结果可表示为
Sc=A+A+(2B-A)+(2C-B)+(2D-C)+(F+E-D)+G+...=S(5)
可以看出,第三种情况有效消除了重复发数或丢数的问题。
综合以上三种情况,本发明可以有效消除重复发数或丢数的问题。
本发明方法发送数据时序如图6所示,485请求中断来时有两种可能:
(1)在程序计算时有请求,TMARK=0xFF,由于Δ1没有更新,因此发送放在缓存区②中的值,该值为上一周期的计算数据+Δ1;在退出485中断且计算完成后,Δ2=Δ1,Δ1=本周期计算值-上一周期计算值;
(2)在TMARK=0时,表示在485通讯来之前就已经完成Δ2=Δ1、Δ1=本周期计算值-上一周期计算值的操作,本周期的数据+Δ2已经完整保存到缓存区①,因此,可把缓存区①的数据发送出去,并置Δ1=0、Δ2=0。退出485中断后不再进行任何操作。
本发明未详细描述内容为本领域技术人员公知技术。
Claims (1)
1.一种基于误差补偿的惯性测量装置异步通讯同步方法,在计算程序中设置两个缓存区1和2,每次计算完成后,本次计算结果先保存到缓存区1,再保存到缓存区2,其特征在于步骤如下:
(1)在惯性测量装置的每个计算周期,将计算是否完成标志TMARK=0xFF放在计算程序的开始端,并在计算程序中增加两个变量Δ1、Δ2,其中Δ1为本周期的计算误差,Δ1=本周期的计算值-上周期的计算值;Δ2为上周期的计算误差,设两个计算误差初始值Δ1=0,Δ2=0;
(2)每个计算周期计算程序接收485中断请求,当485中断请求来临时,如果本周期内的计算未完成,则执行步骤(a),如果本计算周期内的计算已完成,则执行步骤(b);
(a)计算是否完成标志TMARK保持不变,TMARK=0xFF,计算程序的输出结果为存储在缓存区2中的值,存储在缓存区2中的值为上周期的计算值+Δ1,计算程序将输出结果通过485总线发出,待计算完成后,置Δ2=Δ1;
(b)置计算是否完成标志TMARK=0,计算程序的输出结果为存储在缓存器1中的值,存储在缓存器1中的值为本周期计算值+Δ2,计算程序将输出结果通过485总线发出,然后重置Δ1=0,Δ2=0;
(3)完成异步通讯同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310403915.2A CN103471588B (zh) | 2013-09-06 | 2013-09-06 | 一种基于误差补偿的惯性测量装置异步通讯同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310403915.2A CN103471588B (zh) | 2013-09-06 | 2013-09-06 | 一种基于误差补偿的惯性测量装置异步通讯同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103471588A CN103471588A (zh) | 2013-12-25 |
CN103471588B true CN103471588B (zh) | 2016-02-10 |
Family
ID=49796539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310403915.2A Active CN103471588B (zh) | 2013-09-06 | 2013-09-06 | 一种基于误差补偿的惯性测量装置异步通讯同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103471588B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109631892B (zh) * | 2019-01-22 | 2020-04-10 | 武汉大学 | 一种imu数据中断的组合导航数据处理方法 |
CN111121763A (zh) * | 2019-12-09 | 2020-05-08 | 重庆鲲量科技有限公司 | 一种在光纤惯性导航中基于fpga的数据解析方法 |
CN113252032B (zh) * | 2021-06-04 | 2021-10-22 | 华中光电技术研究所(中国船舶重工集团公司第七一七研究所) | 一种基于流水式旋转矢量的圆锥误差补偿方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818556A (zh) * | 2006-03-29 | 2006-08-16 | 北京航空航天大学 | 一种小体积开环光纤陀螺捷联惯性测量装置 |
CN101487709A (zh) * | 2009-02-27 | 2009-07-22 | 哈尔滨工程大学 | 一种微小型惯性测量装置 |
CN101598555A (zh) * | 2008-06-04 | 2009-12-09 | 中国科学院自动化研究所 | 基于ZigBee无线单片机的微惯性测量装置 |
CN201707053U (zh) * | 2010-03-12 | 2011-01-12 | 北京航天控制仪器研究所 | 一种惯性测量装置火箭橇试验数据采集系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135327A1 (en) * | 2002-01-11 | 2003-07-17 | Seymour Levine | Low cost inertial navigator |
-
2013
- 2013-09-06 CN CN201310403915.2A patent/CN103471588B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818556A (zh) * | 2006-03-29 | 2006-08-16 | 北京航空航天大学 | 一种小体积开环光纤陀螺捷联惯性测量装置 |
CN101598555A (zh) * | 2008-06-04 | 2009-12-09 | 中国科学院自动化研究所 | 基于ZigBee无线单片机的微惯性测量装置 |
CN101487709A (zh) * | 2009-02-27 | 2009-07-22 | 哈尔滨工程大学 | 一种微小型惯性测量装置 |
CN201707053U (zh) * | 2010-03-12 | 2011-01-12 | 北京航天控制仪器研究所 | 一种惯性测量装置火箭橇试验数据采集系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103471588A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106817184B (zh) | 网络测量中本地时钟与gps时钟的时间同步方法及装置 | |
CN109669899B (zh) | 自适应调节串口通信波特率的方法及串口装置 | |
CN103471588B (zh) | 一种基于误差补偿的惯性测量装置异步通讯同步方法 | |
CN111831054B (zh) | 一种异步系统时钟同步方法、装置、系统和存储介质 | |
CN113327344B (zh) | 融合定位方法、装置、设备、存储介质及程序产品 | |
CN110377106B (zh) | 一种时统卡虚拟化方法、系统及介质 | |
CN109752738A (zh) | 基于标准时标的imu与gnss数据同步方法 | |
US9882705B2 (en) | Communication apparatus, communication method, and computer readable medium using propagation delay for time synchronization | |
CN103838183A (zh) | 一种数控系统及其输出控制方法 | |
CN103900575A (zh) | 一种双dsp分步式pos实时导航解算系统 | |
CN109660310B (zh) | 一种时钟同步的方法、装置、计算设备及计算机存储介质 | |
CN106933535B (zh) | 一种在单片机系统中实现高精度延时的方法 | |
CN115391158A (zh) | 一种时延确定方法、系统、装置及电子设备 | |
CN115102453A (zh) | 一种位置控制系统及方法 | |
JP2007536659A (ja) | 自動化システムのシミュレーションのための方法及び装置 | |
CN109309637B (zh) | 传输信号的数据存储方法、装置及存储介质 | |
CN115333715B (zh) | 一种窄带通信系统的同步方法、装置、通信设备及介质 | |
CN116090550B (zh) | 联邦学习方法、装置、服务器、电子设备及存储介质 | |
RU150924U1 (ru) | Высокоточное устройство синхронизации импульсно-кодовых сигналов с детерминированной структурой | |
CN211741962U (zh) | 一种计算机与带硬件触发功能设备的时钟驯服系统 | |
CN112286846B (zh) | 一种处理中断事件的方法和设备 | |
CN109271219B (zh) | 一种倒计时动画位置的计算方法及装置 | |
CN115664570A (zh) | 时钟同步方法、装置、系统、设备和存储介质 | |
CN118694457A (zh) | 时间校准方法及装置、车辆、服务器和存储介质 | |
CN115642978A (zh) | 一种系统时钟同步方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |