一种基于加速度传感器的车辆测速方法及测速设备与流程

文档序号:17736241发布日期:2019-05-22 03:13阅读:1183来源:国知局
一种基于加速度传感器的车辆测速方法及测速设备与流程

本发明涉及车辆测速技术领域,具体为一种基于加速度传感器的车辆测速方法及测速设备。



背景技术:

在某些领域,例如大型化工厂内,为保障厂区交通运输安全,维护厂区交通秩序,防止交通事故的发生,需要对作业车辆进行精细化管理,例如对不同作业车辆的车速管理、允许工作区域管理、驾驶人员管理等。其中,车速管理是最基础功能之一。要实现对车辆速度的管理,首先要求对车辆速度进行准确的测量。传统的车辆速度测量方法主要包括:线圈测速、视频检测、微波雷达、声波检测、激光检测、雷达测速、gps测速等,这些测速方法的原理和不足之处如下:

1)线圈测速根据车辆经过平行线圈的时间来测速。该检测方法的缺点是在于地面埋设的感应线圈的施工量大,路面一旦变更则需重埋线圈,另外高纬度开冻期和低纬度夏季路面以及路面质量不好的地方对线圈的维护工作都是巨大的。

2)视频测速通过对连续视频图像的分析,测算车辆速度。该方法的优点是不受路面情况限制,安装不需要破坏路面,或在路面下埋设感应圈。其缺点是对移动车辆的鉴别有一定的困难,视频技术受光线,天气影响。

3)雷达测速根据对接收到的反射波频移量的计算而得出被测物体的运动速度,该方法需要在

4)声波测速通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差计算车辆速度。其缺点是在灰尘极大的恶劣环境中使用寿命最多也就几周。

5)激光测速通过激光发射装置发出激光,根据接收到的反射光的时间差计算车辆速度,该方法可以实现点车辆,其缺点是激光对人眼伤害大,安全性不高,一般需要手工操作。

6)gps测速通过gps定位信号进行车辆速度车辆,其缺点是只能用在gps信号良好的地方,此外gps对低速运行的车辆测速误差大。

7)加速度传感器积分测速使用线性加速度传感器,采集车辆加速度,对加速度进行积分计算速度,其缺点是是需要知道初速度,且累计误差大。

此外,以上测速方法大都需要在道路上安装相应的测速设备,设备造价成本高,而且还会引入额外的设备管理成本,因此,这些方法更适用于固定道路上的车辆测速,对于区域性的车辆速度检测管理应用,例如化工厂内的车速管理,以上测速方法都不适用。



技术实现要素:

针对上述问题,本发明提供了一种基于加速度传感器的车辆测速方法,其易于实施、成本低、便于维护、可靠性高,而且不需要知道车辆初速度,可以随时计算速度,准确性高,尤其适合于区域性车辆速度检测管理,此外,本发明还提供了一种基于加速度传感器的车辆测速设备。

其技术方案是这样的:一种基于加速度传感器的车辆测速方法,其特征在于,包括以下步骤:

步骤1:将加速度传感器置于车轮的轴心的位置处,以车轮的轴心为原点,在加速度传感器所在的竖直平面建立x轴和y轴,z轴垂直于加速度传感器所在的竖直平面设置,通过加速度传感器,采集加速度数据;

步骤2:读取加速度传感器数据,得到在x轴上的加速度数据和y轴上的加速度数据,对x轴上的加速度数据和y轴上的加速度数据中的任一一种进行低通滤波和高通滤波,然后采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据;

步骤3:查找步骤2中得到的加速度数据中的波峰和波谷数目以及各个波峰、波谷及在数据中的位置来计算车轮转速,通过车轮转速计算车速。

进一步的,步骤2包括以下步骤:

步骤201:将加速度传感器采集到的加速度传感器原始数据存入缓冲器中,缓冲器的长度根据加速度传感器采样率和所需要的测速范围确定;

步骤202:对缓冲器中的x轴加速度数据进行低通滤波,用如下公式表示:

xlpf_current=α*xraw_current+(1-α)*xlpf_previous

其中,xlpf_current是本次x轴低通滤波数据;xraw_current是本次x轴采样的原始数据;xlpf_previous是上一次的x轴低通滤波数据;α为低通滤波系数,0<α<1,α=t/(t+dt);t为滤波器时间常量,为加速度传感器的单次采样时间,dt为采样频率;

步骤203:对步骤202后得到的缓冲器中的x轴加速度数据进行高通滤波,用如下公式表示:

xhpf_current=xraw_current-xlpf_current

其中,xhpf_current是本次x轴高通滤波数据,xlpf_current是本次x轴低通滤波数据,xraw_current是本次x轴采样的原始数据;

步骤204:对步骤203后得到的数据采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据。

进一步的,步骤3包括以下步骤:

步骤301:计算步骤2中得到的加速度数据的一阶差分,表示为如下公式:

diff_buffer[i]=buffer[i+1]-buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤302:对一阶差分数据diff_buffer进行取符号运算,表示为如下公式:

trend_buffer=sign(diff_buffer)

表示为遍历一阶差分数据diff_buffer,若diff_buffer[i]>0,则trend_buffer[i]=1;如果diff_buffer<0,则trend_buffer[i]=-1,否则trend_buffer[i]=0;

步骤303:倒序遍历trend_buffer,如果trend_buffer[i]=0且trend_buffer[i+1]>0,则trend_buffer[i]=1;如果trend_buffer[i]=0且trend_buffer[i+1]<0,则trend_buffer[i]=-1;

步骤304:计算trend_buffer的一阶差分,即为diff_trend_buffer,表示为如下公式:

diff_trend_buffer[i]=trend_buffer[i+1]-trend_buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤305:遍历304中得到的diff_trend_buffer,如果diff_trend_buffer[i]=-2,则i+1为一个峰值位,对应的峰值为buffer[i+1];如果diff_trend_buffer[i]=2,则i+1为一个谷值位,对应的波谷为buffer[i+1];

步骤306:查找出来的波峰、波谷进行筛选,去除由于数据抖动造成的错误结果,将最终的波峰波谷查找结果,包括波峰波谷的数目以及各个波峰波谷在缓冲器中的位置保存;

步骤307:根据306筛选出来的波峰、波谷查找结果计算车轮转速rpm,表示为如下公式:

rpm=(top_cnt-1)*sample_rate/(top_position[top_cnt-1]-top_position[0])

其中,top_cnt为buffer中的波峰数目,sample_rate为加速度传感器的采样速率,top_position[i]为第i个波峰在buffer中的位置,top_position[0]为筛选出来的有效波峰的第一个,top_position[top_cnt-1]为筛选出来的有效波峰的最后一个;

步骤308:根据车轮转速rpm和车轮半径计算车速vx-hpf:

vx-hpf=rpm*2πr,其中r为车轮半径。

进一步的,步骤2包括以下步骤:

步骤201:将加速度传感器采集到的加速度传感器原始数据存入缓冲器中,缓冲器的长度根据传感器采样率和所需要的测速范围确定;

步骤202:对缓冲器中的y轴加速度数据进行低通滤波,用如下公式表示:

ylpf_current=α*yraw_current+(1-α)*ylpf_previous

其中,ylpf_current是本次y轴低通滤波数据;yraw_current是本次y轴采样的原始数据;ylpf_previous是上一次的y轴低通滤波数据;α为低通滤波系数,0<α<1,α=t/(t+dt);t为滤波器时间常量,为加速度传感器的单次采样时间,dt为采样频率;

步骤203:对步骤202后得到的缓冲器中的y轴加速度数据进行高通滤波,用如下公式表示:

yhpf_current=yraw_current-ylpf_current

其中,yhpf_current是本次y轴高通滤波数据,ylpf_current是本次y轴低通滤波数据,yraw_current是本次y轴采样的原始数据;

步骤204:对步骤203后得到的数据采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据。

进一步的,步骤3包括以下步骤:

步骤301:计算步骤2中得到的加速度数据的一阶差分,表示为如下公式:

diff_buffer[i]=buffer[i+1]-buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤302:对一阶差分数据diff_buffer进行取符号运算,表示为如下公式:

trend_buffer=sign(diff_buffer)

表示为遍历一阶差分数据diff_buffer,若diff_buffer[i]>0,则trend_buffer[i]=1;如果diff_buffer<0,则trend_buffer[i]=-1,否则trend_buffer[i]=0;

步骤303:倒序遍历trend_buffer,如果trend_buffer[i]=0且trend_buffer[i+1]>0,则trend_buffer[i]=1;如果trend_buffer[i]=0且trend_buffer[i+1]<0,则trend_buffer[i]=-1;

步骤304:计算trend_buffer的一阶差分,即为diff_trend_buffer,表示为如下公式:

diff_trend_buffer[i]=trend_buffer[i+1]-trend_buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤305:遍历304中得到的diff_trend_buffer,如果diff_trend_buffer[i]=-2,则i+1为一个峰值位,对应的峰值为buffer[i+1];如果diff_trend_buffer[i]=2,则i+1为一个谷值位,对应的波谷为buffer[i+1];

步骤306:查找出来的波峰、波谷进行筛选,去除由于数据抖动造成的错误结果,将最终的波峰波谷查找结果,包括波峰波谷的数目以及各个波峰波谷在缓冲器中的位置保存;

步骤307:根据步骤306筛选出来的波峰、波谷查找结果计算车轮转速rpm,表示为如下公式:

rpm=(top_cnt-1)*sample_rate/(top_position[top_cnt-1]-top_position[0])

其中,top_cnt为buffer中的波峰数目,sample_rate为加速度传感器的采样速率,top_position[i]为第i个波峰在buffer中的位置,top_position[0]为筛选出来的有效波峰的第一个,top_position[top_cnt-1]为筛选出来的有效波峰的最后一个;

步骤308:根据车轮转速rpm和车轮半径计算车速vy-hpf:

vy-hpf=rpm*2πr,其中r为车轮半径。

进一步的,波峰、波谷进行筛选的条件为波峰、波谷的物理特征,包括:

a)加速度值的绝对值大于0.5g;

b)波峰、波谷间隔大于最小间隔,最小间隔由传感器采样率和允许最大测速范围决定;

c)波谷位于两个峰波之间,波峰位于两个波谷之间。

进一步的,设定采样频率为fsamplehz,最大测速范围vkm/h,则最小间隔intervalmin=3.6*π*r*fsample/v个采样点。

进一步的,步骤4:在车轮上设置第二加速度传感器,通过第二加速度传感器测量车速,对步骤3得到的车速进行校准。

进一步的,步骤4包括以下具体步骤:

步骤410:将第二加速度传感器置于距离车轮的轴心为r1的位置处,在竖向平面内建立坐标系,以车轮的轴心为原点,y轴沿竖直方向指向轴心,x轴方向与y轴方向垂直;

步骤420:通过加速度传感器读取加速度数据,通过y轴的加速度ay来计算车轮转速vy-lpf,表示为如下公式:

a向心=ay=ω2*r1=vy-lpf2/r22*r1

其中,a向心为向心加速度,ω为车轮角速度,v为车轮线速度,r1为加速度传感器距离车轮轴心的距离,r2为车轮半径,通过y轴的向心加速度计算车轮转速,得到车速vy-lpf;

步骤430:通过加速度传感器读取加速度数据,得到x轴的加速度数;对x轴上的加速度数据进行低通滤波和高通滤波,然后采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据;查找加速度数据中的波峰和波谷数目以及各个波峰、波谷及在数据中的位置来计算车轮转速,通过车轮转速计算车速vx-lpf;

步骤440:通过车速vx-lpf和车速vy-lpf对步骤3得到的车速进行校准,得到最终车速vfinal,设定门限vth,vth=(2*g*r22*r1)1/2=(2*9.8*r22*r1)1/2;

当vy-lpf<vth时,最终测速结果vfinal=vx-lpf;

当vy-lpf>=vth时,最终测速结果vfinal=(vx-hpf+vy-lpf)/2或者vfinal=(vy-hpf+vy-lpf)/2。

进一步的,步骤430具体如下:

步骤4301:将第二加速度传感器采集到的加速度传感器原始数据存入缓冲器中,缓冲器的长度根据第二加速度传感器采样率和所需要的测速范围确定;

步骤4302:对缓冲器中的x轴加速度数据进行低通滤波,用如下公式表示:

xlpf_current=α*xraw_current+(1-α)*xlpf_previous

其中,xlpf_current是本次x轴低通滤波数据;xraw_current是本次x轴采样的原始数据;xlpf_previous是上一次的x轴低通滤波数据;α为低通滤波系数,0<α<1,α=t/(t+dt);t为滤波器时间常量,为加速度传感器的单次采样时间,dt为采样频率;

步骤4303:对步骤4302后得到的缓冲器中的x轴加速度数据进行高通滤波,用如下公式表示:

xhpf_current=xraw_current-xlpf_current

其中,xhpf_current是本次x轴高通滤波数据,xlpf_current是本次x轴低通滤波数据,xraw_current是本次x轴采样的原始数据;

步骤4304:对步骤4303后得到的数据采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据;

步骤4305:计算步骤4304中得到的加速度数据的一阶差分,表示为如下公式:

diff_buffer[i]=buffer[i+1]-buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤4306:对一阶差分数据diff_buffer进行取符号运算,表示为如下公式:

trend_buffer=sign(diff_buffer)

表示为遍历一阶差分数据diff_buffer,若diff_buffer[i]>0,则trend_buffer[i]=1;如果diff_buffer<0,则trend_buffer[i]=-1,否则trend_buffer[i]=0;

步骤4307:倒序遍历trend_buffer,如果trend_buffer[i]=0且trend_buffer[i+1]>0,则trend_buffer[i]=1;如果trend_buffer[i]=0且trend_buffer[i+1]<0,则trend_buffer[i]=-1;

步骤4308:计算trend_buffer的一阶差分,即为diff_trend_buffer,表示为如下公式:

diff_trend_buffer[i]=trend_buffer[i+1]-trend_buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤4309:遍历步骤4308中得到的diff_trend_buffer,如果diff_trend_buffer[i]=-2,则i+1为一个峰值位,对应的峰值为buffer[i+1];如果diff_trend_buffer[i]=2,则i+1为一个谷值位,对应的波谷为buffer[i+1];

步骤4310:查找出来的波峰、波谷进行筛选,去除由于数据抖动造成的错误结果,将最终的波峰波谷查找结果,包括波峰波谷的数目以及各个波峰波谷在缓冲器中的位置保存;

步骤4311:根据步骤4310筛选出来的波峰、波谷查找结果计算车轮转速rpm,表示为如下公式:

rpm=(top_cnt-1)*sample_rate/(top_position[top_cnt-1]-top_position[0])

其中,top_cnt为buffer中的波峰数目,sample_rate为加速度传感器的采样速率,top_position[i]为第i个波峰在buffer中的位置,top_position[0]为筛选出来的有效波峰的第一个,top_position[top_cnt-1]为筛选出来的有效波峰的最后一个;

步骤4312:根据车轮转速rpm和车轮半径计算车速vx-lpf:

vx-lpf=rpm*2πr,其中r为车轮半径。

一种基于加速度传感器的车辆测速设备,其特征在于,包括通讯连接的mcu、加速度传感器、蓝牙,所述加速度传感器用于采集车辆的加速度数据,所述mcu用于对加速度数据进行处理,提取速度测量信息,计算速度结果,并通过所述蓝牙将测速结果广播,还包括电池,用于供电。

本发明的基于加速度传感器的车辆测速方法,不需要在道路上安装固定的测速设备,直接将测速器安装在车轮上,即可测量车辆速度,该方法成本低、易于实施、便于维护、可靠性高,而且算法不需要知道车辆初速度,可以随时计算速度,准确性高,尤其适合于区域性车辆速度检测管理,本发明的基于加速度传感器的车辆测速设备,安装使用方便,方便通讯。

附图说明

图1为具体实施例1的基于加速度传感器的车辆测速方法的坐标系建立的示意图;

图2为具体实施例2的基于加速度传感器的车辆测速方法的坐标系建立的示意图;

图3为步骤2中得到的加速度数据的示意图;

图4为本发明的测速设备的框架图。

具体实施方式

具体实施例1:

见图1,本发明的一种基于加速度传感器的车辆测速方法,包括以下步骤:

步骤1:将加速度传感器1置于车轮的轴心的位置处,以车轮的轴心为原点,在加速度传感器所在的竖直平面建立x轴和y轴,z轴垂直于加速度传感器所在的竖直平面设置,通过加速度传感器,采集加速度数据;

步骤2:读取加速度传感器数据,得到在x轴上的加速度数据和y轴上的加速度数据,对x轴上的加速度数据和y轴上的加速度数据中的任一一种进行低通滤波和高通滤波,然后采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据;

步骤3:查找2中得到的加速度数据中的波峰和波谷数目以及各个波峰、波谷及在数据中的位置来计算车轮转速,通过车轮转速计算车速。

以x轴上的加速度数据为依据,步骤2包括以下步骤:

步骤201:将加速度传感器采集到的加速度传感器原始数据存入缓冲器中,缓冲器的长度根据加速度传感器采样率和所需要的测速范围确定;

步骤202:对缓冲器中的x轴加速度数据进行低通滤波,用如下公式表示:

xlpf_current=α*xraw_current+(1-α)*xlpf_previous

其中,xlpf_current是本次x轴低通滤波数据;xraw_current是本次x轴采样的原始数据;xlpf_previous是上一次的x轴低通滤波数据;α为低通滤波系数,0<α<1,α=t/(t+dt);t为滤波器时间常量,为加速度传感器的单次采样时间,dt为采样频率;

步骤203:对步骤202后得到的缓冲器中的x轴加速度数据进行高通滤波,用如下公式表示:

xhpf_current=xraw_current-xlpf_current

其中,xhpf_current是本次x轴高通滤波数据,xlpf_current是本次x轴低通滤波数据,xraw_current是本次x轴采样的原始数据;

步骤204:对步骤203后得到的数据采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据,可见图3。

步骤3包括以下步骤:

步骤301:计算步骤2中得到的加速度数据的一阶差分,表示为如下公式:

diff_buffer[i]=buffer[i+1]-buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤302:对一阶差分数据diff_buffer进行取符号运算,表示为如下公式:

trend_buffer=sign(diff_buffer),

表示为遍历一阶差分数据diff_buffer,若diff_buffer[i]>0,则trend_buffer[i]=1;如果diff_buffer<0,则trend_buffer[i]=-1,否则trend_buffer[i]=0;

步骤303:倒序遍历trend_buffer,如果trend_buffer[i]=0且trend_buffer[i+1]>0,则trend_buffer[i]=1;如果trend_buffer[i]=0且trend_buffer[i+1]<0,则trend_buffer[i]=-1;

步骤304:计算trend_buffer的一阶差分,即为diff_trend_buffer,表示为如下公式:

diff_trend_buffer[i]=trend_buffer[i+1]-trend_buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤305:遍历304中得到的diff_trend_buffer,如果diff_trend_buffer[i]=-2,则i+1为一个峰值位,对应的峰值为buffer[i+1];如果diff_trend_buffer[i]=2,则i+1为一个谷值位,对应的波谷为buffer[i+1];

步骤306:查找出来的波峰、波谷进行筛选,去除由于数据抖动造成的错误结果,将最终的波峰波谷查找结果,包括波峰波谷的数目以及各个波峰波谷在缓冲器中的位置保存,波峰、波谷进行筛选的条件为波峰、波谷的物理特征,包括:

a)加速度值的绝对值大于0.5g;

b)波峰、波谷间隔大于最小间隔,最小间隔由传感器采样率和允许最大测速范围决定;

c)波谷位于两个峰波之间,波峰位于两个波谷之间。

设定采样频率为fsamplehz,最大测速范围vkm/h,则最小间隔intervalmin=3.6*π*r*fsample/v个采样点;

步骤307:根据306筛选出来的波峰、波谷查找结果计算车轮转速rpm,表示为如下公式:

rpm=(top_cnt-1)*sample_rate/(top_position[top_cnt-1]-top_position[0])

其中,top_cnt为buffer中的波峰数目,sample_rate为加速度传感器的采样速率,top_position[i]为第i个波峰在buffer中的位置,top_position[0]为筛选出来的有效波峰的第一个,top_position[top_cnt-1]为筛选出来的有效波峰的最后一个。

步骤308:根据车轮转速rpm和车轮半径计算车速vx-hpf:

vx-hpf=rpm*2πr,其中r为车轮半径。

以y轴上的加速度数据为依据,步骤2包括以下步骤:

步骤201:将加速度传感器采集到的加速度传感器原始数据存入缓冲器中,缓冲器的长度根据传感器采样率和所需要的测速范围确定;

步骤202:对缓冲器中的y轴加速度数据进行低通滤波,用如下公式表示:

ylpf_current=α*yraw_current+(1-α)*ylpf_previous

其中,ylpf_current是本次y轴低通滤波数据;yraw_current是本次y轴采样的原始数据;ylpf_previous是上一次的y轴低通滤波数据;α为低通滤波系数,0<α<1,α=t/(t+dt);t为滤波器时间常量,为加速度传感器的单次采样时间,dt为采样频率;

步骤203:对步骤202后得到的缓冲器中的y轴加速度数据进行高通滤波,用如下公式表示:

yhpf_current=yraw_current-ylpf_current

其中,yhpf_current是本次y轴高通滤波数据,ylpf_current是本次y轴低通滤波数据,yraw_current是本次y轴采样的原始数据;

步骤204:对步骤203后得到的数据采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据。

步骤3包括以下步骤:

步骤301:计算步骤2中得到的加速度数据的一阶差分,表示为如下公式:

diff_buffer[i]=buffer[i+1]-buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤302:对一阶差分数据diff_buffer进行取符号运算,表示为如下公式:

trend_buffer=sign(diff_buffer)

表示为遍历一阶差分数据diff_buffer,若diff_buffer[i]>0,则trend_buffer[i]=1;如果diff_buffer<0,则trend_buffer[i]=-1,否则trend_buffer[i]=0;

步骤303:倒序遍历trend_buffer,如果trend_buffer[i]=0且trend_buffer[i+1]>0,则trend_buffer[i]=1;如果trend_buffer[i]=0且trend_buffer[i+1]<0,则trend_buffer[i]=-1;

步骤304:计算trend_buffer的一阶差分,即为diff_trend_buffer,表示为如下公式:

diff_trend_buffer[i]=trend_buffer[i+1]-trend_buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤305:遍历步骤304中得到的diff_trend_buffer,如果diff_trend_buffer[i]=-2,则i+1为一个峰值位,对应的峰值为buffer[i+1];如果diff_trend_buffer[i]=2,则i+1为一个谷值位,对应的波谷为buffer[i+1];

步骤306:查找出来的波峰、波谷进行筛选,去除由于数据抖动造成的错误结果,将最终的波峰波谷查找结果,包括波峰波谷的数目以及各个波峰波谷在缓冲器中的位置保存,波峰、波谷进行筛选的条件为波峰、波谷的物理特征,包括:

a)加速度值的绝对值大于0.5g;

b)波峰、波谷间隔大于最小间隔,最小间隔由传感器采样率和允许最大测速范围决定;

c)波谷位于两个峰波之间,波峰位于两个波谷之间。

设定采样频率为fsamplehz,最大测速范围vkm/h,则最小间隔intervalmin=3.6*π*r*fsample/v个采样点;

步骤307:根据步骤306筛选出来的波峰、波谷查找结果计算车轮转速rpm,表示为如下公式:

rpm=(top_cnt-1)*sample_rate/(top_position[top_cnt-1]-top_position[0])

其中,top_cnt为buffer中的波峰数目,sample_rate为加速度传感器的采样速率,top_position[i]为第i个波峰在buffer中的位置,top_position[0]为筛选出来的有效波峰的第一个,top_position[top_cnt-1]为筛选出来的有效波峰的最后一个;

步骤308:根据车轮转速rpm和车轮半径计算车速vy-hpf:

vy-hpf=rpm*2πr,其中r为车轮半径。

见图4,本实施例中的加速度传感器可以依托于测速设备实现,其包括通讯连接的mcu3、加速度传感器4、蓝牙5,加速度传感器用于采集车辆的加速度数据,mcu3用于对加速度数据进行处理,提取速度测量信息,计算速度结果,并通过蓝牙5将测速结果广播,还包括电池6以及外围电路7。

测速设备采用磁铁吸附的方式安装在车轮轮毂上,安装时要确保加速度计处于车轮正中心,测速设备随着车轮一起旋转,加速度传感器的x、y轴受到重力和车辆前进方向牵引力的作用,由于车轮旋转的周期性,重力在x、y轴的分量也具有周期性,通过计算其周期性,可以得到车轮的转速,进而可以根据车轮半径计算出车速。

具体实施例2:

在某些场景,比如说车轮未转动,但是在震动的情况下,加速度传感器的x/y轴高通数据虽然不是正弦波,但也会存在波峰波谷,按照上述算法,就会产生测速偏差,故采用下述的基于加速度传感器的车辆测速方法,提高测速精度。

见图2,一种基于加速度传感器的车辆测速方法,包括以下步骤:

步骤1:将加速度传感器置1于车轮的轴心的位置处,以车轮的轴心为原点,在加速度传感器1所在的竖直平面建立x轴和y轴,z轴垂直于加速度传感器1所在的竖直平面设置,通过加速度传感器1,采集加速度数据;

步骤2:读取加速度传感器数据,得到在x轴上的加速度数据和y轴上的加速度数据,对x轴上的加速度数据和y轴上的加速度数据中的任一一种进行低通滤波和高通滤波,然后采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据;

步骤3:查找2中得到的加速度数据中的波峰和波谷数目以及各个波峰、波谷及在数据中的位置来计算车轮转速,通过车轮转速计算车速;

步骤4:在车轮上设置第二加速度传感器2,通过第二加速度传感器2测量车速,对步骤3得到的车速进行校准。

以x轴上的加速度数据为依据,步骤2包括以下步骤:

步骤201:将加速度传感器采集到的加速度传感器原始数据存入缓冲器中,缓冲器的长度根据加速度传感器采样率和所需要的测速范围确定;

步骤202:对缓冲器中的x轴加速度数据进行低通滤波,用如下公式表示:

xlpf_current=α*xraw_current+(1-α)*xlpf_previous

其中,xlpf_current是本次x轴低通滤波数据;xraw_current是本次x轴采样的原始数据;xlpf_previous是上一次的x轴低通滤波数据;α为低通滤波系数,0<α<1,α=t/(t+dt);t为滤波器时间常量,为加速度传感器的单次采样时间,dt为采样频率;

步骤203:对步骤202后得到的缓冲器中的x轴加速度数据进行高通滤波,用如下公式表示:

xhpf_current=xraw_current-xlpf_current

其中,xhpf_current是本次x轴高通滤波数据,xlpf_current是本次x轴低通滤波数据,xraw_current是本次x轴采样的原始数据;

步骤204:对步骤203后得到的数据采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据。

步骤3包括以下步骤:

步骤301:计算步骤2中得到的加速度数据的一阶差分,表示为如下公式:

diff_buffer[i]=buffer[i+1]-buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤302:对一阶差分数据diff_buffer进行取符号运算,表示为如下公式:

trend_buffer=sign(diff_buffer),

表示为遍历一阶差分数据diff_buffer,若diff_buffer[i]>0,则trend_buffer[i]=1;如果diff_buffer<0,则trend_buffer[i]=-1,否则trend_buffer[i]=0;

步骤303:倒序遍历trend_buffer,如果trend_buffer[i]=0且trend_buffer[i+1]>0,则trend_buffer[i]=1;如果trend_buffer[i]=0且trend_buffer[i+1]<0,则trend_buffer[i]=-1;

步骤304:计算trend_buffer的一阶差分,即为diff_trend_buffer,表示为如下公式:

diff_trend_buffer[i]=trend_buffer[i+1]-trend_buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤305:遍历304中得到的diff_trend_buffer,如果diff_trend_buffer[i]=-2,则i+1为一个峰值位,对应的峰值为buffer[i+1];如果diff_trend_buffer[i]=2,则i+1为一个谷值位,对应的波谷为buffer[i+1];

步骤306:查找出来的波峰、波谷进行筛选,去除由于数据抖动造成的错误结果,将最终的波峰波谷查找结果,包括波峰波谷的数目以及各个波峰波谷在缓冲器中的位置保存,波峰、波谷进行筛选的条件为波峰、波谷的物理特征,包括:

a)加速度值的绝对值大于0.5g;

b)波峰、波谷间隔大于最小间隔,最小间隔由传感器采样率和允许最大测速范围决定;

c)波谷位于两个峰波之间,波峰位于两个波谷之间。

设定采样频率为fsamplehz,最大测速范围vkm/h,则最小间隔intervalmin=3.6*π*r*fsample/v个采样点;

步骤307:根据306筛选出来的波峰、波谷查找结果计算车轮转速rpm,表示为如下公式:

rpm=(top_cnt-1)*sample_rate/(top_position[top_cnt-1]-top_position[0])

其中,top_cnt为buffer中的波峰数目,sample_rate为加速度传感器的采样速率,top_position[i]为第i个波峰在buffer中的位置,top_position[0]为筛选出来的有效波峰的第一个,top_position[top_cnt-1]为筛选出来的有效波峰的最后一个。

进一步的,步骤4包括以下具体步骤:

步骤410:将第二加速度传感器置于距离车轮的轴心为r1的位置处,在竖向平面内建立坐标系,以车轮的轴心为原点,y轴沿竖直方向指向轴心,x轴方向与y轴方向垂直;

步骤420:通过加速度传感器读取加速度数据,通过y轴的加速度ay来计算车轮转速vy-lpf,表示为如下公式:

a向心=ay=ω2*r1=vy-lpf2/r22*r1

其中,a向心为向心加速度,ω为车轮角速度,v为车轮线速度,r1为加速度传感器距离车轮轴心的距离,r2为车轮半径,加速度传感器的x、y轴受到重力和车辆前进方向牵引力的作用,而y轴除此之外还受到车轮旋转的向心力作用。当车轮转速超过一定范围后,向心力的会远大于重力及车子前进方向牵引力的作用,通过y轴的向心加速度计算车轮转速,得到车速vy-lpf。

步骤430:通过加速度传感器读取加速度数据,得到x轴的加速度数;对x轴上的加速度数据进行低通滤波和高通滤波,然后采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据;查找加速度数据中的波峰和波谷数目以及各个波峰、波谷及在数据中的位置来计算车轮转速,通过车轮转速计算车速vx-lpf。

步骤430具体如下:

步骤4301:将第二加速度传感器采集到的加速度传感器原始数据存入缓冲器中,缓冲器的长度根据第二加速度传感器采样率和所需要的测速范围确定;

步骤4302:对缓冲器中的x轴加速度数据进行低通滤波,用如下公式表示:

xlpf_current=α*xraw_current+(1-α)*xlpf_previous

其中,xlpf_current是本次x轴低通滤波数据;xraw_current是本次x轴采样的原始数据;xlpf_previous是上一次的x轴低通滤波数据;α为低通滤波系数,0<α<1,α=t/(t+dt);t为滤波器时间常量,为加速度传感器的单次采样时间,dt为采样频率;

步骤4303:对步骤4302后得到的缓冲器中的x轴加速度数据进行高通滤波,用如下公式表示:

xhpf_current=xraw_current-xlpf_current

其中,xhpf_current是本次x轴高通滤波数据,xlpf_current是本次x轴低通滤波数据,xraw_current是本次x轴采样的原始数据;

步骤4304:对步骤4303后得到的数据采用滑动均值滤波进行平滑处理,得到呈正弦波状的加速度数据;

步骤4305:计算步骤4304中得到的加速度数据的一阶差分,表示为如下公式:

diff_buffer[i]=buffer[i+1]-buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤4306:对一阶差分数据diff_buffer进行取符号运算,表示为如下公式:

trend_buffer=sign(diff_buffer)

表示为遍历一阶差分数据diff_buffer,若diff_buffer[i]>0,则trend_buffer[i]=1;如果diff_buffer<0,则trend_buffer[i]=-1,否则trend_buffer[i]=0;

步骤4307:倒序遍历trend_buffer,如果trend_buffer[i]=0且trend_buffer[i+1]>0,则trend_buffer[i]=1;如果trend_buffer[i]=0且trend_buffer[i+1]<0,则trend_buffer[i]=-1;

步骤4308:计算trend_buffer的一阶差分,即为diff_trend_buffer,表示为如下公式:

diff_trend_buffer[i]=trend_buffer[i+1]-trend_buffer[i]

其中,i∈1,2,…,n-1,n为缓冲器的长度;

步骤4309:遍历步骤4308中得到的diff_trend_buffer,如果diff_trend_buffer[i]=-2,则i+1为一个峰值位,对应的峰值为buffer[i+1];如果diff_trend_buffer[i]=2,则i+1为一个谷值位,对应的波谷为buffer[i+1];

步骤4310:查找出来的波峰、波谷进行筛选,去除由于数据抖动造成的错误结果,将最终的波峰波谷查找结果,包括波峰波谷的数目以及各个波峰波谷在缓冲器中的位置保存;

步骤4311:根据步骤4309筛选出来的波峰、波谷查找结果计算车轮转速rpm,表示为如下公式:

rpm=(top_cnt-1)*sample_rate/(top_position[top_cnt-1]-top_position[0])

其中,top_cnt为buffer中的波峰数目,sample_rate为加速度传感器的采样速率,top_position[i]为第i个波峰在buffer中的位置,top_position[0]为筛选出来的有效波峰的第一个,top_position[top_cnt-1]为筛选出来的有效波峰的最后一个;

步骤4312:根据车轮转速rpm和车轮半径计算车速vx-lpf:

vx-lpf=rpm*2πr,其中r为车轮半径。

步骤440:通过车速vx-lpf和车速vy-lpf对步骤3得到的车速进行校准,得到最终车速vfinal,设定门限vth,vth=(2*g*r22*r1)1/2=(2*9.8*r22*r1)1/2;

当vy-lpf<vth时,最终测速结果vfinal=vx-lpf;

当vy-lpf>=vth时,最终测速结果vfinal=(vx-hpf+vy-lpf)/2。

本发明的基于加速度传感器的车辆测速方法,直接在待测车辆上安装测速设备,使用方法简单灵活,无需再道路上安装测速设备,成本低;

本发明的基于加速度传感器的车辆测速方法,通过加速度传感器测量车轮转速的方式计算速度,相比于用加速度积分的算法计算速度,适用范围更广,即使匀速运动也可以测试。此外,用加速度积分计算速度的算法需要一个初速度,如果初速度不对,将导致测速错误,而本发明设计的算法不存在这样的问题。

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