对典型非线性系统模型进行滤波,EKF,UKF,CKF滤波后的效果一样是什么情况?

&>&非线性滤波程序
非线性滤波程序
上传大小:440KB
这是一个自己写的非线性滤波算法的比较程序,包含EKF,三阶CKF,五阶CKF,ICKF,UKF算法,这次只上传了经过编译的可执行程序,代码会在毕业之后,或者找完工作之后上传,如果发现问题,可与我联系!
综合评分:5
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有3条
写的不错,可惜程序不错!
要64位的,可惜不满足,不过看介绍是很不错的
很好!期待更新源码
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
非线性滤波程序
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
非线性滤波程序您的位置: >
  摘要:本文分别利用CDKF、UKF和EKF三种方法对车辆GPS/DR组合导航系统进行了滤波实验,实验结果进一步表明CDKF方法明显优于EKF和UKF方法,是车辆组合导航中一种更理想的非线性滤波方法,从而真正实现了车辆低成本、高精度的实时定位。
  1 引言
  全球导航定位系统(GPS)因其可以提供全天候、连续、实时的高精度定位而在车辆定位中得到了广泛的应用。然而当车辆行驶于地下隧道、高山隧道、高楼等特殊地理环境时,由于GPS卫星遮挡问题的存在会造成GPS无法正常定位;基于此,一般车载导航系统普遍采用低成本的航位推算系统(DR)和GPS来构成组合定位系统。当GPS信号丢失而无法定位时,DR系统可继续工作,系统的可靠性得到了提高 。
  然而,实际的车辆组合导航系统模型一般都是非线性的。利用扩展卡尔曼滤波(EKF)方法,即将非线性方程围绕状态估值进行Talor展开,并进行一阶线性化截断,可建立系统的线性化标准卡尔曼滤波模型。但是在实际应用中,EKF也存在着一些不足,如当非线性观测方程的Talor展开式中的高次项不能忽略时,EKF会导致很大的线性化误差,造成滤波器难以稳定。
  针对EKF的不足,近几年出现了一套全新的非线性滤波方法,即Sigma-Point卡尔曼滤波(SPKF),其利用加权统计线性化回归技术(WSLR),通过一组确定性采样点(Sigma点)来捕获系统的相关统计参量。根据Sigma点选取的不同,其主要分为Unscented卡尔曼滤波(UKF)和中心差分卡尔曼滤波(CDKF)。
  CDKF滤波算法的优势在于它克服了EKF方法的缺点,滤波时不需要系统模型的具体解析形式,并充分考虑了随机变量的噪声统计特性,具有比EKF更小的线性化误差和更高的定位精度,它对状态协方差的敏感性要低得多,且逼近速度快于UKF。研究发现CDKF的另一个优点是只使用一个参数h,相对于需要确定三个参数的UKF,在实际应用中更便于实现。
  本文分别利用CDKF、UKF和EKF三种方法对车辆GPS/DR组合导航系统进行了滤波实验,实验结果进一步表明CDKF方法明显优于EKF和UKF方法,是车辆组合导航中一种更理想的非线性滤波方法,从而真正实现了车辆低成本、高精度的实时定位。
非常好我支持^.^
不好我反对
相关阅读:
( 发表人:自由频率 )
评价:好评中评差评
技术交流、我要发言
发表评论,获取积分! 请遵守相关规定!提 交
Copyright &
elecfans.com.All Rights Reservedposts - 129,&
comments - 49,&
trackbacks - 0
&&&&&& 最一般的状态估计问题,我们会根据系统是否线性,把它们分为线性/非线性系统。同时,对于噪声,根据它们是否为高斯分布,分为高斯/非高斯噪声系统。现实中最常见的,也是最困难的问题,是非线性-非高斯(NLNG, Nonlinear-Non Gaussian)的状态估计。下面先说最简单的情况:线性高斯系统。
线性高斯系统
在线性高斯系统中,运动方程、观测方程是线性的,且两个噪声项服从零均值的高斯分布。这是最简单的情况。简单在哪里呢?主要是因为高斯分布经过线性变换之后仍为高斯分布。而对于一个高斯分布,只要计算出它的一阶和二阶矩,就可以描述它(高斯分布只有两个参数)。  线性系统形式如下:
  其中是两个噪声项的协方差矩阵;为转移矩阵和观测矩阵;表示的后验概率,用表示它的先验概率。因为系统是线性的,噪声是高斯的,所以状态也服从高斯分布,需要计算它的均值和协方差矩阵。记第时刻的状态服从:  对LG系统,可以用,计算的后验概率分布——这条路直接通向卡尔曼滤波器。卡尔曼是线性系统的递推形式(recursive,也就是从估计)的无偏最优估计。
&&& (其中过程可以参考)
&&&& 现在的问题是如何求解这个最大化问题。对于高斯分布,最大化问题可以变成最小化它的负对数。当我对一个高斯分布取负对数时,它的指数项变成了一个二次项,而前面的因子则变为一个无关的常数项,可以略掉(这部分我不敲了,有疑问的同学可以问)。于是,定义以下形式的最小化函数:
&&&& 写成矩阵的形式,类似最小二乘的问题:  于是令它的导数为零,得到: &   读者会问,这个问题和卡尔曼滤波有什么问题呢?事实上,卡尔曼滤波就是递推地求解上式的过程。所谓递推,就是只用来计算。对(*)进行,就可以推出卡尔曼滤波器。只把卡尔曼的结论写一下:
另一方面,能否直接求解(*)式,得到呢?答案是可以的,而且这就是优化方法(batch optimization):将所有的状态放在一个向量里,进行求解。与卡尔曼滤波不同的是,在估计前面时刻的状态(如)时,会用到后面时刻的信息(等)。从这点来说,优化方法和卡尔曼处理信息的方式是相当不同的。
二.扩展卡尔曼滤波器 ---
滤波器自己的局限性:
即使是高斯分布,经过一个非线性变换后也不是高斯分布。EKF只计算均值与协方差,是在用高斯近似这个非线性变换后的结果。(实际中这个近似可能很差)。
系统本身线性化过程中,丢掉了高阶项。
线性化的工作点往往不是输入状态真实的均值,而是一个估计的均值。于是,在这个工作点下计算的,也不是最好的。
在估计非线性输出的均值时,EKF算的是的形式。这个结果几乎不会是输出分布的真正期望值。协方差也是同理。
那么,怎么克服以上的缺点呢?途径很多,主要看我们想不想维持EKF的假设。如果我们比较乖,希望维持高斯分布假设,可以这样子改:
为了克服第3条工作点的问题,我们以EKF估计的结果为工作点,重新计算一遍EKF,直到这个工作点变化够小,为迭代EKF(Iterated EKF, IEKF)。
为了克服第4条,我们除了计算,再计算其他几个精心挑选的采样点,然后用这几个点估计输出的高斯分布。是为Sigma Point KF(SPKF,或UKF)。
如果不那么乖,可以说:我们不要高斯分布假设,凭什么要用高斯去近似一个长得根本不高斯的分布呢?于是问题变为,丢掉高斯假设后,怎么描述输出函数的分布就成了一个问题。一种比较暴力的方式是:用足够多的采样点,来表达输出的分布。这种蒙特卡洛的方式,也就是粒子滤波(PF)的思路。  如果再进一步,可以丢弃滤波器思路,说:为什么要用前一个时刻的值来估计下一个时刻呢?我们可以把所有状态看成变量,把运动方程和观测方程看成变量间的约束,构造误差函数,然后最小化这个误差的二次型。这样就会得到非线性优化的方法,在SLAM里就走向图优化那条路上去了。不过,非线性优化也需要对误差函数不断地求梯度,并根据梯度方向迭代,因而局部线性化是不可避免的。  可以看到,在这个过程中,我们逐渐放宽了假设。
四.UKF无迹卡尔曼滤波
五.&PF 粒子滤波
六. CKF 容积卡尔曼滤波
非线性优化,计算的也是最大后验概率估计(MAP),但它的处理方式与滤波器不同。对于上面写的状态估计问题,可以简单地构造误差项:  然后最小化这些误差项的二次型:&&&&&& 这里仅用到了噪声项满足高斯分布的假设,再没有更多的了。当构建一个非线性优化问题之后,就可以从一个初始值出发,计算梯度(或二阶梯度),优化这个目标函数。常见的梯度下降策略有牛顿法、高斯-牛顿法、Levenberg-Marquardt方法。  非线性优化方法现在已经成为视觉SLAM里的主流,尤其是在它的稀疏性质被人发现且利用起来之后。它与滤波器最大不同点在于,
一次可以考虑整条轨迹中的约束。它的线性化,即雅可比矩阵的计算,也是相对于整条轨迹的。相比之下,滤波器还是停留在马尔可夫的假设之下,只用上一次估计的状态计算当前的状态。可以用一个图来表达它们之间的关系:  当然优化方式也存在它的问题。例如优化时间会随着节点数量增长——所以有人会提double window optimization这样的方式,以及可能落入局部极小。但是就目前而言,它比EKF还是优不少的。
卡尔曼滤波是递归的线性高斯系统最优估计。
EKF将NLNG系统在工作点附近近似为LG进行处理。
IEKF对工作点进行迭代。
UKF没有线性化近似,而是把sigma point(采样点)进行非线性变换后再用高斯近似。
PF去掉高斯假设,以粒子作为采样点来描述分布。
优化方式同时考虑所有帧间约束,迭代线性化求解。
  SLAM中,状态变量经常是六自由度的位姿,由旋转矩阵和平移向量构成。然而问题是,旋转矩阵并不存在加法,只有对应到李代数上才可以清楚地定义它的运算。因此,当我们讨论这个位姿的噪声,说它服从高斯分布时,需要了解李群李代数的知识。
阅读(...) 评论()当前位置: >>
UKF:Unscent Kalman FilterEKF:Extended Kalman Filter UKF:无际卡尔曼滤波器UKF是无味变换(UT)和标准Kalman滤波体系的结 合,与EKF不同,UKF是通过无味变换使非线性系 统方程适用于线性假设下的标准卡尔曼滤波体系, 而不是像EKF那样,通过线性化非线性函数实现滤 波递推。 UKF是根据无味变换和卡尔曼滤波相结合得到的一 种算法。这种算法主要运用于卡尔曼滤波的思想, 但是在求解目标后续时刻的预测值和测量值时, 则需要应用采样点来计算。 UKF通过设计加权点来近似表示n维目标采 样点,计算这些加权点经由非线性函数的 传播,通过非线性状态方程获得更新后的 滤波值,从而实现了对目标的跟踪。UKF有 效的克服了扩展卡尔曼滤波的估计精度低、 稳定性差的缺陷。 UKF是对非线性函数的概率密度分布进行近 似,用一系列确定样本来逼近状态的后验 概率密度,而不是对非线性函数进行近似, 不需要求导计算矩阵。 EKF的基本思想是将非线性系统线性化,然 后进行卡尔曼滤波,因此EKF是一种次优滤 波。EKF对非线性函数的泰勒展开式进行一 节线性化截断,而忽略其余高阶项,从而 将非线性问题转化为线性,可以将卡尔曼 滤波应用于非线性系统中。 缺点:1、当强非线性时EKF违背局部线性 假设,Taylor展开式中被忽略的高阶项带 来大的误差时,EKF算法可能会使滤波发散 2、实现有点困难 UKF的基本原理设连续线性系统带随机干扰下的微分方程式为:& X ( t ) = AX ( t ) + GW ( t )式中:A、G是时变量;W是白噪声过程且方差 为Q 离散化的状态方程为 X Q = ΦX + Wk +1 k k式中:Φ = eAT= I + AT +AT +L 2!22Wk的噪声序列方差为Qk ( AGQG + GQG Q = GQG T +T T kTAT ) T 22!+L Qk中取第一项,则有结论:状态的方差乘以T,这是 离散后的结论。非线性离散系统由前面的推导可假设随机非线性离散系统 为: X k = f ( X k 1 ) + Γ k 1Wk 1Zk=h(Xk+Vk) 其中,Wk和Vk为零均值白噪声,其统计特性为 E[Wk]=0,E[WkWjT]=Qk*δkj,E[Vk]=0, E[VkVjT]=Rk*δkj,E[WkVjT]=0。 UKF非线性滤波方法Julier和Uhlmann等提出了UKF非线性滤波方法,利用无迹变换(UT)方法将一组逼近状态估计X 统计分 布的采样点 xi,k 1 (i=1,2,…,n,其中n为采样点个数)直接代 1 入非线性状态方程f()获得一组状态的变换点 xi ,k / k ,将 xi ,k / k 直接 1 1 代入非线性观测方程h()获得一组观测的变换点zi ,k / k ,再由变
1 换点xi ,k / k 1和 zi ,k / k 的前二阶矩统计特性获得状态预测值 X k / k 和状态 1 预测协方差阵 Pk / k 1、观测估计值 Z 和观测协方差阵 Pz ,k 以及 状态预测与观测之间的协方差阵 Pxz ,k 的近似值,然后按照 Kalmna滤波方程进行递推计算。UKF方法不需要对非线性系 统进行线性化近似,避免了计算Jacobian矩阵。k 1k / k 1 EKF递推算法EKF围绕状态估计值 X 将非线性函数f()展成泰勒级数并取其k 1 一阶近似,围绕状态预测值 X 将非线性函数h()展成泰勒级数并取其一阶近似,从而得到非线性系统的近似线性化模型: X k ≈ Φ k / k 1 X k 1 + Γ k 1Wk 1Φ 和 其中,k / k 1 H k 分别称为向量函数f()和h()的Jacobian矩阵,k / k 1Z k ≈ H k X k + Vk由线性化模型就可以根据Kalman滤波方程进行递推 计算:
X k / k 1 = f ( X k 1 )
X k = X k / k 1 + K k [ Z k
h( X k / k 1 )]T T K k = Pk / k 1 H k [ H k Pk / k 1 H k + Rk ]1Pk / k 1 = Φ k / k 1 Pk 1ΦT / k 1 + Γ k 1Qk 1ΓT 1 k kPk = [ I
K k H k ]Pk / k 1 由于EKF对非线性系统进行了线性化近似,将会引 入模型误差,递推过程中需要计算非线性函数f()和 h()的Jacobian矩阵Φ k / k 1 和Hk,当处理高维复杂的 系统模型时,这一过程十分繁琐且容易出错。
EKF、UKF、PF算法的比较程序 - % EKF UKF PF 的三个算法 % x = 0.1; % 初始状态 x_estimate = 1;%状态的估计 e_x_es...UKFEKF - 6.1 6.1UKF 本节主要介绍基于 Unscented 变换的卡尔曼滤波器的基本知识,重点介绍 Unscented 变换的基本原理和 UKF 算法。 6.1 6.1.1 ...ukf程序(matlab) - UKF 程序 clc clear tspan=[0,100,185]; y0=[0.;-0.7]; [t,y]=ode4...UKF算法滤波性能分析 - UKF算法滤波性能分析,与EKF算法对比... 多源信息融合---UKF 算法 UKF 算法滤波性能分析高海南
一、仿真问题描述考虑一个在二维平面...基于IMM-UKF的转弯机动目标跟踪 - 龙源期刊网 http://www.qikan.com.cn 基于 IMM-UKF 的转弯机动目标跟踪 作者:孙宇,薛斌党 来源:《现代电子技术》20...CAUKFGL=英国国旗 CASKFGL=韩国国旗 CALOND04=英国国会 CALOND05=大笨钟 CALOND06=伦敦塔 CAMORR06=理克酒馆 CAEGYP01=金字塔 CAEGYP02=金字塔 CAEGYP03=...无损卡尔曼滤波UKF Matlab程序_理学_高等教育_教育专区。ukf(无迹卡尔曼滤波)算法的 matlab 程序. function [x,P]=ukf(fstate,x,P,hmeas,z,Q,R) % UKF ...UKF_信息与通信_工程科技_专业资料。ukf滤波算法 之前一直在做移动机器人定位算法。查来查去,发觉粒子滤波算法(又叫 MC 算法)应 该算是最流行的了。 因此开始... UKF应用于GPS-IMU组合导航系统的MATLAB代码_交通运输_工程科技_专业资料。用MATLAB编程实现组合导航系统的UKF算法。组合导航系统的计算程序代码 function yy=ukf_IMU...基于平方根 UKF 的多传感器融合再入段目标跟踪研究司学慧,李小兵,孟常亮,张彦,乔朋朋(空军工程大学导弹学院 陕西 三原 713800) 摘要:为了提高再入段目标跟踪的...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。502 Bad Gateway
502 Bad Gateway

我要回帖

更多关于 非线性系统举例 的文章

 

随机推荐