Problemas con el filtro IIR en los sistemas de control PID

0

El siguiente diagrama representa el sistema:

Aquí viene una descripción más:

  1. La entrada del sistema (referencia o referencia es cero). Y, en realidad, el objetivo del controlador es mantener la salida del sistema en cero.

  2. En este sistema, también hay perturbaciones y ruidos. La perturbación tiene la forma de aproximadamente una rampa, sin embargo, por naturaleza, se parece más a eventos aleatorios. Los ruidos están limitados por la banda con un ancho de banda de alrededor de 10Hz.

  3. Por lo tanto, el controlador se esfuerza por compensar la influencia de la perturbación mientras se deshace de los ruidos.

  4. Como los ruidos provienen de los sensores y agrego un filtro antes del controlador.

Mis preguntas son:

  1. Estaba usando filtros FIR simples. El filtro espera, por ejemplo, 5 segundos para obtener un lote de datos, procesarlos y pasar la salida al controlador. El controlador del controlador a 0.2Hz.

  2. Sin embargo, el ancho de banda de 0.2Hz todavía trae demasiado ruido al sistema. Si el controlador espera 20 segundos para FIR, el sistema será demasiado lento. Se me recomendó utilizar IIR, ya que está en línea, en lugar de FIR para que el filtro reduzca aún más los ruidos.

  3. Mi pregunta es: dado que IIR contiene información de mediciones anteriores, ¿la salida del controlador aún sería precisa? ¡Se supone que se ajusta solo por errores actuales! ¡IIR trae errores pasados al sistema!

¿Algún otro consejo para reducir aún más los ruidos? Gracias!

    
pregunta richieqianle

1 respuesta

1

Por ejemplo, si ejecuta un PID a 0.2Hz, entonces puede controlar un sistema con una dinámica máxima. 0.1Hz según Shannon. Ahora, si procesa 16 tomas FIR cada 100 ms, obtendrá un retraso de 8 ciclos que sería de 800 ms, que no es tan malo, pero tal vez demasiado para la ejecución de PID cada 5000 ms. Pero si ejecuta FIR a 10 ms, solo obtiene un retraso de 80 ms, o puede ejecutar cada 1 ms y extenderse a 32,64 pulsaciones ... Su teoría de que tiene que procesar un lote de datos no se sostiene, ya que debe purgar la muestra más antigua y traer la nueva muestra y computar todo nuevamente, cada ciclo no es un registro y comenzar de nuevo.

    
respondido por el Marko Buršič

Lea otras preguntas en las etiquetas