Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Modelar un sistema de control de temperatura de encendido/apagado

Este ejemplo muestra cómo modelar un sistema de control de encendido/apagado que regula la temperatura de una caldera. El modelo tiene dos componentes:

  • Boiler Plant Model es un subsistema de Simulink® que modela la dinámica de una caldera.

  • El controlador de encendido/apagado es un gráfico de Stateflow® que implementa la lógica de control de encendido/apagado.

El gráfico usa:

  • Lógica temporal para implementar el tiempo del ciclo de encendido/apagado

  • Datos de punto fijo de 8 bits para representar la temperatura de la caldera

Implementar la lógica de control utilizando el operador after

El controlador de encendido/apagado determina cuándo se enciende y se apaga la caldera. Al principio, la caldera está apagada. Después de 40 segundos, si la caldera está fría, se enciende. Después de 20 segundos, la caldera se apaga y se repite el ciclo de control de encendido/apagado.

Para controlar las transiciones entre los estados On y Off, el gráfico llama al operador de lógica temporal de tiempo absoluto after. Por ejemplo, la etiqueta de transición after(20,sec) activa la transición de On a Off después de que el estado On esté activo durante 20 segundos. La etiqueta after(40,sec)[cold()] hace que se produzca la transición de Off a On si la función cold devuelve true después de que el estado Off esté activo durante 40 segundos.

El estado Off también utiliza lógica temporal para controlar un LED de estado. Dado que los gráficos de Stateflow de los modelos de Simulink no admiten el operador every para una lógica temporal de tiempo absoluto, el estado implementa el funcionamiento del LED utilizando un subestado Flash con una transición de autobucle. La etiqueta de transición after(5,sec) activa la acción de entrada del subestado y hace que el LED parpadee cada 5 segundos.

Procesar datos de punto flotante en un procesador de 8 bits

El subsistema Boiler Plant Model simula la reacción de la temperatura de la caldera durante periodos de calefacción o refrigeración.

En función de la salida del gráfico del controlador de encendido/apagado, el subsistema añade o resta un incremento de temperatura (+1 para calefacción o –0,1 para refrigeración) a la temperatura anterior de la caldera y pasa el resultado al subsistema Digital Thermometer.

El subsistema Digital Thermometer convierte la temperatura resultante en una representación de punto fijo de 8 bits. La conversión tiene lugar en tres pasos.

  • El bloque Sensor convierte la temperatura de entrada de la caldera $T_{actual}$ en una salida de tensión analógica intermedia $V_{sensor} = 0.05 \cdot T_{actual} + 0.75$.

  • El subsistema Analog-to-Digital Converter (ADC) digitaliza la tensión analógica proveniente del bloque Sensor multiplicando la tensión por $\frac{256}{5}$, redondeando hacia abajo al entero más cercano y limitando el resultado a un máximo de 255 (el valor máximo de un entero sin signo de 8 bits). El subsistema produce como salida un entero cuantizado $Q = \lfloor \frac{256}{5} \cdot V_{sensor} \rfloor = \lfloor \frac{256 \times 0.05}{5} \cdot T_{actual} + \frac{256 \times 0.75}{5} \rfloor$.

  • El bloque Linear Fixed-Point Conversion invierte la función de transferencia combinada de los bloques Sensor y ADC para codificar la temperatura de la caldera como un número de punto fijo con una pendiente de $S = \frac{5}{256 \times 0.05} = 0.390625$ y un sesgo de $B = -\frac{0.75}{0.05} = -15$. Estos parámetros de punto fijo convierten el entero cuantizado de 8 bits $Q$ en una temperatura digital codificada $T_{digital} = SQ + B = \frac{5}{256 \times 0.05} \cdot \lfloor \frac{256 \times 0.05}{5} \cdot T_{actual} + \frac{256\times 0.75}{5} \rfloor - \frac{0.75}{0.05} \approx T_{actual}$.

El gráfico del controlador de encendido/apagado recibe esta temperatura codificada digital y la interpreta como el dato de punto fijo sin signo de 8 bits temp. El gráfico procesa estos datos de temperatura en un entorno de 8 bits sin conversiones explícitas.

Examinar los resultados de una simulación

Después de una simulación, el scope de Simulink muestra que la caldera alcanza una temperatura de 20 grados Celsius después de aproximadamente 450 segundos (7,5 minutos). La lógica de control de encendido/apagado mantiene de manera eficaz la temperatura durante el resto de la simulación.

Consulte también

| | (Simulink)

Temas relacionados