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 isrow затем State 1 NumStateVariables вектор

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

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

Введенный в R2017b