initcvukf

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

Описание

пример

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

Функция инициализирует состояние постоянной скорости с тем же соглашением, что и constvel и cvmeas, [x; <reservedrangesplaceholder7> <reservedrangesplaceholder6>; y; <reservedrangesplaceholder4> <reservedrangesplaceholder3>; z; <reservedrangesplaceholder1> <reservedrangesplaceholder0>].

Примеры

свернуть все

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

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

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

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

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

                          State: [6x1 double]
                StateCovariance: [6x6 double]

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

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

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

                EnableSmoothing: 0

Отобразите состояние.

filter.State
ans = 6×1

    10
     0
   200
     0
    -5
     0

Покажите ковариацию состояния.

filter.StateCovariance
ans = 6×6

    1.5000         0         0         0         0         0
         0  100.0000         0         0         0         0
         0         0    1.5000         0         0         0
         0         0         0  100.0000         0         0
         0         0         0         0    1.5000         0
         0         0         0         0         0  100.0000

Инициализируйте сигма-точечный фильтр Калмана с постоянной скоростью из исходного отчета об обнаружении, полученного из начального измерения в сферических координатах. Поскольку объект лежит в плоскости x-y, измерение повышения не выполняется. Если вы хотите использовать сферические координаты, то вы должны предоставить структуру параметра измерения в качестве части отчета о обнаружении с Frame значение поля установлено в 'spherical'. Установите угол азимута цели в 45 степени, диапазон в 1000 метров и скорость области значений -4,0 м/с.

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

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

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

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

filter = initcvukf(detection);

Отобразите вектор состояния фильтра.

disp(filter.State)
  732.1068
   -2.8284
  667.1068
    2.1716
         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 м/с2.

  • Вы можете использовать эту функцию как FilterInitializationFcn свойство multiObjectTracker объект.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2017a
Для просмотра документации необходимо авторизоваться на сайте