getStateEstimate

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

Синтаксис

State = getStateEstimate(pf)
[State,StateCovariance] = getStateEstimate(pf)

Описание

пример

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: [1x1000 double]
                       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.1063
   -0.1162

StateCovariance = 2×2

    0.0169    0.0091
    0.0091    0.7130

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

свернуть все

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

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

свернуть все

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

  • Если StateOrientation является 'row' затем, State является 1 NumStateVariables вектором

  • Если StateOrientation является 'column' затем, State является NumStateVariables-by-1 вектор

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

Введенный в R2017b