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.

initialize

Inicializar el estado del filtro de partículas.

Descripción

ejemplo

initialize(pf,numParticles,mean,covariance) inicializa el objeto de filtro de partículas, pf, con un número específico de partículas, numParticles. Los estados iniciales de las partículas en el espacio de estados se determinan mediante muestreo de la distribución normal multivariada con los mean y covariance.

initialize(pf,numParticles,stateBounds) determina la ubicación inicial de las partículas por muestra de la distribución uniforme multivariada dentro del stateBounds especificado.

initialize(___,Name,Value) inicializa las partículas con opciones adicionales especificadas por uno o más Name,Value argumentos de par.

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.

Número de partículas utilizadas en el filtro, especificadas como escalar.

Media de distribución de partículas, especificada como vector. La propiedad NumStateVariables de pf se establece en función de la longitud de este vector.

Covarianza de la distribución de partículas, especificada como una matriz N-por- N , donde N es el valor de NumStateVariables propiedad desde pf.

Límites de variables de estado, especificados como una matriz n por 2. La propiedad NumStateVariables de pf se establece en función del valor de n. Cada fila corresponde al límite inferior y superior de la variable de estado correspondiente.

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.

Antes de R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: "CircularVariables",[0 0 1]

Variables circulares, especificadas como un vector lógico. Cada variable de estado que utiliza coordenadas circulares o angulares se indica con un 1. La longitud del vector es igual a la propiedad NumStateVariables de pf.

Capacidades ampliadas

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

Historial de versiones

Introducido en R2016a