主要内容

initcaekf

从检测报告中创建恒加速度扩展卡尔曼滤波器

描述

例子

过滤器= initcaekf (检测创建并初始化一个恒加速度扩展卡尔曼过滤器中包含的信息检测报告。有关扩展卡尔曼滤波器的更多信息,请参见trackingEKF

函数初始化一个恒定的加速度状态与constacc而且cameas, (xvx一个xyvy一个yzvz一个z].

例子

全部折叠

根据初始检测报告创建并初始化一个三维恒定加速度扩展卡尔曼滤波器对象。

根据最初的三维测量数据创建检测报告,(-200; 30 0),表示物体的位置。假设测量噪声不相关。

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

根据检测报告创建新的过滤器并显示其属性。

Filter = initcaekf(检测)
filter = trackingEKF with properties: State: [9x1 double] StateCovariance: [9x9 double] StateTransitionFcn: @constacc StateTransitionJacobianFcn: @constaccjac ProcessNoise: [3x3 double] HasAdditiveProcessNoise: 0 MeasurementFcn: @cameas MeasurementJacobianFcn: @cameasjac HasMeasurementWrapping: 1 MeasurementNoise: [3x3 double] hasadditivemeasrementnoise: 1 MaxNumOOSMSteps: 0 EnableSmoothing: 0

显示筛选器状态。

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

显示状态协方差矩阵。

过滤器。状态Covariance
ans =9×92.1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100.0000 100.0000 2.1000 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.1000 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 ,高度为 2 2 ,射程为1000米,射程速率为-4.0米/秒。

帧=“球”;Sensorpos = [25,-40,-10].';传感器= [0;5;0];松弛=眼睛(3);

创建测量参数结构。集“HasVelocity”而且“HasElevation”真正的.然后,测量矢量由方位角、高程、距离和距离率组成。

Measparms = struct(“帧”框架,“OriginPosition”sensorpos,...“OriginVelocity”sensorvel,“定位”宽松的,“HasVelocity”,真的,...“HasElevation”,真正的);Meas = [45;22;1000;-4];Measnoise = diag([3.0,2.5,2,1.0].^2);检测= objectDetection(0,meas,“MeasurementNoise”...measnoise,“MeasurementParameters”measparms)
detection = objectDetection with properties: Time: 0 Measurement: [4x1 double] measuentnoise: [4x4 double] SensorIndex: 1 ObjectClassID: 0 ObjectClassParameters: [] measuentparameters: [1x1 struct] ObjectAttributes: {}
Filter = initcaekf(检测);

显示状态向量。

disp (filter.State)
680.6180 -2.6225 0 615.6180 2.3775 0 364.6066 -1.4984 0

输入参数

全部折叠

检测报告,指定为objectDetection对象。

例子:detection = objectDetection(0,[1;4.5;3],' measuentnoise ', [1.0 0 0;0 2.0 0;0 0 1.5])

输出参数

全部折叠

扩展卡尔曼滤波器,返回为trackingEKF对象。

算法

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

  • 您可以使用此函数作为FilterInitializationFcn的属性trackerGNNtrackerTOMHT对象。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2018b中引入

Baidu
map