纪爱国
(曲阜远东职业技术学院 电子信息工程系,山东 曲阜 273115)
倾角检测系统作为现代工业不可缺少的检测工具,在游戏手柄、医疗器械、数码相机水平检测等方面有着广泛应用.传统的倾角检测方法是对陀螺仪的输出信号进行积分,该方法虽然看似简单,但是积分结果与积分时间、陀螺仪的零偏等因素有密切的关系[1]24-27,[2]22-31,此外,对于一般的单片机等8位微控制器而言,进行积分运算时速度较慢,此外当积分周期较长时,需要的存储空间也较大.因此,利用加速度传感器进行倾角检测得到了更多的应用,只要对加速度信号数据处理得当,就可以很好地进行倾角检测.
按照检测方向,加速度传感器可以分为单轴加速度传感器、双轴加速度传感器和三轴加速度传感器,不同的加速度传感器在倾角检测精度方面有所不同,单轴加速度传感器可以用在倾角检测分辨率较低的场合,检测范围为-90°~ +90°,双轴加速度传感器可以实现平面内360°范围的检测,三轴加速度传感器可以实现全球面范围内的角度检测[3],本文主要讨论单轴加速度传感器在倾角检测方面的原理、数据处理以及误差分析等方面的内容.
单轴加速度传感器测量倾角的原理如图1所示.
图1 单轴加速度传感器倾角检测示意
单轴加速度传感器利用重力矢量在该轴的分量来测量加速度,计算如(1)所示.
其中,重力加速度大小为1g,角度θ的单位是弧度.
则可以使用反正弦函数来计算对于的倾角如(2)所示.
但是,对于一般的单片机等8位微处理器而言,进行反正弦函数的计算速度较慢,消耗的处理器资源较大,因此,需要考虑对上述数据进行处理,以便于找到一种适合在单片机等微处理器上使用的通用数据处理方法.
1.1.1 线性逼近处理
反正弦函数的幂级数展开公式如(3)所示.
当检测角度较小时可以采用线性逼近处理(当然,这样会缩小检测范围),如(4)所示.
使用Matlab对上述(4)进行仿真分析,如图2所示.
可见,在-20°~+20°范围内,误差绝对值在0.5°以内,因此对于一般的分辨率在1°范围内的倾角测量是可以允许的,这也正好反映了上述逼近公式的使用范围.
1.1.2 带加权系数的线性逼近处理
通过上面的分析可以看到,对于普通的线性逼近处理,检测倾角范围在-20°到+20°范围,主要原因是进行线性逼近时,将(4)中的高次项都忽略的缘故,为了扩大倾角的检测范围,可以将式4中的高次项的影响折合为一个加权系数,修正后如(5)所示.
使用Matlab对上述(5)进行仿真分析,如图3 所示.
图2 线性逼近法
图3 带加权系数的线性逼近法
从图3可见,当加权系数分别取不同的值时,检测误差会发生变化,当κ时[4],可以检测-32°~ +32°范围内的倾角(检测精度为1°,所以检测误差在-0.5°~ +0.5°),但是,对于单片机来说进行浮点数的运算无疑会加大处理器的负担. 因此,在实际使用过程中,可以考虑使用加权系数κ=1.03125,从图3中可以看出,当加权系数κ=1.03125时,倾角检测的范围为-30°~ +30°.
使用加权系数κ=1.03125的原因是其小数部分如(6)所示.
除法使用移位运算来实现,则除以32相当于右移5位,移位运算对于单片机来说是很容易实现的.
例如,加速度传感器输出信号是value(下面只是展示移位运算的使用,在具体使用中,还需要注意弧度和角度之间的转换关系,可以考虑使用查表来加快运算速度),则对应的倾角计算(在一定的范围内)如(7)所示.
下面,以数字输出的加速度传感器为例,分析一下加速度传感器输出分辨率(单位:mg/LSB)与倾角检测精度之间的关系,理清这一关系,有助于在实际应用中根据倾角检测精度的不同来选择合适的加速度传感器.
数字加速度传感器输出信号为加速度信号,输出分辨率表示为mg/LSB. 因此,倾角检测的分辨率取决于加速度传感器的输出分辨率,可以使用增量灵敏度[1]24-27来衡量,增量灵敏度表示单位角度变化所对应的加速度传感器输出信号变化,单位是mg.
增量灵敏度的定义如下:
其中,S表示增量灵敏度,θ表示初始角度,p表示频率步进.
频率步进与增量灵敏度的关系可以通过图4 反映出来,图4展示了频率步进分别为0.25°、0.5°和1°下的所对应的增量灵敏度.
图4 频率步进与增量灵敏度的关系
从图4中可以得到在特定倾角范围内,某种倾角检测灵敏度与增量灵敏度之间的关系,例如,当检测倾角范围为-20°~ +20°,检测精度为0.5°时,增量灵敏度为8.1mg,这说明,所选用的加速度传感器的输出灵敏度只是要达到8.1mg/LSB,否则无法实现该精度的倾角检测.
从图4中可以读到如表1所示的倾角检测与增量灵敏度之间的对应关系.
表1 倾角检测分辨率与增量灵敏度的对应关系
表1中反映的倾角检测分辨率与增量灵敏度之间的对应关系可以作为加速度传感器选型的重要依据,在具体应用中,应根据倾角检测的范围、倾角检测灵敏度来计算对应的增量灵敏度,然后就可以根据输出灵敏度来选择对应的传感器.
在西南地区公路安防系统中,特别是在山区转弯路段,对于公路护栏的倾斜检测很常见,这种应用场合对于倾角检测灵敏度(一般情况1°就可以)要求不高,因此可以考虑使用加速度传感器来进行倾角检测.
笔者采用的是ADI公司的三轴加速传感器ADXL345[5]16-17,[6]36-38,这是一款小而薄的超低功耗3轴加速度传感器,分辨率高(13位),测量范围达± 16g.数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问.它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度.
对于公路护栏的检测,常见的检测范围在-25°~ +25°,检测精度在1°就可以满足要求,由表1可以得到,这种应用场合下,需要加速度传感器的输出分辨率至少为163.mg/LSB,而ADXL345的输出灵敏度在3.9mg/LSB,完全满足要求.
选用三轴加速度传感器是为了考虑以后系统升级需要,笔者仅仅使用了其中的一个轴来检测倾角,这时倾角检测范围、灵敏度等都有一定的限制,在使用中需要要注意.
倾角检测在很多了领域都有应用,本文分析了使用单轴加速度传感器来进行倾角检测的原理,从数学原理入手,结合Matlab仿真,阐明了了倾角检测范围、检测精度与加速度传感器数据灵敏度之间的关系,提出了一个使用加权系数进行线性逼近的参数,该参数使用于单片机等数据处理能力有限的微控制器. 最后,给出了一个公路护栏倾角检测的设计实例.
[1] 腾泓虬.基于ADXL345的转角控制系统设计与实现[J].科技信息,2010(8).
[2] 刘德胜.基于ADXL345的无线传感器网络研究[D].北京:北京邮电大学,2010.
[3] Christopher J. Fisher. Using an Accelerometer for Inclination Sensing [EB/OL].(2010.6)[2013.2] http://www. nalog.com/static/imported-files/application_notes/AN-1057.pdf.
[4] ANALOG DEVICES.Digital accelerometer ADXL345 [EB/OL].(2011.2)[2013.2]http://www.sparkfun.com/datasheets.
[5] 徐治根.ADXL345在机械设备振动检测中的应用[J].电子世界,2012(7).
[6] 汤国锋,刘 猛,黄卫佳.双轴倾斜角度测量系统设计[J].传感器与微系统,2009(12).