Control proporcional de tiempo

1

Estoy desarrollando una aplicación para el control de tiempo proporcional del termostato. Sé que la salida para el calentador es proporcional a un error. Por ejemplo, si SetPoint es 20 y la banda proporcional es 2, en caso de que si la temperatura real (AT) es 19, entonces la Salida sería 50%. Sin embargo, no puedo entender qué pasa si AT es superior a 20? Por ejemplo, si AT es 21, entonces la salida sería nuevamente 50%, eso no tiene ningún sentido.

    
pregunta Aidos Askhatuly

1 respuesta

1

Parece que está viendo el valor absoluto del error; en su lugar, debe calcular el error como un valor positivo o negativo. Si solo tiene control unidireccional (por ejemplo, sin refrigeración activa), no debe hacer nada cuando la temperatura real esté por encima del punto establecido.

Específicamente para tus dos ejemplos:

  • Cuando AT = 19, error = +1, salida = calentador en 50%
  • Cuando AT = 21, error = -1, salida = calentador apagado

Editar:

  • Cuando AT = 20, error = 0, salida = calentador apagado

El pseudocódigo es algo así como:

const Kp = 1/2.
error = SP - AT
control_output = Kp * error 
set_heater_power(clip(control_output, 0.0, 1.0))
    
respondido por el Justin

Lea otras preguntas en las etiquetas