Estoy intentando implementar un algoritmo PID básico en un Arduino Leonardo para mezclar agua de grifo caliente y fría mediante válvulas servocontroladas. El objetivo es mantener la temperatura lo más cerca posible de un punto de ajuste. Es especialmente importante evitar que la temperatura de salida supere el punto de ajuste para proteger al usuario de quemaduras. En segundo lugar, es importante obtener la temperatura cerca del punto de ajuste lo más rápido posible.
Para pequeños cambios de temperatura, una implementación estándar del algoritmo PID parece funcionar bien. Pero no sé cómo explicar los largos retrasos que pueden ocurrir cuando se espera que el agua caliente llegue a la válvula, ya que estos retrasos son mucho más largos que los retrasos estándar después de cambiar las posiciones de las válvulas.
Obviamente, dependiendo de la longitud de la línea de agua caliente y el tiempo desde el último uso del agua caliente, puede tomar varias decenas de segundos para que el agua caliente llegue a la válvula, por lo que durante este tiempo, la temperatura del agua permanece bastante constante en A baja temperatura y la válvula de agua caliente pronto se abre al 100%. El componente integral comienza a acumular un gran valor de error.
Cuando el agua caliente finalmente llega a la válvula, la temperatura detectada aumenta muy rápidamente a la temperatura máxima del agua caliente. Debido al gran error integral, la válvula de agua caliente se mantiene al 100% durante mucho tiempo después de que la temperatura supera el punto de ajuste, debido a que la espera del valor integral se reduzca a niveles normales. Por lo tanto, el resultado es agua de temperatura máxima durante varios (decenas) de segundos.
No estoy seguro de cómo explicar este posible largo retraso. En tal caso, ¿sería prudente establecer un límite superior (e inferior) en el valor de error integral, para limitar el tiempo máximo de respuesta? Esto parece anular el propósito del componente integral, y también impondría un retraso de algo después de alcanzar el punto de ajuste.
¿O hay una mejor manera de manejar los cambios de entrada rápidos después de un largo retraso?
Gracias por cualquier consejo!