Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

getStateEstimate

Extraire la meilleure estimation d'état et la covariance des particules

Description

exemple

stateEst = getStateEstimate(pf) renvoie la meilleure estimation d'état basée sur l'ensemble actuel de particules. L'estimation est extraite sur la base de la propriété StateEstimationMethod de l'objet stateEstimatorPF , pf.

[stateEst,stateCov] = getStateEstimate(pf) renvoie également la covariance autour de l'estimation de l'état. La covariance est une mesure de l'incertitude de l'estimation de l'état. Toutes les méthodes d’estimation d’état ne prennent pas en charge la sortie de covariance. Dans ce cas, getStateEstimate renvoie stateCov sous la forme [].

Exemples

réduire tout

Créez un objet stateEstimatorPF et exécutez une étape de prédiction et de correction pour l'estimation de l'état. Le filtre à particules donne une estimation de l'état prédit basée sur la valeur de retour de StateTransitionFcn. Il corrige ensuite l'état en fonction d'une mesure donnée et de la valeur de retour de MeasurementLikelihoodFcn.

Créez un filtre à particules avec les trois états par défaut.

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.'

Spécifiez la méthode d'estimation de l'état moyen et la méthode de rééchantillonnage systématique.

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

Initialisez le filtre à particules à l'état [4 1 9] avec une covariance unitaire (eye(3)). Utilisez 5 000 particules.

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

En supposant une mesure [4.2 0.9 9], exécutez une étape prédite et une étape correcte.

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

Obtenez la meilleure estimation d'état basée sur l'algorithme StateEstimationMethod .

stateEst = getStateEstimate(pf)
stateEst = 1×3

    4.1562    0.9185    9.0202

Arguments d'entrée

réduire tout

Objet stateEstimatorPF , spécifié comme handle. Voir stateEstimatorPF pour plus d'informations.

Arguments de sortie

réduire tout

Meilleure estimation d'état, renvoyée sous forme de vecteur de ligne de longueur NumStateVariables. L'estimation est extraite sur la base de l'algorithme StateEstimationMethod spécifié dans pf.

Variation du système corrigée, renvoyée sous forme de matrice N-par- N , où N est la valeur de NumStateVariables Propriété de de pf. L'état corrigé est calculé sur la base de l'algorithme StateEstimationMethod et du MeasurementLikelihoodFcn. Si vous spécifiez une méthode d'estimation d'état qui ne prend pas en charge la covariance, la fonction renvoie stateCov sous la forme [].

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit dans R2016a