主要内容

retroCorrect

正确的过滤器使用retrodiction OOSM

自从R2021b

描述

retroCorrect纠正国家估计和协方差函数使用一个按顺序测量(OOSM)。使用这个函数,指定MaxNumOOSMSteps过滤器是一个正整数的性质。在使用这个函数之前,你必须使用retrodict函数成功retrodict当前状态的时间OOSM。

(retroCorrState,retroCorrCov)= retroCorrect (过滤器,z)纠正与OOSM测量过滤器z并返回修正后的状态和状态协方差。函数的值变化状态StateCovariance过滤器对象的属性retroCorrStateretroCorrCov,分别。如果过滤器是一个trackingIMM对象,函数也改变了ModelProbabilities财产的过滤器

例子

___= retroCorrect (___,measparams)指定的测量参数的测量z

谨慎

您可以使用该语法只有在指定的过滤器是一个trackingEKFtrackingIMM对象。

例子

全部折叠

使用三维恒定速度生成一个真理轨迹模型。

rng (2021)%的可重复的结果initialState = [1;0.4;2;0.3;1;-0.2);% [x;vx;y;v;z;款)dt = 1;%时间步步骤= 10;sigmaQ = 0.2;%对过程噪声标准差州=南(6步骤);州(:1)= initialState;2 = 2:步骤w = sigmaQ * randn (3,1);州(:,(二)= constvel(州(:,ii-1), w, dt);结束

生成位置测量的真理。

positionSelector = [1 0 0 0 0 0;0 0 1 0 0 0;0 0 0 0 0 1);格= 0.2;%为测量噪声标准差位置= positionSelector *;措施=职位+格* randn(步骤3);

在x - y坐标图显示真理和度量。

图绘制(职位(1:),职位(2:)“罗”,“DisplayName”,“真理”);持有;:情节(措施(1),(2,:)“软”,“DisplayName”,“措施”);包含(“x”(m))ylabel (“y (m)”)传说(“位置”,“西北”)

假设,在第九步,测量延迟,因此不可用。

delayedMeasure =措施(:,9);措施(:9)=南;

构建一个扩展卡尔曼滤波器(EKF)基于恒定速度模型。

估计=南(6步骤);协方差=南(6 6步骤);估计(:1)= positionSelector ' *措施(:1);协方差(::1)= 1 *眼(6);过滤器= trackingEKF (@constvel @cvmeas,“状态”(:1)估计,“StateCovariance”协方差(:,:1),“HasAdditiveProcessNoise”假的,“ProcessNoise”眼睛(3),“MeasurementNoise”主席sigmaR ^ 2 *眼(3),“MaxNumOOSMSteps”3);

一步通过卡尔曼滤波器的测量。

2 = 2:步骤预测(过滤器);如果~任何(isnan(衡量(:,(二)))%跳过如果不可用正确的(过滤器、措施(:,(二));结束估计(:,(二)= filter.State;协方差(:,:,(二)= filter.StateCovariance;结束

显示估计的结果。

情节(估计(1:),估计(3:)“gd”,“DisplayName”,“估计”);

Retrodict第九步,正确的当前估计通过按顺序在第九步测量。

[retroState, retroCov] = retrodict(过滤器,1);[retroCorrState, retroCorrCov] = retroCorrect(过滤器,delayedMeasure);

第九步retrodicted状态。

情节([retroState (1); retroCorrState (1)]。[retroState (3), retroCorrState (3)),“kd”,“DisplayName”,“Retrodicted”)

图包含一个坐标轴对象。坐标轴对象包含x (m), ylabel y (m)包含4线类型的对象。一个或多个行显示的值只使用这些对象标记代表真理,措施,估计,Retrodicted。

您可以使用的行列式最终状态协方差由retrodiction看到改进。一个较小的协方差行列式表示改善状态估计。

detWithoutRetrodiciton =检波器(协方差(:,:,结束)
detWithoutRetrodiciton = 8.5281 e-06
detWithRetrodiciton =侦破(retroCorrCov)
detWithRetrodiciton = 7.9590 e-06

考虑一个目标以一个恒定的速度移动模型。最初的立场是在[100;0,1米。速度是1;1;0]米每秒。

rng (2022)%的可重复的结果initialPosition = [100;0;1);速度= [1;1;0);

假设测量噪声协方差矩阵

measureCovaraince =诊断接头([1;1;0.1]);

生成一个测量每一秒的持续时间5秒。

测量=南(3、5);dt = 1;i = 1:5测量(:,i) = initialPosition +我* dt *速度+ sqrt (measureCovaraince) * randn (3,1);结束

假设在第四个第二是按顺序测量。只有五秒后可用。

oosm =测量(:,4);测量(:,4)=南;

创建一个trackingIMM过滤器与真正的初始位置使用initekfimm函数。设置OOSM步骤五的最大数量。

检测= objectDetection (0, initialPosition);imm = initekfimm(检测);imm。米axNumOOSMSteps = 5;

更新过滤器与可用的测量。

我= 1:5预测(imm) dt);如果~ isnan(测量(:,i))正确(imm,测量(:,我));结束结束

显示当前状态,状态协方差的对角线,概率模型。

disp (“= = = = = = = = = = = = = = =之前Retrodiction = = = = = = = = = = = = = = = ")
= = = = = = = = = = = = = = =之前Retrodiction = = = = = = = = = = = = = = =
disp (当前状态:“+换行符+ num2str (imm.State '))
当前状态:106.7626 1.56623 6.15405 1.233862 1.000669 -0.1441939
disp (“对角元素的状态协方差:“+换行符+ num2str(诊断接头(imm.StateCovariance) '))
对角元素状态协方差:0.91884 1.1404 0.91861 1.2097 0.91569 1.1156
disp (“模型probabities:”+换行符+ num2str (imm.ModelProbabilities '))
模型probabities: 0.51519 0.0016296 0.48318

Retrodict过滤器与OOSM retrocorrect过滤器。

[retroState, retroCov] = retrodict (imm, 1);oosm retroCorrect (imm);

retrodiction后显示结果。从结果,状态协方差的大小减少OOSM后应用,表明retrodiction使用OOSM可以改进估计。

disp (“= = = = = = = = = = = = = = = Retrodiction后= = = = = = = = = = = = = = = ")
= = = = = = = = = = = = = = = Retrodiction后= = = = = = = = = = = = = = =
disp (当前状态:“+换行符+ num2str (imm.State '))
当前状态:106.6937 1.621093 6.124384 1.261032 1.117407 -0.2363415
disp (“对角元素的状态协方差:“+换行符+ num2str(诊断接头(imm.StateCovariance) '))
对角元素状态协方差:0.80678 1.0429 0.81196 1.0962 0.80353 1.0231
disp (“模型probabities:”+换行符+ num2str (imm.ModelProbabilities '))
模型probabities: 0.5191 0.00034574 0.48055

输入参数

全部折叠

跟踪滤波器对象,指定为一个trackingKF,trackingEKF,或trackingIMM对象。

乱序执行测量,指定为一个P1实值向量,P是测量的大小。

测量参数,指定为一个结构或一个结构数组。结构传递到指定的测量功能MeasurementFcn财产的跟踪滤波器。结构可以包含这些字段:

描述
框架

枚举类型指示帧用来测量报告。当检测报告使用直角坐标系统,集框架“矩形”。在球坐标检测报告时,集框架“球”第一个结构。

OriginPosition

位置偏移起源的孩子相对于父帧,表示为一个3×1的向量。

OriginVelocity

速度抵消起源的孩子相对于父帧,表示为一个3×1的向量。

取向

帧定位,指定为3 x3的实值正交坐标系旋转矩阵。旋转的方向取决于IsParentTochild字段。

IsParentToChild

指示是否一个逻辑标量取向执行一个框架给孩子从父坐标系旋转坐标系。如果,取向执行一个框架从孩子坐标系旋转到父坐标系。

HasElevation

一个逻辑标量表示如果测量包括高程。在一个矩形框架测量报告,如果HasElevation所有测量,测量函数报告0度的仰角。

HasAzimuth 一个逻辑标量表示如果测量包括方位。
HasRange 一个逻辑标量表示如果测量包含范围。
HasVelocity

一个逻辑标量表示,如果检测报告包括速度测量。在一个矩形框架测量报告,如果HasVelocity,测量函数测量报告[x y z]。如果HasVelocity真正的,测量函数测量报告[x y z vx v vz]

输出参数

全部折叠

国家由retrodiction纠正,作为一个返回1实值向量,过滤器的大小状态。

由retrodiction状态协方差修正,作为一个返回——- - - - - -实正定矩阵。

更多关于

全部折叠

Retrodiction和Retro-Correction

假设当前时间步的过滤器k。在时间k的后验状态和状态协方差滤波器x(k|k),P(k|k),分别。一个按顺序测量(OOSM)在时间τ现在到达时间k。找到l这样τ是这两个之间的时间步连续时间的步骤:

k l τ < k l + 1 ,

在哪里l是一个正整数,l<k

Retrodiction

在retrodiction步骤中,当前状态和状态协方差k预计回到OOSM时。您可以获得retrodicted状态通过传播状态转换函数落后。对于一个线性状态转换函数,retrodicted状态表示为:

x ( τ | k ) = F ( τ , k ) x ( k | k ) ,

在哪里F(τ,k)是时间步中落后的状态转移矩阵k对时间步τ。获得retrodicted协方差为:

P ( τ | k ) = F ( τ , k ) ( P ( k | k ) + ( k , τ ) P x v ( τ | k ) P x v T ( τ | k ) ] F ( τ , k ) T ,

在哪里(k,τ)是过程噪声协方差矩阵,

P x v ( τ | k ) = ( k , τ ) P ( k | k l ) 年代 * ( k ) 1 ( k , τ )

在这里,P(k|k-l)是先天状态协方差k预测协方差信息的时间k-l,

年代 * ( k ) 1 = P ( k | k l ) 1 P ( k | k l ) 1 P ( k | k ) P ( k | k l ) 1

Retro-Correction

在第二步中,retro-correction、当前状态和使用OOSM状态协方差修正。得到修正后的状态为:

x ( k | τ ) = x ( k | k ) + W ( k , τ ) ( z ( τ ) z ( τ | k ) ] ,

在哪里z(τ)是OOSM时间τW(k,τ),滤波器增益,表示为:

W ( k , τ ) = P x z ( τ | k ) ( H ( τ ) P ( τ | k ) H T ( τ ) + R ( τ ) ] 1

您可以获得相当于测量时间τ基于状态估计k,z(τ|k),如

z ( τ | k ) = H ( τ ) x ( τ | k )

在这些表达式,R(τ)是测量OOSM和协方差矩阵:

P x z ( τ | k ) = ( P ( k | k ) P x v ( τ | k ) ] F ( τ , k ) T H ( τ ) T ,

在哪里H(τ)是测量雅可比矩阵。

得到修正后的协方差为:

P ( k | τ ) = P ( k | k ) P x z ( τ | k ) 年代 ( τ ) 1 P x z ( τ | k ) T

在哪里

年代 ( τ ) = H ( τ ) P ( τ | k ) H ( τ ) T + R ( τ )

IMM Retrodiction

交互式多模型(IMM)过滤器(trackingIMM),每个member-filter retrodicted OOSM时相同的方式上面描述的过程。在获得retrodicted状态和测量,每个member-filter retro-corrects的当前状态过滤如上所述。

与常规滤波器相比,IMM滤波器需要维护每个member-filter的概率。在retrodiction步骤中,每个模型的概率是第一retrodicted使用概率转移矩阵。基于OOSM,过滤器可以获得每个使用retrodicted member-filter状态的可能性,过滤概率,和测量。然后,使用每个过滤器的可能性,转移概率矩阵,和模型概率在当前时间,每个过滤器的过滤获得更新后的模型概率在当前时间k。更多细节,请参阅[2]

引用

[1]Bar-Shalom Y。,Huimin Chen, and M. Mallick. “One-Step Solution for the Multistep out-of-Sequence-Measurement Problem in Tracking.”IEEE航空航天和电子系统40,不。1(2004年1月):27-37。

[2]Bar-shalom, y和惠民。“IMM估计含测量。”IEEE航空航天和电子系统第41卷。。1、2005年1月,页90 - 98。

扩展功能

版本历史

介绍了R2021b