卡尔曼滤波器设计

2024-09-04

卡尔曼滤波器设计(精选十篇)

卡尔曼滤波器设计 篇1

控制器主要由微控制器和姿态测量模块组成。本设计采用意法半导体 (ST) 公司生产的STM32F407ZG作为系统的主处理器, 由三轴加速度计和三轴陀螺仪MPU6050、磁阻传感器HMC5883L和气压传感器MS5611组成姿态测量模块。系统组成如图1所示。

STM32F407ZG是ARM 32位Cortex-M4内核, 它有1 024 k B的闪存存储器和192 k B的运行内存, 该芯片配置十分强悍, 资源丰富, 功能强大。

MPU6050为全球首例整合性六轴运动处理组件, 其集成了三轴加速器和三轴陀螺仪, 免除了组合陀螺仪与加速器时轴间差的问题, 同时也减少了大量的封装空间。

电子罗盘是用来指示方向的传感器, 本设计采用的是HMC5883L。它可以连到MPU6050的扩展I2C接口上, 组成一个九轴测量模块。其电路如图2所示。

MS5611是新一代高分辨率气压传感器, 分辨率可达10 cm。模块电路如图3所示。

2 卡尔曼滤波

利用卡尔曼滤波的计算方法迭代计算更新。把四元数 (q0, q1, q2, q3) 作为状态估计量Xk, 把加速度计、陀螺仪和磁力计的数据作为测量值Zk, 进行卡尔曼滤波, 得到最优四元数, 求得姿态角。测量值Zk包括重力加速度3个分量、陀螺仪3个分量和磁力计3个分量。解算流程如图4所示。

2.1预测方程和状态方程的求解

其预测方程为:

状态估计量为四元数, 则状态方程即四元数微分方程, 其表达式如下:

把加速度计、陀螺仪和磁力计的数据作为测量值, 其状态矩阵方程可以表示如下:

则求得观测矩阵为:

2.2卡尔曼滤波流程

求得了状态矩阵Φk和测量矩阵Hk, 就可以进行卡尔曼滤波的计算。系统的状态模型建立以后, 卡尔曼滤波流程如下:

第k次的状态量预测:

Xk (-) =Φk-1Xk-1

第k次的协方差矩阵预测:

第k次卡尔曼增益:

第k次的修正值:

Xk=Xk (-) +Kk[Zk-HkXk (-) ]

第k次的修正协方差矩阵:

Pk= (1-KkHk) Pk (-)

经过卡尔曼滤波后, 就能得到修正的四元数, 进而得到姿态角, 如此循环就可以实时测得飞行姿态。

3 姿态系统的测试与结果

软件开发平台为Keil u Vision5。用设计的姿态测量系统为实验平台, 控制器通过串口把数据发送到PC端, 每秒采集200个数据, 采集频率设置为50 Hz。取俯仰角和滚转角为参考, 根据卡尔曼滤波解算出来的姿态角, 通过MATLAB做出图5。

由实验结果可知, 静止时, 静态方法解出来的姿态角和卡尔曼滤波的姿态数据相差不大, 而卡尔曼滤波在剧烈的角度变化中也能跟踪姿态, 适合在无人机上使用。实验结果表明, 该卡尔曼滤波的姿态测量系统在静态和动态环境下, 都能完成姿态角的测量。

4结语

本文针对无人机的惯性导航系统, 设计出了一种基于STM32的MEMS姿态测量系统, 并给出了一种基于卡尔曼滤波的姿态解算方法。最终实验结果表明, 所设计的基于卡尔曼滤波的姿态算法能够较好地反映真实姿态。

摘要:以无人机的自主化和小型化为背景, 设计了一种由MEMS元件构成的惯性导航系统。系统采用新型32位ARM Cortex-M4内核的STM32F407作为微控制器, MPU6050陀螺仪和加速度计、HMC5883L磁阻传感器和MS5611高度计构成姿态测量模块。给出了一种基于卡尔曼滤波的融合计算方法。研究结果表明, 该姿态测量系统能够准确解算姿态角。

关键词:惯性导航 (INS) ,姿态测量,STM32,卡尔曼滤波

参考文献

[1]杜继永, 黄国荣, 张凤鸣, 等.基于低成本的MEMS器件的捷联航姿系统设计[J].传感技术学报, 2010, 23 (11) :1662-1666.

[2]袁亮, 楚仕彬.基于卡尔曼滤波的无人机姿态测量研究[J].组合机床与自动化加工技术, 2015 (7) :110-113, 117.

卡尔曼滤波器设计 篇2

一种用卡尔曼滤波器消除TOA中NLOS误差的方法

本文提出了用卡尔曼滤波器消除TOA测量值中NLOS误差的方法,通过考察TOA测量值中NLOS误差的特点,对卡尔曼滤波器的迭代过程进行了改进.与传统的NLOS误差消除算法相比,本文提出的`方法均可获得较小的估计误差,并且实现了实时处理.

作 者:代凌云 王娟 作者单位:曲阜师范大学信息技术与传播学院刊 名:科技信息英文刊名:SCIENCE & TECHNOLOGY INFORMATION年,卷(期):“”(12)分类号:G64关键词:通信与信息系统 无线定位 卡尔曼滤波器 非视距

卡尔曼滤波器设计 篇3

关键词:卡尔曼滤波;MATLAB;仿真

中图分类号:TP391 文献标识码:A文章编号:1007-9599(2011)07-0000-01

Kalman Filter Implementation Design Based on Matlab

Tan Juhua,Wang Tao

(Nanchang Institute of Technology,Nanchang330044,China)

Abstract:Kalman filter technology has applied successfully in the GPS/INS navigation,it has improved the attitude accuracy.I realize Kalman Filter by MATLAB simulation software,analyse the effect of noise covariance and system iterations to Kalman filter result and give some data.

Keyword:Kalman filter;Matlab;Simulation

一、引言

自从20世纪60年代kalman滤波出现以后,全世界的学者对它进行了详尽的研究和探讨。就实现形式而言,kalman滤波算法实质上就是一套有数字计算机实现的递推更新,每个递归周期都包含两个过程,第一个过程需要进行状态更新;另一个过程是量测更新。状态更新基于状态转移方程,对系统状态量进行时间预测;量测更新则在状态跟新的基础上根据实时获得的观察值确定。因而,卡尔曼滤波器的输入和输出之间就有状态跟新和观察量更新算法联系[1][2]。

二、卡尔曼滤波算法

首先假设存在空间模型,状态方程和量程方程如下:

(1)

并假设已知状态初值 及其误差初值P(0)和K时刻的量测矢量为Z(k),求K时刻系统状态X(k)的估计 ,离散卡尔曼滤波算法如下:

(2)

三、MATLAB实现卡尔曼滤波算法

在卡尔曼滤波器函数中,假设观测值出现在固定的离散时间点上,并假设系统为线性系统,即可以通过状态转移矩阵来计算状态的估值。利用MATLAB软件实现卡尔曼滤波算法,在一个卡尔曼滤波器滤波周期内,即在时间k-1时刻到k时刻之间,卡尔曼滤波具有两个信息更新过程:状态更新过程和量测更新过程。状态更新基于系统状态转移方程,对系统的状态量进行时间预测;然而量测更新发生在系统观测量到来以后,将预测的状态量和观测量一起作为输入对系统状态量进行最小二乘的估计,而得到的估计又作为下一个时刻的系统更新的起点。观察量看做是卡尔曼滤波器的输入,估计值看做系统的输出。下面通过仿真一个简单的实例来说明这种基于MATLAB实现的卡尔曼滤波器在状态估计中的应用效果以及卡尔曼滤波的特点。

仿真条件:(1)滤波开始初始值:状态X(0)=1度,估计误差P(0)=10 (2)真实值为25度,测量值的平均值为25度。

仿真图(图1-图2)中红色的点线代表观测值,蓝点长虚线为经过卡尔曼滤波后的估计值,绿点长线为加了高斯白噪声的真实值,横坐标为滤波器的阶数,即迭代次数,纵坐标为温度。

(a) Q为4,R为4,N为50 (b) Q为4,R为400,N为50

图1 滤波器方差比较仿真波形图

(a) 滤波器阶数20(b) 滤波器阶数200

图2 滤波器阶数比较仿真波形图

结论:从仿真波形可推断:若观测值越大,增益越小,观测数据越不可靠,校正就弱;当系统噪声强度增大,状态协方差增大,卡尔曼滤波器增益也增大,也就是说系统的不确定性增强,校正作用就大;增加迭代次数,递推次数就大,则卡尔曼滤波器的估计值越接近真实值,校正作用就越好,这卡尔曼滤波算法理论值相一致。仿真波形结合理论,经分析可知,MATLAB软件设计的卡尔曼滤波器较好地与理论值相一致,滤波效果显著。

参考文献:

[1]秦永元,张洪钺,汪叔华.卡尔曼滤波与组合导航原理[M].西安:西北工业大学出版社,1998

卡尔曼滤波器设计 篇4

通常,数字滤波器的FPGA实现是用VHDL或Verilog HDL等硬件描述语言通过编写底层代码实现。这种方式效率低、难度大。利用Altera公司FPGA的DSP开发工具DSP Builder设计卡尔曼滤波器,比基于硬件描述语言的设计周期更短,设计更容易。

本文以基于现场可编程逻辑门阵列FPGA器件和模数转换器设计的数据采集系统为硬件平台,基于模块化设计思想,设计了时钟分频模块、AD转换芯片的控制模块和卡尔曼滤波模块。卡尔曼滤波模块采用DSP Builder设计,转换成VHDL后,采用软件Modelsim、Quartusll对其进行仿真并完成硬件验证。

1 卡尔曼滤波原理

卡尔曼滤波是一种线性最小方差估计算法,它考虑了系统的模型误差和测量噪声的统计特性[3,4]。卡尔曼滤波的一般方程在许多文献中有详细讨论,本文直接引用其结论。

设随机线性离散系统的状态方程为:

观测方程为:yk=ckxk+vk

式中xk为系统的状态向量,yk为系统的观测序列,ωk为系统的过程噪声序列,vk为观测噪声序列,uk为系统控制输入,Φk+1|k为状态转移矩阵,ck为观测矩阵。ωk、vk为零均值白噪声且互不相关。

先不考虑有规律信号uk,假设uk=0。设k时刻的状态估计值为:,下面给出卡尔曼滤波的递推步骤。

状态一步预测值:

预测误差方差:

滤波增益:

最佳滤波值:

滤波误差方差:

其中Qk为ωk的对称非负定方差矩阵,Rk为vk的对称正定方差矩阵,均为可知的。只要给定滤波初值和P0,根据k时刻的观测yk就可递推计算出此时刻的状态估计值。

本设计应用在永磁同步电机转子位置检测系统中,根据电机运动方程:

经离散化后可得状态方程:

其中,

系统量测方程为:yk=ckxk+vk

x1、x2分别代表电机的转子位置角和位置角变化率。T为采样周期。噪声vk包括量测误差、A/D变换器产生的误差等。

2 FPGA设计

本设计选用的FPGA是Altera公司CycloneⅡ系列的EP2C20Q240C8N,系统编译环境采用QuartusⅡ,顶层设计为图形化方式,易实现模块化。FPGA的主要任务是控制AD转换芯片进行数据转换,并从AD芯片中读取转换输出数据,进行卡尔曼滤波处理并输出。芯片模块的划分如图1所示,分频模块和AD控制模块采用VHDL语言编程实现,卡尔曼滤波模块用DSP Builder软件进行设计。

3 单元功能模块设计

3.1 分频模块的设计

分频模块是对外部时钟进行分频设定,得到系统内部AD控制模块和卡尔曼滤波模块所需要的时钟,并为AD芯片提供时钟信号基准。此模块采用VHDL语言编程实现较简单,由于篇幅限制,这里不做介绍。

3.2 AD控制模块

采用ADS8364芯片对输入信号数据采样。ADS8364是TI公司的一款高速、低功耗、6路模拟输入、16位并行输出的模数转换器[5]。ADS8364与FPGA的接口连接如图2。

三个保持信号(HOLDA、HOLDB、HOLDC)启动指定通道的转换。A/D转换结果为16位,最高位为符号位,数据输出方式很灵活,分别由BYTE、ADD与地址线A2、A1、A0的组合控制。当转换结果被存入输出寄存器后,引脚EOC的输出将保持半个时钟周期的低电平。通过置RD和CS为低电平可使数据读出到并行输出总线。结合ADS8364的工作时序,设计AD采样控制模块,为ADS8364采样提供所需的驱动信号,并从ADS8364中读取转换输出数据,同时为后续电路提供相应的控制信号。

AD采样控制模块与分频模块的图元文件连接编译后,进行时序仿真,仿真波形如图3。

3.3 卡尔曼滤波模块

3.3.1 DSP Builder简介

DSP Builder是Altera公司推出的FPGA系统级设计工具[6]。它将Matlab和Simulink系统级设计工具的算法开发、仿真和验证功能与QuartusⅡ的基于Verilog HDL及VHDL语言的设计流程整合在一起,实现了这些工具的集成,为用户提供了一个从软件到硬件的完整DSP开发平台。这种设计方式实现了软件设计与硬件验证的直接握手,大大简化了设计过程,提高了设计效率。它的出现进一步推动了FPGA在数字信号处理领域的应用。

3.3.2卡尔曼滤波算法矩阵运算的分解

卡尔曼滤波算法涉及到矩阵运算,把矩阵运算分解成一系列加减乘除运算单元,利用DSP Builder的加减乘除等模块来建模实现。利用平行的硬件技术来实现算法,可以提高执行速度[7,8]。在本设计中,卡尔曼滤波算法的五个方程可以分解成如下的形式。

(1)状态一步预测值

分解为:

(2)预测误差方差Pk|k-1分解为:

其中:

(3)滤波增益Kk可分解为:

其中:K1=pll11(pl11+4);K2=pl11/(pl21+4)

(4)最佳滤波值

可分解为:

其中:

(5)滤波误差方差Pk分解为:

其中:p11=pl11-K1pl11;p12=pl12-K1pl12;

p21=pl21-K2pl11;p22=pl22-K2pl12。

输出预测ŷk可分解为:

由于卡尔曼滤波的基本方程是时间域内的递推形式,其计算过程是一个不断的“预测一修正”过程,在求解时不要求存储大量的数据,并且一旦观测到了新的数据,随时可以算出新的滤波值,便于实时处理。

3.3.3 卡尔曼滤波模型的建立

在Matlab/Simulink中建立一个*.mdl模型文件,根据以上等式,利用DSP Builder库和Simulink库中的图形模块进行设计输入。本设计采用层次化设计,依据卡尔曼滤波算法分解的等式,利用DSP Builder库中的加减乘除模块以及端口模块来实现建模。建立的顶层系统模型如图4所示。

图4中,subl为来自Simulink库中的输入信号模块,信号y为未叠加噪声的原信号,yv为叠加高斯白噪声的待滤波信号。fc1、fc2、sub2、sub3、sub4为卡尔曼滤波的5个子系统模块。根据其方程分解的等式,利用DSP Builder库中的加减乘除图形模块以及端口模块来实现建模,这里不详细给出。

卡尔曼滤波整个过程中用到多个加法、乘法运算和除法运算,比较复杂,计算量大。误差方差Pk存在稳态值,从任意初始方差阵P0算起,当k→∞时,Pk→Pw(稳态值),Pk稳定后增益矩阵Kk也随之稳定了,因此若用Kk的稳定值Kw来代替Kk,则只是前面若干步有误差,随着递推次数的增多,估计就越来越精确,这样可以离线将Kw事先算好,作为常系数储存起来,从而省去了每一步对Kk的递推运算,使整个运算得到简化。相应地,利用DSP Builder软件建立Kalman模块也得到简化,节省硬件资源。

3.3.4卡尔曼滤波模型的仿真结果

(1)Simulink仿真结果

采用叠加高斯白噪声的正弦信号作为输入信号,对建立的滤波器模型进行仿真。从图5~图7的仿真结果可以看出,叠加噪声的输入信号通过滤波后,与未叠加噪声的正弦信号相吻合,待信号稳定后,误差在0.5°以内。

(2)modelsim功能仿真

转化VHDL语言以后,利用Modelsim进行功能仿真。设置输入输出信号均为模拟形式,仿真波形如图8所示,与Simulink中的仿真结果一致。

(3)QuartusⅡ时序仿真

在QuartusⅡ环境中打开DSP Builder建立的项目文件,选择器件型号进行编译和时序仿真,得到时序波形如图9所示。

用DSP Builder设计的卡尔曼滤波模型是整个系统的一个子模块,把卡尔曼滤波模型转化后的VHDL文件生成图元文件,以便在整个系统设计中调用。

在QuartusⅡ环境下,整个系统原理图设计中,调用各个子模块,构成完整的设计后进行编译、仿真、引脚分配等工作。最后配置芯片,把SRAM对象文件(*-sof)下载到FPGA芯片中,进行硬件测试。

卡尔曼滤波器在很多领域中有重要的作用。FPGA可实现数字信号处理功能,并能满足实时性的要求。本文以基于FPGA器件和AD转换器的数据采集系统为硬件平台,进行了数据采集及卡尔曼滤波算法设计,详述了基于DSP Builder的卡尔曼滤波器的设计实现。采用DSP Builder进行设计,避免了繁琐的语言编程和电路设计,缩短了系统实现的时间周期。在实际应用中,可以根据需要,对转化的VHDL程序进行修改扩充与优化,并可作为IP核的形式进行重复利用。

参考文献

[1] 韩梅,陈禾.卡尔曼滤波器的 FPGA 实现[J].电子工程师,2006,32(7) :38-40.

[2] 潘松,黄继业,王国栋.现代 DSP 技术[M].西安:西安电子科技大学出版社,2003.

[3] 郑建芬.基于高频注入和卡尔曼滤波的永磁同步电机无传感器控制[D].学位论文.沈阳:沈阳工业大学电力电子与电力传动专业,2005.

[4] 钟黎萍,王长松,周晓敏,等.卡尔曼滤波器在高频信号注入法中的应用[J].机电产品开发与创新,2007,20(5) :141-142.

[5] 谷重阳,汪渤,龙殊颖.并行模数转换器 ADS8364与 TMS320F2812的接口设计[J].微计算机信息,2006,2(22) :137-139.

[6] 潘松,黄继业.EDA 技术与 VHDL(第2版)[M].北京:清华大学出版社,2007.

[7] 陈刚,郭立,史洪生,等.最大平行结构的 kalman 滤波器的硬件电路设计[J].微电子学与计算机,2006,23(6) :34-37,41.

卡尔曼滤波器设计 篇5

关键词降阶线性卡尔曼;永磁同步电机;无速度传感器

中图分类号TM3文献标识码A文章编号1673-9671-(2011)042-0132-02

卡尔曼滤波算法是由美国学者Rudolf E.Kalman提出的一种最小方差意义上的最优预测估计方法,它提供了直接处理随机噪声干扰的解决方案,将参数误差看作噪声以及把预估计量作为空间状态变量,用递推法将系统及测量随机噪声滤掉,得到准确的空间状态值。

1扩展卡尔曼滤波器

卡尔曼滤波算法是一种线性最优递推滤波算法,能够在系统的状态方程和测量方程中具有噪声时,对系统状态变量的最小方差估计。

在α-β坐标系下PMSM数学模型可以表示为:

(1)

其中:

,(2)

上述数学模型中,系统状态变量x为[iα,iβ,ω,θ]T,输入变量u为[uα,uβ]T,输出变量为[iα,iβ]T。uα,uβ分别为定子α轴、β轴电压,iα,iβ分别为定子α轴、β轴电流,Rs为定子电阻,Ls为同步电感,ψf为转子磁通,ω为转子机械角速度,θ为转子机械位置,w(t)系统过程噪声,

v(t)为系统测量噪声,w(t)与v(t)协方差阵分别为Q、R。

取采样时间为T,将(1)离散化,得到离散化的系统状态方程:

(3)

基于离散化的PMSM状态方程,扩展卡尔曼滤波实现算法如下:

①状态预估:

(4)

(5)

2降阶线性卡尔曼滤波器

EKF估计算法的不足就在于系统的协方差矩阵和增益矩阵必须在每个采样时刻进行更新。如果系统方程能被完全线性化,系统方程的协方差序列在每一个采样时刻是时不变的,那么这种Kalman滤波器称为线性卡尔曼滤波器(LKF)。

如果LKF应用于PMSM无速度传感器控制,首先PSMM电机模型必须线性化,其次系统协方差序列是时不变的。

基于LKF理论的PMSM模型为:

(6)

其中:

, (7)

选取系统状态为[θ,ωr,ρ'],θ是转子位置,ωr是转子角速度,ρ是白噪声序列,ρ'是白噪声序列的导数。∑(k)为过程噪声矩阵,Δ(k)为测量噪声矩阵,λ为可调参数,R1为∑(k)的协方差矩阵,R2为Δ(k)协方差矩阵。

如果输出信号y(k)相位相差π/2,则系统的协方差pk会成为一个时不变Riccati差别矩阵,可以通过MATLAB-DLQE计算得到。这使得系统Kalman滤波器增益矩阵可以通过下式计算得到:

(8)

本文选取定子侧电压信号作为输出变量,如式(9)所示,k为信号增益。

(9)

综上所述,应用于PMSM无速度传感器控制的RLKF方程如式(10)所示。

与EKF方程(1)-(5)相比,LKF方程结构大大简化,在运算过程中占用更少的存储空间,更加易于数字化实现。

(10)

3仿真分析

本文的仿真和建模是在Matlab7.0的simulink环境下完成的,图1所示为基于EKF算法的PMSM无速度传感器控制系统的结构图,基于RLKF算法的PMSM无速度传感器控制系统与图1相同,kalman观测器的输入为ualpha、ubeta输出为ωr、θ。

永磁同步电机的运行参数如表1所示。

图2所示为基于EKF(a)和RLKF(b)的电机转子估计转速与实际转速之间的误差。

图2结果显示,两种转速检测方法在低速情况下都存在较大误差,这是由于电机参数变化与低电压信号测量的不确定性引起的。

4结语

本文介绍Kalman滤波算法的基础上,提出了一种新的基于降阶线性卡尔曼滤波算法的永磁同步电机无速度传感器控制方法,并与通过MATLAB仿真,与传统的扩展卡尔曼滤波算法进行了比较,实现结果表明,新算法不仅延续了传统扩展卡尔曼算的优势,而且算法更加简单,减轻了繁重的参数调节任务,易于数字化实现,为永磁同步电机的无速度传感器控制提供了一种新的控制方式。

参考文献

[1]王成元,夏加宽,杨俊友,等.电机现代控制技术[M].北京:机械工业出版社,2006,

[2]江俊,沈艳霞,纪志成.基于EKF的永磁同步电机转子位置和速度估计[J].系统仿真学报,2005,17(7):1704-1707.

作者简介

刘祖全(1983—),男,助理工程师,获硕士学位,2009年毕业于山东大学控制科学与工程学院电力电子与电力传动专业,现从事核电自动化专业设计工作。

卡尔曼滤波器设计 篇6

1 永磁同步电机的数学模型

本文研究对象为表面式永磁同步电机,即d轴上电感与q轴上电感相等。其在d -q坐标下的数学方程为:

式中,R s为电机定子电阻;L =Ld =Lq为电机d、q、o坐标系的电感;Ψf为转子永磁体磁极的励磁磁链;P n为电机定子绕组极对数;J电机轴联转RW动惯量;电机阻尼系数;T e为电机产生的电磁转矩;Tl电机的负载阻力矩。

2 磁同步电机的EKF模型

令状态变量,输入变量输出变量y=|ω|,可得系统的非线性状态空间方程:

根据状态空间方程(5)和永磁同步电机的数学模型可得:

设系统采样周期为Tc,则式(5)可以离散化为:

状态转移矩阵和测量矩阵分别为:

由EKF模型求得id、iq,通过式(11)求得三相iA、iB、iC大小。

3 仿真

使用Matlab/Simulink搭建永磁同步电机矢量控制模型进行仿真,电机参数如下:。设定仿真时间为0.1s,给定转速为700rpm,前0.05s负载转矩为3N×m,后0.05s负载转矩为6N×m。

由图1和图2可得,EKF的A相电流与PMSM的A相电流输出基本相等,在负载转矩加大后,误差并没有出现明显增大,说明EKF电流观测器的动静态性好;由图2可得,最大误差为-0.14A,相应电流实际输出约为-4A,误差为3.5%,说明EKF电流观测器具有较高的精确性。

4 结论

本文根据永磁同步电机的电压、转子位置、转速和负载转矩,使用扩展卡尔曼滤波对永磁同步电机矢量控制系统的电机三相电流进行观测,在Simulink里搭建永磁同步电机的矢量控制模型与电流观测器模型。仿真结果表明电流观测器观测精度较高、运行稳定,电流观测器输出与系统实际输出误差小,可靠性高。

参考文献

[1]吴恒,王淦泉,陈桂林.基于SIMULINK的PMSM控制器的建模与控制仿真[J].红外,2010(2):29-34.

[2]薛树功,魏利胜,凌有铸.基于扩展卡尔曼滤波的永磁同步电机无传感器矢量控制[J].电机与控制应用,2011,38(8):15-18.

[3]王伟,程明,张邦富,等.电流滞环型永磁同步电机驱动系统的相电流传感器容错控制[J].中国电机工程学报,2012(33):59-66.

[4]马红兵.双馈电机运行状态监测及电流传感器容错控制[D].哈尔滨工业大学,2013.

[5]Mohamed Y A R I.Design and implementation of a robust cur-rent-control scheme for a PMSM vector drive with a simpleadaptive disturbance observer[J].Industrial Electronics,IEEETransactions on,2007,54(4):1981-1988.

卡尔曼滤波器设计 篇7

因此,提出了基于(TDOA/AOA)时间测量值的卡尔曼滤波器改进设计移动通信终端进行定位。利用卡尔曼滤波器抑制和消除TOA/TDOA测量值中NLOS误差,然后通过BP神经网络在时间更新预测阶段及测量阶段对标准的卡尔曼滤波器进行修正,将预处理的TOA测量值输入到修正后卡尔曼滤波器来实现TODA/AOA移动通信终端混合定位,最终确定移动终端的具体位置,并通过相关实验对其性能进行验证。

1 传统移动通信终端定位方法的弊端

一般来说,对移动通信网络终端定位实现的方式可总结为三种,分别为自定位、遥测定位及非直接定位[5]。自定位主要依靠移动终端完成对自身位置的计算和确定[6];遥测定位主要由特定的定位中心对连接的多个基站测量得到的结果进行处理,得到移动终端的位置信息,而移动终端对自身的位置是未知的[7];非直接定位为上述两种方法的结合,非直接定位仅通过移动通信终端测量定位信号,并不计算其所在的位置[8]。基于以上定位方法对于目前所研究的移动通信系统,均受到此移动通信系统基本结构以及传输形式的影响,使得现有的任意移动网络无线终端定位方法不可避免的受到制约[9]。最终导致其定位精准度不高,定位位置不准确;严重时会影响整个传输系统的崩溃,不能够实现定位[10]。传统定位方法在处理移动通信网络时由于无线信道存在着噪声干扰、非视距传播、多址干扰等因素的影响导致移动通信终端定位精准度较低的问题。

上述三种定位方法,基本为蜂窝系统移动终端定位方法,绝大部分都是建立在视距传播设定基础上。视距传播(NLOS)为准确测量移动通信终端定位参数的重要条件,也是获取准确的信号属性特征测量值的必须条件。但所处于繁华的城市及近郊中时,移动台与若干个基站之间进行LOS传播难度是较大的。更多的时候是通过反射及折射的形式实现传播的,因此影响了抵达场强、接收电波的抵达方向及电波的传播时间。因此,本文主要分析为非视距(NLOS)传播对移动通信终端定位造成的影响,并对其进行分析和改进。

2 卡尔曼滤波器定位改进设计的过程分析

2.1 卡尔曼滤波器TOA测量值预处理

通过将真实的NLOS误差输入卡尔曼滤波器的状态向量中,以此计算任意两个基站的信号抵达的时间差,利用式(1)、式(2)建立TDOA误差以及测量误差的数学模型,利用卡尔曼滤波器对去噪后的测量值进行定位计算,最后利用式(3)、式(4)建立卡尔曼状态方程及测量方程的数学模型:

式中,k时刻的TOA值表示为Δt(k),它的一阶导数为,TDOA误差表示为τ(k),测量的误差表示为nm(k)。θ的调控由实验决定。利用标准的卡尔曼滤波器排除NLOS误差,实现为将去噪过程及定位过程分开进行。实现对去噪后的测量值仅进行一次定位计算,使得每得到一个TOA测量值将携带着一个估计值,通过以上方式就完成了卡尔曼滤波器TOA测量值预处理。

2.2 基于神经网络算法的卡尔曼通信终端滤波过结果的修正

在完成卡尔曼滤波器TOA测量值预处理后,进行神经网络对移动通信系统卡尔曼滤波算法的修正,通过已知的神经网络结构以及原始参数进行,利用高精度样本对神经网络实现训练,获取神经网络的每个参数。在卡尔曼滤波器执行跟踪推测时,将影响跟踪推测误差的参数设定为神经网络的输入,通过神经网络对移动通信系统模块及噪声模块进行调整,从根本上控制了卡尔曼滤波的发散。通过上述描述将神经网络和卡尔曼滤波相结合,利用神经网络的无线逼近优势以及自主学习能力对卡尔曼滤波器的滤波过程进行修正,结果如图1所示。

神经网络对卡尔曼滤波器的滤波过程修正的结构图模型主要由三层构成,分别是输入层、输出层、隐含层:输入向量x=(x1,x2,…,xn)T;隐含层:输出向量y=(y1,y2,…,ym)T;输出层:输出向量ο=(ο1,ο2,…,οl)T;希望输出向量d=(d1,d2,…,dl)T;输入层至隐含层之间的权值矩阵v=(v1,v2,…,vm)T;隐含层至输出层之间的权值矩阵w=(w1,w2,…,wl)T。

通过神经网络对卡尔曼滤波器的滤波过程修正的结构图模型中的输入层、隐含层和输出层,将神经网络对卡尔曼滤波器结果的更正过程划分为两个阶段,第一阶段:当信号进行正向传输时,输入信号样本通过输入层传入,经由隐含层阶段处理后,抵达输出层,得到网络的实际输出。

第二阶段:如若在传输进程中出现输出层的实际输出与希望输出不相符,则切入信号误差的反向传输进程,此过程引入误差调控权值。通过梯度下降法将实际输出与希望输出的误差E以下降速率最高的方向(负梯度方向)减小,以此建立负梯度方向调控权值的模型式(5)、式(6)如下:

模型(6)经过推导即可得到新的权值模型。通过新的权值模型来进行调控,再次输入信息样本切入正向传输阶段,计算误差为E或δ,如若误差范围没有达到许可标准,将切入误差反向传输进程,接续调控权值。以第一阶段和第二阶段构成不断循环形式,不断进行,知道得到的移动通信网络输出误差达到许可标准时终止。对于神经网络对卡尔曼滤波器结果更正的具体实现过程,如图2所示。

将训练完成的BP神经网络应用于移动通信网络终端修正预测结果。在检测更新阶段,利用另一个BP神经网络计算标准卡尔曼滤波结果与实际结果的误差。通过利用基准达到精准度的样本,进行对神经网络进行离线训练。神经网络通过自身优势学习卡尔曼滤波结果的精准性,可以高精准的给出卡尔曼滤波结果与实际值之间的误差。最终,结合呈现的误差,即可获取神经网络修正后的卡尔曼滤波结果,这样就完成了移动通信网络卡尔曼滤波结果的更正。

2.3 卡尔曼滤波器的改进及实现

通过基于时间测量值(TDOA/AOA)进行移动通信终端混合定位时,要对参数r1进行重新确定,得到r1的估计原始值,并进行修正,重新设定卡尔曼滤波器参数。在结合AOA测量值与状态向量之间的线性关系应用于卡尔曼滤波器中,实现卡尔曼滤波器的改进设置。假设,通过TDOA/AOA测量值,推测移动台的原始位置,并根据此原始位置计算出r1的原始值。若移动台的原始坐标为(x,y),服务基站处于坐标原点(0,0)的位置,第三基站在第一象限内(x3,y3),相对于服务基站AOA和TDOA的测量值分别为a和d,通过AOA和TDOA的几何意义可推算出移动通信终端的几何方程组,输入TOA测量值,修正卡尔曼滤波器,得到移动通信终端的位置坐标,如式(7)所示。

通过AOA和TDOA的几何方程组及移动通信终端的位置,求得x值,将x代入,可计算得到y的坐标,通过此移动台的原始位置实现推测,可得到r1原始值的推测。

根据文献[5]中所提及的AOA测量值与状态向量的线性关系模型,在结合移动通信终端的位置坐标,确定移动终端的具体位置为:

式(8)中,移动台至服务基站之间的抵达角度表示为α,移动台到服务基站的距离表示为r1,移动台的位置表示为(x,y),角度的测量误差表示为nα。将此线性属性关系应用于卡尔曼滤波器中,完成卡尔曼滤波器模型的改进设置。

3 实验结果与分析

在卡尔曼滤波器定位改进设计过程实验的中,仿真参数如下:设置有5个基站,BS(1)设定为服务基站,位于(0,0),与移动台之间存在视距路径。各基站位置坐标为:BS1(0,0),BS2(0,2 601),BS3(2 305,1 305),BS4(2 305,-1 305),BS5(0,-2 601),如图3。移动台(MS)原始位置在东向位置为30 m,北向位置距离为40 m,移动台以(15.0,9.0)m/s的速度匀速运动。

3.1 实验一

信号传输速度为光速c,设定基站检测设备的测量误差用均值为0、标准差为0.1μs的高斯随机变量表征,设定θ为0.9,移动通信系统载频为1.8GHz,使用繁华市区的MLOS环境,噪声均遵从高斯分布。典型环境参数分别取为:T=0.90μs,ε=0.5,σξ=4 d B,采样间隔TS为0.5 s。则去除TOA中NLOS误差方法的性能,测试结果如图4所示。

通过卡尔曼滤波器对MS传输轨迹上1 300个取样点的TOA测量值(这里转化为距离)进行预处理,通过图4分析可知,改进方法计算得到的TOA测量值相比其余方法更加接近实际值,并且在排除NLOS误差性能上要优于其他的方法。

3.2 实验二

通过神经网络改进的卡尔曼滤波器应用于TDOA/AOA移动通信网络终端定位。在实验中,设定AOA测量误差为5°时以及指数散布误差模型下的TDOA定位算法在静态定位方法中,应用于TDOA及TDOA/AOA移动通信终端定位进行比较。得到了MS两个方向上的定位误差曲线对比,如图5、图6所示。

由图5、图6可知,本文提出利用神经网络修正的卡尔曼滤波器实现TDOA/AOA定位方法对移动通信网络终端定位精准度有明显提高,并在混合定位进程中多加考虑了到达角度的测量误差方面,进一步提升定位精准度。

图7为标准卡尔曼滤波经BP神经网络修正前后位置误差变化曲线图。分析图7可知,在误差修正前,移动通信网络终端定位误差最高可达到约+7.8 m至-6.0 m,但是利用本文的标准卡尔曼滤波经BP神经网络进行修正后,明显减小了定位误差,修正后的误差最高约+4 m至-2.0 m。

由此可以证明本文提出的改进的卡尔曼滤波TDOA定位方法的定位精度高于标准的卡尔曼滤波器定位方法。

4 结论

针对无线通信信道存在着噪声干扰等影响因素,导致移动通信终端定位精准度较低的问题,提出一种新的用于移动通信终端定位的卡尔曼滤波器改进设计,采用BP神经网络算法对其进行修正,得到TDOA测量值,利用卡尔曼滤波器对TDOA测量值进行预处理。利用基于服务基站的到达角度对移动通信网络终端进行定位。实验结果表明,改进的方法定位基准度高于标准的卡尔曼滤波器,且算法的复杂度基本未增加。

参考文献

[1]王江荣.基于卡尔曼滤波和粒子群优化算法的灰色神经网络预测模型.电气自动化,2014;36(1):24—26Wang Jiangrong.Gray neural network predition model based on Kalman filtering and particle swarm optimization algorithm.Electrical Automation,2014;36(1):24—26

[2] 谷丰,周楹君,何玉庆,等.非线性卡尔曼滤波方法的实验比较.控制与决策,2014;29(08):1387—1393Gu Feng,Zhou Yingjun,He Yuqing,et al.Experomental investigation and comparison of nonlinear Kalman filters.Control and Decision,2014;29(08):1387—1393

[3] 张怡,席彦彪,李刚伟,等.基于卡尔曼滤波的TDOA/AOA混合定位算法.计算机工程与应用,2015;51(20):62—66Zhang Yi,Xi Yanbiao,Li Gangwei,et al.TDOA/AOA hybrid positioning algorithm based on Kalman filter in NLOS environment.Computer Engineering and Applications,2015;51(20):62—66

[4] 李轩,韩笑,关庆阳,等.基于滤波方法的OFDM信道估计研究.电子设计工程,2014;(12):145—147Li Xuan,Han Xiao,Guan Qingyang,et al.Channel estimation for OFDM based on the filtering methods.Electronic Design Engineering,2014;(12):145—147

[5] 张维,李文涛,王力.基于接收信号强度的不同移动终端定位方法研究.西北工业大学学报,2014;32(03):481—485Zhang Wei,Li Wentao,Wang Li.Different mobile terminal positioning method based on the received signal strength is studied.Journal of Northwestem Polytechnical University,2014;32(03):481—485

[6] 王德广,郭阳.基于基站的移动终端定位的研究及应用.微型电脑应用,2014;30(8):18—20Wang Deguang,Guo Yang.Based on the research and application of mobile terminal positioning of the base station.Microcomputer Applications,2014;30(8):18—20

[7] 刘洋,杨乐,郭福成,等.基于定位误差修正的运动目标TDOA/FDOA无源定位方法.航空学报,2015;36(5):1617—1626Liu Yang,Yang Le,Guo Fucheng,et al.Moving targets TDOA/FDOA passive localization algorithm based on localization error refinement.Acta Aeronautica et Astronautica Sinica,2015;36(5):1617—1626

[8] 周成,黄高明,高俊,等.一种TDOA/FDOA联合校准定位算法.海军工程大学学报,2015;27(4):45—49Zhou Cheng,Huang Gaoming,Gao Jun,et al.An algebraic solution for joint source location and sensor calibration according to TDOA and FDOA.Journal of Naval University of Engineering,2015;27(4):45—49

[9]高红艳.基于静态传感器位置误差的TDOA源定位.电气自动化,2014;36(4):103—105Gao Hongyan.Source localization through tdoa based on static sensor position error.Electrical Automation,2014;36(4):103—105

卡尔曼滤波器设计 篇8

蜂窝网定位系统一般利用3个或3个以上基站接受的信号到达时间(TOA)、到达时间差(TDOA)、到达角度(AOA)和信号强度(RSS)等进行位置估计,非视距(NLOS)误差是影响这类算法精度的决定性因素,如何有效地鉴别和抑制NLOS误差,已成为TDOA、TOA等定位方法对移动定位精度研究和解决的重点问题[1]。

目前常用的NLOS误差消除方法是直接对测量值进行处理来消除NLOS误差,比较经典的有Wylie法[2]和卡尔曼滤波器方法等[3],但这些方法存在估计滞后性,无法满足实时定位需求。

交互多模法是不确定环境下有效的动态估计方法,广泛应用在机动目标跟踪领域[4]。将IMM方法应用到蜂窝网定位中来,采用IMMKF方法估计移动台到基站的距离,再根据几何原理进行位置计算。通过仿真验证了基于IMMKF的定位算法性能,并分析了影响IMMKF性能的各种因素。

1 系统模型

移动台和基站间传播信道的视距(LOS)/非视距变化情况可看成二元马尔科夫转移模型[5],如图1所示。假设n时刻信道处于LOS状态,n+1时刻信道仍处于LOS状态的概率是p11,发生LOS/NLOS转移的概率是p12。

rk(n)表示n时刻从移动台到基站k利用TOA得到的距离测量值,则[2]:

rk(n)=dk(n)+nk(n)+NLOSk(n), (1)

式中,dk(n)为真实距离值,nk(n)为标准测量噪声引起的距离偏移,是服从N(0,σ2)分布的高斯随机变量;NLOSk(n)是NLOS传播引起的距离偏移,是服从N(mNLOS,σNLOS2)分布的高斯随机变量,是主要的误差来源。由于2种误差是独立同分布的,因此,式(1)还可以表示为[6]:

rk(n)=dk(n)+mk_NLOS+bk(n)wk(n) , (2)

其中,mk_NLOS和bk(n)定义如下[6]:

2 IMMKF工作原理

2.1状态空间模型

根据式(2)的距离测量模型,定义基站k的状态向量为:

xk(n)=[dk(n)d˙k(n)]Τ, (4)

d˙k(n)表示移动台相对基站k的运动速度,动态状态方程表达式为:

xk(n+1)=Fxk(n)+Cvk(n) , (5)

rk(n)=Gxk(n)+mk_NLOS+bk(n)wk(n) 。 (6)

其中:

2.2IMMKF估计移动台到基站的距离

IMMKF包括4个部分:输入交互、Kalman滤波、模型概率更新和状态融合[7,8]。下面给出基站k的IMMKF从n-1时刻到n时刻的循环递推过程。

① 输入交互 滤波器n时刻的输入状态和估计误差的协方差分别为[CX1]x[CX]^k,0j(n-1|n-1)[CX1]Ρ[CX]k,0j(n-1|n-1),i,j∈[1 :LOS 滤波器, 2 : NLOS 滤波器]。

μk,i|j(n-1|n-1)=(1/c¯k,j)pijμk,i(n-1), (7)

c¯k,j=ipijμk,i(n-1), (8)

x^k,0j(n-1|n-1)=ix^k,i(n-1|n-1)μk,i|j(n-1|n-1)(9)

[CX1]Ρ[CX]k,0j(n-1|n-1)=i{[CX1]Ρ[CX]k,i(n-1|n-1)+[xk,i(n-1|n-1)-x^k,0j(n-1|n-1)]×[k,ix(n-1|n-1)-x^k,0j(n-1|n-1)]Τ}×μk,i|j(n-1|n-1)(10)

② Kalman滤波

x^k,j(n|n-1)=Fx^k,0j(n-1|n-1), (11)

[CX1]Ρk,j(n|n-1)=FPk,0j(n-1|n-1)FT+σv2CCT, (12)

ek,j(n)=rk,j(n)-Gx^k,j(n|n-1), (13)

[CX1]Κ[CX]k,j(n)=[CX1]Ρ[CX]k,j(n|n-1)[CX1]G[CX]Τ[CX1]S[CX]k,j(n)-1, (14)

x^(k,j)(n|n)=x^[CX]k,j(n|n-1)+[CX1]Κ[CX]k,j(n)ek,j(n), (15)

Sk,j(n)=GPk,j(n|n-1)[CX1]G[CX]Τ+bk,j2, (16)

[CX1]Ρ[CX]k,j(n|n)=[I-Kk,j(n)G]Pk,j(n|n-1)。 (17)

③ 模型概率更新

似然函数:

k,j(n)=N(ek,j(n);0,Sk,j(n)) ; (18)

模型概率更新:

μk,j(n)=1ckk,j(n)ipijμk,i(n-1)=1ckk,j(n)c¯k,j, (19)

ck=jk,j(n)c¯k,j。 (20)

④ 状态融合

d^k(n)是移动台到基站k的距离估计值。

x^k(n|n)=jx^k,j(n|n)μk,j(n), (21)

[CX1]Ρ[CX]k(n|n)=j{[CX1]Ρ[CX]k,j(n|n)+[[CX1]x[CX]k,j(n|n)-x^k(n|n)]×[xk,j(n|n)-x^k(n|n)]Τ}×μk,j(n), (22)

d^k(n)=Gx^k(n|n)。 (23)

3 仿真与性能分析

3.1仿真环境

假设移动台以70 km/h的速度沿直线匀速运动,样本总长度为1 000,采样间隔T为0.2 s,标准测量噪声误差服从均值为0,标准差为150 m的高斯分布;NLOS传播误差服从均值为513 m,标准差为409 m的高斯分布。仿真移动通信环境时,假设移动台和基站间传播信道的LOS/NLOS转移情况为每200个样本转移一次,且基站(BS1(0,0)、BS2(0, 5 000) 、BS3(4 330, 2 500))可以同时检测到来自移动台的发射信号。式(6)中vk(n)是过程驱动噪声,大小取决于移动台加速度,假设为均值为0,方差为1的高斯随机过程。各模型初始概率设为0.5,由移动台和基站间信道的状态转移情况,可得出二元马尔科夫状态转移矩阵为:

通过与基于单模(LOS模型)Kalman滤波的定位算法比较,以证明本算法的良好性能。运用误差累积分布函数计算67%的定位误差和95%的定位误差,以评价定位准确率。

3.2定位算法性能分析

基于测距的定位算法精度主要取决于能否准确地估计出移动台到基站的距离。移动台和基站间信道状态固定和转移情况下Kalman和IMMKF的滤波结果如图2所示,不难看出,IMMKF明显优于Kalman,当信道状态为NLOS时,Kalman无法准确估计出两者之间的距离。这是因为,Kalman在状态方程能正确反映信道的实际情况下,距离估计是最小方差意义下的估计,当信道为NLOS传播时,Kalman不能自适应调整状态方程以匹配实际信道情况。

IMMKF由LOS和NLOS模型的2个Kalman滤波器组成,NLOS模型的Kalman滤波状态方程考虑了NLOS传播误差,匹配NLOS信道状态,不同模型间有效的融合能够克服状态方程由于模型单一而带来的模型不匹配的局限性。因而,IMMKF能在LOS/NLOS固定和转移情况下较准确地估计移动台到基站的距离。当使用基于测距的定位算法定位时,67%的定位误差为47.64 m,95%的定位误差为73.54 m,定位精度满足FCC需求。而基于单模Kalman滤波器定位时,67%的定位误差为422.77 m,95%的定位误差为490.21 m。

3.3IMMKF滤波性能分析

IMMKF滤波特性优于Kalman,但其好坏受到很多因素的制约。下面进行详细分析。

① 模型精度和模型概率估计是影响IMMKF滤波性能的主要因素。模型精度高是指模型在描述某一状态时误差很小,而在描述其他状态时,误差则较大;模型概率估计精度高则是指模型在描述某时刻信道状态时起主导作用的阶段和不起主导作用的阶段能够很清楚地从模型概率估计曲线上区分开来。算法中模型之间的差别指NLOS噪声方差。仿真时,LOS和NLOS噪声标准差分别为0和409 m,模型差别较大。假设n时刻信道为NLOS状态,用LOS模型描述该信道时误差较大,即LOS模型下的滤波残差较大,由公式 (18)~ 公式(21)可得此时LOS模型概率较小,状态估计不占主导地位,IMMKF输出主要取决于与信道较匹配的NLOS模型状态估计值。σNLOS为409 m和309 m时的模型概率曲线如图3所示,从图中可以明显看出,移动台和基站间信道状态的变化情况(每40 s变化一次)和各时间段内起主导作用的模型,但当模型差别变小时,概率精度随之降低。

② 马尔可夫状态转移矩阵对IMMKF滤波性能的影响。马尔可夫状态转移矩阵实际上相当于模型状态方程的转移矩阵,它将直接影响模型误差和模型概率估计的准确性。当马尔可夫状态转移矩阵为:

时,定位误差曲线如图4所示。当马尔可夫矩阵为H1=0.990/0.010时,67%的定位误差为67.09 m,95%的定位误差为97.56 m;H2=0.985/0.015时,67%的定位误差为81.59 m,95%的定位误差为114.44 m。这说明随着马尔可夫矩阵的变化,模型与实际信道的偏差越来越大,导致IMMKF距离估计误差越来越大,因而最终定位误差也越来越大。

③ IMMKF采用模型集的方法,可以根据实际情况变化实时地增减和变更模型,当对信道状态变化规律较为清楚时,滤波器可以选择能够比较精确地描述状态的模型,以提高估计准确度。

由于实际信道的复杂性,LOS和NLOS两个模型已不足以精确地描述通信环境,可将通信环境假设为开阔(LOS)环境、NLOS误差较小的郊区(Rural)环境和NLOS误差较大的城市(Urban)环境,这3种模型按照马尔可夫转移矩阵转移来描述移动台到基站的传输信道变化情况。移动台与基站传播环境按照LOS/Rural/Urban变化时IMMKF的滤波结果如图5所示,结果显示IMMKF仍然能较逼近移动台到基站的真实距离。

5结束语

在复杂的通信环境下,IMMKF能够通过模型间的交互作用,抑制测距数据中的NLOS误差,滤波结果非常逼近移动台到基站的真实距离,是动态环境下比较有效的测距方法,基于IMMKF的定位算法能够获到较理想的定位精度。

参考文献

[1]范平志,邓平,刘林.蜂窝网无线定位[M].北京:电子工业出版社,2002,24-29.

[2]WYLIE M P,HOLTZMAN J.The Non-Line of SightProblem in Mobile Location Estimation[C]//in ProcIEEE Universal Personal Communications Conference1996:827-831.

[3]LE B L,AHMED K,TSUJI H.Mobile Location Estimatorwith NLOS Mitigation Using Kalman Filtering[C]//Proc.IEEE Wireless Communications and NetworkingConference,New Orleans Louisiana USA,2003:1969-1973.

[4]MAZOR E,AVERBUCH A,BAR-SHALOM Y,et al.Interacting Multiple Model Methods in Target Tracking:aSurvey[J].IEEE Trans.Aerospace and ElectronicSystems,1998,34(1):103-123.

[5]MORELLI C,NICOLI M,RAMPA V.Hidden MarkovModels for Radio Localization in Mixed LOS/NLOSConditions[J].IEEE Trans.Signal Processing,2007,55(4):1525-1542.

[6]LIAO Jung-feng,CHEN Bor-sen.Robust MobileLocation Estimator with NLOS Mitigation UsingInteracting Multiple Model Algorithms[J].IEEETransactions on Wireless Communications 2006,5(11):3002-3006.

[7]BLOM H A,BAR-SHALOM Y.The Interacting MultipleModel Algorithm For Systems With Markovian SwitchingCoefficients[J].IEEE Trans.Automatic Control,1988,33(8):780-783.

卡尔曼滤波器设计 篇9

油气介质的管道输送有着安全、高效、成本低、损耗小等特点。但由于管道腐蚀、人为破坏等原因造成的油气资源泄漏对周边地区的自然环境都产生了严重的不利影响, 因此如何及时、准确地定位泄漏点并判断泄漏规模有着重大的意义[1]。

检测油气管道泄漏的技术与方法有很多种[2]。本文就是通过对对卡尔曼滤波器的研究, 结合基于管道泄漏检测的压力信号的卡罗曼滤波模型, 在LabVIEW平台上开发出了卡尔曼滤波模块。

1 基于压力信号的卡尔曼滤波模型

Kalman滤波根据系统方程和观测方程估计出所需要处理的信号。针对由管道上实时采集的压力信号序列的特点, 建立如下的模型:

s (k) =s (k-1) +ω¯ (k-1) (1)

x (k) =s (k) +n (k) (2)

模型的卡尔曼递推算法如下:

预测误差方差:p1 (k) =p (k-1) +σω¯2 (3)

增益:b (k) =p1 (k) [p1 (k) +σn2]-1 (4)

滤波误差方差:

p (k) =p1 (k) -b (k) p1 (k) =b (k) σn2 (5)

滤波方程:

s¯ (k) =s¯ (k-1) +b (k) [x (k) -s¯ (k-1) ] (6)

新息:e (k) =x (k) -s¯ (k-1) (7)

新息方差:S (k) =p1 (k) +σn2 (8)

初始值设为:s¯ (0) =E[s (k) ]p (0) =0 (9)

流程如图1所示。根据上面建立的卡尔曼数学模型及递推流程图, 就可以对管道上采集的压力信号序列进行处理。

2 Kalman滤波器的LabVIEW实现

卡尔曼滤波处理的输入是待分析的压力信号序列, 输出是归一化的新的信息序列, 根据图1的流程图, 利用LabVIEW实现该算法如图2所示。

InputArray是输入端子, 即压力信号序列;该程序设计了两个输出端子:Out Signal和 New Info, 前者是压力序列经卡尔曼滤波后的波形, 后者是归一化的新息序列, 即卡尔曼滤波前后的波形差, 此序列正是序贯概率比检验 (SPRT) 模块的输入数组。

在卡尔曼滤波器数据处理模块的前面板上, 放置了三个波形显示器, 用以显示原压力信号波形、卡尔曼滤波处理后的波形及归一化的新息波形。卡尔曼处理模块的三个波形显示器分别如图3-图5所示。其中图3是原始压力信号显示器, 用于显示接收到的原始压力信号。图4是经过Kalman滤波处理后的压力数据, 可以看出它的图形曲线相对于原始数据明显变得平滑, 滤波效果明显。图5是经过处理后的归一化新息序列, 编程过程中将其设定为一个全局变量, 从图5中可以看出, 只要压力数据出现压力变化, 归一化的信息将出现明显的尖峰脉冲, 从而为泄露的检测提供了有效信息, 使泄露的判断更以准确。

3 实验数据分析

下面以大庆石油管理局采油十厂到管理局总站的一段管道提供的数据, 应用本模块进行现场数据的处理。该管线管长54.78 km, 2007年6月发生一次原油泄漏事件, 在不考虑两端压力变送器响应时间差的影响下, 应用Kalman滤波模块之前定位于距采油十厂32.46 km的地方, 实际发现盗油处在33.56 km处。

相对误差=32.46-33.5654.78=-2%

应用Kalman滤波模块之后, 检测系统判断泄漏信号到达上游压力测量点和下游压力测量点的时间差有0.4秒的绝对误差, 当时的平均波速为1.12 km/s, 定位泄漏点于距采油十场32.69 km的地方。

相对误差=32.69-33.5654.78=-1.6%

4 结论

本文通过对卡尔曼滤波理论的研究, 并结合适合管道泄漏检测的压力信号的的Kalman滤波模型, 利用LabVIEW开发平台开发出了用于管道泄漏检测的Kalman滤波模块, 实验数据分析表明, 本文的设计合理可靠, 有效地降低了定位的误差。因为在管道泄漏检测系统中, 如果有1 s的误差, 那么定位的误差将达到1 000 m以上。所以有效的降低时间误差, 能有效的提高定位精度。

摘要:管道泄漏检测技术是保障管道安全生产的重要手段。应用Kalman滤波器对采得的输油管道原始压力数据进行实时性滤波, 以消除噪声干扰、提高信噪比;利用滤波后的信号进行输油管道泄漏的报警和定位。依据虚拟仪器理论, 设计了卡尔曼滤波的LabVIEW程序模块, 设计的模块可以直接嵌入到现有的管道泄漏实时监测系统中。实验数据表明Kalman滤波器可大大提高输油管道泄漏报警的可靠性及其定位精度。

关键词:管道,泄漏检测,卡尔曼滤波器,虚拟仪器

参考文献

[1]王雪亮, 苏欣, 杨伟.油气管道泄漏检测技术综述.天然气与石油, 2007;25 (3) :19—23

卡尔曼滤波器设计 篇10

PID控制系统因其简单、稳定性好和可靠性高等优点, 被广泛应用到工业过程控制中。PID控制器的性能取决于它的三个参数 (比例、积分和微分) 的整定是否合理, 因此, 优化PID控制器参数具有重要意义。但是PID参数的整定一般需要经验丰富的工程技术人员来完成, 这种方法不仅费时, 而且不能保证获得最佳性能。粒子群算法 (Particle Swarm Optimization, PSO) 是一种有效的全局寻优算法, 本文将使用PSO对PID控制器的参数进行优化设计。另外, 在有噪声干扰的控制系统中, 噪声往往是非平稳随机过程, 因其时变性, 致使功率谱不固定。卡尔曼滤波 (R.E Kalman) 是一种具有最小无偏差性, 适用于非平稳序列滤波的算法, 它是能够剔除随机干扰误差, 获取逼近真实情况的有用信息, 且能自适应地处理观测值。基于此, 本文建立了基于粒子群算法和卡尔曼滤波器的PID控制方法, 有效地解决了PID控制系统中存在的参数的整定及控制干扰信号和测量噪声信号问题。仿真结果表明该方法具有良好的控制效果, 明显地改善了系统的静态和动态特性。

1 基于粒子群算法的参数优化

粒子群优化算法 (Particle Swarm Optimization, PSO) 是Kennedy和Eberhart受鸟群觅食行为启发于1995年提出的一种全局优化算法[1,2]。PSO算法 (一种仿生算法) 具有搜索能力强、收敛速度快、设置参数少、程序易实现和无需梯度信息等特点。所有的粒子 (搜索空间中的鸟) 都有一个由被优化函数决定的适应值和一个决定它们运动方向和运动距离的速度, 问题的解就是搜索空间中的一只鸟的位置。PSO算法的主要特点为: (1) 每一粒子都被赋予了初始随机速度并在解空间中流动; (2) 个体具有记忆功能; (3) 个体的进化主要是它本身的飞行经验以及同伴的飞行经验进行动态调整, 通过迭代找到最优解。在每一次迭代过程中, 粒子通过追逐两个极值来更新自己的位置。一个是粒子自身所找到的当前最优解, 这个解称为个体极值pbest;另一个是整个群体当前找到的最优解, 这个解称为全局极值pbest

PSO算法如下[3]:

设在一个D维搜索空间中, 由n个粒子组成的种群X= (X1, X2, …, Xn) , 其中第i个粒子表示为一个D维的向量Xi= (xi1, xi2, …, xi D) T, 代表第i个粒子在D维搜索空间中的位置, 亦代表问题的一个潜在解。根据目标函数即可计算出每个粒子位置Xi对应的适应度值。第i个粒子的速度为Vi= (vi1, vi2, …, vi D) T, i=1, 2, …, n。记第i个粒子搜索到的最优位置 (即个体最优值pbest) 为Pi= (pi1, pi2, …, pi D) T;整个粒子群搜索到的最优位置 (全局最优值gbest) 为Pg= (pg1, pg2, …, pg D) T。当两个最优解都找到后, 每个粒子根据下式来更新自己的状态。

粒子状态更新操作如下:

其中, vid (t+1) 表示第i个粒子在t+1次迭代中第d (d=1, 2, …, D) 维上的速度;w为惯性权重, η1, η2为加速常数 (学习因子) , rand () 为0~1之间的随机数。此外, 为使粒子速度不致过大, 可设置速度上下限, 即vid∈[-vmax, vmax], vmax是之前设定的最大速率 (边界值) , t为当前迭代次数。Pt是粒子迄今为止搜索到的最优位置;Gt是整个粒子群迄今为止搜索到的最优位置。

用于参数估计的PSO算法具体实现过程如下:

(1) 初始化粒子群, 随机产生所有粒子群的位置和速度, 并确定粒子的Pt和Gt。

(2) 对每个粒子, 将其适应值与该粒子所经历过的最优位置Pt的适应值进行比较, 如较好, 则将其作为当前的。

(3) 对每个粒子, 将其适应值与整个粒子群所经历过的最优位置Gt的适应值进行比较, 如较好, 则将其作为当前的Pt。

(4) 按式 (1) 和 (2) 更新粒子的速度和位置。

(5) 如果没有满足终止条件 (通常为预设的最大迭代次数和适应值下限值) , 则返回步骤 (2) ;否则, 退出算法, 得到最优解。

2 卡尔曼滤波算法

卡尔曼滤波是以最小均方误差为准则的最佳线性估计, 它根据前一个估计值和最近一个观测数据来估计信号的当前值, 利用状态方程和递推方法进行估计, 而且得到的解也是以估计值的形式给出的, 最大的特点是能够去除测量系统中的随机误差, 来获取更接近真实值的信息, 能较好的应用于处理多变量系统, 时变系统及非线性系统的最佳滤波等。卡尔曼滤波器结构[4]如图1。

对于离散域线性系统[4]:

式中x (k) 是系统的n维状态向量;yv是m维带有噪声的测量向量;A是n×n维非奇异状态一步转移矩阵;矩阵B是n×l维可选的控制输入u∈Rl的增益;C是m×n维观测矩阵。系统的n维过程激励噪声w (k) 和m维测量噪声v (k) 是不相关的零均值高斯白噪声。

离散卡尔曼滤波器递推算法为:

误差的协方差为:errcov (v (k) ) =CP (k) CT

3 基于粒子群算法和卡尔曼滤波器的PID控制

基于粒子群算法和卡尔曼滤波的PID控制系统结构如图2所示。

控制系统通过卡尔曼滤波器对混有控制干扰信号和测量噪声信号进行滤波, 反馈到系统输入端, 利用粒子群算法对PID控制器的参数进行优化。

图2中粒子群算法与PID控制系统之间连接的桥梁是粒子 (即PID控制器参数) 和该粒子对应的适应值 (即控制系统的性能指标) 。优化过程如下:PSO产生粒子群 (可以是初始化粒子群, 也可以是更新后的粒子群) , 将该粒子群中的粒子依次赋值给PID控制器的参数Kp, Ki, Kd, 然后运行控制系统模型, 得到该组参数对应的性能指标, 该性能指标传递到PSO中作为该粒子的适应值, 最后判断是否可以退出算法。

4 仿真实例

设被控对象为系统[5]:

设采样时间为0.001 s, 将传递函数进行离散化得到:

4.1 参数设定及仿真

假设系统的初值[6], 取Q=1, R=1。输入信号为一阶跃信号, 控制干扰信号w (k) 和测量噪声信号V (k) 幅值均为0.002的白噪声信号, 采用卡尔曼滤波器实现信号滤波。粒子群算法中的参数为:惯性因子w=0.6, 加速常数c1=c2=2, 维数为3 (有3个待优化参数kp, ki, kd) , 粒子群规模为30, 待优化函数为:

最大迭代次数为100, 最小适应值为0.1, 速度范围为[-1, 1], 3个待优化参数kp, ki, kd范围均为[0, 10]。

(1) 取kp=6.0, ki=0.8, kd=0.2 (经验值) , 则常规的PID控制下系统的仿真结果如图3所示。

图中r, y为无因次量, 其中y为实际值, r为阶跃值, 且r=1。横轴为时间轴, 单位为s;纵轴为数值轴, 以下 (图4及图6) 相同。

(2) 基于R.E Kalman-PID控制系统的仿真结果如下图4。

(3) 经粒子群算法优化后得到的参数为kp=9.307 1;ki=9.680 8;kd=0.477 0。基于R.E Kalman-PSO-PID的系统仿真结果与基于R.E Kalman-PID的系统仿真结果比较如图5所示。

4.2 仿真结果分析

比较图3与图4, 可以看出, 采用卡尔曼滤波的PID控制, 可以得到稳定的系统输出, 能够显著地减小噪声的影响。图5表明经粒子群优化算法和卡尔曼滤波算法的PID控制除了能够效抑制噪声对系统稳定性造成的不利影响外, 还能够能够有效减少系统的峰值时间, 减小震荡次数和超调量, 使系统快速达到稳定状态, 提高的系统的动态性能和静态性能, 增强的系统的鲁棒性。另外, 在利用粒子群算法对参数进行优化时, 如果将搜索范围扩大到[0, 300], 我们得到另一组优化参数:kp=166.258 4, ki=294.035 1, kd=1.242 8, 可以进一步提高控制器的控制品质, 使上升时间更短, 且使系统进入的稳态时间缩短了约50%, 快速达到目标值, 仿真结果如图6。

5 结束语

本文提出基于粒子群算法和卡尔曼滤波器的PID控制方法, 有效地解决了PID控制系统中参数的整定以及控制干扰信号和测量噪声信号问题, 提高了系统的抗干扰能力和控制品质。仿真结果表明这种控制方法能使系统各项指标有了明显的提高, 尤其是超调量有了明显的减少, 缩短上升时间。该方法有一定的实用价值。

参考文献

[1]史峰, 王辉, 胡斐, 等.MATLAB智能算法30个案例分析[M].北京:北京航空航天大学出版社, 2012:130-131.

[2]许国根, 贾瑛.模式识别与智能计算的MATLAB实现[M].北京:北京航空航天大学出版社, 2012:211-212.

[3]杨淑莹.模式识别与智能计算——MATLAB技术实现[M].北京:电子工业出版社, 2011:345-347..

[4]刘金琨.先进PID控制MATLAB仿真[M].北京:电子工业出版社, 2011:64-65.

[5]胖永新, 金迪, 孟宪东.球杆系统的建模、仿真与控制器设计[J].武汉大学学报 (工学版) , 2005, 38 (6) :142-146.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【卡尔曼滤波器设计】相关文章:

无迹卡尔曼滤波器05-31

卡尔曼滤波算法07-08

飞思卡尔设计报告04-08

飞思卡尔08-24

卡尔威特教育理念07-07

卡尔威特教育全书07-07

卡尔沃主义08-26

德小卡尔威特范文05-25

卡尔威特的教育范文06-13

卡尔威特的教育介绍08-18

上一篇:人才培养措施下一篇:补贴的必要性和策略