domingo, 5 de octubre de 2014

Simulación de controlador PID en micro 8051

Los controladores PID (Proporcional/Integral/Derivativo) (wikipedia) son muy utilizados para controlar procesos de todo tipo.
Existe mucha documentación en la web donde se explica la teoría asociada y desarrollos tanto analógicos como discretos.
Simplificando podemos decir que la idea es medir un valor y compararlo con el valor deseado. En base a la diferencia de ambos valores (error) se genera una señal de ajuste para lograr que el valor medido se aproxime al valor deseado. El valor de ajuste se calcula mediante tres componentes :

  • Proporcional : Basado en el error actual (presente)
  • Integral : Basado en el historial de errores (pasado)
  • Derivativo : Basado en la proyección del error (futuro)
      Vajuste = Kp * Proporcional + Ki * Integral + Kd * Derivativo

Las constantes de cada factor de la fórmula se seleccionan para determinar la curva de respuesta mas adecuada al proceso a controlar.

Cuando queremos utilizar un micro como controlador PID se utiliza un algoritmo discreto (se mide a ciertos intervalos de tiempo el valor de salida, se calcula el ajuste y se aplica la corrección).

A continuación tenemos un programa en pascal que permite simular el algoritmo PID en un micro de 8bits:

En la imagen se muestra la salida de la simulación donde se puede observar como el valor medido se va incrementando:

En la siguiente imagen podemos ver que el valor medido ya se aproximó al valor deseado, desplazándose hacia arriba y hacia abajo dependiendo del valor de interferencia r .


Es interesante ver como los factores Proporcional/Integral/Derivativo varían a lo largo de la simulación.

Algunos enlaces interesantes: