Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Parámetros de filtro de partículas

Para utilizar el filtro de partículas, debe especificar parámetros como el número de partículas, la ubicación inicial de las partículas y el método de estimación de estado.stateEstimatorPF Además, si tiene un modelo de movimiento y sensor específico, especifique estos parámetros en la función de transición de estado y la función de probabilidad de medición, respectivamente. Los detalles de estos parámetros se detallan en esta página. Para obtener más información sobre el flujo de trabajo del filtro de partículas, consulte .Flujo de trabajo de filtro de partículas

Número de partículas

Para especificar el número de partículas, utilice el método.initialize Cada partícula es una hipótesis del estado actual. Las partículas se distribuyen por el espacio de estado en función de una media y una covarianza especificadas, o de los límites de estado especificados. Dependiendo de la propiedad, la partícula con el peso más alto o la media de todas las partículas se toma para determinar la mejor estimación de estado.StateEstimationMethod

El número predeterminado de partículas es 1000. A menos que el rendimiento sea un problema, no utilice menos de 1000 partículas. Un mayor número de partículas puede mejorar la estimación, pero sacrifica la velocidad de rendimiento, porque el algoritmo tiene que procesar más partículas. Ajustar el número de partículas es la mejor manera de afectar el rendimiento de los filtros de partículas.

Estos resultados, que se basan en el ejemplo, muestran la diferencia en la precisión de seguimiento cuando se utilizan 100 partículas y 5000 partículas.stateEstimatorPF

Ubicación inicial de las partículas

Al inicializar el filtro de partículas, puede especificar la ubicación inicial de las partículas mediante:

  • Media y covarianza

  • Límites estatales

El estado inicial se define como una media con una covarianza relativa al sistema. Esta media y covarianza se correlacionan con la ubicación inicial y la incertidumbre del sistema. El objeto distribuye las partículas en función de la covarianza alrededor de la media dada.stateEstimatorPF El algoritmo utiliza esta distribución de partículas para obtener la mejor estimación del estado, por lo que una inicialización precisa de las partículas ayuda a converger a la mejor estimación de estado rápidamente.

Si se desconoce un estado inicial, puede distribuir uniformemente las partículas entre un determinado límite de estado. Los límites de estado son los límites de su estado. Por ejemplo, al estimar la posición de un robot, los límites estatales se limitan al entorno que el robot puede habitar realmente. En general, una distribución uniforme de partículas es una forma menos eficiente de inicializar partículas para mejorar la velocidad de convergencia.

El trazado muestra cómo la especificación media y covarianza puede agrupar partículas de forma mucho más eficaz en un espacio en lugar de especificar los límites de estado completos.

Función de transición de estado

La función de transición de estado, , de un filtro de partículas ayuda a evolucionar las partículas al siguiente estado.StateTransitionFcn Se utiliza durante el paso de predicción del archivo .Flujo de trabajo de filtro de partículas En el objeto, la función de transición de estado se especifica como una función de devolución de llamada que toma las partículas anteriores y cualquier otro parámetro necesario y genera la ubicación prevista.stateEstimatorPF La sintaxis del encabezado de la función es:

function predictParticles = stateTransitionFcn(pf,prevParticles,varargin)

De forma predeterminada, la función de transición de estado asume un modelo de movimiento gaussiano con velocidades constantes. La función utiliza una distribución gaussiana para determinar la posición de las partículas en el siguiente paso de tiempo.

Para la aplicación, es importante tener una función de transición de estado que describa con precisión cómo espera que se comporte el sistema. Para evolucionar con precisión todas las partículas, debe desarrollar e implementar un modelo de movimiento para su sistema. Si las partículas no se distribuyen alrededor del siguiente estado, el objeto no encuentra una estimación precisa.stateEstimatorPF Por lo tanto, es importante entender cómo su sistema puede comportarse para que pueda rastrearlo con precisión.

También debe especificar el ruido del sistema en .StateTransitionFcn Sin ruido aleatorio aplicado al sistema predicho, el filtro de partículas no funciona según lo previsto.

Aunque puede predecir muchos sistemas en función de su estado anterior, a veces el sistema puede incluir información adicional. El uso de en la función le permite introducir cualquier parámetro adicional que sea relevante para predecir el siguiente estado.varargin Cuando llame a , puede incluir estos parámetros mediante:predict

predict(pf,param1,param2)

Dado que estos parámetros coinciden con la función de transición de estado definida, al llamar esencialmente se llama a la función como:predict

predictParticles = stateTransitionFcn(pf,prevParticles,param1,param2)

Las partículas de salida, , son utilizadas por el para corregir las partículas, o se utilizan en el siguiente paso de predicción si no se requiere la corrección.predictParticlesFunción de probabilidad de medición

Función de probabilidad de medición

Después de predecir el siguiente estado, puede utilizar mediciones de sensores para corregir el estado predicho. Al especificar a en el objeto, puede corregir las partículas predichas mediante la función.MeasurementLikelihoodFcnstateEstimatorPFcorrect Esta función de probabilidad de medición, por definición, proporciona un peso para las hipótesis de estado (sus partículas) basándose en una medida dada. Esencialmente, le da la probabilidad de que la medición observada realmente coincida con lo que cada partícula observa. Esta probabilidad se utiliza como un peso en las partículas pronosticadas para ayudar a corregirlas y obtener la mejor estimación. Aunque el paso de predicción puede resultar preciso para un pequeño número de pasos intermedios, para obtener un seguimiento preciso, utilice observaciones del sensor para corregir las partículas con frecuencia.

La especificación de la es similar a la .MeasurementLikelihoodFcnStateTransitionFcn Se especifica como un identificador de función en las propiedades del objeto.stateEstimatorPF La sintaxis del encabezado de la función es:

function likelihood = measurementLikelihoodFcn(pf,predictParticles,measurement,varargin)

La salida es la probabilidad de cada partícula pronosticada en función de la medición dada. Sin embargo, también puede especificar más parámetros en .varargin El uso de en la función le permite introducir cualquier parámetro adicional que sea relevante para corregir el estado predicho.varargin Cuando llame a , puede incluir estos parámetros mediante:correct

correct(pf,measurement,param1,param2)

Estos parámetros coinciden con la función de probabilidad de medición definida:

likelihood = measurementLikelihoodFcn(pf,predictParticles,measurement,param1,param2)

La función utiliza la salida para el remuestreo de partículas y proporciona la estimación del estado final.correctlikelihood

Política de remuestreo

El remuestreo de partículas es un paso vital para el seguimiento continuo de objetos. Le permite seleccionar partículas en función del estado actual, en lugar de utilizar la distribución de partículas dada en la inicialización. Al remuestrear continuamente las partículas alrededor de la estimación actual, puede obtener un seguimiento más preciso y mejorar el rendimiento a largo plazo.

Cuando se llama a , las partículas utilizadas para la estimación de estado se pueden volver a muestrear en función de la propiedad especificada en el objeto.correctResamplingPolicystateEstimatorPF Esta propiedad se especifica como un objeto.resamplingPolicyPFresamplingPolicyPF La propiedad de ese objeto indica al filtro de partículas qué método utilizar para el remuestreo.TriggerMethod

Puede desencadenar el remuestreo a un intervalo fijo o cuando se alcanza una proporción de partículas efectiva mínima. El método de intervalo fijo vuelve a muestrear en un número establecido de iteraciones, que se especifica en la propiedad.SamplingInterval La relación mínima de partículas efectivas es una medida de qué tan bien se aproxima el conjunto actual de partículas a la distribución posterior. El número de partículas efectivas se calcula mediante:

En esta ecuación, es el número de partículas, y es el peso normalizado de cada partícula.Nw La relación efectiva de partículas es entonces Neff / .NumParticles Por lo tanto, la relación efectiva de partículas es una función de los pesos de todas las partículas. Después de que los pesos de las partículas alcanzan un valor lo suficientemente bajo, no están contribuyendo a la estimación del estado. Este valor bajo desencadena el remuestreo, por lo que las partículas están más cerca de la estimación de estado actual y tienen pesos más altos.

Método de estimación de estado

El último paso del flujo de trabajo del filtro de partículas es la selección de una estimación de estado único. Las partículas y sus pesos muestreados a través de la distribución se utilizan para dar la mejor estimación del estado real. Sin embargo, puede utilizar la información de partículas para obtener una estimación de estado único de varias maneras. Con el objeto, puede elegir la mejor estimación basada en la partícula con el peso más alto o tomar una media de todas las partículas.stateEstimatorPF Especifique el método de estimación en la propiedad como (predeterminado) o .StateEstimationMethod'mean''maxweight'

Dado que puede estimar el estado de todas las partículas de muchas maneras, también puede extraer cada partícula y su peso del uso de la propiedad.stateEstimatorPFParticles

Consulte también

|

Ejemplos relacionados

Más acerca de