主要内容

initcaukf

从检测报告中创建恒定加速度无迹卡尔曼滤波器

描述

例子

滤器= initcaukf (检测创建并初始化恒定加速度滤器从包含在检测报告。有关无迹卡尔曼滤波器的更多信息,请参见跟踪

函数初始化一个常量加速状态,其约定与constacccameas, (xvx一个xyvy一个yzvz一个z].

例子

全部折叠

从初始检测报告中创建并初始化一个三维恒定加速度无迹卡尔曼滤波对象。

根据物体位置的初始三维测量(-200,-30,5)创建检测报告。假设测量噪声不相关。

检测= objectDetection (0 (-200; -30; 5)“MeasurementNoise”, 2.0 *眼(3),...“SensorIndex”,1,“ObjectClassID”,1,“ObjectAttributes”,{“汽车”,2});

从检测报告中创建新的筛选器并显示筛选器属性。

过滤器=initcaukf(检测)
filter = trackingUKF with properties: State: [9x1 double] StateCovariance: [9x9 double] stattransitionfcn: @constacc ProcessNoise: [3x3 double] HasAdditiveProcessNoise: 0 MeasurementFcn: @cameas MeasurementNoise: [3x3 double] hasadditivmeasurementnoise: 1 Alpha: 1.0000e-03 Beta: 2 Kappa: 0 enables平滑:0

显示状态。

过滤器。状态
ans =9×1-200 0 0 -30 0 0 5 0 0

显示状态协方差矩阵。

滤波状态协方差
ans =9×92.0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100.0000 100.0000 2.0000 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 100.0000 100.0000 2.0000 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 100.0000 100.0000

初始化一个三维恒加速度无迹卡尔曼滤波器,从一个由球坐标测量生成的初始检测报告。如果你想使用球坐标,那么你必须提供一个测量参数结构作为检测报告的一部分框架字段设置为“球”.设置目标的方位角为 4 5 ,射程为1000米。

框架=“球”;sensorpos =[25、-40、-10]。';sensorvel =(0; 5。0);宽松=眼(3);

创建度量结构。集“HasVelocity”“HasElevation”.然后,测量矢量由方位角和距离组成。

measparms =结构(“框架”框架“OriginPosition”sensorpos,...“OriginVelocity”,sensorvel,“方向”宽松的,“HasVelocity”错误的...“HasElevation”、假);量= (45,1000);measnoise =诊断接头([3.0,2.0]。^ 2);检测= objectDetection(0,量,“MeasurementNoise”...measnoise,“MeasurementParameters”,米斯帕姆斯)
detection=objectDetection,属性为:时间:0度量:[2x1 double]度量值noise:[2x2 double]传感器索引:1 ObjectClassID:0度量值参数:[1x1 struct]对象属性:{}
过滤器= initcaukf(检测);

显示状态向量。

disp (filter.State)
732.1068 00 667.1068 00 -10.0000 00

输入参数

全部折叠

检测报告,指定为objectDetection对象

例子:检测=对象检测(0[1;4.5;3],'MeasurementNoise',[1.0;0 2.0;0 1.5])

输出参数

全部折叠

Unscented卡尔曼滤波器,返回为跟踪对象

算法

  • 该函数计算过程噪声矩阵,假设时间步长为1秒,加速度标准差为1m /s3.

  • 你可以使用这个函数作为FilterInitializationFcn财产的跟踪器trackerTOMHT对象

扩展功能

C / c++代码生成
使用Matlab®编码器生成C和C++代码™.

介绍了R2018b