Tengo la siguiente configuración:
- Arduino Duemilanove
- Pequeño calentador de agua conectado con relé óptico (PWM está bien)
- Sensor de temperatura impermeable DS18B20
- Cantidad desconocida de agua (pero el sensor de temperatura y el calentador siempre están bajo el agua).
¿Cómo puedo controlar con precisión la temperatura del agua, según las lecturas del sensor de temperatura? Con precisión, me refiero a la precisión del sensor de temperatura (en este caso, ± 0.5 ° C). Todo debería ejecutarse en Arduino, por lo que no hay disponible almacenamiento adicional de datos o potencia de procesamiento. Para la depuración, obviamente puedo usar la computadora.
He intentado ejecutar PID, pero parece realmente difícil
- Evite sobrepasar - sobrepasar la temperatura objetivo ya sea inicialmente, o cuando se agrega agua (fría)
- Estabilice adecuadamente después de agregar agua fría.
Respuestas:
Debe conocer el tiempo de respuesta de su sistema y la repetibilidad de sus mediciones para caracterizar sus datos (establecer confianza). Sugiero tomar muestras y promediarlas antes de volver a encender el calentador.
En mi humilde opinión, el agua no se quedará felizmente dentro de 0.5 ° C. ¿Puedes permitir modos gruesos y finos? Use un PWM más alto para grandes diferencias y luego un PWM más bajo para cuando esté cerca del objetivo.
Una vez enfocado en su objetivo, existen algunos medios para intentar mejorar la estabilidad de la temperatura. Si bien las cosas preconstruidas como PID funcionan para muchos, normalmente implemento funcionalidades como esta manualmente.
fuente
BrettAM, dE (tasa de cambio en el error) cambiará a medida que el parámetro de control modifique el ancho de pulso de la señal del elemento calefactor por el PID. Mi redacción al decir que la tasa de cambio de error de temperatura fue una mala elección. El término derivado también funcionará para atender las pequeñas variaciones en el calor específico del agua con la temperatura (4.186 kJ / (kg K) @ 20C a 4.219 kJ / (kg K) @ 100C).
Mi punto es que sí, el término derivado calcula la tasa de cambio de dE. Dado que el error aquí es la diferencia entre la temperatura deseada y la temperatura real, la derivada calcula los cambios en la velocidad a la que se calienta el agua.
El problema es que a menudo es difícil crear un sistema estable con un término derivado. Un sistema PID debe basarse principalmente en el término proporcional. Cuando varía la cantidad de agua, en mi opinión, está creando más no linealidad de lo que el PID puede compensar. Por esta razón, los PID necesitan ser algo repetibles y si el nivel del agua varía severamente, su sistema ya no es repetible.
AL OP: en mi diseño similar, voy a intentar usar un pequeño combo de radiador / ventilador y una bomba de 12 V CC para hacer correr el agua como un método para enfriar el agua. Siento que esto puede funcionar mejor. Si tiene éxito, se lo haré saber.
fuente
Debe mantener constante la cantidad de agua que se calienta. La velocidad a la que aumenta la temperatura del agua cambiará cuando varíe la cantidad de agua (agregando agua fría como mencionó). Un controlador proporcional-integral-derivativo (PID) funciona observando la derivada (tasa de cambio) de la variable que está tratando de controlar. Su PID nunca funcionará correctamente si la tasa de cambio de temperatura no es (razonablemente) constante.
Observe el calor específico del agua, principalmente la ecuación Q = c m dT. Q es el calor agregado, que supongo que es constante en su configuración. m es la masa de la sustancia que se calienta (¡debe mantenerse constante!). c es el calor específico del agua, que es 4.186 julios / gramo * grado C. Si Q, m y c son constantes, entonces dT, la velocidad a la que aumentará la temperatura del agua también será constante (en realidad, c varía ligeramente con la temperatura, pero diría que esto puede ignorarse si está trabajando desde 0- 100C). Intente ajustar su PID con una cantidad constante de agua y puede obtener mejores resultados.
¿Qué calentador de agua estás usando? Actualmente estoy haciendo algo similar, pero estoy tratando de usar una plataforma caliente del laboratorio de química y estoy experimentando enormes excesos. ¿He considerado cambiar a un calentador de acuario pero me gustaría saber qué está usando?
-Mate
fuente