LIS3DH 在汽车状况中的应用 在汽车状况中的 状况中的应用
一、 车辆加速度 以宝马系列为例,总结如下: 最小(取绝对值) 项目 起步加速度 超车加速度 制动加速度 km/h 0 ~ 100 48 ~ 112 60 ~ 0 100 ~ 0 0.92g 0.94g |加速度值| (十进制) 0.28g |寄存器值| (十六进制) 0x08F5 0x1D70 0x1E14 最大(取绝对值) |加速度值| (十进制) 0.67g 1.06g 1.06g |寄存器值| (十六进制) 0x1570 0x21EB 0x21EB
小于起步加速度
说明:以上值均取绝对值,只考虑值的大小,不考虑方向。
设加速度传感器 LIS3DH 量 程为 L,由于传感器读出的寄存器加速度值为 16 位十六进制补码,为带符号数,所以寄存 器值绝对值和加速度换算如下(上表取传感器量程 L=4g) :
寄存器值 | D(十进制) | =
加速度值 | D_a | × 32768 传感器量程L
再将寄存器值|D|(十进制)转换成相应的十六进制值|D_0x|,由于它们大小和方向都是 一一对应的,所以只用考虑他们的大小(即绝对值)与车辆状态的关系,而寄存器值的方向 则通过最高位判断,从而这个值大小便与加速度大小一一对应,方向与加速度方向相同 , 同 时省去了寄存器值与加速度值的关系换算。
(其中 32768 为 2 的 15 次方) 由上表可以得出结论: 1、宝马系列 100km/h 加速度最大 0.67(即 0x1570) (用时 4.2s) 。
2、宝马系列 60km/h 制动加速度最大 1.06g(即 0x21EB) (刹车距离 13.3m) 。
3、宝马系列 100km/h 制动加速度最大 1.06g(即 0x21EB) (刹车距离 37.1m) 。
二、量的定义 用到的变量有:L D D_a D_go LIS6DH 传感器量程 x 或 y 或 z 轴加速度寄存器读取值 (绝对值表示大小) x 或 y 或 z 轴加速度寄存器读取值所对应加速度值 车辆行驶原本加速度(不包含任何分量)
用到的阙值有:D_th_hori 车辆水平行驶阙值 D_th_1g 重力加速度阙值 D_th_goup 车辆上坡行驶阙值 D_th_godwn 车辆下坡行驶阙值 D_th_alarm 车辆潜在事故阙值 D_th_accdnt 车辆事故阙值 D_th_upward 车辆翻车阙值 阙值大小需通过后续实验确定,并验证。
三、车辆水平行驶 设传感器读出的 xyz 三轴寄存器值分别为 Dx、Dy、Dz。
若车辆水平行驶,则|Dz|约为 D_th_hori(设 D_th_hori 为水平行驶阙值,略大于 1g 对应 的十六进制值 D_th_1g ,所以误差范围为 D_th_hori - D_th_1g ) 若行驶方向为 x 轴方向,则|Dx|的值即为车辆行驶加速度值,|Dy|近似为 0,因此可以通 过|Dx|的绝对值来判断汽车状态, 是否发生事故; 若行驶方向为 y 轴方向, 同理|Dx|近似为 0, 通过|Dy|的绝对值来判断汽车状态。
若行驶方向在 x 轴与 y 轴之间, 则|Dx|和|Dy|都不近似 0, 可通过勾股定理计算出车辆的 行驶加速度对应十六进制值|D_go|,在通过|D_go|来判断车辆状态,判断方法:用|D_go|与阙 值 D_th_accdnt 进行比较(D_th_accdnt 为车辆事故阙值) 。
四、车辆非水平行驶 若|Dz|>D_th_goup,则车辆上坡行驶,若|Dz|<D_th_godwn,则为下坡行驶; 其中 D_th_goup 为上坡行驶阙值(大于 1g,具体大多少,视坡度而定,若坡度很小则 近似认为是水平行驶) ,D_th_godwn 为下坡行驶阙值(小于 1g,具体小多少,视坡度而定, 若坡度很小则近似认为是水平行驶) 。
若为上坡行驶: 且行驶方向为 x 轴方向,则|Dx|的值即为车辆行驶加速度值与重力加速度 g 在 x 轴分量 之差,|Dy|近似为 0,因此可以通过|Dx|的绝对值除去重力分量后的值|D_go|,来判断汽车状 态,是否发生事故; (D_go 为车辆行驶原本加速度对应十六进制值,不包含任何分量) 若行驶方向为 y 轴方向,同理|Dy|的值即为车辆行驶加速度值与重力加速度 g 在 y 轴分 量之差,|Dx|近似为 0,通过|Dy|的绝对值除去重力分量后的值|D_go|,来判断汽车状态。
若行驶方向在 x 轴与 y 轴之间, 则|Dx|和|Dy|都不近似 0, 且都包含重力加速度的分量的 代数和,除去这个分量,再可通过勾股定理计算出车辆行驶方向的加速度对应十六进制值 |D_go|,在通过|D_go|来判断车辆状态,判断方法:用|D_go|与阙值 D_th_accdnt 进行比较。
若为下坡行驶: 且行驶方向为 x 轴方向,则|Dx|的值即为车辆行驶加速度值与重力加速度 g 在 x 轴分量 之和,|Dy|近似为 0,因此可以通过|Dx|的绝对值除去重力分量后的值|D_go|,来判断汽车状 态,是否发生事故; 若行驶方向为 y 轴方向,同理|Dy|的值即为车辆行驶加速度值与重力加速度 g 在 y 轴分 量之和,|Dx|近似为 0,通过|Dy|的绝对值除去重力分量后的值|D_go|,来判断汽车状态。
若行驶方向在 x 轴与 y 轴之间, 则|Dx|和|Dy|都不近似 0, 且都包含重力加速度的分量的 代数和,除去这个分量,再可通过勾股定理计算出车辆行驶方向的加速度对应十六进制值 |D_go|,在通过|D_go|来判断车辆状态,判断方法:用|D_go|与阙值 D_th_accdnt 进行比较。
小结: 1、通过|Dz|判断车辆是否在水平面上行驶 即(D_1g+D_1g-D_th_hori) <= |Dz| <= D_th_hori,则车辆水平行驶,否则非水平 2、车辆非水平行驶,则判断如下: |Dz|>D_th_goup 车辆上坡行驶 |Dz|<D_th_godwn 车辆下坡行驶
再判断行驶方向加速度 3、通过车辆原本加速度值 D_go 与事故加速度阙值 D_th_accdnt 比较,判断车辆状态。
五、车辆状态与车辆行驶方向加速度关系 1、计算车辆行驶原本加速度值 D_go 2、确定车辆警示加速度阙值 a_th1,并认为如果车辆前进方向加速度值大于这个阙值, 则危险,可能发送事故,做出相应警示。
3、确定车辆事故(碰撞)加速度阙值 a_th2(取值待定,假设取 2g) ,并认为如果车辆 前进方向加速度值大于这个值,则已经发生事故,通过加速度方向判断事故类型。
做出相应 指示或者报警。
4、a_th1 和 a_th2 均取大小,对应十六进制寄存器值分别为 D_th_alarm 和 D_th_accdnt 表示 5、通过车辆行驶原本加速度值 D_go 与事故加速度阙值 D_th_accdnt 比较判断车辆状态 6、流程图如下:
六、如何求车辆行驶原本加速度 D_go 关键在于确定坡度,即行驶平面与水平面的夹角。
由于重力加速度在 x 或 y 轴的分量取值范围为:0 ~ 1g,所以传感器测量的行驶加速度 取值范围为:车的原本行驶加速度 ~ 车的原本行驶加速度+1g; 而极端情况,重力加速度在行驶方向的分量为 1g 时,此时车辆行驶平面与水平面成 90 度角(必然是事故情况) ,因此只要下式成立则认为有事故发生: 传感器测量的车辆行驶方向加速度|D_a| >(1g + |车辆正常行驶最大加速度|) 其中宝马系列车辆正常行驶最大加速度为 1.06g,若去 1.06g,这可以将阙值设置 为 2.06g;再转换成相应的十六进制寄存器值与行驶方向读出来的寄存器值进行比较。
从而不 用去考虑重力加速度在行驶方向的分量到底为多少。
有研究表明:以 50km/h 速度行驶的车辆发生碰撞事故时,加速度大小可以达到 11g, 若行驶速度更大,则事故加速度在 11g 以上,甚至更大。
相对与这个事故加速度而言, 重力加速度在车辆行驶方向的分量几乎可以忽略; 因此可 以认为车辆行驶原本加速度 D_go 就等于车辆行驶方向加速度,即传感器测量的加速度; 若车辆沿 x 轴行驶则|D_go| = |Dx||;若车辆沿 y 轴行驶则|D_go| = |Dy|;由于 x 轴和 y 轴成直 角,因此有勾股定理存在,则有以下结论:
| D_go |2 =| Dx |2 + | Dy |2
因此可以通过此公式求出车辆的近似原本加速度|D_go|,并用于车辆状态判断。
。