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 ser controlados. 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 se convierten cada término a la salida real (ciclos de encendido / apagado variables del calentador de aire y de una caldera). Lo que he hecho hasta ahora son
En la rutina principal
-
leyendo 2 canales ADC cada segundo
-
calculando la salida PID (valor de 0-100) cada segundo
Los términos integrales y derivados se agregan a la potencia calculada cada Ti & Td ciclos (programables 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 menor potencia que el valor anterior (es decir, cuando se agreguen la potencia integral o derivada).
En ISR (@ period 2ms) utilizo 2 valores (tiempo de encendido y apagado que se calculan utilizando 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
- ¿Debo aumentar el período de tiempo de ejecución PID o
- ¿Debo conservar el valor del último término integral calculado (o derivado) con el término proporcional hasta la siguiente adición de la integral (o derivado)?
Sé que obtendré una idea de cómo usar cada uno de los términos cuando se pruebe en el sistema y después de analizar la respuesta del sistema. Pero solo quiero aclarar todas mis dudas y terminar la mayor parte del código posible antes de que me haga una prueba.