- Visão geral do Jelina
- EMS Builder
- Exemplos de configuração
Exemplo: ampliação temporária de capacidade na área de um transformador de distribuição
Este exemplo demonstra que o Edge-EMS Builder não contém, por si só, uma lógica de negócio de “ampliação de capacidade”. A estratégia é construída pela combinação de três recursos básicos: aquisição, expressões de agregação e perfis de acionamento. Compreendendo este exemplo, você poderá aplicar o mesmo raciocínio a cenários de “Monitorar limite → Calcular margem → Executar ação”.
I. Contexto do negócio
Seção intitulada “I. Contexto do negócio”A capacidade de uma área de distribuição — a região alimentada por um transformador de distribuição — é fixa, como 315kVA ou 400kVA. Quando há concentração temporária de cargas, como vários veículos em carga rápida simultânea ou picos sazonais de consumo, a carga medida pode se aproximar ou até exceder a capacidade nominal do transformador. A abordagem tradicional é solicitar à concessionária uma ampliação da capacidade do transformador, processo demorado e caro, muitas vezes necessário apenas para picos curtos.
A ampliação temporária de capacidade da área de distribuição consiste em instalar um sistema de armazenamento de energia no local. O Edge-EMS Builder monitora a carga em tempo real e, antes que ela se aproxime do limite do transformador, comanda automaticamente a descarga do armazenamento. A potência fornecida pelo armazenamento cobre parte do déficit de alimentação, mantendo a potência total importada da rede dentro de um limite seguro. Quando a carga cai, o modo de ampliação é encerrado automaticamente e o armazenamento retorna ao despacho normal, como carga em horários de baixa demanda. O processo dispensa alterações no transformador e produz um efeito de ampliação “temporária” apenas com estratégias de software e equipamentos de armazenamento.
II. Dispositivos e dados envolvidos
Seção intitulada “II. Dispositivos e dados envolvidos”| Função | Dispositivo | Pontos principais |
|---|---|---|
| Medidor geral da área de distribuição | Medidor inteligente na saída do transformador | Potência total importada da rede Feeder_active_power (kW) |
| Sistema de armazenamento de energia | PCS + BMS | Potência atual PCS1_active_power (kW, positiva na descarga), SOC PCS1_soc (%) e limite de descarga disponível PCS1_max_discharge_power (kW) |
| Parâmetros da estratégia | Pontos personalizados/agregados | Capacidade nominal do transformador Transformer_rated_capacity (kW), proporção do limite de acionamento da ampliação e limite inferior de proteção do SOC |
Esses pontos vêm, respectivamente, dos dados originais do modelo de dados — medições de medidor, PCS e BMS — e dos dados por faixa de horário/personalizados, usados para parâmetros de limite que a equipe de operação pode ajustar sazonalmente sem alterar scripts.
III. Cálculo agregado: capacidade restante e necessidade de ampliação
Seção intitulada “III. Cálculo agregado: capacidade restante e necessidade de ampliação”Crie o ponto agregado Feeder_headroom_kw (capacidade restante da área de distribuição), com a expressão:
-- Capacidade restante = capacidade nominal × proporção do limite de acionamento - potência medida importada da redelocal rated = tonumber(${Transformer_rated_capacity} or 0)local ratio = tonumber(${Capacity_trigger_ratio} or 0.9) -- Por padrão, usa 90% da capacidade nominal como limite de acionamentolocal used = tonumber(${Feeder_active_power} or 0)
return rated * ratio - usedQuando Feeder_headroom_kw é negativo, a carga se aproximou ou ultrapassou o limite de acionamento, exigindo que o armazenamento assuma parte da carga.
IV. Perfil de acionamento: descarga automática ao se aproximar do limite
Seção intitulada “IV. Perfil de acionamento: descarga automática ao se aproximar do limite”Condição de acionamento (por alteração de dados, DATA_CHANGE):
return tonumber(${Feeder_headroom_kw} or 0) < 0Ação de gatilho:
local resultList = {}
local headroom = tonumber(${Feeder_headroom_kw} or 0) -- Valor negativo que representa o déficit de potêncialocal soc = tonumber(${PCS1_soc} or 0)local maxDischarge = tonumber(${PCS1_max_discharge_power} or 0)
-- Proteção de SOC: abaixo do limite inferior, não participa da ampliação; apenas emite alarme para evitar descarga excessivaif soc < tonumber(${SOC_protect_min} or 20) then table.insert(resultList, buildCommonAlarmMap( "增容能力不足", "台区负荷超限但储能SOC过低(" .. soc .. "%),无法执行临时增容,请人工介入" )) return resultListend
-- Potência a compensar = valor absoluto do déficit, limitada à potência máxima de descarga do armazenamentolocal 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 resultListV. Condição de saída: histerese para evitar partidas e paradas frequentes
Seção intitulada “V. Condição de saída: histerese para evitar partidas e paradas frequentes”Usar diretamente “capacidade restante ≥ 0” como condição de saída pode fazer o armazenamento ligar e desligar repetidamente quando a carga oscila perto do limite. A solução é introduzir uma faixa de histerese (Hysteresis): o limite de entrada no modo de ampliação e o limite de saída são diferentes.
Crie o ponto agregado Feeder_headroom_exit_kw (margem para decisão de saída, com uma proporção de limite mais conservadora, como 0.8 em vez 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 - usedDepois, crie outro perfil de acionamento com as condições ${Feeder_headroom_exit_kw} >= 0 e ${PCS1_power_setpoint} > 0 (modo de ampliação atualmente ativo). A ação deve reduzir gradualmente PCS1_power_setpoint a zero, sair do modo de ampliação e retornar à estratégia normal de despacho, como carga em horários de baixa demanda.
VI. Combinação com outros recursos
Seção intitulada “VI. Combinação com outros recursos”- Colaboração entre vários sistemas de armazenamento: se houver vários sistemas na área de distribuição, use a colaboração entre dispositivos para consolidar suas capacidades disponíveis em um ponto agregado. Na ação de gatilho, distribua a descarga conforme o SOC ou a proporção da potência nominal, seguindo o mesmo princípio do algoritmo de divisão do exemplo de balanceamento de carga de carregadores.
- Visualização e despacho pela nuvem: por meio da colaboração entre nuvem e borda, informe periodicamente à plataforma de nuvem dados como
Feeder_headroom_kw, estado de ativação da ampliação e potência do armazenamento, permitindo à equipe monitorar remotamente várias áreas de distribuição. A nuvem também pode enviar parâmetros, como limites de acionamento, para ajustar dinamicamente a estratégia. - Reutilização em escala: se um conjunto de projetos contiver muitas áreas com a mesma estrutura — mesmos modelos de PCS/BMS e mesma estrutura de estratégia —, use a expansão dinâmica de unidades de dispositivo para definir os pontos agregados acima como templates. Novas áreas gerarão suas configurações automaticamente, sem reconstrução individual.
VII. Resumo
Seção intitulada “VII. Resumo”Todos os recursos deste exemplo — aquisição de dados originais, cálculo de margem por expressões agregadas, acionamento por condições de dados, envio de comandos por ações de gravação, alarmes e reporte por MQTT — são componentes gerais do Edge-EMS Builder. A lógica específica de “ampliação temporária de capacidade” é inteiramente composta por configuração. Ao substituir medidores e PCS por outros dispositivos e os limites por outras regras de negócio, o mesmo método pode ser reutilizado em redução de picos e preenchimento de vales de carga, controle de demanda, complementaridade entre fontes de energia e praticamente qualquer cenário de “Monitorar → Decidir → Executar”.
Este diagrama foi elaborado a partir da lógica de configuração desta página e mostra os fluxos de dados e controle. Para os campos específicos, consulte as configurações e os scripts no texto.
⚠️ As proporções dos limites, o SOC mínimo de proteção e outros parâmetros deste exemplo são apenas ilustrativos. Em projetos reais, devem ser definidos conforme a capacidade nominal do transformador, a capacidade disponível do armazenamento, os requisitos locais de despacho e outros fatores.