线性度是加速度计的一个关键指标,要实现高的线性度,常常意味着高成本,如果采用线性补偿技术,可以有效地提高加速度计的性能价格比。从实现线性补偿的方法看,只依靠电路补偿措施来完成线性补偿是很困难的,使用MCU(单片机系统)通过软件来解决加速度计的线性误差问题是一个有效的方法[1,2]。
在单片机加速度计线性补偿系统中,要解决加速度计的线性补偿问题,首先要进行线性度试验,得出加速度计的线性误差,再结合试验数据分析研究加速度计的线性特性。在单片机的控制下开始进行相应的信号转换,单片机读取转换后的加速度信号,进行补偿。补偿结束后,通过单片机转换接口,进行相应的信号转换,得到补偿后的加速度信号[2,3]。
加速度计单片机线性补偿系统原理框图如图1所示。

1 线性补偿的数学模型
线性误差(非线性)就是理论与实际的偏差,表现在加速度的输入输出特性曲线上的非线性变化。为解决这样的问题,必须找出它们之间的关系,建立对应的数学模型。数学模型的正确建立是很重要的,模型不外乎动态的和静态的。就动态而言,需要用随机信号处理的方法。因为误差的来源是一些高斯分布的白噪,这些数据可以看为随机信号,可选择随机信号处理的典型算法:维纳滤波和卡尔曼滤波算法。
首先,卡尔曼过滤和维纳滤波应用背景很不明确,在只有几组试验数据的情况下建立量测方程的话,参数的到位是有问题的。其次,在实际的应用中,加速度计工作过程并不是一个随机的过程,而是一个加速度有增有减的过程,而且它的增减有一定的规律可循。虽然以一个随机过程来解这个模型,但会引入许多与解决问题相关不是很大的参数,算法也因此会很复杂。因此,用卡尔曼滤波和维纳滤波的话,计算量会大许多,速度无疑会下降。对于单片机有限的数据存储器来说,难以解决计算过程中的众多迭代量。
基于以上的考虑,决定采用静态方法来解决这个问题,就是建立一个类似于图表性质的程序段,读入一个数据后,根据这个数据值,再快速的通过查表运算得出。
由于单片机得到的是一个一维的信号,见图2。对于一个加速度计实际输出u,无法判断其对应的加速度值是g1还是g2。单片机本身的转换并不提供任何信息,但单片机输出的是一个二维的信号,有着与加速度值对应的输出值。这就是说,单片机的程序里面应该有一个附加条件。这和使用图表的方法不谋而合,将实验得到的数据加以整理,就可以补足这个条件,使得补偿可顺利开展。

可以把加速度计输入输出特性曲线按实测点分为若干段,假设为n段,然后把相邻两点之间的曲线用直线近似,这样可以得到图3的特性曲线,再对这若干个点做最小二乘法拟合,得到一条拟合曲线。用k1和k2分别代表这条曲线的截距和斜率,则拟合曲线 y=k1+k2g图表法解决问题的实质就是由输入y查到适合y解的输入范围,在这个范围内,利用特定的对应关系来求出y的解y′,y′即为y的修正值。

若各个实测点就在拟合曲线上,那么这个系统的输出线性度就是零。所以,应将对应于拟合曲线存在一定偏差的实际测得的点“修正”到拟合曲线上,至少是尽力地将实际测得的点“修正”到拟合曲线上。具体的效果见图4。这样,在图形的直观上,就有了补偿的印象,如图5所示,将图中某个加速度值g1所对应实际的电压值u1修改为g1值对应的在拟合直线上的值u′1。


欲将u1修正为u′1,联系的纽带无疑将是加速度g1。由此,得出了算法的过程:
![]()
2 实现线性补偿的方法
首先,经过实验,确定各个实验样点的值。从实验得到的数据来确定各个点的范围,将各个相邻两点之间点依次连接,AB,BC,CD……,得到各个线段的斜率kAB,kBC,kCD……,这样就进一步得到了各个线段的描述[4]:

工作中,将u1,u2,……,un和各个线段的斜率kAB,kBC,kCD……送入单片机的数据存储器;将计算上式的子程序送入单片机的程序存储器;构成一个线性表,对采集的数据,CPU按线性查找对应的电压值u的加速度值g。
这样由
的工作就可以顺利开展了。
再来考虑
利用拟合曲线的k1和k2就可以得出结果。同时注意在上一步是在各自不同g的范围内求g,所得值为域内偏置值,故g值应做一定的修改:g=g域+g计算这样就可以得到真正的计算值了。
工作中,将k1和k2的值放入数据存储器,由上一步得到的加速度g,以及拟合曲线
u′=k1+k2g
可以很快的得到补偿的值u′。补偿的流程图如图6所示。

按图6流程编制补偿程序[5],并作为子程序与监控程序一并使用,以便输入数据时按流程图自动进行线性补偿。单片机补偿过程如图7所示。

3 实验结果
根据上述补偿方法,在2只硅桥式加速度计上(编号:029和109)进行了实际应用和90g量程的线性试验,表1给出了通过离心机试验测出的加速度计加入补偿前和加入补偿后的加速度输出和线性度。从试验结果可见,在加入线性补偿后,加速度计的线性度有了显著提高,达到了一个数量级。

4 结束语
用单片机实现加速度计的线性补偿,是一种简单有效的方法。它可以大大提高加速度计的测量精度,简化加速度计系统电路的复杂程度,同时提高了可靠性。特别对于硅桥式半导体加速度计尤为有效。现在,单片机已广泛应用于惯性器件及惯导系统中,为实现加速度计的线性补偿,提供了行之有效的途径。
参考文献:
[1] Albert Killen, David Tarrant,David Jensen.High acceleration,high performance solid state ac-celerometer development[J].IEEE AES SystemMagazine, 1994,(9):20-25.
[2]苏 中.线加速度计的技术与发展综述[J].传感器世界, 1995,1(3):23-29.
[3]赖麟文. 8051单片机C语言开发环境实例和设计[M].北京:科学出版社,2001.
[4]李庆扬.数值分析(第3版)[M].武汉:华中理工大学出版社,1998.
[5]马忠梅.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1999.
作者简介:苏 中(1962-),男,安徽阜阳人,北京信息工程学院信息与通信工程系副教授,博士,主要从事信号获取与处理、姿态控制、惯性器件与系统及PC-Based控制方面的研究。




