Main Content

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

initialize

Initialiser l'état du filtre à particules

Description

exemple

initialize(pf,numParticles,mean,covariance) initialise l'objet filtre à particules, pf, avec un nombre spécifié de particules, numParticles. Les états initiaux des particules dans l'espace d'état sont déterminés par échantillonnage à partir de la distribution normale multivariée avec les mean et covariance spécifiés.

initialize(pf,numParticles,stateBounds) détermine l'emplacement initial des particules par échantillon à partir de la distribution uniforme multivariée au sein du stateBounds spécifié.

initialize(___,Name,Value) initialise les particules avec des options supplémentaires spécifiées par un ou plusieurs arguments de paire Name,Value .

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.

Nombre de particules utilisées dans le filtre, spécifié sous forme de scalaire.

Moyenne de distribution des particules, spécifiée sous forme de vecteur. La propriété NumStateVariables de pf est définie en fonction de la longueur de ce vecteur.

Covariance de la distribution des particules, spécifiée sous la forme d'une matrice N-par- N , où N est la valeur de NumStateVariables propriété de pf.

Limites des variables d'état, spécifiées sous la forme d'une matrice n-by-2. La propriété NumStateVariables de pf est définie en fonction de la valeur de n. Chaque ligne correspond à la limite inférieure et supérieure de la variable d'état correspondante.

Arguments nom-valeur

Spécifiez des paires d'arguments facultatives sous la forme Name1=Value1,...,NameN=ValueN, où Name est le nom de l'argument et Value est la valeur correspondante. Les arguments nom-valeur doivent apparaître après les autres arguments, mais l'ordre des paires n'a pas d'importance.

Avant R2021a, utilisez des virgules pour séparer chaque nom et valeur, et mettez Name entre guillemets.

Exemple : "CircularVariables",[0 0 1]

Variables circulaires, spécifiées comme vecteur logique. Chaque variable d'état qui utilise des coordonnées circulaires ou angulaires est indiquée par un 1. La longueur du vecteur est égale à la propriété NumStateVariables de pf.

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