正在加载图片...
第2期 武加文,等:基于GABP-KF的WSN数据漂移盲校准算法 ·257· 测试集,TX表示训练集。TY={x:t=1,2,…,n, 于测量值减去实际值,见式(⑤): TX={x:j=1,2,,i-1,i+1,…,m,t=l,2,…,n小,其 di ri-Ti (5) 中,j表示节点序号,1表示时序。 然而在实际场景中,实际值是无法得知的,只 能使用其预测值x。因此: 开始 di=ru-u (6) 编码 读入数据 综上所述,式(3)和式(4)建立了一个传感器 得到初始种群 节点的状态-观测模型,使用卡尔曼滤波器以分散 迭代的方式进行跟踪漂移,具体算法参见图3。 数据预处理 训练BP神经网络 得到适应度值 开始 划分数据集 训练集和测试集 设定初值 选择操作 初始协方差P。 初始漂移值d 初始化BP神经网络 交叉操作 的权值阀值长度 获取-1时刻的漂移值dpr 与均方误差ppre 变异操作 [解码 d pre=d p_pre=P-+Q, 计算适应度 获取最优权值阀值 计算卡尔曼增益K K-p_pre(p_pre+R) 训练网络 满足 结束条件 仿真预测 获取时刻的漂移值P,和均方误差d d=d_pre+K(Z-d pre) P=(1-K)P pre 算法结束 图2GABP神经网络的建模算法 Fig.2 Modeling algorithm of GABP neural network 满足 2.4基于卡尔曼滤波的漂移跟踪算法 结束条件 本文设定1时刻节点i的平滑漂移值为d, 1时刻节点i所测量的真实温度值为T,t时刻节 算法结束 点i的测量值为r。其中i表示节点序号,1表示 时间序列。为了预测漂移值d,首先需要对节点 图3针对目标节点的漂移跟踪算法 的数据漂移进行数学建模,见式(3): Fig.3 Drift tracking algorithm for target node di=du-i+wir,wi ~N(O,Qir) (3) 如图3所示,其中乙、2、R分别表示1时刻 式中:w表示高斯噪声,而Q表示状态噪声协 目标节点的漂移测量值、过程噪声和测量噪声。 方差。 由于目标节点i共测量了n个数据,因此算法需 式(3)表示节点数据漂移的状态跟踪方程,用 要迭代n次,即,算法结束条件为:1>n。在进行 来跟踪漂移值随时间的变化情况。除了状态方 第1次迭代时,首先基于1-1时刻的漂移估计值 程,还需要建立一个观测方程来模拟节点的观测 d-1和均方误差p,-1预测1时刻的漂移估计值d 结果。假设现实中存在一种测量仪器,可以测量 pre和均方误差ppre,然后计算t时刻的卡尔曼 出节点的数据漂移值,同时一定存在与节点测量 滤波增益K,最后更新1时刻的漂移值d,和均方 时相关联的误差,见式(4): 误差P,。算法迭代完成后,基于滤波后漂移值d, u=du+vin vi ~N(O,R) (4) 来校准节点数据,见式(⑦): 式中:表示高斯噪声,而R表示观测噪声协 u ru dir (7) 方差。 3实验结果及分析 实际上并不存在可以直接测量节点数据漂移 的仪器。在这种情况下,理想的数据漂移值d等 为了验证GABP-KF的算法性能,本文在mat-TY = {xi,t : t = 1,2,··· ,n} TX = {xj,t : j = 1,2,··· ,i−1,i+1,··· ,m, t =1,2,··· ,n} 测试集,TX 表示训练集。 , ,其 中,j 表示节点序号,t 表示时序。 计算适应度 满足 结束条件 N 开始 选择操作 交叉操作 变异操作 读入数据 数据预处理 划分数据集 训练集和测试集 解码 获取最优权值阈值 训练网络 仿真预测 算法结束 Y 初始化BP神经网络 的权值阈值长度 训练BP神经网络 得到适应度值 编码 得到初始种群 图 2 GABP 神经网络的建模算法 Fig. 2 Modeling algorithm of GABP neural network 2.4 基于卡尔曼滤波的漂移跟踪算法 di,t Ti,t ri,t di,t 本文设定 t 时刻节点 i 的平滑漂移值为 , t 时刻节点 i 所测量的真实温度值为 ,t 时刻节 点 i 的测量值为 。其中 i 表示节点序号,t 表示 时间序列。为了预测漂移值 ,首先需要对节点 的数据漂移进行数学建模,见式 (3): di,t = di,t−1 +wi,t ,wi,t ∼ N(0,Qi,t) (3) 式中: wi,t 表示高斯噪声,而 Qi,t 表示状态噪声协 方差。 式 (3) 表示节点数据漂移的状态跟踪方程,用 来跟踪漂移值随时间的变化情况。除了状态方 程,还需要建立一个观测方程来模拟节点的观测 结果。假设现实中存在一种测量仪器,可以测量 出节点的数据漂移值,同时一定存在与节点测量 时相关联的误差,见式 (4): zi,t = di,t +vi,t , vi,t ∼ N(0,Ri,t) (4) 式中: vi,t 表示高斯噪声,而 Ri,t 表示观测噪声协 方差。 di,t 实际上并不存在可以直接测量节点数据漂移 的仪器。在这种情况下,理想的数据漂移值 等 于测量值减去实际值,见式 (5): di,t = ri,t −Ti,t (5) ⌢ xi,t 然而在实际场景中,实际值是无法得知的,只 能使用其预测值 。因此: di,t = ri,t − ⌢ xi,t (6) 综上所述,式 (3) 和式 (4) 建立了一个传感器 节点的状态-观测模型,使用卡尔曼滤波器以分散 迭代的方式进行跟踪漂移,具体算法参见图 3。 N Y 设定初值 初始协方差 P0 初始漂移值 d0 获取t−1时刻的漂移值d_pre 与均方误差p_pre d_pre=dt−1 p_pre=Pt−1+Qt 计算卡尔曼增益 K K=p_pre(p_pre+Rt ) −1 获取t时刻的漂移值Pt和均方误差dt dt=d_pre+K(Zt−d_pre) Pt= (1−K)P_pre 满足 结束条件 算法结束 开始 图 3 针对目标节点的漂移跟踪算法 Fig. 3 Drift tracking algorithm for target node Zt Qt Rt dt−1 pt−1 dt Pt dt 如图 3 所示,其中 、 、 分别表示 t 时刻 目标节点的漂移测量值、过程噪声和测量噪声。 由于目标节点 i 共测量了 n 个数据,因此算法需 要迭代 n 次,即,算法结束条件为:t > n。在进行 第 t 次迭代时,首先基于 t-1 时刻的漂移估计值 和均方误差 预测 t 时刻的漂移估计值 d_ pre 和均方误差 p_ pre,然后计算 t 时刻的卡尔曼 滤波增益 K,最后更新 t 时刻的漂移值 和均方 误差 。算法迭代完成后,基于滤波后漂移值 来校准节点数据,见式 (7): x¯i,t = ri,t −di,t (7) 3 实验结果及分析 为了验证 GABP-KF 的算法性能,本文在 mat- 第 2 期 武加文,等:基于 GABP-KF 的 WSN 数据漂移盲校准算法 ·257·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有