发明内容
针对目前对车辆的三急状态检测需要依靠高精度的传感器,整体成本较高;或者采用三轴加速器传感器判断使用较为繁琐的缺陷和问题,本发明提供一种基于低成本传感器的车辆三急检测方法,该方法可实现车辆急加速、急减速、急转弯状态的准确检测,使用简单易于管理,无需标定,适用于各种存量车辆,可解决低成本传感器温漂、数据偏移、短暂失效及车辆抖动引起的检测不准问题。
本发明解决其技术问题所采用的方案是:一种基于低成本传感器的车辆三急检测方法,包括如下步骤;
步骤一、确定竖轴方向
首先获取车载设备中加速度传感器的三轴数据,即x、y、z数据并表示为:L(x,y,z);并定义车载设备顶壳朝车顶、顶壳朝车底、顶壳朝车右侧、顶壳朝车左侧、顶壳朝车尾、顶壳朝车头6个方向数值标识为DInstall,对应的标识值为1、2、3、4、5、6;定义车载设备的正面朝向为Dface;
将L(x,y,z)与重力加速度进行比较,重力加速度取值为9.8;
ABSx=|9.8-|Lx||
ABSy=|9.8-|Ly||
ABSz=|9.8-|Lz||
取三者最小值:
α=min(ABSx,ABSy,ABSz);
步骤2,确定车载设备正面朝向以及其安装方向;
首先定义正面朝车头、正面朝车尾、正面朝左侧、正面朝右侧的Dface值分别为1、2、3、4;
若α为z轴,此时车载设备安装方向为上顶朝车顶或车底,则该种情况下无法通过传感器确定Dface的值,需要根据车载设备实际安装方向进行一次设定,设定值如下所示;
(1)若车载设备正面朝车头,则Dface为1;
(2)若车载设备正面朝车尾,则Dface为2;
(3)若车载设备正面朝车左侧,则Dface为3;
(4)若车载设备正面朝车右侧,则Dface为4;
若α为y轴数据且Ly>0,则输出Dface为4;若Ly<0,则输出Dface为3;
若α为x轴数据且Lx>0,则输出Dface为1;若Lx<0,则输出Dface为2;
通过上述方式即可确定Dface值;
步骤3;由线性加速度坐标轴获取陀螺仪坐标轴
定义陀螺仪坐标轴表达为G(x,-x,y,-y,z,-z),线性加速度坐标轴表达为L(x,-x,y,-y,z,-z),二者根据车载设备中陀螺仪及线性加速度传感器安装的相对轴向关系,可通过6X6阶转置矩阵T运算获得对应关系;
G(x,-x,y,-y,z,-z)=L(x,-x,y,-y,z,-z)T;
即通过Dface值的轴向标识获得陀螺仪有效轴向标识值Gindex;
通过以上算法即可获得设备安装方向及陀螺仪参数有效轴向数据;
步骤4,车辆急转弯状态探测
基于陀螺仪传感器数据探测车辆角运动,并获取车辆偏转角度;定义陀螺仪传感器数据表达为G(x,y,z),G(Gindex)为指定Gindex下标对应传感器数据;
同时定义陀螺仪传感器的周期为Δt毫秒;选取2秒数据作为均值计算;则2秒数据个数N:
车辆上电后,即获取陀螺仪传感器数组数据中下标为的index的数据,index计算为:
车辆上电后,获取N个下标为index的陀螺仪传感器数据G1、G2……GN,计算均值Gavg为:
设车辆陀螺仪抖动阈值为Tgyro,则抖动处理方式为:
△G=|G(Gindex)-Gavg|
若ΔG≤Tgyro,则陀螺仪传感器数据在抖动范围内,则将输入传感器数值G(Gindex)设为Gavg;
若ΔG>Tgyro,则陀螺仪传感器数值G(Gindex)不做处理;
设车辆急转弯阈值为Tturn,则当|G(Gindex)|≥Tturn即为急转弯;
此时,左右急转弯判定方式如下:
(1)若G(Gindex)为正值:
若mod(Gindex,2)非0且Dinstall>2,则为左急转弯;
若mod(Gindex,2)非0且Dinstall≤2,则为右急转弯;
若mod(Gindex,2)为0且Dinstall>2,则为右急转弯;
若mod(Gindex,2)为0且Dinstall≤2,则为左急转弯;
(2)若G(Gindex)为负值:
若mod(Gindex,2)非0且Dinstall>2,则为右急转弯;
若mod(Gindex,2)非0且Dinstall≤2,则为左急转弯;
若mod(Gindex,2)为0且Dinstall>2,则为左急转弯;
若mod(Gindex,2)为0且Dinstall≤2,则为右急转弯;
从而确定车辆左右急转弯状态;
步骤5,车辆急加速急减速状态探测
定义线性加速度传感器数据表达为A(x,y,z),A(Aindex)为指定Aindex下标对应传感器数据;根据坐标轴约定的坐标关系,Aindex下标获取规则如下:
(1)若Dinstall≤3,则:
若Dface为1或者2,则Aindex为1;
若Dface为3或者4,则Aindex为0;
(2)若Dinstall>3,则Aindex为2;
利用数据预测算法对线性加速度传感器数值漂移及传感器数值的有效性进行预测;
数值预测算法具体做法为:取加速度评估时长取值为1秒,线性加速度传感器数值上传间隔为ΔT,则1秒数值计算个数M为:
设定速度突发变化标记Flag,当探测到车辆状态发生急加速、急减速时该标记设置为True,否则设置为False,默认为False值;
步骤6平衡值数值预测
平衡值预测原理为根据M个传感器数据的斜率与前一预测值数据计算获得,定义设备抖动阈值为Tacc,急加速急减速阈值为T;
设备上电后,获取M个线性加速度传感器数据X=[A1A2……AM],其中,获取A1时设置预测值Abalance及实际传感器值Aact为A1,获取M个数据过程中,计算数据的差值,共计M-1个,为D1D2……DM-1,差值计算方式为:
Di=Ai+1-Ai
对以上差值进行均值平滑计算,均值平滑计算数据个数为实际差值个数,此处以M-1个差值作为描述:
获取A1之后数据时,预测值计算方式如下,APre-banalce为前一预测值,用以保存上一个预测平衡值;
Abalance=APre-balance+Davg
APre-balance=Abalance
以上计算中,传入当前传感器值Aact时,若速度突变即Flag为True时,进行反馈校正,此时对平稳性Cdiff计数操作:
①若|Aact-APre-balance|>Tacc,则Cdiff=0,APre-balance=Aact
②否则直接对Cdiff计数加1;
此时,若|Aact-APre-balance|>Tacc,则平衡值为Abalance=Aact+Davg,平衡值预测完毕;否则,将Aact值插入队列X中,若X队列个数大于M,则移除最老元素,然后进行队列差值Di计算及均值Davg计算,设置APre-balance=Aact,平衡值为Abalance=Aact+Davg,此时平衡值预测完毕,返回该平衡值;
步骤7车辆急加速急减速状态获取
当线性加速度传感器数值获取后,通过步骤5中流程获取线性加速度传感器数值的Aindex有效下标,通过步骤6中方式获取平衡值Abalance,此时的当前有效数值Aact为A(Aindex)。
首先进行抖动去除:
若|Aact-Abalance|>Tacc,则继续进行运算;
若|Aact-APre-balance|≤Tacc,此时为抖动数据,不影响车辆状态,直接跳过。
抖动去除后,根据设备朝向进行判断:
若Dface为1、3且Aact-Abalance>0,若|Aact-Abalance|≥T,则为急减速,Flag设置为True;
若Dface为1、3且Aact-Abalance<0,若|Aact-Abalance|≥T,则为急加速,Flag设置为True;
若Dface为2、4且Aact-Abalance>0,若|Aact-Abalance|≥T,则为急加速,Flag设置为True;
若Dface为2、4且Aact-Abalance<0,若|Aact-Abalance|≥T,则为急减速,Flag设置为True。
进一步的,在急加急减判定中记录事件产生时间,当下一相同事件产生时,计算时间间隔,通过制定预定的时间间隔过滤相同事件。
进一步的,在步骤6中,线性传感器在车辆急加速急减速后,即Flag为true,会有数值阶跃现象,此时获取传感器数值Aact后,根据数据是否回归平衡态,对平衡值、传感器当前值进行修正:若Ddiff计数不小于3,则设置Abalance=Aact,Ddiff=0,Flag=false,返回平衡值Abalance;
若Ddiff计数小于3,则仍按原流程计算操作。
本发明的有益效果:本发明利用重力轴上的特殊性,通过采集线加速度传感器三轴上的数据,并将采集的数据与标准重力加速度进行比较,从而确定线加速传感器三轴中具体哪一轴为竖轴,并结合车载设备顶面、正面的特定关系,对可能出现的24种情形进行简化和分类,进而判断出线加速传感器三轴数据的具体含义。
本发明的方法通过现有车载设备获取传感器数据,支持车辆设备任意正方向安装;算法支持的设备成本低,适用范围广,无需增加额外设备;不仅适用于高端传感器也适用于中低端传感器且不需根据车型进行标定即可使用,适用于各种车辆。
本发明的方法具有平衡预测能力、反馈修正机制,自适应能力强,鲁棒性好;同时还能通过波形准确识别车辆三急状态,具备传消抖能力,识别更加准确。
本发明的方法能够有效解决传感器短暂失效、温漂、数据偏移问题,检测结果更为准确。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
实施例1:本实施例旨在提供一种基于低成本传感器的车辆三急检测方法,主要用于车辆三急检测,可通过现有车载设备获取传感器数据,支持车载设备任意正方向安装,传感器数据可通过现有的车载设备搭载的加速度、线性加速度以及陀螺仪传感器获取。
本实施例约定加速度传感器、陀螺仪、线性加速度传感器上传数据为数组数据,先后为x轴数据,y轴数据,z轴数据,对应获取的数组中数据下标为0、1、2。
本实施例在具体实施时包括如下步骤;
步骤一、获取竖轴方向
搭载该算法的设备通常为车载设备,车载设备可抽象为长方体。所谓设备正安装方向,为设备顶壳朝车顶、顶壳朝车底、顶壳朝车右侧、顶壳朝车左侧、顶壳朝车尾、顶壳朝车头6个方向,6个方向数值标识为DInstall,标识值为1、2、3、4、5、6。在任意正安装方向DInstall上,对于设备的正面(一般为设备接口设置面)有4个朝向Dface。对于DInstall为1、2情形,4个朝向为正面朝车头、正面朝车尾、正面朝左侧及正面朝右侧;对于DInstall为3、4情形,4个朝向为正面朝车头、正面朝车尾、正面朝车顶及正面朝车底;对于DInstall为5、6情形,4个朝向为正面朝车左、正面朝车右、正面朝车顶及正面朝车底,总计4*6共24个方向。
加速度传感器中有重力加速度,通常值约为9.8,对于安装有加速度传感器的设备,当车载设备安装方向不同时,对应的传感器数据有明显的轴向及正负性区别。以下推理约定车载设备水平放置时,线性加速度传感器坐标系为:车载设备质心指向车顶轴为Z轴正向,质心指向车辆右侧为X轴正向,质心指向车左侧方向为Y轴正向,坐标系遵循右手法则。
首先获取车载设备中加速度传感器的三轴数据,即x、y、z数据并表示为;L(x,y,z);并定义顶壳朝车顶、顶壳朝车底、顶壳朝车右侧、顶壳朝车左侧、顶壳朝车尾、顶壳朝车头6个方向数值标识为DInstall,对应的标识值为1、2、3、4、5、6;定义车载设备的正面朝向为Dface;
将L(x,y,z)与重力加速度进行比较,重力加速度取值为9.8;
ABSx=|9.8-|Lx||
ABSy=|9.8-|Ly||
ABSz=|9.8-|Lz||
取三者最小值:
α=min(ABSx,ABSy,ABSz);
步骤2,确定车载设备正面朝向;
首先定义正面朝车头、正面朝车尾、正面朝左侧、正面朝右侧的Dface的值分别为1、2、3、4;
具体见下表
若α为z轴,则Dface的值存在4种可能,分别为1、2、3、4;
若α为y轴数据且Ly>0,则输出Dface为4;若Ly<0,则输出Dface为3;
同理,若α为x轴数据且Lx>0,则输出Dface为1;若Lx<0,则输出Dface为2;
通过上述方式获取的Dface值,并记作L(x,-x,y,-y,z,-z),在x、-x、-y、y、z、-z上的标识分别为1、2、3、4、5、6。
步骤3;由线性加速度坐标轴获取陀螺仪坐标轴
定义陀螺仪坐标轴表达为G(x,-x,y,-y,z,-z),线性加速度坐标轴表达为L(x,-x,y,-y,z,-z),二者可通过6X6阶转置矩阵T运算获得对应关系;
G(x,-x,y,-y,z,-z)=L(x,-x,y,-y,z,-z)T;
即通过Dface值的轴向标识获得陀螺仪有效轴向标识值Gindex;
如通常情况下,线性加速度传感器轴向与陀螺仪轴向并不相同,若陀螺仪坐标轴表达为G(x,-x,y,-y,z,-z),线性加速度坐标轴表达为L(x,-x,y,-y,z,-z),二者可通过矩阵运算获得对应关系。
以下使用线性加速度正x、y轴与陀螺仪y、x轴对应、z轴一致情形推导,其它情形类似。坐标轴换算可如下转置矩阵计算:
陀螺仪有效轴向标识值Gindex在x、-x、y、-y、z、-z上的标识可通过Dface值通过矩阵计算获得。Gindex在x、-x、y、-y、z、-z上的标识计算为:
根据推导的Dface值及z轴情况特殊性,可以推导出Gindex在不同情形下的值:
若α为z轴且Lz>0,则输出Gindex为4;若Lz<0,则输出Gindex为5。
若α为y轴数据且Ly>0,则输出Gindex为0;若Ly<0,则输出Gindex为1。
若α为x轴数据且Lx>0,则输出Gindex为2;若Lx<0,则输出Gindex为3;
从而获得设备安装方向及陀螺仪参数有效轴向数据,所有设备安装方向及陀螺仪参数有效轴向数据推导完毕,即从设备加速度传感器可以确定所有安装信息。
步骤4,车辆急转弯状态探测
基于陀螺仪传感器数据,可以探测车辆角运动,获取车辆偏转角度。车辆行驶过程中,因路面不平产生颠簸、车辆方向盘不稳定或驾驶员习惯,会导致车载设备陀螺仪数据在一定范围内抖动。约定陀螺仪传感器数据表达为G(x,y,z),G(Gindex)为指定Gindex下标对应传感器数据。
为避免车辆抖动,采用均值计算获取传感器平衡值。一般的传感器数据为周期性数据,设该周期为Δt毫秒,根据经验,一般选取2秒数据作为均值计算。则2秒数据个数N:
车辆上电后,即获取陀螺仪传感器数组数据中下标为的index的数据,index计算为:
车辆上电后,获取N个下标为index的陀螺仪传感器数据G1、G2……GN,计算均值Gavg为:
设车辆陀螺仪抖动阈值为Tgyro,则抖动处理方式为:
△G=|G(Gindex)-Gavg|
若ΔG≤Tgyro,则陀螺仪传感器数据在抖动范围内,则将输入传感器数值G(Gindex)设为Gavg;
若ΔG>Tgyro,则陀螺仪传感器数值G(Gindex)不做处理,后续算法进一步处理;
设车辆急转弯阈值为Tturn,则当|G(Gindex)|≥Tturn即为急转弯;
此时,左右急转弯判定方式如下:
(1)若G(Gindex)为正值:
①若mod(Gindex,2)非0且Dinstall>2,则为左急转弯;
②若mod(Gindex,2)非0且Dinstall≤2,则为右急转弯;
③若mod(Gindex,2)为0且Dinstall>2,则为右急转弯;
④若mod(Gindex,2)为0且Dinstall≤2,则为左急转弯;
(2)若G(Gindex)为负值:
①若mod(Gindex,2)非0且Dinstall>2,则为右急转弯;
②若mod(Gindex,2)非0且Dinstall≤2,则为左急转弯;
③若mod(Gindex,2)为0且Dinstall>2,则为左急转弯;
④若mod(Gindex,2)为0且Dinstall≤2,则为右急转弯;
从而确定车辆左右急转弯状态。
步骤5,车辆急加速急减速状态探测
线性加速度传感器可获取车辆线性加速度,但中低端的线性加速度传感器存在温度漂移、数值复位慢、阶跃、数据短暂失效等特点,另外,车辆行驶过程中的震动会导致数据不规律的抖动,对算法获取车辆状态的准确性有很大的干扰。
本实施例从附图1-4中可以看出,线性加速度传感器存在漂移、抖动、阶跃现象,通常传感器芯片温度的变化会导致传感器数据的漂移;车辆运行过程中的颠簸、发动机抖动及行车非匀速状态会导致传感器数据抖动;当车传感器数据发生急剧变化,如车辆急刹车或者急加速情况,则传感器数据会发生很明显的阶跃特性,此时传感器数据并不会很快回到原平衡值范围内,因此,需要预测行车过程中的线性加速度传感器的数据变化。
定义线性加速度传感器数据表达为A(x,y,z),A(Aindex)为指定Aindex下标对应传感器数据;根据坐标轴约定的坐标关系,Aindex下标获取规则如下:
(1)若Dinstall≤3,则:
若Dface为1或者2,则Aindex为1;
若Dface为3或者4,则Aindex为0;
(2)若Dinstall>3,则Aindex为2;
利用数据预测算法对线性加速度传感器数值漂移及传感器数值的有效性进行预测;
为避免线性加速度传感器数值漂移及传感器数值失效,使用数值预测算法进行预测,根据经验,加速度评估时长取值为1秒。线性加速度传感器数值上传间隔为ΔT,则1秒数值计算个数M为:
设定速度突发变化标记Flag,当探测到车辆状态发生急加速、急减速时该标记设置为True,否则设置为False,默认为False值;
步骤6,平衡值数值预测
平衡值预测原理为根据M个传感器数据的斜率与前一预测值数据计算获得,定义设备抖动阈值为Tacc,急加速急减速阈值为T;设备上电后,获取M个线性加速度传感器数据X=[A1A2……AM],其中,获取A1时设置预测值Abalance及实际传感器值Aact为A1,获取M个数据过程中,计算数据的差值,共计M-1个,为D1D2……DM-1,差值计算方式为:
Di=Ai+1-Ai
对以上差值进行均值平滑计算,均值平滑计算数据个数为实际差值个数,此处以M-1个差值作为描述:
获取A1之后数据时,预测值计算方式如下,APre-banalce为前一预测值,用以保存上一个预测平衡值;
Abalance=APre-balance+Davg
APre-balance=Abalance
以上计算中,传入当前传感器值Aact时,若速度突变即Flag为True时,进行反馈校正,此时对平稳性Cdiff计数操作:
若|Aact-APre-balance|>Tacc,则Cdiff=0,APre-balance=Aact
否则直接对Cdiff计数加1;
此时,若|Aact-APre-balance|>Tacc,则平衡值为Abalance=Aact+Davg,平衡值预测完毕;否则,将Aact值插入队列X中,若X队列个数大于M,则移除最老元素,然后进行队列差值Di计算及均值Davg计算,设置APre-balance=Aact,平衡值为Abalance=Aact+Davg,此时平衡值预测完毕,返回该平衡值。
特别的,某些线性传感器在车辆急加速急减速后,即Flag为true,会有数值阶跃现象,此时获取传感器数值Aact后,可根据数据是否回归平衡态对平衡值、传感器当前值进行修正:
①若Ddiff计数不小于3(此值为经验值),则设置Abalance=Aact,Ddiff=0,Flag=false,返回平衡值Abalance;
②若Ddiff计数小于3,则仍按原流程计算操作。
步骤7,车辆急加速急减速状态获取
当线性加速度传感器数值获取后,通过步骤5中流程获取线性加速度传感器数值的Aindex有效下标,通过步骤6中方式获取平衡值Abalance,此时的当前有效数值Aact为A(Aindex)。
首先进行抖动去除:
(1)若|Aact-Abalance|>Tacc,则继续进行运算;
(2)若|Aact-APre-balance|≤Tacc,此时为抖动数据,不影响车辆状态,直接跳过;
抖动去除后,根据设备朝向进行判断:
(1)若Dface为1、3且Aact-Abalance>0,若|Aact-Abalance|≥T,则为急减速,Flag设置为True;
(2)若Dface为1、3且Aact-Abalance<0,若|Aact-Abalance|≥T,则为急加速,Flag设置为True;
(3)若Dface为2、4且Aact-Abalance>0,若|Aact-Abalance|≥T,则为急加速,Flag设置为True;
(4)若Dface为2、4且Aact-Abalance<0,若|Aact-Abalance|≥T,则为急减速,Flag设置为True。
以上急加急减判定中,可以记录事件产生时间,当下一相同事件产生时,可以计算时间间隔,通过制定必要的时间间隔过滤相同事件。
本实施例提供了一种基于低成本传感器的车辆三急检测方法,该检测方法支持设备4*6方向安装,适用范围广,适用于中低端传感器及高端传感器;使用时无须标定即可使用,具备平衡预测能力、反馈修正机制,自适应能力强,鲁棒性好,同时具有传消抖能力,识别更加准确,能通过波形准确识别车辆三急状态,本实施例中算法可有效解决传感器短暂失效、温漂、数据偏移问题。
本实施例中车载设备仅在于提供传感器数据,若无法从车上已有车载设备获取传感器数据,可在驾驶员手机端或安装有陀螺仪、线性加速度传感器的司机监控手表等电子设备上实现该算法。驾驶员驾驶车辆时,将手机或手表等电子设备直接固定放置在车辆某一位置即可。
如图5-6中所示,实际线性传感器有效值走势与跟踪预测走势对比结果,其中与Y线为实际线性传感器Y轴实际走势图,Balance曲线为跟踪预测走势图,即算法预测计算并经过后续反馈校正后图。测试时,抖动阈值Tacc设置为0.349,急加速急减速阈值T设置为1.526。
图5可以看出预测平衡值在传感器温漂、抖动情形下对Y轴数据预测拟合度好,请注意,其中的11:46:07:118与11:46:11:750之间数据突变非阶跃,其变化范围在Tacc即0.349变化范围内;图6反应一次急加速急减速情形下的平衡值预测与实际数据之间的关系,可以看到Y轴变化数据的平衡值是有效的。