getStateEstimate

Извлечение лучше всего утверждает оценку и ковариацию от частиц

Описание

пример

State = getStateEstimate(pf) возвращает лучшую оценку состояния на основе текущего набора частиц. Оценка извлечена на основе StateEstimationMethod свойство от particleFilter объект, pf.

[State,StateCovariance] = getStateEstimate(pf) также возвращает ковариацию оценки состояния. Ковариация является мерой неопределенности в оценке состояния. Не все методы оценки состояния поддерживают ковариацию выход. В этом случае, getStateEstimate возвращает StateCovariance как [].

State и StateCovariance к информации можно непосредственно получить доступ, когда свойства фильтра частиц возражают pf как pf.State и pf.StateCovariance. Однако, когда оба этих количества необходимы, с помощью getStateEstimation метод с двумя выходными аргументами более в вычислительном отношении эффективен.

Примеры

свернуть все

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

myPF = particleFilter(@vdpParticleFilterStateFcn,@vdpMeasurementLikelihoodFcn);

Инициализируйте фильтр частиц в [2; 0] состояния с модульной ковариацией и использованием 1000 частицы.

initialize(myPF, 1000, [2;0], eye(2));

Выберите mean оценка состояния и systematic передискретизация методов.

myPF.StateEstimationMethod = 'mean';
myPF.ResamplingMethod = 'systematic';
myPF
myPF = 
  particleFilter with properties:

           NumStateVariables: 2
                NumParticles: 1000
          StateTransitionFcn: @vdpParticleFilterStateFcn
    MeasurementLikelihoodFcn: @vdpMeasurementLikelihoodFcn
     IsStateVariableCircular: [0 0]
            ResamplingPolicy: [1x1 particleResamplingPolicy]
            ResamplingMethod: 'systematic'
       StateEstimationMethod: 'mean'
            StateOrientation: 'column'
                   Particles: [2x1000 double]
                     Weights: [1.0000e-03 1.0000e-03 1.0000e-03 ... ]
                       State: 'Use the getStateEstimate function to see the value.'
             StateCovariance: 'Use the getStateEstimate function to see the value.'

Принятие измерения 2.1, запуститесь каждый предсказывает и корректирует шаг.

[PredictedState, PredictedStateCovariance] = predict(myPF);
[CorrectedState, CorrectedStateCovariance] = correct(myPF,2.1);

Получите лучшую оценку состояния и ковариацию на основе StateEstimationMethod свойство.

[State, StateCovariance] = getStateEstimate(myPF)
State = 2×1

    2.1018
   -0.1413

StateCovariance = 2×2

    0.0175   -0.0096
   -0.0096    0.5394

Входные параметры

свернуть все

Фильтр частиц в виде объекта. Смотрите particleFilter для получения дополнительной информации.

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

свернуть все

Лучше всего утвердите оценку, заданную как вектор на основе условия StateOrientation свойство:

  • Если StateOrientation isrow затем State 1 NumStateVariables вектор

  • Если StateOrientation iscolumn затем State NumStateVariables- 1 вектор

Текущая оценка ошибочной ковариации оценки состояния, заданной как NumStateVariables- NumStateVariables массив. StateCovariance вычисляется на основе StateEstimationMethod. Если вы задаете метод оценки состояния, который не поддерживает ковариацию, то функция возвращает StateCovariance как [].

Введенный в R2017b