La visualización de datos en la ingeniería de control
La correcta confección de tablas y gráficos es esencial en la ingeniería de automatización para interpretar el comportamiento de los sistemas de medida y regulación. Permite visualizar tendencias, comparar variables, detectar anomalías y comunicar resultados a equipos multidisciplinares. Desde la puesta en marcha hasta el mantenimiento, las representaciones gráficas facilitan la toma de decisiones y la optimización de procesos.
Este capítulo aborda los principios para estructurar tablas técnicas, seleccionar el tipo de gráfico adecuado según la variable, utilizar correctamente los ejes y escalas, y aprovechar las herramientas ofimáticas y especializadas (Excel, Python, MATLAB). Se incluyen ejemplos prácticos con datos reales de sistemas de control.
Estructuración de tablas de valores técnicos
Las tablas recogen datos medidos o calculados durante el funcionamiento de un proceso. Para que sean útiles, deben seguir buenas prácticas:
- Cabecera clara: denominación completa de cada variable y su unidad (ej. “Temperatura (°C)”, “Presión (bar)”).
- Orden lógico: cronológico o según el parámetro independiente (tiempo, posición, consigna).
- Precisión adecuada: número de decimales coherente con la precisión del instrumento (ej. 1 decimal para temperaturas industriales).
- Título descriptivo: contexto de la medición (ej. “Tabla 1 – Registro de temperatura durante el arranque”).
Ejemplo: Tabla para un lazo de control de temperatura:
Selección del tipo de gráfico según la información
La elección del gráfico determina la claridad del análisis. Los más utilizados en automatización son:
- Gráficos de líneas: ideales para mostrar la evolución temporal de variables (presión, temperatura, caudal). Permiten superponer varias series (PV, SP, MV).
- Gráficos de barras: comparan valores discretos (ej. consumo energético por turno, número de fallos por equipo).
- Gráficos de dispersión (scatter): muestran la relación entre dos variables (ej. caudal vs. presión diferencial) y permiten identificar correlaciones.
- Gráficos de área: útiles para acumulados (energía total, caudal acumulado).
En la práctica, una combinación de gráficos de líneas para la variable de proceso y de barras para el estado del actuador suele ser muy efectiva.
Elementos clave en la construcción de gráficos
Un gráfico profesional debe incluir:
- Ejes correctamente etiquetados: eje X (variable independiente), eje Y (variable dependiente) con unidades.
- Escalas adecuadas: que abarquen todo el rango de datos pero sin distorsionar la interpretación (evitar escalas truncadas).
- Título informativo: “Evolución de la temperatura durante el arranque del horno” en lugar de “Gráfico 1”.
- Leyenda: si se representan varias series, con colores o estilos diferenciados.
- Cuadrícula (grid): facilita la lectura de valores intermedios.
En herramientas ofimáticas, estas opciones se configuran desde el menú de formato de gráficos. En entornos de programación (Python, MATLAB) se definen mediante funciones específicas.
Herramientas disponibles: hojas de cálculo y software especializado
La elección de la herramienta depende del volumen de datos y la complejidad del análisis:
- Hojas de cálculo (Excel, Google Sheets, Calc): ideales para informes, presentaciones y análisis básicos. Permiten crear tablas, aplicar formatos condicionales y generar gráficos con pocos clics.
- Python con librerías especializadas: pandas (manejo de datos), matplotlib y seaborn (gráficos), plotly (interactivos). Adecuado para automatizar la generación de informes y manejar grandes volúmenes de datos.
- MATLAB / Simulink: potente para análisis de señales, sistemas dinámicos y generación de gráficos vectoriales de alta calidad.
- LabVIEW: integración con adquisición de datos y visualización en tiempo real.
En entornos industriales, las hojas de cálculo son suficientes para la mayoría de informes de puesta en marcha y mantenimiento, mientras que Python se usa en investigación y desarrollo para procesar series temporales largas.
# data_visualization.py - Genera tablas y gráficos a partir de datos de simulación
# Útil para informes de puesta en marcha y análisis de procesos
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# --- Simulación de datos de un lazo de control ---
np.random.seed(42)
t = np.linspace(0, 100, 200) # tiempo (s)
sp = 80 * np.ones_like(t) # setpoint constante
# Variable de proceso con dinámica de primer orden + ruido
tau = 10
K = 1.2
pv = 20 + K * 60 * (1 - np.exp(-t/tau)) + np.random.normal(0, 1.5, len(t))
# Salida del actuador (PID simulada)
mv = np.clip(50 + 2 * (sp - pv) + 0.1 * np.cumsum(sp - pv) * (t[1]-t[0]), 0, 100)
# --- Crear DataFrame ---
df = pd.DataFrame({
"Tiempo (s)": t,
"Setpoint (°C)": sp,
"Temperatura PV (°C)": pv,
"Salida actuador (%)": mv,
"Error (°C)": sp - pv
})
# Mostrar primeras filas de la tabla
print("=== PRIMERAS 10 FILAS DE LA TABLA ===")
print(df.head(10).round(2))
# Guardar tabla a CSV (para documentación)
df.to_csv("datos_lazo_temperatura.csv", index=False, decimal=",", sep=";")
print("\n✅ Datos guardados en 'datos_lazo_temperatura.csv'")
# --- Gráficos ---
plt.figure(figsize=(12, 8))
# Subplot 1: Temperatura y setpoint
plt.subplot(2, 1, 1)
plt.plot(t, pv, label="Temperatura PV", linewidth=2)
plt.plot(t, sp, 'r--', label="Setpoint", linewidth=2)
plt.ylabel("Temperatura (°C)")
plt.title("Evolución del lazo de control")
plt.legend()
plt.grid(True)
# Subplot 2: Salida del actuador
plt.subplot(2, 1, 2)
plt.plot(t, mv, 'g-', label="Salida actuador", linewidth=2)
plt.ylabel("Salida (%)")
plt.xlabel("Tiempo (s)")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.savefig("grafico_control.png", dpi=150)
print("✅ Gráfico guardado como 'grafico_control.png'")
plt.show()
# --- Análisis de rendimiento ---
error_abs_medio = np.mean(np.abs(df["Error (°C)"]))
overshoot = np.max(pv) - sp[0] if np.max(pv) > sp[0] else 0
settling_time = None
for i in range(len(t)):
if np.all(np.abs(pv[i:] - sp[0]) < 2):
settling_time = t[i]
break
print("\n=== ANÁLISIS DE RENDIMIENTO ===")
print(f"Error absoluto medio: {error_abs_medio:.2f} °C")
print(f"Sobreimpulso: {overshoot:.2f} °C")
if settling_time:
print(f"Tiempo de establecimiento (±2°C): {settling_time:.1f} s")
Este script simula un lazo de control de temperatura, genera una tabla con las variables principales, guarda los datos en CSV y produce gráficos de evolución. Además, calcula métricas de rendimiento. Es una base excelente para informes de puesta en marcha.
La visualización de datos en automatización avanza hacia paneles interactivos en tiempo real (SCADA con dashboards personalizables) y herramientas de BI (Power BI, Tableau) que integran datos de múltiples PLCs. La norma IEC 61131-3 incorpora directrices para la representación gráfica de variables en sistemas de control. Además, el uso de notebooks de Python (Jupyter) en ingeniería facilita la reproducibilidad de los análisis y la generación automática de informes.
Una Raspberry Pi puede adquirir datos de sensores (temperatura, presión) y generar gráficos en tiempo real usando Python y matplotlib. Los resultados se pueden exportar a un servidor web para su visualización remota. También se pueden crear dashboards con Flask y Plotly.
Arduino permite capturar datos y enviarlos a un PC vía serie, donde pueden ser procesados con Python o importados a Excel para generar gráficos. Es una herramienta educativa excelente para enseñar análisis de datos de sensores.
- ✅ Comprender activamente cada línea de código generada
- ✅ Personalizar la solución según tus necesidades específicas
- ✅ Iterar y refinar el código hasta dominar la lógica
- ✅ Desarrollar habilidades de comunicación técnica con IA
📋 Instrucciones de Uso:
- Copia el prompt completo del recuadro superior.
- Personaliza los campos entre corchetes [CAMPO] con tu información específica.
- Pega el prompt en una nueva conversación con tu IA favorita.
- Itera y refina: Pide aclaraciones, modificaciones o añade requisitos adicionales.
- Prueba el código en Thonny primero, luego en tu Raspberry Pi y ajusta según resultados.
💼 Caso Práctico Industrial: Selección de gráfico
Contexto: Se desea analizar la relación entre la presión diferencial (ΔP) medida en una placa orificio y el caudal calculado (Q) para verificar la linealidad del sensor. Los datos son pares de valores (ΔP, Q).
Pregunta: ¿Qué tipo de gráfico es el más adecuado?
🍓 Raspberry Pi + Python
Contexto: El script Python genera un gráfico de la temperatura PV y el setpoint. ¿Qué función de matplotlib se usa para dibujar ambas series?
Pregunta: ¿Cuál es la función que traza las líneas?
🐍 Cabeceras de tabla
Contexto: Se quiere crear una tabla con las columnas "Tiempo (s)", "Temperatura (°C)", "Setpoint (°C)". Según las buenas prácticas, ¿cómo deben escribirse las cabeceras?
Pregunta: ¿Qué formato es el correcto?
| Tipo de gráfico | Uso principal | Ejemplo en automatización | '
|---|---|---|
| Líneas | Evolución temporal | Temperatura PV y setpoint durante el arranque |
| Barras | Comparación de valores discretos | Consumo energético por turno |
| Dispersión (scatter) | Relación entre dos variables | Caudal vs. presión diferencial |
| Áreas | Acumulados | Caudal acumulado diario |
📚 Recursos Técnicos y Normativos 2026
Normativas y Estándares
- ISO 9001:2015 - Documentación de resultados
- UNE-EN 60204-1 - Representación de variables en informes