Implementación de PID para un controlador de humedad

Estoy trabajando en un controlador de humedad que usa el algoritmo PID para controlar los valores del proceso. Tengo que implementar 2 rutinas PID ya que hay 2 valores de proceso (Humedad y Temperatura) para controlar. Leí muchos artículos sobre controladores PID y creo que entiendo el significado de cada término.

Pero el problema es que no puedo entender cómo cada término se convierte en la salida real (variando los ciclos de encendido/apagado del calentador de aire y una caldera). Lo que he hecho hasta ahora son

En la rutina principal

  1. leyendo 2 canales ADC cada segundo

  2. calculando la salida PID (valor de 0-100) cada segundo

    Los términos integrales y derivados se suman a la potencia calculada cada ciclo Ti & Td (programable en 0-240 segundos). Dado que mi cálculo de salida PID se ejecuta cada segundo, la siguiente ejecución después de agregar un término integral (o derivado) dará como resultado una potencia menor que el valor anterior (es decir, cuando se agrega potencia integral o derivada).

En ISR (@ período 2ms) utilizo 2 valores (tiempo de encendido y tiempo de apagado que se calculan usando la salida PID y el tiempo cíclico (también programable en segundos) deseado para la salida) para cambiar la salida.

Como puede ver, con estos tiempos, la potencia integral y la potencia derivada no tendrán ningún efecto en el ciclo de trabajo de salida y mis preguntas son

  1. ¿Debo aumentar el período de tiempo de ejecución de PID o
  2. ¿Debo retener el valor del último término integral calculado (o derivado) con el término proporcional hasta la siguiente suma del integral (o derivado)?

Sé que tendré una idea de cómo jugar con cada término cuando se pruebe en el sistema y después de analizar la respuesta del sistema. Pero solo quiero despejar todas mis dudas y terminar la mayor parte posible del código antes de tener una máquina para probar.

estos enlaces pueden ayudarte shawnlankton.com/2005/03/pic-pid-controller

Respuestas (1)

  1. ¿Debo aumentar el período de tiempo de ejecución de PID o

Algo significativo debería poder suceder entre cada muestra. Creo que un segundo demasiado cerca. Sugeriría comenzar con 10 segundos o más entre muestras.

2.0 ¿Debo conservar el valor del último término integral (o derivado) calculado con el término proporcional hasta la próxima suma del integral (o derivado)?

P, I y D deben calcularse juntos en mi comprensión. Me parece que usar valores anteriores sesgará el proceso. Los valores anteriores ya se manejan en I y D.

Pero el problema es que no puedo entender cómo se convierten cada término a la salida real

No es una ciencia exacta. Realmente depende de su sistema y de cómo decida conectar los números para PI y D. Por ejemplo, si decide que un valor de salida de >= 100 está desactivado y < 100 activado, P se ajusta hasta el estadio de béisbol y I y D para terminarlo.

Encuentre una copia de PID sin un doctorado y estúdiela bien, si no lo ha hecho.