Ir al contenido
JelinaJelina DocumentationDocumentación técnica
Volver al sitio oficial

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.

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.

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 medida
local rated = tonumber(${Transformer_rated_capacity} or 0)
local ratio = tonumber(${Capacity_trigger_ratio} or 0.9) -- Umbral predeterminado: 90% de la capacidad nominal
local used = tonumber(${Feeder_active_power} or 0)
return rated * ratio - used

Un 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) < 0

Acción del disparador:

local resultList = {}
local headroom = tonumber(${Feeder_headroom_kw} or 0) -- Valor negativo que representa el déficit de potencia
local 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 sobredescarga
if soc < tonumber(${SOC_protect_min} or 20) then
table.insert(resultList, buildCommonAlarmMap(
"增容能力不足", "台区负荷超限但储能SOC过低(" .. soc .. "%),无法执行临时增容,请人工介入"
))
return resultList
end
-- Potencia de compensación = déficit absoluto, limitado por la descarga máxima del almacenamiento
local 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 resultList

5. 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 - used

Añ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.

  • 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.

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.

Condiciones de entrada, control del almacenamiento y salida con histéresis del aumento temporal de capacidad

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.