Contenido principal

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

correct

Ajustar la estimación del estado según la medición del sensor

Descripción

[stateCorr,stateCov] = correct(pf,measurement) calcula el estado del sistema corregido y su covarianza de incertidumbre asociada en función de un sensor measurement en el paso de tiempo actual. correct utiliza la propiedad MeasurementLikelihoodFcn del objeto de filtro de partículas, pf, como una función para calcular la probabilidad de la medición del sensor para cada partícula. Las dos entradas a la función MeasurementLikelihoodFcn son:

  1. pf – El objeto stateEstimatorPF, que contiene las partículas de la iteración actual

  2. measurement – Las mediciones del sensor utilizadas para corregir la estimación del estado

Luego, la función MeasurementLikelihoodFcn extrae la mejor estimación del estado y la covarianza en función de la configuración de la propiedad StateEstimationMethod.

ejemplo

[stateCorr,stateCov] = correct(pf,measurement,varargin) pasa todos los argumentos adicionales en varargin al MeasurementLikelihoodFcn subyacente después de las primeras tres entradas requeridas.

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 basada en el valor de retorno de StateTransitionFcn. Luego corrige el estado en función de una medición 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: [1×1 resamplingPolicyPF]
            ResamplingMethod: 'multinomial'
       StateEstimationMethod: 'mean'
            StateOrientation: 'row'
                   Particles: [1000×3 double]
                     Weights: [1000×1 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

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

Mediciones del sensor, especificadas como un arreglo. Esta entrada se pasa directamente a la propiedad MeasurementLikelihoodFcn de pf. Se utiliza para calcular la probabilidad de que el sensor mida cada partícula.

Lista de argumentos de entrada de longitud variable, especificada como una lista separada por comas. Esta entrada se pasa directamente a la propiedad MeasurementLikelihoodFcn de pf. Se utiliza para calcular la probabilidad de que el sensor mida cada partícula. Cuando usted llama:

correct(pf,measurement,arg1,arg2)
MATLAB® básicamente llama a measurementLikelihoodFcn como:
measurementLikelihoodFcn(pf,measurement,arg1,arg2)

Argumentos de salida

contraer todo

Estado del sistema corregido, devuelto como un vector fila con longitud NumStateVariables. El estado corregido se calcula según el algoritmo StateEstimationMethod y MeasurementLikelihoodFcn.

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

Capacidades ampliadas

expandir todo

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

Historial de versiones

Introducido en R2016a