exponenta event banner

initcaukf

Создание неописанного фильтра Калмана с постоянным ускорением из отчета об обнаружении

Описание

пример

filter = initcaukf(detection) создает и инициализирует постоянное ускорение некачественного Калмана filter из информации, содержащейся в detection отчет. Дополнительные сведения о незаметном фильтре Калмана см. в разделе trackingUKF.

Функция инициализирует состояние постоянного ускорения с тем же соглашением, что и constacc и cameas, [x; vx; топор; y; vy; ай; z; vz; az].

Примеры

свернуть все

Создайте и инициализируйте 3D постоянное ускорение объект фильтра Кальмана без запаха из первоначального отчета об обнаружении.

Создайте отчет об обнаружении из начального измерения 3-D (-200, -30,5) положения объекта. Предположим, что несоотнесенный шум измерения.

detection = objectDetection(0,[-200;-30;5],'MeasurementNoise',2.0*eye(3), ...
    'SensorIndex',1,'ObjectClassID',1,'ObjectAttributes',{'Car',2});

Создайте новый фильтр из отчета об обнаружении и просмотрите свойства фильтра.

filter = initcaukf(detection)
filter = 
  trackingUKF with properties:

                          State: [9x1 double]
                StateCovariance: [9x9 double]

             StateTransitionFcn: @constacc
                   ProcessNoise: [3x3 double]
        HasAdditiveProcessNoise: 0

                 MeasurementFcn: @cameas
               MeasurementNoise: [3x3 double]
    HasAdditiveMeasurementNoise: 1

                          Alpha: 1.0000e-03
                           Beta: 2
                          Kappa: 0

                EnableSmoothing: 0

Показать состояние.

filter.State
ans = 9×1

  -200
     0
     0
   -30
     0
     0
     5
     0
     0

Отображение матрицы ковариации состояния.

filter.StateCovariance
ans = 9×9

    2.0000         0         0         0         0         0         0         0         0
         0  100.0000         0         0         0         0         0         0         0
         0         0  100.0000         0         0         0         0         0         0
         0         0         0    2.0000         0         0         0         0         0
         0         0         0         0  100.0000         0         0         0         0
         0         0         0         0         0  100.0000         0         0         0
         0         0         0         0         0         0    2.0000         0         0
         0         0         0         0         0         0         0  100.0000         0
         0         0         0         0         0         0         0         0  100.0000

Инициализируйте 3D постоянное ускорение фильтр Кальмана без запаха из первоначального отчета об обнаружении, сделанного из измерения в сферических координатах. Если требуется использовать сферические координаты, необходимо указать структуру параметров измерения как часть отчета об обнаружении с помощью Frame поле имеет значение 'spherical'. Установите азимутальный угол цели на 45∘, а дальность - на 1000 метров.

frame = 'spherical';
sensorpos = [25,-40,-10].';
sensorvel = [0;5;0];
laxes = eye(3);

Создайте структуру измерений. Набор 'HasVelocity' и 'HasElevation' кому false. Затем вектор измерения состоит из азимутального угла и диапазона.

measparms = struct('Frame',frame,'OriginPosition',sensorpos, ...
    'OriginVelocity',sensorvel,'Orientation',laxes,'HasVelocity',false, ...
    'HasElevation',false);
meas = [45;1000];
measnoise = diag([3.0,2.0].^2);
detection = objectDetection(0,meas,'MeasurementNoise', ...
    measnoise,'MeasurementParameters',measparms)
detection = 
  objectDetection with properties:

                     Time: 0
              Measurement: [2x1 double]
         MeasurementNoise: [2x2 double]
              SensorIndex: 1
            ObjectClassID: 0
    MeasurementParameters: [1x1 struct]
         ObjectAttributes: {}

filter = initcaukf(detection);

Отображение вектора состояния.

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

Входные аргументы

свернуть все

Отчет об обнаружении, указанный как objectDetection объект.

Пример: detection = objectDetection(0,[1;4.5;3],'MeasurementNoise', [1.0 0 0; 0 2.0 0; 0 0 1.5])

Выходные аргументы

свернуть все

Незараженный фильтр Калмана, возвращенный как trackingUKF объект.

Алгоритмы

  • Функция вычисляет матрицу шума процесса, предполагая один второй временной шаг и стандартное отклонение скорости ускорения 1 m/s3.

  • Эту функцию можно использовать в качестве FilterInitializationFcn свойство trackerGNN или trackerTOMHT объект.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2018b