Cómo utilizar la entrada DISV para control Feed Forward en el bloque PID CONT_S (FB42) de Step 7

Para implementar un control por compensación anticipada (feed forward) mediante el bloque PID paso a paso CONT_S (FB42) en Siemens Step 7, debe conectar una señal representativa de la perturbación a la entrada DISV (Disturbance Variable). En un sistema de intercambio de calor, conectar directamente la lectura de temperatura de entrada a DISV añade un valor estático que descentra la salida. Para reaccionar a las variaciones dinámicas del suministro, debe calcular la tasa de cambio (derivada de la temperatura de entrada) en un bloque cíclico como OB35, multiplicar ese valor por un factor de ganancia y asignar el resultado a DISV.

Tabla de contenido

Por qué la lectura directa de temperatura falla como Feed Forward en DISV

En el algoritmo de CONT_S (FB42), la variable de perturbación DISV se suma directamente al error de regulación o a la señal interna de control antes de generar los impulsos de apertura o cierre para el actuador motorizado.

Si conecta directamente el valor bruto de un sensor PT100 ubicado en la tubería de entrada (por ejemplo, 70 °C), el bloque interpretará ese valor constante como una desviación permanente. Esto provocará una sobrecompensación continua en la válvula, sesgando el bucle de control.

Para que el control feed forward anticipe el impacto térmico antes de que altere la temperatura del producto o del retorno:

  1. El sistema debe reaccionar únicamente cuando la temperatura del fluido entrante varía rápidamente.
  2. Si la temperatura de entrada se mantiene constante, la derivada de la señal es cero, por lo que DISV no añade offset al bucle PID.
  3. Si la temperatura de entrada aumenta o disminuye bruscamente, la tasa de cambio genera un impulso en DISV que permite al PID mover la válvula antes de que el sensor de proceso (PV) detecte la desviación.

Requisitos previos

  • Proyecto de Step 7 (SIMATIC Manager) con el bloque de función FB42 (CONT_S) llamado dentro de un bloque de interrupción por tiempo como OB35.
  • Variable de proceso (PV) de temperatura conectada en el retorno o salida del intercambiador de calor.
  • Válvula de control motorizada operada mediante salidas digitales de incremento/decremento (abrir/cerrar).
  • Segundo sensor de temperatura (PT100) instalado en la tubería de suministro (alimentación) del agua caliente.
  • Transmisor de temperatura que entregue la señal de entrada escalada como variable de coma flotante (REAL).

Pasar la perturbación medida a la entrada DISV de FB42

Procedimiento

  1. Mida la temperatura del agua de entrada con el nuevo sensor PT100 y escale el valor a una variable de tipo REAL (por ejemplo, rTempSupply).
  2. Calcule la derivada discreta de la temperatura de entrada dentro del mismo tiempo de ciclo que ejecuta el PID (por ejemplo, en OB35 con un tiempo de muestreo T).
  3. Aplique la fórmula de aproximación en tiempo discreto:

Rate=TPVa​(n)−PVa​(n−1)​Donde PVa​(n) es la temperatura actual de entrada, PVa​(n−1) es el valor leído en el ciclo anterior y T es el tiempo de muestreo del OB35 en segundos.

  1. Multiplique el resultado (Rate) por un factor de ganancia o ponderación Kff​ para ajustar el impacto sobre la válvula.
  2. Asigne el valor final escalado al parámetro DISV del bloque FB42.

Delphi

// Ejemplo de cálculo de derivación para DISV en SCL / OB35
// T_SAMPLE es el tiempo de ciclo de OB35 en segundos (ej. 0.1 s)

rRate := (rTempSupply - rTempSupply_Prev) / T_SAMPLE;
rTempSupply_Prev := rTempSupply; // Guardar valor para el siguiente ciclo

// Asignación a la variable de perturbación con factor de ajuste K_FF
rDISV_Input := rRate * K_FF;
  1. Conecte rDISV_Input al parámetro de entrada DISV de la instancia de FB42.

Resultado esperado: Cuando la temperatura de suministro se mantiene estable, DISV permanece en 0.0, permitiendo que el PID regule normalmente según el setpoint y la variable de proceso. Cuando la temperatura de entrada sufre una variación brusca, DISV toma un valor proporcional a la rapidez del cambio, acelerando la respuesta de la válvula.

Verificación: Monitoree en un cuadro de tendencia la variable DISV junto con las salidas de control del bloque CONT_S. Verifique que DISV responda únicamente durante los transitorios de temperatura en el suministro.

Limitación: La compensación por derivada puede ampliar el ruido de lectura del sensor PT100. Si la señal analógica tiene fluctuaciones, aplique un filtro de primer orden antes de calcular la derivada.

Verificación

El procedimiento de integración de feed forward en FB42 se ha completado correctamente cuando:

  • Con la temperatura de suministro estable, la entrada DISV del bloque CONT_S marca 0.0.
  • Ante un cambio escalón en la temperatura del agua de entrada, el valor en DISV se desvía temporalmente en proporción a la velocidad del cambio y regresa a cero cuando la temperatura se estabiliza.
  • El PID mueve la válvula de regulación antes de que la temperatura de proceso (PV) en el retorno sufra una variación significativa.
  • No se observan oscilaciones continuas en la válvula causadas por ruido eléctrico en la lectura analógica del segundo PT100.

Limitaciones y precauciones operativas

  • Sensibilidad al tiempo de muestreo: El cálculo de la derivada depende estrictamente del tiempo de ejecución del bloque. Si procesa la lógica en un OB1 con tiempo de ciclo variable en lugar de un OB35 cíclico, el valor de la derivada será inestable.
  • Actuadores ON/OFF vs. Válvulas motorizadas: El bloque CONT_S está diseñado específicamente para actuadores con comportamiento integrador (válvulas motorizadas abrir/cerrar mediante pulsos). No utilice CONT_S con solenoides todo/nada simples de una sola bobina; para control PWM todo/nada se debe emplear CONT_C junto con un generador de pulsos como PULSEGEN.
  • Saturación del parámetro DISV: Un valor de ganancia Kff​ excesivo en la perturbación puede forzar la salida del regulador a sus límites de apertura o cierre, desestabilizando el proceso.

Preguntas frecuentes

¿Para qué sirve exactamente el parámetro DISV en el bloque FB42 CONT_S?

Es una entrada analógica de coma flotante (REAL) destinada a introducir una variable de perturbación externa (Disturbance Variable) directamente en la suma interna del algoritmo PID, permitiendo la implementación de esquemas de control Feed Forward.

¿Puedo conectar la variable de perturbación DISV si ejecuto FB42 en OB1?

No es recomendable. Los algoritmos de regulación y las derivadas discretas requieren un tiempo de muestreo constante. FB42 y los cálculos de tasa de cambio deben ejecutarse en un OB de interrupción cíclica, como OB35.

¿Por qué no se debe conectar directamente la temperatura de entrada a DISV sin derivar?

Porque un valor directo de temperatura actúa como un offset constante. Esto distorsiona la acción del regulador PID haciendo que la válvula permanezca desalineada respecto a la posición requerida para mantener el setpoint.

¿Se puede utilizar la entrada DISV para un control de cascada?

No. Para esquemas de control en cascada se deben interconectar dos bloques PID independientes, donde la salida del PID primario (maestro) modifica el setpoint (SP_INT) del PID secundario (esclavo).

Artículos relacionados

Etiquetas relacionadas

Code: C130

8 respuestas