exponenta event banner

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: [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.1018
   -0.1413

StateCovariance = 2×2

    0.0175   -0.0096
   -0.0096    0.5394

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

свернуть все

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

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

свернуть все

Оценка наилучшего состояния, определяемая как вектор на основе условия StateOrientation свойство:

  • Если StateOrientation является 'row' тогда State является 1-by-NumStateVariables вектор

  • Если StateOrientation является 'column' тогда State является NumStateVariables-по-1 вектору

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

Представлен в R2017b