- Visión general de Jelina
- EMS Builder
- Ejemplos de configuración
Ejemplo: aumento temporal de capacidad en una zona de transformación
Este ejemplo muestra que Edge-EMS Builder no incorpora por sí mismo la lógica de negocio de aumento de capacidad. La estrategia se construye combinando adquisición, expresiones de agregación y esquemas de disparadores. El mismo enfoque permite configurar escenarios de supervisión de umbrales, cálculo de margen y ejecución de acciones.
1. Contexto de negocio
Sección titulada «1. Contexto de negocio»La capacidad de una zona de distribución alimentada por un transformador es fija, por ejemplo 315 kVA o 400 kVA. Cuando coinciden cargas elevadas de corta duración, como varios vehículos en recarga rápida o picos estacionales, la carga medida puede acercarse o superar la potencia nominal del transformador. La solución tradicional consiste en solicitar a la distribuidora una ampliación del transformador, con plazos y costes elevados, aunque a menudo solo se necesite cubrir picos breves.
El aumento temporal de capacidad consiste en instalar almacenamiento en la zona y utilizar Edge-EMS Builder para supervisar la carga en tiempo real. Antes de alcanzar el límite del transformador, ordena descargar el almacenamiento para cubrir parte del déficit y mantener la potencia total tomada de la red dentro de un umbral seguro. Al disminuir la carga, sale automáticamente del modo de apoyo y vuelve a la operación habitual, como la carga en horas valle. El efecto de ampliación temporal se consigue mediante estrategias de software y almacenamiento, sin modificar el transformador.
2. Equipos y datos involucrados
Sección titulada «2. Equipos y datos involucrados»| Función | Equipo | Puntos principales |
|---|---|---|
| Contador general de la zona | Contador inteligente en la salida del transformador | Potencia total tomada de la red Feeder_active_power (kW) |
| Sistema de almacenamiento | PCS + BMS | Potencia actual PCS1_active_power (kW; positiva al descargar), SOC PCS1_soc (%) y límite de descarga PCS1_max_discharge_power (kW) |
| Parámetros de estrategia | Puntos personalizados/agregados | Capacidad nominal del transformador Transformer_rated_capacity (kW), proporción del umbral de activación y SOC mínimo de protección |
Estos puntos corresponden a datos originales del modelo de datos, como medidas del contador y PCS/BMS, y a datos por franjas horarias o personalizados para los umbrales, que el operador puede ajustar por temporada sin modificar scripts.
3. Agregación: margen de capacidad y necesidad de apoyo
Sección titulada «3. Agregación: margen de capacidad y necesidad de apoyo»Crea el punto agregado Feeder_headroom_kw, margen restante de la zona, con esta expresión:
-- Capacidad restante = capacidad nominal × proporción de activación - potencia tomada de la red medidalocal rated = tonumber(${Transformer_rated_capacity} or 0)local ratio = tonumber(${Capacity_trigger_ratio} or 0.9) -- Umbral predeterminado: 90% de la capacidad nominallocal used = tonumber(${Feeder_active_power} or 0)
return rated * ratio - usedUn valor negativo de Feeder_headroom_kw indica que la carga se ha acercado o ha superado el umbral y que el almacenamiento debe contribuir a alimentarla.
4. Disparadores: descarga automática al acercarse al umbral
Sección titulada «4. Disparadores: descarga automática al acercarse al umbral»Condición de disparo, por cambio de datos DATA_CHANGE:
return tonumber(${Feeder_headroom_kw} or 0) < 0Acción del disparador:
local resultList = {}
local headroom = tonumber(${Feeder_headroom_kw} or 0) -- Valor negativo que representa el déficit de potencialocal soc = tonumber(${PCS1_soc} or 0)local maxDischarge = tonumber(${PCS1_max_discharge_power} or 0)
-- Protección de SOC: por debajo del mínimo, solo emitir alarma sin apoyo de capacidad para evitar sobredescargaif soc < tonumber(${SOC_protect_min} or 20) then table.insert(resultList, buildCommonAlarmMap( "增容能力不足", "台区负荷超限但储能SOC过低(" .. soc .. "%),无法执行临时增容,请人工介入" )) return resultListend
-- Potencia de compensación = déficit absoluto, limitado por la descarga máxima del almacenamientolocal needPower = math.min(-headroom, maxDischarge)
table.insert(resultList, buildCommonWriteMap("Collection", "PCS1_power_setpoint", needPower, nil, nil, true))table.insert(resultList, buildCommonAlarmMap("台区临时增容已启动", "台区负荷超限,储能按 " .. needPower .. " kW 放电分担负荷"))table.insert(resultList, buildMqttAlarmMap("台区临时增容已启动", "储能放电分担台区负荷", 1, "alarm/upload", 1))
return resultList5. Condición de salida: histéresis para evitar arranques y paradas frecuentes
Sección titulada «5. Condición de salida: histéresis para evitar arranques y paradas frecuentes»Si se sale del modo simplemente cuando el margen es mayor o igual que cero, las fluctuaciones cerca del umbral pueden provocar arranques y paradas repetidos, u oscilación. Introduce una banda de histéresis: utiliza umbrales distintos para entrar y salir.
Crea Feeder_headroom_exit_kw, margen para decidir la salida, con una proporción de umbral más holgada, por ejemplo 0.8 en lugar de 0.9:
local rated = tonumber(${Transformer_rated_capacity} or 0)local exitRatio = tonumber(${Capacity_exit_ratio} or 0.8)local used = tonumber(${Feeder_active_power} or 0)
return rated * exitRatio - usedAñade otro esquema cuya condición sea ${Feeder_headroom_exit_kw} >= 0 y ${PCS1_power_setpoint} > 0, indicando que el apoyo está activo. La acción reduce gradualmente PCS1_power_setpoint a cero, sale del modo de aumento de capacidad y vuelve a la estrategia habitual, por ejemplo carga en horas valle.
6. Combinación con otras capacidades
Sección titulada «6. Combinación con otras capacidades»- Coordinación de varios sistemas de almacenamiento: si existen varios, utiliza coordinación entre dispositivos para agregar sus capacidades disponibles. En la acción, reparte la descarga según SOC o potencia nominal, siguiendo un enfoque similar al reparto del ejemplo de equilibrado de cargas de recarga.
- Visualización y despacho desde la nube: mediante coordinación entre nube y borde, envía periódicamente
Feeder_headroom_kw, el estado de activación y la potencia del almacenamiento. Los operadores pueden supervisar varias zonas y la nube puede ajustar dinámicamente umbrales y otros parámetros. - Reutilización a escala: si muchos proyectos comparten la misma estructura, modelos PCS/BMS y estrategia básica, utiliza expansión dinámica de unidades para definir los puntos agregados como plantillas y generar la configuración automáticamente al incorporar una nueva zona.
7. Resumen
Sección titulada «7. Resumen»Todas las capacidades del ejemplo —adquisición, cálculo de margen mediante agregación, condiciones de datos, órdenes de escritura, alarmas y MQTT— son componentes genéricos de Edge-EMS Builder. La lógica específica de aumento temporal de capacidad se obtiene mediante configuración. Sustituyendo contadores y PCS por otros equipos y los umbrales por otras reglas, el mismo enfoque se reutiliza para reducción de picos y aprovechamiento de valles, control de demanda, complementariedad entre fuentes energéticas y otros procesos de supervisión, decisión y ejecución.
El diagrama representa el flujo de datos y control según la lógica de esta página. Consulta los campos concretos en las configuraciones y scripts del texto.
⚠️ Las proporciones de umbral, el SOC mínimo y los demás parámetros son ejemplos. En proyectos reales deben ajustarse a la capacidad nominal del transformador, la capacidad disponible del almacenamiento y los requisitos locales de despacho, entre otros factores.