Simulador de temperatura
En este ejemplo, vamos a hacer el control de temperatura de un tanque simulado. Utilizaremos un PLC de Siemens simulado en este caso el PLCSIM advanced, para, mediante un control PID, regular la temperatura dentro de un depósito.
Una vez realizado el control, pasaremos los mandos al Little SCADA, generando una interfaz que nos permita ver y manejar el sistema. Lo primero es el simulador de temperatura.
Creo que puede ser muy útil el desarrollo de este tipo de aplicaciones, orientadas a la simulación de procesos, ya que en muchas ocasiones necesitamos probar nuestros sistemas de control de la forma mas realista posible.
Esta serie esta dividida en 3 artículos:
- Simulación de temperatura del tanque: ecuación de transferencia de calor. (PARTE I)
- Regulación de la temperatura mediante un PID en PLC Siemens.(PARTE II)
- Control desde Little SCADA. (PARTE IIII)
Simulación de temperatura del tanque
En este ejemplo, se ha modelado un tanque, del cual queremos regular su temperatura a través de una recámara que intercambia calor con el fluido contenido en el tanque. Decir, que puede ser útil para cualquier tipo de aporte de calor como una resistencia.
En definitiva es aportar calor a un sistema, que pierde calor con respecto al exterior.
Con el fin de simplificar mucho las cosas y poder centrarnos en el control, no desarrollaré el sistema de ecuaciones necesario para obtener la ecuación de temperatura. Al final esta ecuación procede de las ecuaciones de balance de masas y balance de energía, despejando aquella variable que nos interesa.
Programacion PLC del simulador
Para nuestro caso, vamos al grano con la generación de la temperatura en el PLC (SCL por comodidad).
"R_TRIG_DB_1"(CLK:="Clock_10Hz");
Generamos una señal periódica de 10 hercios, para poder ver las variaciones sin impacientarnos =D
#ComponenteAleatoria := "LGF_RandomRange_Real"(minValue := -0.3, maxValue := 0.3, error => #StatError, status => #StatAleat, subfunctionStatus => #StatFunctStat);
Cuando en la realidad monitorizamos una temperatura, vemos que muy rara vez se comporta de forma totalmente predecible, ya que existen muchos factores que podemos no estar teniendo en cuenta en nuestro modelo. Para representar esta componente difícil de identificar, creamos una componente aleatoria, que hará variar la temperatura de forma aleatoria entre su valor y +- 0.3 ºC.
IF "R_TRIG_DB_1".Q THEN
// Calcular el cambio de temperatura
#dT := #k * (#T_fluido - #T_tanque) * #V_apertura + #h * (#T_ambiente_ext - #T_tanque);
// Actualizar la temperatura del ambiente
#T_tanque := #T_tanque + #dT+#ComponenteAleatoria;
END_IF;
Esta parte del código se ejecutará con un flanco positivo de cada señal del reloj, actualizando la temperatura según la ecuación dada, donde:
- dT: diferencial de temperatura.
- T_fluido: temperatura del fluido que intercambia calor con el tanque.
- T_tanque: temperatura del interior del tanque.
- T_ambiente_ext: temperatura del exterior del tanque.
- k: coeficiente de transmisión de temperatura entre el fluido y el tanque.
- h: coeficiente de transmisión de temperatura entre el tanque y el exterior.
- Componente aleatoria: factor de aleatoriedad de la temperatura.
Notas:
* Los coeficientes de transmisión de temperatura, se deben ajustar, según el modelo que queramos simular. Si tenemos sistemas más rápidos, o con poca inercia, los coeficientes serán más altos y viceversa.
*Lo mismo sucede con la temperatura del fluido y del exterior, ya que determinaran el máximo de temperatura que podremos alcanzar en el tanque y le velocidad.
Ejemplo: aunque no es el objetivo de este articulo mostrar el control PID ni el SCADA, muestro una grafica donde se aprecia como la temperatura que hemos simulado, se comporta de forma muy real.
Conclusiones
Simular procesos es una forma de ganar tiempo y calidad en la puesta en marcha de nuestros sistemas de control.
Utilizando las ecuaciones de energía de forma simplificada, podemos obtener modelos muy realistas a los que podemos atacar con nuestros PLCs. Este Simulador de temperatura puede ser muy práctico para anticiparnos a los problemas e puesta en marcha y evaluación de reportes.
No necesitamos PLC físicos para nuestros test, ya que la mayoría de plataformas de desarrollo nos proporcionan entornos de simulación. (El de Siemens es muy completo e intuitivo).