Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

getStateEstimate

Extraiga la mejor estimación del estado y la covarianza de las partículas

Descripción

ejemplo

stateEst = getStateEstimate(pf) devuelve la mejor estimación de estado basada en el conjunto actual de partículas. La estimación se extrae en función de la propiedad StateEstimationMethod del objeto stateEstimatorPF , pf.

[stateEst,stateCov] = getStateEstimate(pf) también devuelve la covarianza en torno a la estimación del estado. La covarianza es una medida de la incertidumbre de la estimación del estado. No todos los métodos de estimación estatal admiten resultados de covarianza. En este caso, getStateEstimate devuelve stateCov como [].

Ejemplos

contraer todo

Cree un objeto stateEstimatorPF y ejecute un paso de predicción y corrección para la estimación del estado. El filtro de partículas proporciona una estimación del estado previsto en función del valor de retorno de StateTransitionFcn. Luego corrige el estado en función de una medida determinada y el valor de retorno de MeasurementLikelihoodFcn.

Cree un filtro de partículas con los tres estados predeterminados.

pf = stateEstimatorPF
pf = 
  stateEstimatorPF with properties:

           NumStateVariables: 3
                NumParticles: 1000
          StateTransitionFcn: @nav.algs.gaussianMotion
    MeasurementLikelihoodFcn: @nav.algs.fullStateMeasurement
     IsStateVariableCircular: [0 0 0]
            ResamplingPolicy: [1x1 resamplingPolicyPF]
            ResamplingMethod: 'multinomial'
       StateEstimationMethod: 'mean'
            StateOrientation: 'row'
                   Particles: [1000x3 double]
                     Weights: [1000x1 double]
                       State: 'Use the getStateEstimate function to see the value.'
             StateCovariance: 'Use the getStateEstimate function to see the value.'

Especifique el método de estimación del estado medio y el método de remuestreo sistemático.

pf.StateEstimationMethod = 'mean';
pf.ResamplingMethod = 'systematic';

Inicialice el filtro de partículas en el estado [4 1 9] con covarianza unitaria (eye(3)). Utilice 5000 partículas.

initialize(pf,5000,[4 1 9],eye(3));

Suponiendo una medición [4.2 0.9 9], ejecute un paso de predicción y uno correcto.

[statePredicted,stateCov] = predict(pf);
[stateCorrected,stateCov] = correct(pf,[4.2 0.9 9]);

Obtenga la mejor estimación de estado basada en el algoritmo StateEstimationMethod .

stateEst = getStateEstimate(pf)
stateEst = 1×3

    4.1562    0.9185    9.0202

Argumentos de entrada

contraer todo

stateEstimatorPF objeto, especificado como identificador. Consulte stateEstimatorPF para obtener más información.

Argumentos de salida

contraer todo

Mejor estimación de estado, devuelta como un vector fila con longitud NumStateVariables. La estimación se extrae en función del algoritmo StateEstimationMethod especificado en pf.

Variación del sistema corregida, devuelta como una matriz N-por- N , donde N es el valor de NumStateVariables propiedad desde pf. El estado corregido se calcula en base al algoritmo StateEstimationMethod y el MeasurementLikelihoodFcn. Si especifica un método de estimación de estado que no admite covarianza, la función devuelve stateCov como [].

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2016a