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
leyendo 2 canales ADC cada segundo
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
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.
- ¿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.
Yogece