扩展卡尔曼滤波(EKF)应用于GPS-INS组合导航

扩展卡尔曼滤波(EKF)应用于GPS-INS组合导航
扩展卡尔曼滤波(EKF)应用于GPS-INS组合导航

clear all;

%% 惯性-GPS组合导航模型参数初始化

we = 360/24/60/60*pi/180; %地球自转角速度,弧度/s

psi = 10*pi/180; %psi角度/ 弧度

Tge = 0.12;

Tgn = 0.10;

Tgz = 0.10; %这三个参数的含义详见参考文献

sigma_ge=1;

sigma_gn=1;

sigma_gz=1;

%% 连续空间系统状态方程

% X_dot(t) = A(t)*X(t) + B(t)*W(t)

A=[0 we*sin(psi) -we*cos(psi) 1 0 0 1 0 0;

-we*sin(psi) 0 0 0 1 0 0 1 0;

we*cos(psi) 0 0 0 0 1 0 0 1;

0 0 0 -1/Tge 0 0 0 0 0;

0 0 0 0 -1/Tgn 0 0 0 0;

0 0 0 0 0 -1/Tgz 0 0 0;

0 0 0 0 0 0 0 0 0;

0 0 0 0 0 0 0 0 0;

0 0 0 0 0 0 0 0 0;]; %状态转移矩阵

B=[0 0 0 sigma_ge*sqrt(2/Tge) 0 0 0 0 0;

0 0 0 0 sigma_gn*sqrt(2/Tgn) 0 0 0 0;

0 0 0 0 0 sigma_gz*sqrt(2/Tgz) 0 0 0;]';%输入控制矩阵%% 转化为离散时间系统状态方程

% X(k+1) = F*X(k) + G*W(k)

T = 0.1;

[F,G]=c2d(A,B,T);

H=[1 0 0 0 0 0 0 0 0;

0 -sec(psi) 0 0 0 0 0 0 0;];%观测矩阵

%% 卡尔曼滤波器参数初始化

t=0:T:50-T;

length=size(t,2);

y=zeros(2,length);

Q=0.5^2*eye(3); %系统噪声协方差

R=0.25^2*eye(2); %测量噪声协方差

y(1,:)=2*sin(pi*t*0.5);

y(2,:)=2*cos(pi*t*0.5);

Z=y+sqrt(R)*randn(2,length); %生成的含有噪声的假定观测值,2维X=zeros(9,length); %状态估计值,9维

X(:,1)=[0,0,0,0,0,0,0,0,0]'; %状态估计初始值设定

P=eye(9); %状态估计协方差

%% 卡尔曼滤波算法迭代过程

for n=2:length

X(:,n)=F*X(:,n-1);

P=F*P*F'+ G*Q*G';

Kg=P*H'/(H*P*H'+R);

X(:,n)=X(:,n)+Kg*(Z(:,n)-H*X(:,n));

P=(eye(9,9)-Kg*H)*P;

end

%% 绘图代码

figure(1)

plot(y(1,:))

hold on;

plot(y(2,:))

hold off;

title('理想的观测量');

figure(2)

plot(Z(1,:))

hold on;

plot(Z(2,:))

hold off;

title('带有噪声的观测量'); figure(3)

plot(X(1,:))

hold on;

plot(X(2,:))

hold off;

title('滤波后的观测量');

ardupilot(EKF)扩展卡尔曼滤波

ardupilot(EKF)扩展卡尔曼滤波 一、初识卡尔曼滤波器 为了描述方便我从网上找了一张卡尔曼滤波器的5大公式的图片。篇幅所限,下图所示的是多维卡尔曼滤波器(因为EKF2是多维扩展卡尔曼滤波器,所以我们从多维说起),为了跟好的理解卡尔曼滤波器可以百度一下,从一维开始。 这5个公式之外还有一个观测模型,根据你实际的观测量来确定,它的主 要作用是根据实际情况来求观测矩阵H。 因为卡尔曼滤波器是线性滤波器,状态转移矩阵A和观测矩阵H是确定的。在维基百科上状态转移矩阵用F表示。在ardupilot EKF2算法中,状态转移矩阵也是用F表示的。下面是维基百科给出的线性卡尔曼滤波器的相关公式。

上述更新(后验)估计协方差的公式对任何增益K k都有效,有时称为约瑟夫形式。为了获得最佳卡尔曼增益,该公式进一步简化为P k|k=(I-K k H k)P k|k-1,它在哪种形式下应用最广泛。但是,必须记住它仅对最小化残差误差的最佳增益有效。 为了使用卡尔曼滤波器来估计仅给出一系列噪声观测过程的内部状态,必须根据卡尔曼滤波器的框架对过程进行建模,这意味着指定一下矩阵:

只要记住一点就行了,卡尔曼滤波器的作用就是输入一些包含噪声的数据,得到一些比较接近真是情况的数据。比如无人机所使用的陀螺仪和加速度计的 读值,他们的读值都是包含噪声的,比如明明真实的角速度是俯仰2°/s,陀螺 仪的读值却是2.5°/s。通过扩展卡尔曼之后的角速度值会变得更加接近2o/s 的真实值,有可能是2.1o/s。 二、扩展卡尔曼滤波器 因为卡尔曼滤波器针对的是线性系统,状态转移模型(说的白话一点就是知道上一时刻被估计量的值,通过状态转移模型的公式可以推算出当前时刻被 估计量的值)和观测模型。注:有的资料显示状态模型中有,有的没有,目前 我也不清楚是为什么,有可能和被估计的对象有关。但看多了你就会发现不管 网上给的公式有怎样的不同,但总体的流程是一样的,都是这5大步骤。我个 人觉得维基百科给的公式较为标准。 因为扩展卡尔曼滤波器(EKF,Extended Kalman filter)的使用场景为非线性系统。所以上面两公式改写为下面所示的样子,我个人的理解是,因为是 非线性系统,所以没有固定的状态转移矩阵和观测矩阵。到这儿为止卡尔曼滤 波器到扩展卡尔曼滤波器的过度就完成了(多说一句,因为传感器的数据采样 是有时间间隔的,算法的运行也是有间隔的,所以本文提到的KF和EKF都是离散型的)。下面是扩展卡尔曼滤波器的相关公式。

扩展卡尔曼滤波matlab程序

文件一 % THIS PROGRAM IS FOR IMPLEMENTATION OF DISCRETE TIME PROCESS EXTENDED KALMAN FILTER % FOR GAUSSIAN AND LINEAR STOCHASTIC DIFFERENCE EQUATION. % By (R.C.R.C.R),SPLABS,MPL. % (17 JULY 2005). % Help by Aarthi Nadarajan is acknowledged. % (drawback of EKF is when nonlinearity is high, we can extend the % approximation taking additional terms in Taylor's series). clc; close all; clear all; Xint_v = [1; 0; 0; 0; 0]; wk = [1 0 0 0 0]; vk = [1 0 0 0 0]; for ii = 1:1:length(Xint_v) Ap(ii) = Xint_v(ii)*2; W(ii) = 0; H(ii) = ‐sin(Xint_v(ii)); V(ii) = 0; Wk(ii) = 0; end Uk = randn(1,200); Qu = cov(Uk); Vk = randn(1,200); Qv = cov(Vk); C = [1 0 0 0 0]; n = 100; [YY XX] = EKLMNFTR1(Ap,Xint_v,Uk,Qu,Vk,Qv,C,n,Wk,W,V); for it = 1:1:length(XX) MSE(it) = YY(it) ‐ XX(it); end tt = 1:1:length(XX); figure(1); subplot(211); plot(XX); title('ORIGINAL SIGNAL'); subplot(212); plot(YY); title('ESTIMATED SIGNAL'); figure(2); plot(tt,XX,tt,YY); title('Combined plot'); legend('original','estimated'); figure(3); plot(MSE.^2); title('Mean square error'); 子文件::function [YY,XX] = EKLMNFTR1(Ap,Xint_v,Uk,Qu,Vk,Qv,C,n,Wk,W,V); Ap(2,:) = 0; for ii = 1:1:length(Ap)‐1 Ap(ii+1,ii) = 1;

联合卡尔曼滤波器在数据融合中的应用_胡宏灿

文章编号:1008-8652(2005)01-001-004 联合卡尔曼滤波器在数据融合中的应用 胡宏灿1,2 郭 立1 朱俊株1 (1.中国科学技术大学 合肥 230026; 2.海军大连舰艇学院 大连 116018) 【摘要】 介绍多传感器数据融合中联合卡尔曼滤波器的设计步骤,并将此方法用于舰船组合导航系统,计算机仿真和理论分析表明,该滤波器可以做到全局最优,其结构遵循信息分配原则,提高了系统的数值稳定性和容错性,减小了数据传输的工作量与计算量,便于计算机实现,能够满足组合导航系统需要。 关键词:组合导航系统;数据融合;联合卡尔曼滤波 中图分类号:T P391.7 文献标识码:A The Application of Federal Kalman Filter in Data Fusion System Hu Ho ng can1,2 Guo Li1 Zhu Junzhu1 (1.University of Science and T echnology of China H ef ei230026; 2.Dalian N av al Vessels A cademy Dalian116018) Abstract:A new design o f Kalman filter based on data fusion is presented in the paper.Fistly,the fr ame Kalman filter is intr oduced.T hen,the algo rithm is given.T he simulatio n results show that the metho d is useful in integr ated navigation sy stem because it can impr ove accur acy and r eliability,and it has hig h fault-tolerant ability. Keywords:integ rated nav igatio n sy stem;data fusio n;feder al Kalman filter 1 引言 数据融合技术是近年来新兴的一门实践性较强的技术,它是对系统多个传感器的数据进行处理的过程。众所周知,由于任何传感器都有自身的不足之处,所以单一传感器具有误报风险大,可靠性和容错能力低等缺点。为了对测量环境或对象的特征有个全面、正确的认识,克服单一传感器的上述缺点,多传感器数据融合技术应运而生。简单的说,多传感器融合技术就是融合多个传感器的信息,以产生比单个传感器更可靠、更准确的信息。常用方法有贝叶斯估计法和DS证据理论法及经典推算法等,神经网络、小波分析等智能方法近年来也是研究数据融合的重要方法和手段。卡尔曼滤波器自上世纪六十年代被提出以后,作为一种新型的滤波手段在控制、跟踪、测量领域得到广泛应用。由于卡尔曼滤波器对数据的估计是无偏最优估计,滤波器结构简单等特点,使得卡尔曼滤波器在多传感器数据融合中应用极为广泛。过去使用的集中式卡尔曼滤波器要集中处理所有传感器的数据,计算量大,实时性差,并且不具备容错性。本文基于Car lson提出的联合卡尔曼滤波算法,介绍了利用信息分配原则实现多传感器信息最优融合的滤波器的设计,不仅使系统具备了一定的容错能力,实时性也有较大幅度的提高。最后给出了联合卡尔曼滤波器在舰船组合导航中的应用实例。 2 联合卡尔曼滤波器的设计步骤 联合卡尔曼滤波器的设计主要围绕两个方面,第一是对数据进行分散处理,第二是分散处理过的数据X收稿日期:2004-11-26

卡尔曼滤波数据融合算法

/********************************************************* // 卡尔曼滤波 //********************************************************* //在程序中利用Angle+=(Gyro - Q_bias) * dt计算出陀螺仪积分出的角度,其中Q_bias是陀螺仪偏差。 //此时利用陀螺仪积分求出的Angle相当于系统的估计值,得到系统的观测方程;而加速度计检测的角度Accel相当于系统中的测量值,得到系统状态方程。 //程序中Q_angle和Q_gyro分别表示系统对加速度计及陀螺仪的信任度。根据Pdot = A*P + P*A' + Q_angle计算出先验估计协方差的微分,用于将当前估计值进行线性化处理。其中A 为雅克比矩阵。 //随后计算系统预测角度的协方差矩阵P。计算估计值Accel与预测值Angle间的误差Angle_err。 //计算卡尔曼增益K_0,K_1,K_0用于最优估计值,K_1用于计算最优估计值的偏差并更新协方差矩阵P。 //通过卡尔曼增益计算出最优估计值Angle及预测值偏差Q_bias,此时得到最优角度值Angle 及角度值。 //Kalman滤波,20MHz的处理时间约0.77ms; void Kalman_Filter(float Accel,float Gyro) { Angle+=(Gyro - Q_bias) * dt; //先验估计 Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; // Pk-先验估计误差协方差的微分 Pdot[1]=- PP[1][1]; Pdot[2]=- PP[1][1]; Pdot[3]=Q_gyro; PP[0][0] += Pdot[0] * dt; // Pk-先验估计误差协方差微分的积分 PP[0][1] += Pdot[1] * dt; // =先验估计误差协方差 PP[1][0] += Pdot[2] * dt; PP[1][1] += Pdot[3] * dt; Angle_err = Accel - Angle; //zk-先验估计 PCt_0 = C_0 * PP[0][0]; PCt_1 = C_0 * PP[1][0]; E = R_angle + C_0 * PCt_0; K_0 = PCt_0 / E;

扩展卡尔曼滤波(EKF)应用于GPS-INS组合导航

clear all; %% 惯性-GPS组合导航模型参数初始化 we = 360/24/60/60*pi/180; %地球自转角速度,弧度/s psi = 10*pi/180; %psi角度/ 弧度 Tge = 0.12; Tgn = 0.10; Tgz = 0.10; %这三个参数的含义详见参考文献 sigma_ge=1; sigma_gn=1; sigma_gz=1; %% 连续空间系统状态方程 % X_dot(t) = A(t)*X(t) + B(t)*W(t) A=[0 we*sin(psi) -we*cos(psi) 1 0 0 1 0 0; -we*sin(psi) 0 0 0 1 0 0 1 0; we*cos(psi) 0 0 0 0 1 0 0 1; 0 0 0 -1/Tge 0 0 0 0 0; 0 0 0 0 -1/Tgn 0 0 0 0; 0 0 0 0 0 -1/Tgz 0 0 0; 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0;]; %状态转移矩阵 B=[0 0 0 sigma_ge*sqrt(2/Tge) 0 0 0 0 0; 0 0 0 0 sigma_gn*sqrt(2/Tgn) 0 0 0 0; 0 0 0 0 0 sigma_gz*sqrt(2/Tgz) 0 0 0;]';%输入控制矩阵%% 转化为离散时间系统状态方程 % X(k+1) = F*X(k) + G*W(k) T = 0.1; [F,G]=c2d(A,B,T);

H=[1 0 0 0 0 0 0 0 0; 0 -sec(psi) 0 0 0 0 0 0 0;];%观测矩阵 %% 卡尔曼滤波器参数初始化 t=0:T:50-T; length=size(t,2); y=zeros(2,length); Q=0.5^2*eye(3); %系统噪声协方差 R=0.25^2*eye(2); %测量噪声协方差 y(1,:)=2*sin(pi*t*0.5); y(2,:)=2*cos(pi*t*0.5); Z=y+sqrt(R)*randn(2,length); %生成的含有噪声的假定观测值,2维X=zeros(9,length); %状态估计值,9维 X(:,1)=[0,0,0,0,0,0,0,0,0]'; %状态估计初始值设定 P=eye(9); %状态估计协方差 %% 卡尔曼滤波算法迭代过程 for n=2:length X(:,n)=F*X(:,n-1); P=F*P*F'+ G*Q*G'; Kg=P*H'/(H*P*H'+R); X(:,n)=X(:,n)+Kg*(Z(:,n)-H*X(:,n)); P=(eye(9,9)-Kg*H)*P; end %% 绘图代码 figure(1) plot(y(1,:)) hold on; plot(y(2,:)) hold off; title('理想的观测量'); figure(2)

多传感器融合中的卡尔曼滤波应用

多传感器融合中的卡尔曼滤波探讨 1 引言 目前靠单一的信息源很难保证获取环境信息的快速性和准确性的要求,会给系统对周围环境的理解及系统的决策带来影响,另外,单一传感器获得的仅仅是环境特征的局部、片面的信息,它的信息量是十分有限的。而且每个传感器采集到的信息还受到自身品质、性能噪声的影响,采集到的信息往往是不完整的,带有较大的不确定性,偶尔甚至是错误的。而且在传统方式中,各传感器采集的信息单独、孤立的进行加工处理,不仅会导致处理工作量增加,而且割断了各传感器信息的联系丢失了信息的有机组合蕴涵的信息特征,也造成信息资 源的浪费[3-7]。在运动控制系统中,传统上就往往将速度传感器测量到的速度和加速度计测量到的加速度进行单独处理,没有将两者的信息进行数据融合。由物理定律可知,加速度与速度成导数关系,所以两者的数据是存在内在联系的,完全可以根据信息融合理论对两者数据进行综合处理,从而得到更加准确的结果。卡尔曼滤波器是常用的一种数据融合技术,它利用迭代递推计算的方式,对存贮空间要求很小,适合于存贮空间和计算速度受限的场合 [1,2]。本文分析了数度传感器和加速度计各自的优缺点,给出了一种应用卡尔曼滤波器原理对两者进行数据融合的方法。 2 传感器简介 2.1 光电编码器 光电编码器通常用于角度、位移、或转速测量,通过对光脉冲的个数进行计数再经过计算而得到测量值。假设在周长为L 的圆盘上有M 个过光孔,离散系统中,在周期时间T 内对脉冲进行计数值为N ,则第k 次测量的线速度v 可表达为 MT k Le k v MT k Le MT k LN k e k N MT L k v )()()()())()(()(+=+=+=∧ (2-1) e 是随机误差,为光脉冲取整后的剩余值,取值范围为(-1, 1),可看作均匀分布。∧v 为实际的观测值,与真值v 之间相差MT Le 。可见,在固定长度的L 上,加大M 或T 的值,都可以减小误差。但是加大M 需要付出昂贵的成本,使传感器价格大幅提高,如光栅式光电传感器;而加大T 又会降低系统的动态响应性能,所以在实际应用中,这两者均难如愿。 在需要同时测量加速度的场合,理论上可以由对速度求差分方程得出,即 2 2))1(()(())1()(()1()()(MT k e k Le MT k N k N L T k v k v k a --+--=--= (2-2) 容易看出,相对误差显著提高,数据几乎不可用,所以需要专门的加速度计对加速度进行测量。 2.2 加速度计 加速度计用于测量物体的线性加速度,根据不同的测量原理,有很多种类,本文中使用的MMA7260是一款低成本、低功耗、小体积、功能完善的单芯片加速度计,主要用于运动检测、惯性导航、震动检测、交通安全等。MMA7260响应快、带宽可调整、可响应高频率输入,但是其测量数据噪声与带宽的平方根成正比,会随着带宽增加而增加。 5.1350)(?=BW g rms Noise μ (2-3) 式中BW 为传感器带宽(HZ)。因此在设计时,首先要确定被测加速度的频率范围,然后再

扩展卡尔曼滤波器(EKF):一个面向初学者的交互式教程-翻译

扩展卡尔曼滤波器教程 在使用OpenPilot和Pixhawk飞控时,经常遇到扩展卡尔曼滤波(EKF)。从不同的网页和参考论文中搜索这个词,其中大部分都太深奥了。所以我决定创建自己学习教程。本教程从一些简单的例子和标准(线性)卡尔曼滤波器,通过对实际例子来理解卡尔曼滤波器。 Part 1: 一个简单的例子 想象一个飞机准备降落时,尽管我们可能会担心许多事情,像空速、燃料、等等,当然最明显是关注飞机的高度(海拔高度)。通过简单的近似,我们可以认为当前高度是之前的高度失去了一小部分。例如,当每次我们观察飞行高度时,认为飞机失去了2%的高度,那么它的当前高度是上一时刻高度的98%: altitude current_time=0.98*altitude previous_time 工程上对上面的公式,使用“递归”这个术语进行描述。通过递归前一时刻的值,不断计算当前值。最终我们递归到初始的“基本情况”,比如一个已知的高度。 试着移动上面的滑块,看看飞机针对不同百分比的高度变化。 Part 2:处理噪声 当然, 实际从传感器比如GPS或气压计获得测量高度时,传感器的数据或多或少有所偏差。如果传感器的偏移量为常数,我们可以简单地添加或减去这偏移量来确定我们的高度。不过通常情况下,传感器的偏移量是一个时变量,使得我们所观测到的传感器数据相当于实际高度加上噪声: observed_altitude current_time=altitude current_time+noise current_time 试着移动上面的滑块看到噪声对观察到的高度的影响。噪音被表示为可观测的海拔范围的百分比。

卡尔曼滤波器综述

卡尔曼滤波器综述 瞿伟军 G10074 1、卡尔曼滤波的起源 1960年,匈牙利数学家卡尔曼发表了一篇关于离散数据线性滤波递推算法的论文,这意味着卡尔曼滤波的诞生。斯坦利.施密特(Stanley Schmidt)首次实现了卡尔曼滤波器,卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。关于这种滤波器的论文由Swerling (1958)、Kalman (1960)与 Kalman and Bucy (1961)发表。 2、卡尔曼滤波的发展 卡尔曼滤波是一种有着相当广泛应用的滤波方法,但它既需要假定系统是线性的,又需要认为系统中的各个噪声与状态变量均呈高斯分布,而这两条并不总是确切的假设限制了卡尔曼滤波器在现实生活中的应用。扩展卡尔曼滤波器(EKF)极大地拓宽了卡尔曼滤波的适用范围。EKF的基本思路是,假定卡尔曼滤滤对当前系统状态估计值非常接近于其真实值,于是将非线性函数在当前状态估计值处进行台劳展开并实现线性化。另一种非线性卡尔曼滤波叫线性化卡尔曼滤波。它与EKF的主要区别是前者将非线函数在滤波器对当前系统状态的最优估计值处线性化,而后者因为预先知道非线性系统的实际运行状态大致按照所要求、希望的轨迹变化,所以这些非线性化函数在实际状态处的值可以表达为在希望的轨迹处的台劳展开式,从而完成线性化。 不敏卡尔曼滤波器(UKF)是针对非线性系统的一种改进型卡尔曼滤波器。UKF处理非线性系统的基本思路在于不敏变换,而不敏变换从根本上讲是一种描述高斯随机变量在非线性化变换后的概率分布情况的方法。不敏卡尔曼滤波认为,与其将一个非线性化变换线性化、近似化,还不如将高斯随机变量经非线性变换后的概率分布情况用高斯分布来近似那样简单,因而不敏卡尔曼滤波算法没

扩展卡尔曼滤波器(EKF)进行信号处理及信号参数估计

% 扩展卡尔曼滤波器估计单相电压幅值、相位、频率参数(含直流)function test2_EKF close all; clc; tic; %计时 %模型:y=A0+A1*cos(omega*t+phy1) %离散化:y(k)=A0(k)+A1(k)*cos(omega(k)*k*Ts+phy1(k)) %状态变量:x1(k)=A0(k),x2(k)=omega(k),x3(k)=A1(k)*cos(omega(k)*k*Ts+phy1(k) ),x4(k)=A1(k)*sin(omega(k)*k*Ts+phy1(k)) %下一时刻状态变量为(假设状态不突变):A0(k+1)=A0(k),A1(k+1)=A1(k),omega(k+1)=omega(k),phy1(k+1)=phy1 (k); %则对应状态为:x1(k+1)=x1(k),x2(k+1)=x2(k),x3(k+1)=x3(k)*cos(x2(k)*Ts)- x4(k)*sin(x(2)*Ts),x4(k+1)=x3(k)*sin(x2(k)*Ts)+x4(k)*cos(x(2)*Ts); %状态空间描述:X(k+1)=f(X(k))+W(k);y(k)=H*X(k)+v(k) %f(X(k))=[x1(k);x2(k);x3(k)*cos(x2(k)*Ts)- x4(k)*sin(x(2)*Ts);x3(k)*sin(x2(k)*Ts)+x4(k)*cos(x(2)*Ts)] %偏导(只求了三个):f`(X(k))=[1,0,0;0,1,0;0,-x3(k)*Ts*sin(x2(k)*Ts)-x4(k)*Ts*cos(x2(k)*Ts),cos(x2(k)*Ts);0,x3(k)*Ts*cos(x2(k)*Ts)- x4(k)*Ts*sin(x2(k)*Ts),sin(x2(k)*Ts)]

拓展卡尔曼滤波

南京航空航天大学 随机信号小论文题目扩展卡尔曼滤波 学生姓名梅晟 学号SX1504059 学院电子信息工程学院 专业通信与信息系统

扩展卡尔曼滤波 一、引言 20世纪60年代,在航空航天工程突飞猛进而电子计算机又方兴未艾之时,卡尔曼发表了论文《A New Approach to Linear Filtering and Prediction Problems》(一种关于线性滤波与预测问题的新方法),这让卡尔曼滤波成为了时域内有效的滤波方法,从此各种基于卡尔曼滤波的方法横空出世,在目标跟踪、故障诊断、计量经济学、惯导系统等方面得到了长足的发展。 二、卡尔曼滤波器 卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器), 它能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。 卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑便使用了这种滤波器。目前,卡尔曼滤波已经有很多不同的实现。卡尔曼最初提出的形式现在一般称为简单卡尔曼滤波器。除此以外,还有施密特扩展滤波器、信息滤波器以及很多Bierman, Thornton 开发的平方根滤波器的变种。也许最常见的卡尔曼滤波器是锁相环,它在收音机、计算机和几乎任何视频或通讯设备中广泛存在。 三、扩展卡尔曼滤波器 3.1 被估计的过程信号 卡尔曼最初提出的滤波理论只适用于线性系统,Bucy,Sunahara等人提出并研究了扩展卡尔曼滤波(Extended Kalman Filter,简称EKF),将卡尔曼滤波理论进一步应用到非线性领域。EKF的基本思想是将非线性系统线性化,然后进行卡尔曼滤波,因此EKF是一种次优滤波。 同泰勒级数类似,面对非线性关系时,我们可以通过求过程和量测方程的偏导来线性化并计算当前估计。假设过程具有状态向量x∈?n,其状态方程为非线性随机差分方程的形式。 x k=f x k?1,u k?1,w k?1(1.1) 观测变量z∈?m为: z k=?(x k,v k)(1.2) 随机变量w k和v k代表过程激励噪声和观测噪声。它们为相互独立,服从正态分布的白色噪声:

两传感器分布式kalman滤波融合算法及其仿真研究

两传感器分布式kalman滤波融合算法及其仿真分析 摘要:讨论了基于两传感器kalman滤波的数据融合算法,对FAFSS算法机理进行了描述并融合算法进行了仿真,分析了融合结果。 关键字:kalman滤波;分布式传感器信息融合;分布式滤波数据融合算法 Abstract:In this paper six kinds of fusion algorithm based on two-translator using Kalman filter were discussed.According to the FAFSS fusion algorithm, the fusion tracks and square error were analysed through simulation. Key words:Kalman filtering;distribute-translator information fusion algorithm;fusionalgorithm of filtering step by step的最优融合算法,从结构上来看, 最优融合<位置融合级系统)算法主要有集中式、分布式、混合式和多级式。集中式结构因数据互联较困难,并且要求系统必须具备大容量的处理能力,计算负担重系统的生存能 力也相对较差等缺点。混合式体系结构是集中式和分布式两种形式的结合,这种结构比较复 杂一般用于大型融合系统。工程上多采用分布式结构,分布式滤波数据融合算法中是第i个传感器对目标状态的观测值,是测量

卡尔曼滤波器介绍

卡尔曼滤波器介绍 Greg Welch1and Gary Bishop2 TR95-041 Department of Computer Science University of North Carolina at Chapel Hill3 Chapel Hill,NC27599-3175 翻译:姚旭晨 更新日期:2006年7月24日,星期一 中文版更新日期:2007年1月8日,星期一 摘要 1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文。从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。 卡尔曼滤波器由一系列递归数学公式描述。它们提供了一种高效可计算的方法来估计过程的状态,并使估计均方误差最小。卡尔曼滤波器应用广泛且功能强大:它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。 这篇文章介绍了离散卡尔曼理论和实用方法,包括卡尔曼滤波器及其衍生:扩展卡尔曼滤波器的描述和讨论,并给出了一个相对简单的带图实例。 1welch@https://www.360docs.net/doc/4410098745.html,,https://www.360docs.net/doc/4410098745.html,/?welch 2gb@https://www.360docs.net/doc/4410098745.html,,https://www.360docs.net/doc/4410098745.html,/?gb 3北卡罗来纳大学教堂山分校,译者注。 1

Welch&Bishop,卡尔曼滤波器介绍2 1离散卡尔曼滤波器 1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文[Kalman60]。从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。[Maybeck79]的第一章给出了一个非常“友好”的介绍,更全面的讨论可以参考[Sorenson70],后者还包含了一些非常有趣的历史故事。更广泛的参考包括[Gelb74,Grewal93,Maybeck79,Lewis86,Brown92,Jacobs93]。 被估计的过程信号 卡尔曼滤波器用于估计离散时间过程的状态变量x∈ n。这个离散时间过程由以下离散随机差分方程描述: x k=Ax k?1+Bu k?1+w k?1,(1.1)定义观测变量z∈ m,得到量测方程: z k=Hx k+v k.(1.2)随机信号w k和v k分别表示过程激励噪声1和观测噪声。假设它们为相互独立,正态分布的白色噪声: p(w)~N(0,Q),(1.3) p(v)~N(0,R).(1.4)实际系统中,过程激励噪声协方差矩阵Q和观测噪声协方差矩阵R可能会随每次迭代计算而变化。但在这儿我们假设它们是常数。 当控制函数u k?1或过程激励噪声w k?1为零时,差分方程1.1中的n×n 阶增益矩阵A将上一时刻k?1的状态线性映射到当前时刻k的状态。实际中A可能随时间变化,但在这儿假设为常数。n×l阶矩阵B代表可选的控制输入u∈ l的增益。量测方程1.2中的m×n阶矩阵H表示状态变量x k 对测量变量z k的增益。实际中H可能随时间变化,但在这儿假设为常数。滤波器的计算原型 定义?x?k∈ n(?代表先验,?代表估计)为在已知第k步以前状态情况下第k步的先验状态估计。定义?x k∈ n为已知测量变量z k时第k步的后验状态估计。由此定义先验估计误差和后验估计误差: ≡x k??x?k, e? k e k≡x k??x k 1原文为process noise,本该翻译作过程噪声,由时间序列信号模型的观点,平稳随机序列可以看成是由典型噪声源激励线性系统产生,故译作过程激励噪声。 UNC-Chapel Hill,TR95-041,July24,2006

卡尔曼滤波算法及其在组合导航中的应用综述

卡尔曼滤波算法及其在组合导航中的应用综述 摘要:由于描述系统特性的数学模型和噪声的统计模型不准确,不能真实反映物理过程,使模型与获得的观测值不匹配从而会导致滤波器发散。文章在描述组合导航基本特性和卡尔曼滤波原理的基础上提出了滤波发散的问题并提出了抑制发散的方法,最后介绍了卡尔曼滤波在组合导航中的应用。 关键词:卡尔曼滤波;组合导航;发散 随着计算机技术的迅速发展,它有条件提供运算速度高、存贮量大的机载计算机,这为组合导航系统的发展创造了一个很好的技术条件,现代控制理论中最优估计理论的数据处理方法为组合导航系统提供了理论基础。Kalman滤波是R.E.Kalman于1960年提出的从众多与被提取信号有关的观测量中通过算法估计出所需信号的一种滤波算法。他把状态空间的概念引入到随机估计理论中,把信号过程视为白噪声作用下的一个线性系统的输出,用状态方程来描述这种输入-输出关系,估计过程中利用系统状态方程、观测方程、系统噪声和观测噪声的统计特性形成滤波算法。 1组合导航系统基本特性描述 要描述一个实际系统,首先要对其进行建模,即建立系统的状态方程和测量方程。对于组合导航系统,要进行滤波计算必须建立数学模型,此模型具有以下特点。 1.1非线性 组合导航系统本质上是非线性系统,有时为了减少计算量及提高系统实时性,在某些假设条件下组合导航系统的非线性因素可以忽略,其可以用线性化的数学模型来近似描述。但当假设条件不满足时,组合导航系统就必须采用能反映自身实际特性的非线性模型来描述。所以说,非线性是组合导航系统本质的特性。 1.2模型不确定性 组合导航系统处于实际运行环境当中时,受系统本身以及外部应用环境不确定性因素的影响,系统实际模型与建立的理论模型不能完全匹配,即组合导航系统具有模型不确定性。造成系统模型不确定性的主要原因如下: ①模型简化。采用较少的状态变量来描述系统,忽略掉实际系统某些不重要的状态特征。由此造成模型与实际不匹配。②系统噪声统计不准确。所建模型的噪声统计特性与实际系统噪声统计特性有较大差异。③对实际系统初始状态的统计特性建模不准确。④实际系统出现器件老化、损坏等使系统参数发生了变动,造成模型与实际系统不匹配。

扩展卡尔曼滤波EKF

第三章扩展卡尔曼滤波EKF 3.1 扩展Kalman滤波原理 Kalman滤波能够在线性高斯模型的条件下,可以对目标的状态做出最优的估计,得到较好的跟踪效果。对非线性滤波问题常用的处理方法是利用线性化技巧将其转化为一个近似的线性滤波问题。因此,可以利用非线性函数的局部性特性,将非线性模型局部化,再利用Kalman滤波算法完成滤波跟踪。扩展Kalman 滤波就是基于这样的思想,将系统的非线性函数做一阶Taylor展开,得到线性化的系统方程从而完成对目标的滤波估计等处理。 非线性系统离散动态方程可以表示为 (k1)f[k,X(k)]G(k)W(k) X+=+(3-1-1) Z=+(3-1-2) (k)h[k,X(k)]V(k) 这里为了便于数学处理,假定没有控制量的输入,并假定过程噪声是均值为零的高斯白噪声,且噪声分布矩阵(k) V也是加性均 G是已知的。其中,观测噪声(k) 值为零的高斯白噪声。假定过程噪声和观测噪声序列是彼此独立的,并且有初始状态估计?(0|0) X和协方差矩阵(0|0) P。和线性系统的情况一样,我们可以得到扩展Kalman滤波算法如下 ?? X+=(3-1-3) (k|k1)f(X(k|k)) ?(3-1-4) P+=Φ+Φ+++ (k1|k)(k1|k)P(k|k)(k1|k)Q(k1) 晻(3-1-5) 1 (k1)P(k1|)H(k1)[H(k1)P(k1|k)H(k1)R(k1)] +=+++++++ K k- ??? (K1|k1)X(K1|k)K(k1)[Z(k1)h(X(K1|k))] X++=++++-+(3-1-6)P+=-+++(3-1-7) (k1)[I K(k1)H(k1)]P(k1|k)

基于扩展卡尔曼滤波器的永磁同步电机转速和磁链观测器.kdh

第27卷第36期中国电机工程学报V ol.27 No.36 Dec. 2007 2007年12月Proceedings of the CSEE ?2007 Chin.Soc.for Elec.Eng. 文章编号:0258-8013 (2007) 36-0036-05 中图分类号:TM 351 文献标识码:A 学科分类号:470?40 基于扩展卡尔曼滤波器的永磁同步电机 转速和磁链观测器 张 猛,肖 曦,李永东 (电力系统及发电设备控制和仿真国家重点实验室(清华大学电机系),北京市海淀区 100084) Speed and Flux Linkage Observer for Permanent Magnet Synchronous Motor Based on EKF ZHANG Meng, XIAO Xi , LI Yong-dong (State Key Lab of Control and Simulation of Power Systems and Generation Equipments (Dept. of Electrical Engineering, Tsinghua University), Haidian District, Beijing 100084, China) ABSTRACT: To eliminate the mechanical sensors of permanent magnet synchronous motor (PMSM) drive and get the stator flux linkage used in direct torque control (DTC), an extended Kalman filter (EKF) is established. The stator flux linkage on the fixed α-β coordinate, rotor speed and position are chosen as state variables. The input and output of the EKF are stator voltages and currents. The stator flux linkage and rotor speed are observed by EKF. DTC using space vector modulation (SVM) is applied to the system in order to reduce the torque ripples and keep constant switching frequency. The experimental test is carried out to verify the efficiency and robustness of the proposed sensor-less DTC system with speed and flux linkage observer. KEY WORDS: permanent magnet synchronous motor; extended Kalman filter; direct torque control; sensor-less; space vector modulation 摘要:为了取消永磁同步电机控制中的机械传感器,获得直接转矩控制中需要的电机磁链信息,设计了一种基于扩展卡尔曼滤波器的永磁同步电机转速和磁链估算方法。选取定子固定坐标系下定子磁链、电机转速和转子位置为状态变量,电压和电流作为输入、输出量,建立估算定子磁链、电机转速和转子位置的EKF滤波器系统。采用空间矢量调制的直接转矩控制策略,有效减小了直接转矩控制方法的转矩脉动,并保持了功率器件恒定的开关频率。实验结果表明EKF 准确地观测了电机转速和磁链,所构建的无速度传感器DTC 控制系统具有良好的转速和转矩控制性能。 基金项目:国家自然科学基金项目(50607010)。 Project Supported by National Natural Science Foundation of China (50607010).关键词:永磁同步电机;扩展卡尔曼滤波器;直接转矩控制;无速度传感器;空间矢量调制 0 引言 永磁同步电机直接转矩控制具有快速的转矩响应和良好的动态性能,吸引了很多学者进行相关研究,并取得了一定的研究成果[1-5]。在直接转矩控制当中,需要机械传感器提供电机的转速信息,机械传感器使系统复杂性增加,鲁棒性降低。磁链观测的准确性直接影响到转矩的控制性能。在无机械传感器的情况下,如何获得准确的速度和磁链信息是永磁同步电机直接转矩控制研究方面的热点问题。 传统的永磁同步电机直接转矩控制中磁链观测大多采用纯积分方法。初值的敏感性和直流漂移是纯积分方法的主要缺点。三种改进型积分器已经应用到异步电机磁链估算中[6],其中的第二种方法被用于永磁同步电机磁链的估算[7],但是在全速范围内只能够获得准确的相位信息。全阶观测器[8]和非线性反馈正交磁链补偿观测器[9]也被应用到永磁同步电机磁链观测中,但是此两种方法需要利用传感器或其他算法获得电机转速。 电机的转速可以通过对定子磁链位置变化或通过采用定子磁链和转矩角获得转子位置变化计算得到[10-11],但是需要在输出加一个低通滤波器以获得平滑的估算速度,滤波器的延时容易造成系统的不稳定。 基于扩展卡尔曼滤波器对非线性系统优异的状态估算能力,本文提出一种能同时观测速度和磁链的方法,实现了永磁同步电机的无速度传感器直接

卡尔曼滤波器在组合导航中应用

最近一段时间在尝试用FPGA设计卡尔曼滤波器,设计过程比较复杂,在此过程中卡尔曼滤波器的基本原理,matlab仿真与C语言实现,及其在导航算法中的应用困扰了我很长一段时间。在和同学交流和参阅些许文献之后,终于小有收获。下面是把卡尔曼滤波器在INS-GPS组合导航中应用仿真的matlab源代码与大家分享,希望对初学者有一定的借鉴价值。 在下面的仿真的代码中,理想的观测量不是真实数据,而是自生成的正弦波数据,在真实的应用场景中,应该是一系列的参考数据。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% % 卡尔曼滤波器在INS-GPS组合导航中应用仿真 % Author : lylogn % Email :lylogn@https://www.360docs.net/doc/4410098745.html, % Company: BUAA-Dep3 % Time : 2013.01.06 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% % 参考文献: % [1]. 邓正隆. 惯导技术, 哈尔滨工业大学出版社.2006. clear all; %% 惯性-GPS组合导航模型参数初始化 we = 360/24/60/60*pi/180; %地球自转角速度,弧度/s psi = 10*pi/180; %psi角度/ 弧度 Tge = 0.12; Tgn = 0.10; Tgz = 0.10; %这三个参数的含义详见参考文献 sigma_ge=1; sigma_gn=1; sigma_gz=1; %% 连续空间系统状态方程 % X_dot(t) = A(t)*X(t) + B(t)*W(t) A=[0 we*sin(psi) -we*cos(psi) 1 0 0 1 0 0; -we*sin(psi) 0 0 0 1 0 0 1 0; we*cos(psi) 0 0 0 0 1 0 0 1; 0 0 0 -1/Tge 0 0 0 0 0; 0 0 0 0 -1/Tgn 0 0 0 0; 0 0 0 0 0 -1/Tgz 0 0 0; 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0;]; %状态转移矩阵 B=[0 0 0 sigma_ge*sqrt(2/Tge) 0 0 0 0 0; 0 0 0 0 sigma_gn*sqrt(2/Tgn) 0 0 0 0; 0 0 0 0 0 sigma_gz*sqrt(2/Tgz) 0 0 0;]';%输入控制矩阵 %% 转化为离散时间系统状态方程

相关文档
最新文档