getStateEstimate

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

Описание

пример

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

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

The 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-байт- NumStateVariables вектор

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

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

Введенный в R2017b