基于加速传感器速度与路程的测量
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
加速度传感器测量系统
周搏涛(自动化2班2010073020017)
摘要:基于飞思卡尔MMA7260三轴加速度传感器设计的列车速度与路程测量系统,
MMA7260加速度传感器输出电压信号,经过带通滤波电路滤波,输入到STM32处理器中,经卡尔曼滤波器算法处理后,经过积分得到速度,二次积分得到行驶距离。
关键字:三轴加速度传感器、STM32、卡尔曼滤波器、积分
0 引言
现在的列车测速测距大都采用光电编码器,这种技术已经运用的相当成熟了,但是这种方式测量精度容易受到灰尘的影响,而且很难处理空转的情况。我所采用的是加速度传感器测量火车的车速与距离,这种方法通常是和陀螺仪一起用在精确制导上面,但是随着火车大提速,尤其像磁悬浮列车这种没有轮子的列车,光电编码盘显然不合适,所以我认为未来的火车测速测距还是得运用加速度传感器的技术。
1 系统组成
系统由如图1所示的硬件系统组成。将MMA7260三轴加速度传感器将加速转化成为电压信号,然后电压信号通过硬件电路滤波,在将滤波后的信号输入到16位模数转换器AD7705中,再将信号输入到STM32中处理,经过积分获得列车的速度,再进行二次积分得到列车行驶的距离。
2 系统的工作原理
MMA7260是一种电容式的三轴加速度传感器,原理图如图2所示。MMA7260可以通过
g-select1和g-select2两个端口选择不同的量程,在火车测速测距系统中只需选择最低档位1.5g 即可,也就是输出两个低电平到这两个端口。MMA会输出一个1.65v的基准电压,当加速度为正的时候输出的电压会大于基准电压,反之则输出电压小于基准电压。在选择1.5g量程档位是的测量精度是800mv/g,而一般要求列车最快是在一分钟加速达到200km/h,那么通过计算可以得到最大加速的大约是0.095g,输出的电压是75.592mv,其实这个电压已经比较大了,而且加上基准电压后,输出的信号并不需要再经过放大电路了。
STM32是一种16位的ARM处理器,处理能力比一般的单片机强得多。而且它的外围设备也较51系列的单片机强。它自带了一个12位的AD转换,但是通过计算得出12位的AD
转换器每mv只能表示0.0159m/s2,这不能满足加速度传感器的转换要求。所以我们选择了一个16位的模数转换器AD7705,16位的模数转换器能够达到的精度是0.0009346m/s2/mv,这样的精度已经足以满足系统的要求了。
滤波电路采取的是带通滤波,滤波电路图如图3所示。先是使信号通过一个低通滤波电路,然后再通过一个高通滤波电路,低通滤波频率为
通过将加速度传感器的一轴定位始终和铁轨所在的平面平行,就可以测得火车在前进方向上的加速度,而且不论是上坡还是下坡,均不受影响。而且在火车转弯的时候,因为法向加速的并不影响火车速度的大小。而且利用加速度传感器测量火车的速度和路程不用考虑车轮是否空转、倒转。利用STM32控制器中断程序,编程将加速度积分就可以得到火车的速度,再将速度进行积分就可以得到火车行驶的路程。
图2
图3
3 系统软件流程图
软件系统采取的是卡尔曼滤波器对数据进行软件滤波,然后再利用辛普森公式进行积分,软件流程图如图4 所示。卡尔曼滤波器(Kalman Filter)是一个最优化自回归数据处理算法(optimal recursive data processing algorithm)。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30 年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
现设线性时变系统的离散状态防城和观测方程为:
X(k) = F(k,k-1)·X(k-1)+T(k,k-1)·U(k-1)
Y(k) = H(k)·X(k)+N(k)
其中
X(k)和Y(k)分别是k 时刻的状态矢量和观测矢量
F(k,k-1)为状态转移矩阵
U(k)为k 时刻动态噪声
T(k,k-1)为系统控制矩阵
H(k)为k 时刻观测矩阵
N(k)为k 时刻观测噪声
则卡尔曼滤波的算法流程为:
预估计X(k)^= F(k,k-1)·X(k-1)
计算预估计协方差矩阵C(k)^=F(k,k-1)×C(k)×F(k,k-1)'+T(k,k-1)×Q(k)×T(k,k-1)' Q(k) = U(k)×U(k)'
计算卡尔曼增益矩阵K(k) = C(k)^×H(k)'×[H(k)×C(k)^×H(k)'+R(k)]^(-1) R(k) = N(k)×N(k)'
更新估计X(k)~=X(k)^+K(k)×[Y(k)-H(k)×X(k)^]
计算更新后估计协防差矩阵C(k)~ = [I-K(k)×H(k)]×C(k)^×[I-K(k)×H(k)]'+K(k)×R(k)×K(k)'
X(k+1) = X(k)~ C(k+1) = C(k)~ 重复以上步骤
在对加速度信号进行处理之后我们得到了一组可以积分的加速度信号。为了获得比较高的积分精度,我们采用了Simpson 公式进积分
在每个小区间 [xk,xk+1]使用Simpson 公式
Simpson 公式中每一个小微段用到三个点积分,所以我们积分时对每三个点进行积分从而得到如下的公式
其中h 是采样周期的二倍,a 为采集到的加速度,n 为信息处理的周期。
4 系统电源
本系统需要供电的主要有三部分,加速度传感器、STM32 和AD7705。本系统选择了12V 的铅蓄电池以及三个电源模块,见图5 和图6。加速度传感器和STM32 的工作电压都是2.2 —3.6V,而AD7705 的工作电压是5V,所以我选择了一个12V 的铅蓄电池,然后通过三个电源模块,将12V 的电压分别转换成为所需的电压.