卡尔曼滤波在动态地磅称量中的应用
为了适应动态地磅称重精度的要求,本文通过分析干扰因素,提取出真实的轴重信号,将汽车质量信号分成两部分进 行分析建模,应用卡尔曼滤波作为信息处理器,得到较准确的真实信号。在实际测试中通过加载砝码,得到了较准确的实验数据,与 其AD值的平均值进行对比。结果表明:该方法提高了动态称重的精度,实现了动态精度在国标范围中。
0.引言
为适应现代自动化管理,动态汽车衡已经广泛应用于高速 公路超限检测系统和计重收费系统,高精度、高速度是汽车动 态称重系统的迫切需求,由于路面不平和车辆振动等因素使得 采集到的重量信号中掺杂了复杂的干扰信号,在外界随机干 扰因素作用下如何准确测量真实轴重信号,就成了汽车动态 称重系统的技术难点和关键。
汽车驶入秤台时,由于汽车自身因素以及路面的不平整度 的影响,使得汽车信号受到各种干扰因素。依据汽车动力学,可以得到其数学模型为一个单自由度二阶线性系统。本文通 过分析干扰因素,提取出真实的轴重信号,结合卡尔曼滤波将 信号加以处理,得到较准确的真实信号。
1.测试系统及原理
结合地磅模型和汽车驶入秤台的测量数据后,我们得出 理想状态下汽车在秤台上产生的波形是一个梯形波。如图1 所示,汽车均速驶入秤台时为一直线,到达梯形波底则是汽车 在上秤台的过程,中间的平稳直线是汽车完全作用与汽车所产 生的波形,同理另一个腰是汽车在下秤台的过程。
我们所讨论的汽车质量信号是一个多干扰因素的复杂信 号,将汽车的动态车道线作为跟踪目标,车道线具有连续性,动 态地磅的传感器输出的信号主要由汽车质量真实信号 和噪声信号组成。将汽车质量信号进行分析:可以看作有两部 分组成,即一部分由已知的运动方程正确地预测出来,即为线 性随机微分系统,另外一部分可以看作是均值为零的随机分 量,即为高斯白噪声。对于满足上面的条件(线性随机微分系 统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。
2.基于卡尔曼滤波的动态地磅建模
结合地磅模型和汽车驶入秤台的测量数据后,我们得出 理想状态下汽车在秤台上产生的波形是一个梯形波。均速驶 入秤台时为一直线,到达梯形波底则是汽车在上秤台的过程, 中间的平稳直线是汽车完全作用与汽车所产生的波形,同理另 一个腰是汽车在下秤台的过程。下一章将具体分析此过程的 实际波形。
2.1卡尔曼滤波简介
卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求 一套递推估计的算法,其基本思想是:采用信号与噪声的状态 空间模型,利用前一时刻的估计值和现时刻的观测值来更新对 状态变量的估计,求出现时刻的估计值。
卡尔曼滤波即为最优线性滤波.应用这种滤波方法的优点 是,每加进一个新的量测值,只需要利用已经算出的前一状态 的滤波值和滤波误差的方差阵,便可算出新的状态的滤波值和 新的滤波误差方差阵.这样,不论量测次数如何增加,既不需 要解高阶的逆矩阵,又不需要存储大批过时的量测数损,从而 满足了应用滤波时的实时需要,也大大减少计算机的存储量。
2.1卡尔曼滤波算法流程
首先,我们先要引入一个离散控制过程的系统。该系统可 用一个线性随机微分方程来描述:
oxk_i+suk+wk ⑴
再加上系统的测量值:Zk=H^k+ Vk ⑵
上两式子中,Xk是k时刻的系统状态,Uk是k时刻对系统 的控制量。O和S是系统参数,对于多模型 系统,他们为矩阵。Zk是k时刻的测量值,
H是测量系统的参数,对于多测量系统,风 为矩阵。W和Vk分别表示过程和测量的 噪声。他们被假设成高斯白噪声,他们的 covariance分别是Q, R (所讨论模型中假 设他们不随系统状态变化而变化)。
首先我们要利用系统的过程模型,来预 测下一状态的系统。假设现在的系统状态 是k根据系统的模型,可以基于系统的上 一状态而预测出现在状态:
Xk|k_i=OXk_i|k_i+^Uk ⑶
式(1)中,1$—1是利用上一状态预测的 结果,Xk?k?是上一状态最优的结果,U为 现在状态的控制量,由于如果没有控制量,
它可以为0,所讨论模型没有控制量,所以设为0。
对应于Xkk?的covariance进行更新。我们用P表示co- variance:
Pkik?= ^Pk?jk?^^+Q ⑷ 式⑵中,Pkik? 是 X.i 对应的 covariance, Pk?|k? 是 Xk?ijk?i 对应的 covariance, Q 是系统过程的 covariance。
我们有了现在状态的预测结果,然后我们再收集现在状态 的测量值。结合预测值和测量值,我们可以得到现在状态的最 优化估算值石:
Xk= Wg(ZHkV?) ⑶
其中Kg为卡尔曼增益:
Kg= P.iHT / (HAik?T + R) (6)
到现在为止,我们已经得到了 k状态下最优的估算值 X(k|k)。但是为了要另卡尔曼滤波器不断的运行下去直到系统 过程结束,我们还要更新k状态下Xk的covariance:
Pk=(I-KgHK)Pk|k? (7)
其中I为1的矩阵,对于单模型单测量,/=1。当系统进入 k+1状态时,Pk就是式子(2)的Pk?|k?。这样,算法就可以自回 归的运算下去。
算法的程序流程图如图3所示。
卡尔曼滤波的基本思路是先预测、后校正,可分为两部分: 时间更新和量测更新。时间更新方程也可视为预测方程,测量 更新方程可视为校正方程。最后的估计算法成为一种具有数 值解的预估-校正算法,时间更新方程将当前状态变量作为先验估计及时地向前 投射到测量更新方程,测量更新方程校正先验估计以获得状态 的后验估计。
3.试验步骤
由于车在勻速过秤时时一条直线,而我们实际所测的数据为曲线,最后进行卡尔曼滤波,使数据进行最优化训练。具体 处理步骤如下所示:
1)对动态地磅进行建模:
把动态地磅看成一个系统,然后对这个系统建模。所 试验的相同的汽车,所以下一次与上一次的值是相同的,所以 炉=1。没有控制量,所以G=0。因此得出:
Xkk-i =Xk-ik-i ⑶
式子(4)可以改成:
pkk?「Pk?k? +Q (9)
因为测量的值是同一台汽车衡的传感器重量信号,所以 H=1。式子5,6,7可以改成以下:
Xk= Xkk-i+Kg(Zk?kk-1) (10)
Kg= Pkk-i , (Pkk-i + (11) Pk=(1-Kg)Pkk? (12)
2)确定初始值
卡尔曼两个零时刻的初始值,X(0|0)和户(0丨0)。
因为随着卡尔曼的工作,X:会逐渐的收敛。但是对于P, 一般不要取0,因为这样可能会令卡尔曼完全相信你给定 的X(0|0)是系统最优的,从而使算法不能收敛。所以选了 X(0|0)=14600, P(0|0)=14600;
3)试验测试
实验用两轴载重货车(加载砝码),在额定轴载荷为30 t 的动态地磅上进行测试。在静态情况下称得汽车前轴重量 是5193 kg(所测的叫前排传感器值),后轴重量是14175 kg(所 测的叫后排传感器值);
4)采集AD数据,选取有效数据
本课题选取有效段数据进行研究,即选取前轴与后轴最 大值之间的数据进行处理。有效数据选取:选取曲线上平稳的 数据段,去掉上下秤的数据,取较平稳数据段的所有数据和;
5)将提取的有效段数据进行卡尔曼滤波,得到其采集值的 最优估计,依次进行估计;
6)将AD采集数据的平均值与卡尔曼滤波后的最优估计 值平均值进行比较,得出结论……
4.试验结果分析
图4所示即为载重货车一个轴的波形数据,直线为静态下 称得的汽车轴重,即:汽车每根车轴分别停在秤台上,在静止情 况下称量的重量。
现场采集数据及算法处理结果
图4所示即为载重货车两轴的波形数据,红色直线为静态 下称得的汽车轴重和,即:汽车每根车轴分别停在秤台上,在静 止情况下称量的前轴与后轴之和。
直线1:是期望值,即汽车在静止状态下测量值;
直线2:有限段数据平均值,有效段数据即为前排后排波峰 之间的数据;
采样个数n 图4卡尔曼滤波算法滤波后 Fig.4 Figure of kalman filter algorithm 曲线3:前后轴重量(总重量)=前排传感器值+后排传感 器值;
曲线4:是前轴重量,前排传感器值;
曲线5:是后排传感器值,即图中后排数据;
直线6:采样卡尔曼滤波后的 如图3-3是应用卡尔曼滤波后均值 由以上仿真结果可以看出,对采样数据进行处理然后进 行卡尔曼滤波后可以得到精度很高的重量信号,接近于真实 信号。选择好有效数据段的起始点和结束点,然后根据滤波 器频域特性可以很容易得到汽车轴重信号。
试验测得部分数据及处理运算结果见表1,可以看出,用卡 尔曼滤波的方法比平均值法误差小,能够达到国标范围以内。
表1现场试验数据结果 Tab.1 The field experiment data
序号 | 前轴速度 km/h | 前轴AD值 | 前轴误差后轴速度 % km/h | 后轴 AD 值 | 后轴误差整车误差 %% | ||
9 | 5217 | 0.2427 | 9 | 14180 | 0.0493 | 0.3220 | |
2 | 3 | 5182 | -0.1127 | 3 | 14172 | -0.0324 | -0.1151 |
3 | 2 | 5226 | 0.3329 | 2 | 14146 | -0.2915 | 0.0714 |
4 | 4 | 5189 | -0.0452 | 3 | 14216 | -0.4932 | -0.5084 |
12 | 5161 | -0.2918 | 12 | 14243 | 0.6764 | 0.3846 | |
6 | 3 | 5190 | 0.0005 | 3 | 14215 | 0.4018 | 0.4013 |
7 | 3 | 5176 | -0.1418 | 3 | 14154 | -0.2122 | -0.3540 |
8 | 9 | 5213 | 0.2313 | 9 | 14192 | 0.1718 | 0.4031 |
9 | 4 | 5222 | 0.3209 | 4 | 14121 | -0.5433 | -0.2225 |
10 | 2 | 5196 | 0.0274 | 3 | 14170 | -0.0508 | 0.0067 |
11 | 6 | 5206 | 0.1345 | 6 | 14151 | -0.2444 | -0.0799 |
12 | 7 | 5159 | -0.3119 | 7 | 14217 | 0.4231 | 0.1112 |
13 | 2 | 5192 | 0.0204 | 3 | 14127 | -0.4784 | -0.4580 |
14 | 5164 | -0.2909 | 4 | 14230 | 0.5452 | 0.2844 | |
15 | 4 | 5168 | -0.2516 | 4 | 14175 | 0.0040 | -0.2176 |
从图中看出卡尔曼滤波后的值明显优于AD采集值的平 均值,卡尔曼滤波后的最优质更接近试验静止状态下的称量 值,即真实值。
5.结束语
本文采用卡尔曼滤波进行动态数据处理。该方法权值因 子可动态调整,无需噪声的先验信息,实现非常容易,但仍能 获得较高的测量精度,实时性很好,测试结果表明:此方法有 效地将测得的轴重量误差控制在国标范围以内,使计算结果最 大限度地逼近车轴的真实重量.能够很好的满足动态称重的 精度要求。