一种基于误差补偿的惯性测量装置异步通讯同步方法

文档序号:7769565阅读:403来源:国知局
一种基于误差补偿的惯性测量装置异步通讯同步方法
【专利摘要】本发明公开了一种基于误差补偿的惯性测量装置异步通讯同步方法,本发明通过在计算程序中增加中间变量Δ1和Δ2用来记录本周期计算数据与上周期计算数据之差,在485中断时刻通过判断本周期计算是否完成来确定发送数据的补偿方案,实现惯性测量装置的精度保持能力,从而克服485通讯双方晶振存在精度差异造成的时序冲突,克服了现有惯性测量装置与上位机之间通讯不同步时重复发数或丢数的问题,确保了惯性导航的精度。
【专利说明】一种基于误差补偿的惯性测量装置异步通讯同步方法【技术领域】
[0001]本发明涉及一种异步通讯同步方法,尤其涉及一种基于误差补偿的惯性测量装置异步通讯同步方法,适用于要求实时快速导航的【技术领域】。
【背景技术】[0002]对于采用485异步通讯的惯性测量装置在与上位机进行信息沟通时,应该按照5ms的计算周期实时把敏感的载体角速度和视加速度信息发送给上位机,上位机按照5ms的周期把接收到的载体角速度和视加速度信息用于导航解算。由于惯性测量装置的5ms计算时刻与上位机485中断请求时刻之间时间差在每次开机处于不确定的状态,并且要求惯性测量装置在计算过程中如果收到485中断请求信号则优先响应485中断请求。这就使得485中断请求来临时,惯性测量装置的响应有两种可能,第一种是本次计算完成则直接把本周期的计算结果发送出去,第二种是本次计算没有完成则可把上周期的计算结果发送出去。第一种情况是最理想的,不存在时间延迟;第二种情况存在时间延迟,即上位机接收到的一帧数据是上一周期的信息,但这种延迟一般是允许的。
[0003]但存在一种情况是,惯性测量装置在每个周期内的计算完成时刻与485中断请求时刻近似重合前后,由于惯性测量装置与上位机的晶振精度差异,导致上位机接收到的数据会由一段本周期的数据逐渐变为上一周期的数据,或由一段上一周期的数据逐渐变为本周期的数据。在具体实现时,通过设置变量TMARK来标示本次计算是否完成,并设置两个缓存区I和2。在每次计算完成后,应把本次计算结果先保存到缓存区1,再保存到缓存区2。
[0004]如果本周期计算完成并完成缓存区I的数据保存,则TMARK=O,将本周期的计算结果(缓存区I)发送出去。如果本周期计算还没有完成或者没有完成缓存区I的数据保存,则TMARK=0xFF,5ms角增量和速度增量没有更新,所以会将上一周期计算完成的角增量和速度增量(缓存区2)发送给弹上计算机,计算时序如图1所示。
[0005]如图1所示,485请求中断来时有三种可能:
[0006](I)在程序计算时有请求,虽然TMARK=O,但由于缓存区①放置的是上一周期的数据,因此发送的仍然是上一周期的数据;
[0007](2)在Tmark=OxFF和TMARK=O之间时有请求,此时TMARK=0xFF,则应发送缓存区②的数据。由于缓存区②放置的上一周期的数据,因此,此时仍然发送上一周期的数据;
[0008](3)在TMARK=O时,本周期的数据已经完整保存到缓存区1,因此,可把缓存区I的数据发送出去。
[0009]按照图1的分析,给出发送数据的流程图如图2所示。其中,TMARK=O表示计算已完成,Tmark=Oxff表示计算没有完成。图1只是表示了一个周期内的时序图,而按照图2的流程,如果上周期计算完成而本周期计算没有完成,则会出现两个周期发送相同数据的情况,此时会丢失一帧数据,对导航结果造成影响。
[0010]把多个周期可能出现的时序分三种情况,如图3所示。
[0011 ] 在理论上,导航解算的积分值为S=A+B+C+D+E+F+G+...(I)[0012]在图3(a)中,485请求来时补偿程序已计算完,因此在每个周期发送本周期的计算值。此时,导航解算的积分值与理论值相同,如式(l),Sa=S。
[0013]而在图3(b)中,485请求来时补偿程序还没有计算完,因此在每个周期发送上一周期的计算值。对于导航解算的结果可表示为
[0014]Sb=A+B+C+D+E+F+F+...=S-G(2)
[0015]此时,导航解算的误差只取决于最后值G,随着时间的增加,此项误差可以忽略。
[0016]而在图3(c)中,485请求来时补偿程序在A、F、G计算完,而在B、C、D、E没有计算完,根据图4的流程图导航解算的结果可表示为
[0017]Sc=A+A+B+C+D+F+G+...=S+A_E(3)
[0018]可以看出,随着时间的增加,初始值A引起的误差可以忽略。但是,由于E值时刻的不确定性,或此情况发生频率的概率不确定,第三种情况会引起重复发数或丢数时不可控制,在大信号时会对导航精度有较大影响。因此,如何克服通讯不同步时重复发数或丢数,并确保导航精度仍然有效是惯性测量装置与上位机之间通讯的一个难点。

【发明内容】

[0019]本发明的技术解决问题:克服现有技术的不足,提供一种基于误差补偿的惯性测量装置异步通讯同步方法,解决了通讯不同步时重复发数或丢数导致惯性测量装置的导航精度受损问题,提高了惯性导航的精度。
[0020]本发明的技术解决方案:一种基于误差补偿的惯性测量装置异步通讯同步方法,在计算程序中设置两个缓存区I 和2,每次计算完成后,本次计算结果先保存到缓存区1,再保存到缓存区2,其特征在于:
[0021](I)在惯性测量装置的每个计算周期,将计算是否完成标志TMARK=0xFF放在计算程序的开始端,并在计算程序中增加两个变量Λ 1、A2,其中A1为本周期的计算误差,Δ 1=本周期的计算值-上周期的计算值;△ 2为上周期的计算误差,设两个计算误差初始值Δ J=O, A2=O ;
[0022](2)每个计算周期计算程序接收485中断请求,当485中断请求来临时,如果本周期内的计算未完成,则执行步骤(a),如果本计算周期内的计算已完成,则执行步骤(b);
[0023](a)计算是否完成标志TMARK保持不变,TMARK=0xFF,计算程序的输出结果为存储在缓存区2中的值,存储在缓存区2中的值为上周期的计算值+ A1,计算程序将输出结果通过485总线发出,待计算完成后,置Λ 2= Λ i ;
[0024](b)置计算是否完成标志TMARK=O,计算程序的输出结果为存储在缓存器I中的值,存储在缓存器I中的值为本周期计算值+ A2,计算程序将输出结果通过485总线发出,然后重置A1=O, A2=O ;
[0025](3)完成异步通讯同步。
[0026]本发明与现有技术相比的优点如下:本发明通过在计算程序中增加中间变量A1和A2用来记录本周期计算数据与上周期计算数据之差,在485中断时刻通过判断本周期计算是否完成来确定发送数据的补偿方案,实现惯性测量装置的精度保持能力,从而克服485通讯双方晶振存在精度差异造成的时序冲突,克服了现有惯性测量装置与上位机之间通讯不同步时重复发数或丢数的问题,确保了惯性导航的精度。【专利附图】

【附图说明】
[0027]图1为现有计算程序发送数据时序图;
[0028]图2为现有计算程序发送数据流程图;
[0029]图3为多个周期发送数据的时序图;
[0030]图4为本发明程序计算流程图;
[0031]图5为本发明发送数据流程图;
[0032]图6为本发明方法发送数据时序图。
【具体实施方式】
[0033]为实现惯性测量装置与上位机之间通讯不同步时惯性导航的精度保持能力,本发明的主要改进包括以下几个方面:
[0034]图4所示,在每个5ms周期开始计算时,把TMARK=0xFF标志放在程序的开始端,并在计算程序中增加两个变量Λρ A2,其中A1为本周期的计算误差,A1=本周期的计算值-上周期的计算值;A2为上周期的计算误差,设两个计算误差初始值A1=O, A2=O;缓存区I放置的数据为本周期的计算结果+ Λ 2,缓存区2放置的数据为上周期的计算结果+ A10
[0035]如图5所示,每个计算周期计算程序接收485中断请求,当485中断请求来临时,如果本周期内的计算未完成,则执 行步骤(a),如果本计算周期内的计算已完成,则执行步骤(b);
[0036](a)计算是否完成标志TMARK保持不变,TMARK=0xFF,计算程序的输出结果为存储在缓存区2中的值,存储在缓存区2中的值为上周期的计算值+ A1,计算程序将输出结果通过485总线发出,待计算完成后,置Λ 2= Λ i ;
[0037](b)置计算是否完成标志TMARK=O,计算程序的输出结果为存储在缓存器I中的值,存储在缓存器I中的值为本周期计算值+ A2,计算程序将输出结果通过485总线发出,然后重置A1=O, A2=O ;
[0038]利用图4、图5的方法对图3进行时序分析,设增量初始值Λ fO,Δ 2=0,导航初始值 S0=O。
[0039]在图3 (a)中,485请求来时补偿程序已计算完,由于A1=O, Λ2=0,因此在每个周期发送本周期的计算值。发送完后,重新置A1=O, A2=O0此时,导航解算的积分值与理论值相同,如式(I),Sa=S。
[0040]而在图3(b)中,485请求来时补偿程序还没有计算完,因此在每个周期发送上一周期的计算值。对于导航解算的结果可表示为
[0041 ] Sb= (A+A) + (2B-A) + (2C-B) + (2D-C) + (2E-D) + (2F-E) +...[0042]=A+B+C+D+E+2F+...[0043]=S+ (F-G)(4)
[0044]从上式可以看出,由于误差(F-G)只取决于导航解算的最后两个值,随着导航解算时间的增加,该项误差也可以忽略。因此,式(4)计算方法引起的误差受控。
[0045]而在图3(c)中,485请求来时补偿程序在A、F、G计算完,而在B、C、D、E没有计算完,根据图4的流程图导航解算的结果可表示为[0046]SC=A+A+ (2B-A) + (2C-B) + (2D-C) + (F+E-D) +G+...=S(5)
[0047]可以看出,第三种情况有效消除了重复发数或丢数的问题。
[0048]综合以上三种情况,本发明可以有效消除重复发数或丢数的问题。
[0049]本发明方法发送数据时序如图6所示,485请求中断来时有两种可能:
[0050](I)在程序计算时有请求,TMARK=0xFF,由于A1没有更新,因此发送放在缓存区②中的值,该值为上一周期的计算数据+A1 ;在退出485中断且计算完成后,A2=A1, A1=本周期计算值-上一周期计算值;
[0051](2)在TMARK=O时,表示在485通讯来之前就已经完成A2=A1' A1=本周期计算值-上一周期计算值的操作,本周期的数据+ Δ 2已经完整保存到缓存区①,因此,可把缓存区①的数据发送出去,并置Λ1=0、A2=O0退出485中断后不再进行任何操作。
[0052]本发明未详细描述内容为本领域技术人员公知技术。
【权利要求】
1.一种基于误差补偿的惯性测量装置异步通讯同步方法,在计算程序中设置两个缓存区I和2,每次计算完成后,本次计算结果先保存到缓存区1,再保存到缓存区2,其特征在于步骤如下: (1)在惯性测量装置的每个计算周期,将计算是否完成标志TMARK=OxFF放在计算程序的开始端,并在计算程序中增加两个变量?、A2,其中A1为本周期的计算误差,A1=本周期的计算值-上周期的计算值;Λ 2为上周期的计算误差,设两个计算误差初始值Λ 1=0,A2=O ; (2)每个计算周期计算程序接收485中断请求,当485中断请求来临时,如果本周期内的计算未完成,则执行步骤(a),如果本计算周期内的计算已完成,则执行步骤(b); Ca)计算是否完成标志TMARK保持不变,TMARK=0xFF,计算程序的输出结果为存储在缓存区2中的值,存储在缓存区2中的值为上周期的计算值+ Λ i,计算程序将输出结果通过485总线发出,待计算完成后,置A2=A1 ; (b)置计算是否完成标志TMARK=O,计算程序的输出结果为存储在缓存器I中的值,存储在缓存器I中的值为本周期计算值+ Λ 2,计算程序将输出结果通过485总线发出,然后重置 Δ J=O, A2=O ; (3)完成异步通讯同步。
【文档编号】H04L1/00GK103471588SQ201310403915
【公开日】2013年12月25日 申请日期:2013年9月6日 优先权日:2013年9月6日
【发明者】魏宗康, 王爱华 申请人:北京航天控制仪器研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1