Sentinel · SAMS — Documento técnico de plataforma

Arquitectura, datos y motor de cálculo

Cómo entra la telemetría de una planta fotovoltaica, qué reglas la gobiernan y con qué fórmulas se calculan el PR, la disponibilidad y el diagnóstico que hay que sostener frente a un contrato de O&M.

Alcance · 3 servicios · 53 módulos · 66 entidades Adquisición · Modbus TCP / IEC 60870-5-104 / API Resolución · 5 min Normas · IEC 61724-1 · NREL PVWatts v5
01

La plataforma en una página

Sentinel es dos productos que comparten el mismo activo: un sistema de monitoreo y diagnóstico energético de plantas fotovoltaicas y un CMMS de mantenimiento. Comparten la jerarquía del activo — planta → centro de transformación → inversor → MPPT → string → tracker — y comparten las señales: la misma lectura SCADA que mueve un KPI puede abrir una orden de trabajo.

Qué mide

Desempeño energético

Energía real, irradiación POA, energía teórica, PR, EPI, specific yield, disponibilidad y descomposición de pérdidas — por planta y por cada nivel de la jerarquía.

Qué gestiona

Mantenimiento

Tickets, órdenes de trabajo, preventivo, repuestos con punto de reorden, herramientas, compras, procedimientos y biblioteca técnica. Con app de campo PWA offline.

Qué prueba

Cumplimiento contractual

Verificación del PR garantizado, de la disponibilidad de energía (meta ≥ 99 %), de la disponibilidad de trackers (≥ 98 %) y del EPI contra el P50 de PVSyst, con ventanas de exclusión.

Qué representa

Gemelo digital

Plano interactivo con puntos vivos enlazados a señales por reg_ca: cada string, tracker e inversor pinta su estado real sobre el layout de la planta.

02

Módulos de la plataforma

El diagnóstico energético que ocupa el grueso de este documento es una parte del producto. Estos son los demás bloques. La escala del backend que los sostiene: 53 módulos, 66 entidades y 52 controladores.

MóduloQué resuelveDetalle
Vista generalEstado de todo el parque en una pantalla, con acceso al análisis por plantaCondiciones meteorológicas, eficiencia, adaptadores por planta y configuración desde la misma vista
MonitorizaciónOperación en vivo por nivel de la jerarquíaUnidades de potencia, zonas, edición de strings, vista satelital, diagrama unifilar e historiales por inversor, string y tracker
TrackersSeguimiento solar con umbral de alarma propioInclinación objetivo contra real, desviación de elevación (> 2° es alarma), mapa de calor mensual y disponibilidad técnica por tracker
Gemelo digitalEl layout real de la planta con valores vivos encimaCada punto se enlaza a una señal por reg_ca y pinta su estado: normal, alerta, sin producción, sin señal o sin configurar. Coordenadas versionadas con snapshots restaurables
Señales y SCADALectura y mantenimiento del mapeo de señales11 endpoints de consulta (valores, series, grupos de inversores, planta ahora, planta hoy), escalado de señales en caliente y plantillas de columnas reutilizables
Gestión de activosInventario técnico y su hoja de vidaEquipos, componentes, categorías, ubicaciones, unidades y constantes por planta y año, con dashboard y vista de mapa
Mantenimiento (CMMS)El trabajo que se deriva de todo lo anteriorTickets, órdenes de trabajo, preventivo, repuestos con punto de reorden, herramientas con órdenes de préstamo y reposición, proveedores, compras multimoneda y seguimiento de procedimientos
Biblioteca técnicaDocumentación que el técnico necesita en sitioManuales, procedimientos, formatos y plantillas, con constructor de plantillas y campos propios
Alertas y eventosDetección sin intervención humanaRecorre los registros SCADA y crea eventos de inversor, estado y sensor, calculando tiempo de inactividad y energía perdida. Admite alta manual y asignación a responsable
Informes y tablerosSalida hacia dirección y hacia el inversionistaVisor de Excel embebido, informes personalizados, tableros Herramienta de tableros corporativos, conexión de API externa y exportación a Excel, PDF, ZIP y GeoTIFF
AdministraciónQuién entra y qué puede hacerUsuarios, roles, permisos granulares, empresas, firma digital (flujo administrativo y personal) y sembradores para dar de alta una empresa nueva
NotificacionesAviso en tiempo realWebSocket con salas por usuario además de difusión general, con página propia también en la app de campo
Asistente SentinelConsulta en lenguaje natural sobre el planoModelo claude-haiku-4-5 con los umbrales de la plataforma en su contexto; distingue suciedad, sombras, fallo de módulo, fallo de string y clipping

App de campo

Una aplicación instalable para el técnico, dentro del mismo proyecto y bajo la ruta /m. No es una vista reducida del escritorio: está construida para trabajar sin cobertura, que es la condición normal en una planta.

19 pantallas

Cobertura funcional

Órdenes de trabajo con ejecución en campo y alta, tickets, órdenes de compra, equipos, repuestos, biblioteca, cronograma preventivo, monitoreo, notificaciones, búsqueda global y panel de sincronización.

Escritura sin red

Cola offline real

Las acciones se encolan en IndexedDB y se sincronizan al recuperar señal. La cola persiste incluso las fotos adjuntas, no solo los formularios.

Concurrencia

Cerrojo entre pestañas

Un bloqueo de ámbito origen impide que dos pestañas de la misma sesión suban la cola a la vez. En navegadores antiguos degrada a un guardia por pestaña.

Reintentos

Política con causa

Distingue el fallo de red, que reintenta, del rechazo del servidor, que detiene y muestra el motivo. Antes de reenviar un alta comprueba por clave natural que no haya llegado ya.

Captura

Cámara y firma

Escaneo de QR y códigos de barras con la cámara para saltar directo a la orden o al equipo, y firma digital sobre la pantalla táctil al cerrar el trabajo.

Tablet

Lista y detalle

Desde 1024 px pasa a maestro-detalle con rail lateral. Objetivos táctiles de 44 px verificados por prueba automatizada, sobre 15 suites en total.

La aplicación está traducida a los mismos cuatro idiomas que el escritorio: español, inglés, italiano y rumano.

03

La cadena del dato

Cuatro etapas con responsabilidades separadas. El servicio que habla con el campo se limita a capturar y guardar; el frontend consulta resultados ya calculados y persistidos, sin ejecutar ninguna ecuación energética.

Etapa 1 · Campo Planta Inversores, medidor de planta, piranómetros, trackers, PPC. Cada variable es un registro direccionable. Modbus TCP · IEC-104 · API
Etapa 2 · Adquisición DRF-SOLAR Clientes por planta, captura programada cada 5 min, normalización por escala y endianness, persistencia cruda. Django · Celery · Redis
Etapa 3 · Dominio Backend SAMS Agregación, motor de KPIs, modelo físico, disponibilidad contractual, CMMS, permisos y multiempresa. NestJS · TypeORM · PostgreSQL
Etapa 4 · Consumo Aplicación Escritorio, tablet y PWA de campo con cola offline. Reportes O&M, informes de inversionista, exportación. Next.js · React · 4 idiomas

Las cuatro capas lógicas del diagnóstico

Independientemente de dónde corra el código, el diagnóstico está organizado en capas con una responsabilidad cada una. Gracias a esa separación se puede cambiar una fórmula sin tocar la ingesta, o migrar el SCADA sin rehacer los KPIs.

DatosCAPA 1
Ingesta a 5 min, normalización, validación básica y mapeo por planta / CT / inversor / MPPT / string. Fuentes: SCADA crudo, meteorología de planta, PVSyst (P50/P90), fichas técnicas y exclusiones de O&M.
ModeladoCAPA 2
Dos motores en paralelo: el modelo teórico simplificado (Ppico × POA × factor térmico) y el modelo físico tipo pvlib. Producen energía esperada, baseline por jerarquía y curvas I-V modeladas.
IndicadoresCAPA 3
15 KPIs de catálogo: energía real, POA agregada, energía teórica y modelada, PR (estándar / temperatura / bifacial), EPI, specific yield, disponibilidad por tiempo y por energía, y las tres familias de pérdidas.
DiagnósticoCAPA 4
Alarmas de rendimiento, desviaciones contra PVSyst y baseline, clasificación de pérdidas, causa probable por correlación jerárquica y auditoría de calidad de datos.
04

Gobierno de datos

Cualquier número que muestre la plataforma tiene que poder reconstruirse después: con qué señal se calculó, con qué versión de la fórmula, con qué parámetros vigentes y en qué momento. Todo lo de esta sección existe para sostener esa reconstrucción.

Quién ve qué

  • Multiempresa (multi-tenant). Aislamiento por empresa_id aplicado en la capa de servicio, con guard de tenant en cada petición. Rol de SuperAdmin con acceso cross-tenant explícito.
  • RBAC granular. Usuario → roles → permisos, más permisos directos al usuario. Validación por decorador en cada endpoint.
  • Auditoría a nivel de base de datos. Cada petición fija app.user_id en la sesión de PostgreSQL mediante set_config() con parámetro vinculado, de modo que los triggers de auditoría atribuyen cada cambio a un usuario real sin interpolar el identificador en el texto de la consulta.
  • Auditoría de acceso. Registro de inicios de sesión y de los intentos fallidos con su motivo, con IP, user-agent y duración de sesión. Consultable solo con permiso propio.
  • Tokens de terceros. Acceso de clientes externos al servicio de adquisición con expiración y modo de solo lectura.

El contrato del dato: el catálogo de señales

Antes de cualquier ecuación existe el mapeo. Cada variable de planta se declara con todo lo necesario para leerla e interpretarla sin ambigüedad:

AtributoQué define
reg_caIdentificador de la variable. En Modbus, la dirección de inicio; en IEC-104, la dirección común del objeto.
direccionInformation Object Address (IOA) en IEC-104.
read_funcFunción de lectura Modbus: HOLDING, INPUT, COIL o DISCRETE.
data_type / endianTipo del registro y orden de bytes: BIG, LITTLE, MID, MID-LITTLE.
scalerFactor de escala aplicado al valor crudo. Es el punto de fallo más frecuente — un escalador equivocado convierte 599 W/m² en 6 W/m².
min / maxRango físico admisible; base del saneamiento.
unitsUnidad declarada, usada para descubrir señales POA y de energía.

Fórmulas versionadas, no hardcodeadas

Las ecuaciones oficiales viven en base de datos como versiones inmutables, no en el código del frontend. Cada versión declara su expresión, sus variables con el origen de cada una (constante, configuración de planta, agregado o derivado), sus parámetros por defecto y su ventana de vigencia.

Anatomía de una versión de fórmulaEjemplo real
código : pr_estandar_v1 (único por código + versión) expresión : Ereal / (Ppico * IrrPOA / IrrSTC) variables : Ereal ← agregado energia_real Ppico ← config potencia_dc_kWp IrrPOA ← agregado irradiacion_poa_agregada IrrSTC ← constante 1 parámetros : umbral_irradiancia = 100 W/m² · multiplicador = 100 vigencia : effective_from … effective_to norma : IEC 61724-1
Cambiar una fórmula no edita la anterior: crea la versión siguiente. Los resultados históricos siguen apuntando a la versión con la que se calcularon.

Parámetros con vigencia

Los parámetros de planta — potencia DC instalada, coeficiente térmico β, bifacialidad, temperatura de diseño, ratio AC/DC, PR contractual — se editan desde la interfaz y se guardan versionados, con valid_from / valid_to, la fuente declarada y el documento de respaldo adjunto (ficha técnica, informe PVSyst).

Esto responde la pregunta que siempre aparece en una disputa: «¿con qué potencia instalada se calculó el PR de marzo?»

Ventanas de exclusión

Periodos que no deben imputarse al operador: mantenimiento programado, fuerza mayor, curtailment por orden de despacho. Se declaran por ámbito (planta, CT, inversor), con tipo, rango, motivo y qué KPIs afecta. El motor de disponibilidad las descuenta antes de calcular.

Corridas reproducibles

Cada cálculo se ejecuta dentro de una corrida que deja constancia de todo: rango, quién la disparó y por qué, marcas de inicio y fin, estado, y — lo importante — un snapshot de las fórmulas y de la configuración vigentes en ese instante. Los resultados cuelgan de la corrida. Recalcular no pisa el histórico: genera otra corrida.

05

Calidad del dato

Qué hace el motor cuando el dato no llega. Es la parte del diseño que más problemas evita en operación: un indicador que rellena los huecos por su cuenta acaba escondiendo justo lo que había que ver.

La regla del «sin datos»

La expresión ingenua E_prod / (E_prod + E_perdida) devuelve 100 % cuando ambos términos son cero — es decir, presenta la ausencia de datos como ausencia de problemas. En una planta real esto ocultó dos centros de transformación detenidos durante semanas mostrando «100 % disponibilidad» y «40 inversores en estado óptimo».

La semántica implementada distingue tres casos: sin intervalos evaluables → nulo («—» en pantalla, nunca un número); con sol y telemetría pero sin producción ni pérdida imputada → 0 % (la planta estaba parada); resto → fórmula contractual. El nulo se propaga hasta la interfaz sin convertirse en cero por el camino.

Otros controles activos

  • Umbral de irradiancia. Solo se evalúan intervalos con POA por encima del umbral: 100 W/m² para KPIs según IEC 61724-1, y 20 W/m² para el conteo contractual de disponibilidad. Fuera de esas horas no se imputa nada.
  • Estado de calidad por resultado. Cada valor persistido lleva su propio quality_status, así que un dashboard puede excluir lo dudoso sin borrarlo.
  • Monitor de cobertura SCADA. Alerta cuando los inversores sin señal activa superan el 2 % de la capacidad DC instalada, e informa el factor de corrección. La nota que aparece en el dashboard dice explícitamente si la desviación viene de capacidad invisible o de degradación real — el factor operativo nunca se maquilla en silencio.
  • Estabilidad del factor. Segunda alerta independiente cuando el factor implícito E_real / E_teórica se desvía más de 5 puntos porcentuales del nominal durante dos semanas consecutivas: síntoma de degradación real o de recalibración pendiente.
  • Detección de huecos. Monitor de cobertura con detalle de los intervalos faltantes por planta y periodo.
  • Topes físicos. Cap por capacidad instalada para que un salto de contador (un reset del medidor que reporta 65.505 kWh en un día) no infle el mes.
06

Modelo de datos del diagnóstico

Siete tablas sostienen todo el dominio. Están separadas en cuatro roles — definición, configuración, ejecución y resultado — y de esa separación depende que el sistema se pueda auditar.

EntidadRolClaves
Definiciones de KPICatálogo: qué indicadores existen, su categoría, ámbito y unidadkey · category · scope_type
Versiones de fórmulaCómo se calcula cada KPI, con vigencia y variables tipadascode + version · is_default
Configuración de plantaParámetros versionados con vigencia y respaldo documentalplanta + config_key + version
Ventanas de exclusiónPeriodos no imputables, por ámbito y tiposcope · start_at · end_at
Corridas de cálculoEjecución con snapshot de fórmulas y configuraciónstatus · formula_snapshot
ResultadosValor por KPI, ámbito y bucket temporal, con estado de calidadkpi_key · bucket · quality
Curvas I-VTrazas medidas y modeladas, con curva de referencia marcabletrace · modeled · summary

Los resultados se guardan precalculados por bucket temporal (5 min, día, mes) y por ámbito (planta, CT, inversor, MPPT, string). Las pantallas solo consultan esa tabla, por eso se puede abrir un año de histórico sin recorrer millones de registros crudos.

07

El motor matemático

Tres insumos —energía real, irradiación y energía teórica— de los que salen PR, EPI y specific yield. El resto de la sección afina esos denominadores para casos concretos: temperatura, bifacialidad, clipping y condiciones meteorológicas reales.

Los insumos

Energía realkWh
E_real = energía medida y validada en el medidor de planta o en el SCADA
Se toma el acumulador de energía del día. Cuando el acumulador no resetea a medianoche, se sustituye por la integral de la potencia AC — un caso real detectado en plantas con inversor centralizado.
Irradiación POA agregadakWh/m²
Irr_POA = agregación validada de los piranómetros en plano de array
Promedio o agregación ponderada con validación de sensores. Si no hay piranómetro fiable, entra el modelo físico (§08) y el resultado queda marcado como modelado, no medido.

Energía teórica — tres niveles, a propósito

Un solo número «energía esperada» invita a la discusión. La plataforma calcula tres y declara cuál es la referencia activa de cada KPI.

1 · Energía teórica físicaBenchmark técnico
E_teo_física = P_dc · Irr_POA · [1 + β · (T_cell − T_cell_diseño)]
Sin castigos operativos ni contractuales. β es el coeficiente térmico de potencia del módulo (típico −0,30 %/°C). Es la referencia para auditorías internas y para el waterfall de pérdidas.
2 · Energía teórica limitadaReferencia operativa
E_teo_limitada = E_teo_física · r_AC/DC
El ratio AC/DC (p. ej. 0,916) absorbe lo que el modelo físico puro ignora: eficiencia del inversor (~97 %), cableado DC (1,5 %) y AC (1 %), transformador (1,5 %), auxiliares (0,5 %), soiling (3 %) y mismatch (1,5 %). Se obtiene del diseño PVSyst o del ratio real medido, y se recalibra cuando el sesgo supera ±5 pp durante dos semanas.
3 · Energía teórica contractualGarantías
E_teo_contractual = E_teo_limitada · PR_contractual
Solo para informes de cumplimiento y análisis de penalizaciones. Nunca se usa como referencia del dashboard operativo.

Performance Ratio

Tres variantes del mismo indicador, según qué efecto se quiera aislar.

PR estándarIEC 61724-1Activa
PR = E_real / (P_dc · Irr_POA / Irr_STC) × 100 %
Con Irr_STC = 1 kWh/m² (= 1000 W/m² durante 1 h). Sin ninguna corrección: es la medida cruda de cuánto rinde la planta frente a su placa. También se evalúa en forma instantánea cada 5 minutos: PR = P_real / (P_nom_DC · G_POA / 1000).
PR corregido por temperaturaNREL
PR_T = E_real / [(P_dc · Irr_POA / Irr_STC) · (1 − β · (T_cell − T_cell_diseño))] × 100 %
Neutraliza el efecto del calor. Es el PR que permite comparar julio contra enero, o una planta en costa contra una en altura, sin que el clima explique la diferencia.
PR bifacialRequiere medición rear
PR_bif = E_real / [P_dc · (Irr_POA + φ · Irr_rear) / Irr_STC] × 100 %
φ es el índice de bifacialidad del módulo (p. ej. 0,80 ± 0,05 de ficha técnica). Sin este término, una planta bifacial parece rendir por encima de lo posible.

EPI — Energy Performance Index

El PR compara la producción contra la capacidad de placa; el EPI la compara contra la energía que se esperaba. Como hay varias referencias posibles de energía esperada, hay un EPI por cada una.

VarianteFórmulaPara qué sirve
EPI físicoE_real / E_teo_físicaBenchmark técnico puro. Su distancia al EPI operativo son las pérdidas de BOS.
EPI operativoE_real / E_teo_limitadaKPI principal del dashboard: descuenta las pérdidas estructurales conocidas.
EPI contractualE_real / E_teo_contractualCumplimiento del mínimo garantizado.
EPI vs P50E_real / E_P50_PVSystDesempeño frente al caso de negocio simulado.

La corrección meteorológica del P50

Comparar la producción real contra un P50 simulado con un año meteorológico típico es injusto en ambos sentidos: un año nublado penaliza a un operador impecable. La energía esperada se corrige por las condiciones reales medidas:

Energía esperada corregidaContractual
E_Expected = E_sim · (GTI_real / GTI_sim) · [1 − Kp · (T_real − T_sim)]
De ahí se derivan tres lecturas separadas — y esta separación es la que suele cerrar discusiones:
EPI técnico = E_real / E_Expected × 100 % → ¿operó bien la planta? EPI financiero = E_real / E_sim × 100 % → ¿se cumplió el caso de negocio? Factor clima = E_Expected / E_sim × 100 % → ¿cuánto de la diferencia es el clima?
Specific YieldkWh/kWpActiva
SY = E_real / P_dc
Producción normalizada por capacidad instalada. Es la única métrica que permite comparar directamente una planta de 10 MWp con una de 800 kWp, y la base del mapa de calor mensual por inversor.
08

Disponibilidad

El indicador que se factura y el que se termina discutiendo en una revisión contractual. La plataforma calcula dos, y conviene no mezclarlas: una mide tiempo de servicio y la otra energía dejada de producir.

Disponibilidad por tiempoPonderada por DC
AVA_planta = Σ (AVA_inversor_i · peso_DC_i) × 100 %
Cada inversor pesa según la potencia DC que tiene conectada, no según su número. Solo se consideran intervalos con irradiancia sobre el umbral. Un inversor de 500 kWp caído no cuenta igual que uno de 150 kWp.
Disponibilidad de energíaContractual · meta ≥ 99 %
Disp = E_producida / (E_producida + E_perdida) × 100 %
La métrica contractual. No pregunta cuánto tiempo estuvo encendido el equipo, sino cuánta energía se dejó de producir por causas imputables. Su dificultad está enteramente en calcular E_perdida de forma defendible.

El cálculo contractual, paso a paso

Once pasos sobre intervalos de 5 minutos. El objetivo es responder, para cada inversor y cada instante: ¿cuánto habría producido si hubiera estado sano?

  1. Lectura. Pac por inversor y Psys del medidor de planta, cada 5 min.
  2. Reparto proporcional. P_inv_eff = (AC_inv / Σ AC_inv) × P_sys — reconcilia el sumatorio de inversores con la medida real de planta.
  3. Normalizador. n_inv = potencia AC de placa si hay clipping; potencia DC conectada si no.
  4. Normalización. Cada inversor se lleva a una escala común para poder compararlos entre sí.
  5. Potencia de referencia. P_ref = promedio de los inversores entre el percentil 40 y el 90, excluyendo los apagados. Ese recorte descarta los extremos por ambos lados, de modo que ni un inversor especialmente bueno ni uno averiado mueven la referencia del resto.
  6. Detección de apagado. Inversor OFF cuando P_ac = 0 con G_POA por encima del umbral. Con irradiancia suficiente, una producción nula solo se explica por una avería o una parada.
  7. Detección de rendimiento parcial. PP cuando el inversor rinde ≤ 80 % de P_ref durante ≥ 30 minutos consecutivos (6 registros). La condición de duración evita imputar nubes de paso.
  8. Desnormalización. P_ref se devuelve a la escala del inversor evaluado.
  9. Energía perdida por apagado. E_off = Σ P_inv_d × (5/60).
  10. Energía perdida por rendimiento parcial. E_pp = Σ (P_inv_d − P_inv_eff) × (5/60) — solo el déficit, no la producción entera.
  11. Disponibilidad. Fórmula contractual sobre los totales, descontando las ventanas de exclusión.

Clasificación de estado

EstadoUmbralLectura
Óptima≥ 99,5 %Dentro de la meta contractual con margen.
Parcial95 – 99,5 %Por debajo del objetivo; requiere explicación documentada.
Crítica< 95 %Incumplimiento; dispara análisis de causa raíz.
Sin datosEstado terminal: no se clasifica ni se promedia. No es un cero ni un cien.

Existe además la disponibilidad de trackers (meta contractual ≥ 98 %): [T_func − (T_inactivo + T_exclusiones)] / T_func × 100 %, donde un tracker cuenta como no disponible si tiene alarma activa o bandera contractual.

09

Pérdidas y modelo físico

Un déficit de 40 MWh en el mes es un dato incompleto mientras no se sepa que 22 vienen de curtailment, 11 de indisponibilidad y 7 de temperatura. Solo con la descomposición se decide dónde intervenir y qué es imputable a quién.

Imputable

Indisponibilidad

Suma de E_off + E_pp del cálculo contractual, por inversor. Es la única familia de pérdidas que penaliza al operador.

No imputable

Curtailment

Limitación por orden de despacho o restricción de red. Se modela vía el setpoint del PPC y se declara como ventana de exclusión.

Ambiental

Térmicas

|E_real · β · (T_cell − 25)| cuando la celda opera por encima de STC. Es la que explica la caída de rendimiento de los meses cálidos.

Operativa

Soiling

Vía soiling ratio o pareja de sensores limpio/sucio. Es la pérdida que justifica económicamente una campaña de lavado.

Clipping y el «EPI justo»

Una planta con ratio DC/AC alto recorta potencia por diseño en las horas de mayor irradiancia. Si el modelo teórico ignora ese recorte, sobreestima la producción posible y el EPI parece bajo cuando la planta opera de forma impecable.

Modelo de clipping en dos límitesPVWatts v5 · IEC 61724-1
1 · Clipping de inversor : P_ac ≤ P_ac_nominal (tope físico del equipo) 2 · Clipping de planta : Σ P_ac ≤ P_PPC_setpoint (límite de inyección a red) E_teo_limitada = ∫ min(P_dc · η, P_ac_nom, P_PPC) dt
El resultado incluye el EPI justo — corregido para no penalizar energía que la planta físicamente no podía exportar — más el ratio de clipping y la energía recortada, desglosada por hora y por inversor.

Modelo físico: energía esperada sin piranómetro fiable

Cuando el sensor de irradiancia falta, está descalibrado o la planta nunca lo tuvo, el motor reconstruye la irradiancia en plano y la energía esperada desde primeros principios. La cadena está implementada con las referencias académicas explícitas en el código:

EtapaMétodoReferencia
Posición solarSerie de Fourier de Spencer — precisión ±0,5°Spencer (1971)
Geometría de trackerEje simple con backtrackingDuffie & Beckman (2013)
GHI → POACorrelación difusa de Erbs + cielo difuso de Perez, con coeficientes F1 circumsolar y F2 de brillo de horizonte por bin de claridadPerez et al. (1990)
Temperatura de celdaSAPM simplificadoKing et al. (2004)
Potencia DCPVWatts v5Dobos (2014), NREL
El modelo no sustituye la medición

Cuando el piranómetro es válido, manda el piranómetro. El modelo entra como respaldo y como validación cruzada: el motor reporta el RMSE de POA por intervalo y el RMSE de energía teórica diaria, junto con el recuento de intervalos que usaron sensor real frente a los que usaron modelo. La trazabilidad de la fuente viaja con el resultado.

Curvas I-V

El diagnóstico de nivel más fino. Se persisten trazas medidas y modeladas, con una curva marcable como referencia y comparación automática contra ella.

Modelo de un diodoDe Soto (2006)
I = I_ph − I_0 · {exp[(V + I·Rs) / (n·Ns·Vt)] − 1} − (V + I·Rs) / Rsh
Resuelto por Newton-Raphson. La forma de la desviación respecto a la referencia distingue tres fallos que un KPI agregado nunca separa: degradación de módulos, sombreado parcial y diodos de bypass en fallo.
10

Diagnóstico y causa raíz

La capa que convierte indicadores en hipótesis de trabajo. Un rendimiento bajo a nivel de planta da poca información por sí solo; localizarlo en tres strings colgados del mismo tracker ya es un parte de trabajo. De eso se ocupa esta capa: correlacionar niveles.

Correlación jerárquica automática

Cuando se detecta un inversor apagado o en rendimiento parcial, el analizador baja automáticamente a sus strings y a sus trackers y ejecuta un árbol de decisión para proponer la causa. Trabaja correlacionando los tres niveles, no disparando una alarma por umbral.

Señal de diagnósticoCriterioQué sugiere
Residual normalizado> −5 % / −5 a −10 / −10 a −20 / < −20 %Normal · leve · moderada · crítica
Dispersión entre stringsCV < 3 % normal · > 10 % críticoMismatch, string desconectado, sombra local
Confirmación cruzada trackerflag angular AND ratio_I < 0,90Confirma que el desfase del tracker causa la pérdida
Score compuesto de string0,40·PI + 0,30·ΔI + 0,15·CV + 0,15·tendencia> 0,85 normal · 0,70–0,85 leve · 0,50–0,70 moderada · < 0,50 crítica
Desviación de elevación> 2°Tracker desalineado — alarma con impacto cuantificable

Vigilancia continua

Además de las corridas, hay un monitor externo que cada 10 minutos comprueba, cuando hay sol (POA ≥ 150 W/m²), la potencia máxima de los últimos 30 minutos por centro de transformación. Si cae por debajo del umbral, marca el CT como caído y avisa por mensajería, con anti-spam de estado: un aviso al caer y otro al recuperarse.

Desde agosto de 2026 avisa también cuando no llega telemetría en absoluto. Antes, un corte de ingesta dejaba al monitor en silencio, que es indistinguible de una planta sana: el mismo problema que resuelve la regla de «sin datos» de la sección 05, aplicado a la vigilancia externa.

Nació de un incidente real: un CT dejó de generar y el PR de planta se desplomó a ~40 % sin que nadie lo notara durante días.

Asistente de diagnóstico

Un asistente conversacional integrado en el plano interactivo, con los umbrales de diagnóstico de la plataforma codificados en su contexto: ratio PDC real/teórica por encima de 89 % óptimo, entre 71 y 89 % alerta media, por debajo de 70 % falla crítica; γ = −0,35 %/°C; irradiancia mínima de evaluación 50 W/m². Sabe distinguir suciedad, sombras, fallo de módulo, fallo de string y clipping.

11

Catálogo de ecuaciones

El catálogo completo es navegable dentro del producto: cada ecuación con su expresión, sus variables, su unidad, la norma que la respalda y su estado. Cinco capítulos siguiendo la jerarquía física del activo.

Cap.ÁmbitoContenido
1String DC · Inversor AC · PlantaPotencia DC teórica (PVWatts), residual absoluto y normalizado, corriente teórica, coeficiente de variación entre strings, potencia AC teórica, potencia de planta con pérdidas de BOS, PR instantáneo
2TrackersÁngulo teórico, factor de pérdida por desalineación, confirmación cruzada de anomalía, impacto económico
3Curva I-VModelo de un diodo con solver Newton-Raphson
4SPD — diagnóstico avanzadoDisponibilidad de energía contractual, potencia de referencia P40-P90, detección de rendimiento parcial, performance index y score de string, disponibilidad técnica de trackers
5CMMSMTBF, MTTR, disponibilidad técnica, revenue at risk, ratio correctivo/preventivo

Las ecuaciones del capítulo 5 cierran el círculo entre las dos mitades de la plataforma: A = MTBF / (MTBF + MTTR) mide la fiabilidad del equipo desde las órdenes de trabajo, mientras el cálculo contractual mide la disponibilidad desde la telemetría. Que las dos no cuadren suele señalar fallas que nadie llegó a registrar, o partes cerrados sin intervención real.

12

Ejecución y entregables

Qué corre solo

ProcesoFrecuenciaQué hace
Captura SCADAcada 5 minLectura de todas las señales activas por planta, con reintentos.
Agregacióncada 5 minConsolidación de intervalos y KPIs instantáneos.
Irradiancia externacada 10 minRespaldo meteorológico para plantas sin sensor fiable.
Monitor de CTcada 10 minDetección de centro de transformación caído, con aviso.
KPIs diarios02:30Corrida completa del día anterior.
Cierre mensualdía 1, 03:00Consolidación del mes y comparativa contra P50.
Corridas programadasconfigurableEjecución y envío automático del informe por correo.

Qué se entrega

  • Reporte O&M paginado, listo para imprimir: descripción, resumen ejecutivo, operación periódica, unidades de potencia, recurso meteorológico, desviaciones y dashboard analítico.
  • Informe de inversionistas con exportación a PDF generada en servidor.
  • Datos por intervalo (5 min) exportables para auditoría de terceros.
  • Comparador de métodos de cálculo: el mismo periodo evaluado con distintas referencias, para sustentar una posición en una reunión contractual.
  • Exportación a Excel, PDF, ZIP y GeoTIFF; integración con Herramienta de tableros corporativos.
13

Integraciones y entornos

Con qué sistemas habla la plataforma, y cómo se sostiene una demostración cuando la planta de referencia está incomunicada.

SistemaVíaPara qué
SCADA de plantaModbus TCPLectura directa de registros del inversor, medidor y meteo
SCADA de plantaIEC 60870-5-104Protocolo de telecontrol eléctrico, con dirección de objeto de información
Proveedor de monitorización externoAPI + backfillPlantas que no exponen SCADA propio, con relleno histórico por rango
API meteorológica públicaAPI cada 10 minIrradiancia de respaldo cuando el piranómetro no es fiable
Operador del mercado eléctricoAPI de mercadoPrecios para valorar la energía perdida y el ingreso en riesgo
Herramienta de tableros corporativosTableros embebidosReportes de dirección en la herramienta de dirección
Plataforma de termografíaEnlace desde ticketInformes de termografía asociados a la incidencia
Servicio de correo transaccionalCorreo salienteEnvío automático del informe de las corridas programadas
Almacenamiento de objetosStorageAdjuntos de parámetros, curvas y documentación
Canal de mensajeríaTarea programada periódicaAviso de centro de transformación caído o sin telemetría

Entorno de demostración

Una demostración comercial no puede depender de que la planta de referencia esté comunicando. En agosto de 2026 la planta piloto estuvo ocho días sin comunicación y con un centro de transformación sin generar: quien abría la demostración veía pantallas vacías.

Para eso existe un generador de telemetría simulada que alimenta el entorno de demostración con datos coherentes. No inventa curvas bonitas: reproduce la misma cadena física que usa el motor de cálculo real.

Cadena del generadorMisma física que el motor
posición solar → GHI cielo claro → POA → T_célula → P_dc → P_ac → E_int T_cell = T_amb + (NMOT − 20)/800 · POA (NOCT/SAPM simplificado) P_dc = (POA/1000) · P_stc · [1 + β·(T_cell − 25)] (PVWatts) P_ac = min(P_dc · r_AC/DC, P_ac_nominal) (con recorte)
Los KPIs de la demostración salen coherentes por construcción: se calculan con el mismo motor que en producción, sobre datos generados con el mismo modelo.
Aislamiento de la base de datos

El generador escribe exclusivamente en una base creada para la demostración, y se niega a arrancar si la conexión no apunta a ella. No toca la base de producción ni la que producción comparte. Volver a datos reales no requiere deshacer nada: basta con reapuntar la conexión, y lo simulado queda aparte y se puede borrar sin efecto sobre el resto.

14

Alcance de la plataforma

Resumen de las capacidades que cubre el sistema, de la adquisición en campo al entregable que recibe el cliente.

CapacidadQué cubre
Adquisición 5 minModbus TCP e IEC-104 por planta, con gestión de clientes en caliente.
Catálogo de KPIs y fórmulas versionadas15 KPIs y 8 fórmulas por defecto, sembradas automáticamente.
Parámetros con vigencia y adjuntosCRUD completo, duplicado de configuraciones y limpieza de archivos.
PR · EPI · SY · disponibilidadMotor de agregación por planta, CT e inversor.
Disponibilidad contractual · clipping · modelo físicoServicios dedicados con endpoints propios y persistencia de corridas.
Semántica «sin datos» y monitor de coberturaCon pruebas automatizadas.
Motor de corridas del módulo de diagnósticoPersistencia diaria de energía real y specific yield, con el catálogo de KPIs servido desde el motor de agregación.
Curvas I-V y trackersCRUD, comparación y explorador visual sobre los datos de campo de cada planta.
KPIs de mantenimiento (MTBF, MTTR)Definidos en el catálogo de ecuaciones, sobre el histórico de órdenes de trabajo.
App de campo (PWA)19 pantallas, cola offline con adjuntos, cerrojo entre pestañas y 15 suites de prueba.
Entorno de demostraciónGenerador de telemetría con la misma cadena física del motor, aislado en su propia base.

Lo que hace falta del lado del cliente

Los tres bloqueos recurrentes para poner una planta nueva al día no son de software:

  • Confirmación del mapeo SCADA real por planta — señal por señal, con escala y unidad verificadas.
  • Dataset PVSyst (P50/P90 mensual con GTI y temperatura simulada) para poder calcular EPI técnico y factor climático.
  • Fichas técnicas de módulo e inversor, y las reglas contractuales de la planta: PR garantizado, meta de disponibilidad, tratamiento del curtailment.