Autor Tema: Filtro de Kalman  (Leído 16787 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jgpeiro06

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 276
Filtro de Kalman
« en: 22 de Febrero de 2009, 18:02:11 »
Me he propuesto implementar un filtro de kalman. He buscado ejemplos en la red y he encontrado algunos programas como http://home.comcast.net/~michael.p.thompson/kalman/kalman_test.c donde puedo ver exactamente el código del filtro, las entradas y la salida. Este ejemplo parte de dos sensores (acelerometro y giróscopo) y no se que es exactamente la salida pero creo que es la posición.
Tengo un circuito que solo lleva un acelerometro de 3 ejes y solo se usa uno para detectar el movimiento. Para obtener la posición debo hacer una doble integral de la aceleración medida. El mínimo error constante en la medida de la aceleración se convertirá en un error exponencial en la posición y para evitar esto creo que se usan los filtros de kalman.
Mi pregunta es si el filtro de kalman puede funcionar para obtener la posición con un solo sensor de aceleración. También me gustaría saber si el filtro de kalman realiza la doble integral o es algo que hay que realizar después de filtrar, antes, o si la señal integrada hay que reintroducirla al filtro como realimentación... y como ultima cosa, en el ejemplo hay unas constantes que no se si son una aproximación del comportamiento de los sensores o un estado inicial del filtro...¿sabe alguien que son?
Bueno, un saludo

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Filtro de Kalman
« Respuesta #1 en: 22 de Febrero de 2009, 18:38:44 »
Necesitas 2 sensores distintos para que funcione el filtro de Kalman (en este caso acelerómetro y giroscópio). El programa que has puesto es un filtro de Kalman que actúa sobre los datos que se han grabado previamente en la primera matriz doble para poder probar el filtro.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado jgpeiro06

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 276
Re: Filtro de Kalman
« Respuesta #2 en: 22 de Febrero de 2009, 19:34:30 »
No se si te refieres a que cualquier filtro de kalman necesita mínimo dos sensores o o solo al del link que he comentado...mi idea no es usar directamente el código de kalman_test.c, solo lo comento como referencia y xq es el único código que he visto.


Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Filtro de Kalman
« Respuesta #3 en: 22 de Febrero de 2009, 20:01:57 »
Veamos, el filtro de Kalman trabaja en dos etapas, en la primera realiza una estimación y en la segunda etapa corrige el error. En este caso para corregir la deriva del giróscopio se utiliza el acelerómetro o a la inversa. Si solo se dispone de un sensor hace falta conocer la varianza del error cometido por el sensor.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Filtro de Kalman
« Respuesta #4 en: 22 de Febrero de 2009, 20:50:21 »
Aquí hay un ejemplo que creo que te va a venir muy bien:
http://www.todopic.com.ar/foros/index.php?topic=12748.msg203375#msg203375

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Filtro de Kalman
« Respuesta #5 en: 23 de Febrero de 2009, 00:36:32 »
El filtro Kalman predice los valores de los estados de un sistema a través de medidas pasadas y presente de la salida, la cual presenta ruido, minimizando la variancia del error del estado.
Para desarrollar un filtro Kalman, se debe modelar el sistema a partir de las leyes físicas que definen la dinámica. Este sistema será una aproximación del real, ya que no existe un modelo matemático perfecto del sistema, existen perturbaciones que no se pueden modelar de forma deterministica y los sensores no son perfectos.
A la pregunta si con la medición de una sola salida se puede usar Kalman, es si. A partir de medidas pasadas y presente, se estima el estado con el cual después podemos aplicar un compensador para mejorar la dinámica del sistema. Claro está que se necesita conocimiento de control realimentado para desarrollar algo así.
Si estas interesado tengo algunos apuntes sobre la teoría de filtros Kalman para que veas mas o menos de que se trata.
No contesto mensajes privados, las consultas en el foro

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Filtro de Kalman
« Respuesta #6 en: 23 de Febrero de 2009, 02:16:10 »
Suky, muchas gracias por la explicacion. La verdad q no habia sentido nunca del filtro kalman, y ahora q me entero de su existencia me interesa mucho. Si no es molestia, podrias subir esos apuntes?
Gracias!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: Filtro de Kalman
« Respuesta #7 en: 23 de Febrero de 2009, 02:45:50 »
Hola, una pregunta, cual serían las ventajas de usar un filtro kalman en lugar de uno comun y corriente como por ejm un Butterwordh de tercer orden, que depende de su entrada actual y de tres entradas y salidas pasadas, además tiene una atenuacion moderada del ruido de 60db/dec y su mayor inconveniente el desfase entre la entrada y salida.

saludos.
control de movimiento

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Filtro de Kalman
« Respuesta #8 en: 23 de Febrero de 2009, 03:16:53 »
Aqui subo los apuntes que comente, aclaro que hay que tener conocimientos de sistemas de control.

Renatox_. Son dos cosas muy distintas, el filtro de Kalman es para estimar estados de un sistema discreto a partir de la salida contaminada con ruido.
Butterworrdh es para procesamiento de señales.-
No contesto mensajes privados, las consultas en el foro

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Filtro de Kalman
« Respuesta #9 en: 23 de Febrero de 2009, 03:24:26 »
Otro apunte y ejemplo hecho en Matlab ejemplificando el uso.
No contesto mensajes privados, las consultas en el foro

Desconectado jgpeiro06

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 276
Re: Filtro de Kalman
« Respuesta #10 en: 23 de Febrero de 2009, 06:25:04 »
Citar
...Butterwordh de tercer orden...
Esa fue mi primera opcion. Trabaja bastante tiempo con filtros IIR para intentar eliminar la componente constante antes, entre y despues de las dos integrales, pero nunca llegue a conseguir nada adecuado. El error se acumulaba tan rapido que para eliminarlo tenia que poner filtros tan selectivos que al final la señal de salida no era sencilla de reconocer. Mi conclusion fue que los filtros modificaban la fase de todas las componentes de la señal en la banda de paso y esto modificaba su forma de onda.

Citar
apuntes sobre la teoría de filtros Kalman
Ya los he descargado y voy a hecharles un ojo. Soy estudiante de teleco y este año tengo una asignatura de control, quiero decir que no es que sea un experto en el tema, pero tengo una pequeña base...

Desconectado xavimatch

  • PIC10
  • *
  • Mensajes: 1
Re: Filtro de Kalman
« Respuesta #11 en: 18 de Febrero de 2010, 08:13:17 »
Hola:
Estoy trabajando bastante con el filtro de Kalman, sólo que con sistemas no lineales. Estoy intentando a través de una sóla señal reproducir las que yo quiera mediante la técnica bootstrap, el caso es que hay mucho escrito para aplicarlo a sistemas lineales y no veo nada para sistemas no lineales, ¿alguien me podría echar una mano?
 :lol:

Desconectado Juanma214

  • PIC10
  • *
  • Mensajes: 11
Re: Filtro de Kalman
« Respuesta #12 en: 08 de Marzo de 2010, 21:53:03 »
Hola:
Estoy trabajando bastante con el filtro de Kalman, sólo que con sistemas no lineales. Estoy intentando a través de una sóla señal reproducir las que yo quiera mediante la técnica bootstrap, el caso es que hay mucho escrito para aplicarlo a sistemas lineales y no veo nada para sistemas no lineales, ¿alguien me podría echar una mano?

Hasta donde lei, para sistemas no lineales, se utiliza en Filtro extendido de Kalman, en el cual se "linealiza" a la funcion dentro de un area de interes (derivadas parciales y evaluadas en un punto).
Actualmente estoy leyendo Fundamentals of Statistical Signal Processing (solo consegui el libro de estimacion), que trata sobre eso. Estoy intentando aplicarlo en la prediccion y estimacion optima (minima varianza) de un puntero laser, tomado desde una webcam.

Kalman tiene como contras: se requiere del modelo del sistema y que el ruido sea Gaussiano.

Como determinaste la matriz de covarianza? Como te aseguraste que el ruido sea gaussiano?
Algo como este estilo?
http://en.wikipedia.org/wiki/Estimation_of_covariance_matrices

Saludos!


 

anything