MEMS陀螺仪零位值自动校准方法与流程

文档序号:12173247阅读:3775来源:国知局

本发明涉及MEMS陀螺仪零位值校准,特别是涉及MEMS陀螺仪零位值自动校准方法。



背景技术:

MEMS陀螺仪具有占用体积小、价格低、灵敏度高的特点,广泛应用于与卫星信号接收相关的领域,如动中收系统,该系统使用MEMS陀螺仪作为运动角速度的传感器件,保证动中收系统中的天线面始终对准直播电视广播卫星。理论上,当给MEMS陀螺仪供电后,MEMS陀螺仪输出的模拟电压与绕安装平面法线转动的角速度成正比。当MEMS陀螺仪静止不动,也就是角速度为0时,单电源供电的MEMS陀螺仪输出的模拟电压称为零位值,有时也叫中位值,理论上该值是MEMS陀螺仪供电电压的1/2。零位值不但受供电电压影响,还受当前环境温度影响,因此实际上零位值是一个变动的量。由于零位值的变动,导致MEMS陀螺仪输出的模拟电压不能完全反映角速度,当零位值偏差较大,以此计算的角速度实际上与真实的角速度有很大偏差,自动跟踪就会失常。

现有技术中,为了解决零位值不准的问题,在整机生产的某个环节,会进行手动校准:在静止状态下,让一台整机中的微处理器记录当前状态下的MEMS陀螺仪零位值,并将该零位值存储到整机的非易失存储器中。在整机使用后,调出存储值作为零位值使用。这种方法虽然解决了单个陀螺仪在整机中零位值的唯一性的问题,但是缺陷却是显而易见的:随着环境温度的变化,陀螺仪零位值在改变,给陀螺仪供电的电源电压也是变化的。因此,这种方法得到的零位值精度较差。



技术实现要素:

发明目的:本发明的目的是提供一种能够得到精度较高的零位值的MEMS陀螺仪零位值自动校准方法。

技术方案:本发明所述的MEMS陀螺仪零位值自动校准方法,包括以下步骤:

S1:将MEMS陀螺仪出厂前处于确定静止状态下采集到的零位值存入非易失性存储器中;

S2:MEMS陀螺仪出厂后,在开机工作时多次采集MEMS陀螺仪的输出电压,判断所有MEMS陀螺仪是否都处于静止状态:如果是,则将MEMS陀螺仪输出电压的算术平均值作为相应MEMS陀螺仪的零位值,并存入非易失性存储器中;如果不是,则调用非易失性存储器中的数据作为MEMS陀螺仪的零位值。

进一步,所述步骤S2中,所有MEMS陀螺仪是否都处于静止状态通过以下方法判断:

S2.1:将多次采集到的MEMS陀螺仪的输出电压用数组进行存储;

S2.2:求出数组的算术平均值、方差和极值差;

S2.3:判断所有MEMS陀螺仪是否都满足条件1—条件3:如果都满足,则判定所有MEMS陀螺仪都处于静止状态;否则,则判定至少有一个MEMS陀螺仪处于运动状态;

条件1:数组的算术平均值与相应MEMS陀螺仪出厂时采集到的零位值之差的绝对值小于第一经验值;

条件2:数组的方差小于第二经验值;

条件3:数组的极值差小于第三经验值。

进一步,所述MEMS陀螺仪有至少两个,步骤S2中,所有MEMS陀螺仪是否都处于静止状态通过以下方法判断:

S2.1:将多次采集到的MEMS陀螺仪的输出电压用数组进行存储,一个数组存储一个MEMS陀螺仪的输出电压;

S2.2:求出各个数组的算术平均值、方差、极值差以及算术平均值的变化趋势;

S2.3:判断所有MEMS陀螺仪是否都满足条件1—条件4:如果都满足,则判定所有MEMS陀螺仪都处于静止状态;否则,则判定至少有一个MEMS陀螺仪处于运动状态;

条件1:数组的算术平均值与相应MEMS陀螺仪出厂时采集到的零位值之差的绝对值小于第一经验值;

条件2:数组的方差小于第二经验值;

条件3:数组的极值差小于第三经验值;

条件4:各个数组的算术平均值的变化趋势一致。其中,算术平均值的变化趋势为数组的算术平均值相对于相应MEMS陀螺仪出厂前处于确定静止状态下采集到的零位值的变化趋势。

有益效果:本发明公开了一种MEMS陀螺仪零位值自动校准方法,多次采集MEMS陀螺仪的输出电压,在MEMS陀螺仪处于静止状态时,将所有输出电压的算术平均值作为MEMS陀螺仪的零位值,这样能够实时采集到MEMS陀螺仪的输出电压,并且将供电电压和环境温度的影响实时反映到零位值中,提高了零位值的精度。

附图说明

图1为本发明具体实施方式的方法流程图。

具体实施方式

下面结合附图和具体实施方式,对本发明的技术方案作进一步的介绍。

本具体实施方式公开了一种MEMS陀螺仪零位值自动校准方法,用于安装在同一个载体上的两个MEMS陀螺仪的零位值自动校准,如图1所示,包括以下步骤:

S1:将两个MEMS陀螺仪出厂前处于确定静止状态下采集到的零位值GYRO1_ZERO_REF_VAL和GYRO2_ZERO_REF_VAL存入非易失性存储器中;

S2:两个MEMS陀螺仪出厂后,在开机工作时分别对两个MEMS陀螺仪多次采集输出电压,判断两个MEMS陀螺仪是否都处于静止状态:如果是,则将MEMS陀螺仪输出电压的算术平均值作为相应MEMS陀螺仪的零位值,并存入非易失性存储器中;如果不是,则调用非易失性存储器中的数据作为MEMS陀螺仪的零位值。

步骤S2包括以下步骤:

S2.1:开机后延时5秒,等待系统稳定后,对两个MEMS陀螺仪分别采集100次输出电压,分别存储在数组gyro1_temp_val[]和gyro2_temp_val[]中;

S2.2:求出两个数组的算术平均值gyro1_average和gyro2_average,方差diff1_square_sum和diff2_square_sum,极值差diff1_max和diff2_max,第一个数组的算术平均值gyro1_average相对于GYRO1_ZERO_REF_VAL的变化趋势gyro1_trands,以及第二个数组的算术平均值gyro2_average相对于GYRO2_ZERO_REF_VAL的变化趋势gyro2_trands;

S2.3:判断各个MEMS陀螺仪是否都满足条件1—条件4:如果都满足,则判定各个MEMS陀螺仪处于静止状态;否则,则判定至少有一个MEMS陀螺仪处于运动状态;

条件1:abs(gyro1_average-GRRO1_ZERO_REF_VAL)<100,abs(gyro2_average-GRRO2_ZERO_REF_VAL)<100;

条件2:diff1_square_sum<400,diff2_square_sum<400;

条件3:diff1_max<30,diff2_max<30;

条件4:gyro1_trands和gyro2_trands值趋势一致。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1