Aller au contenu
JelinaJelina DocumentationDocumentation technique
Retour au site officiel

Exemple : renforcement temporaire de capacité d’une zone de distribution

Cet exemple montre qu’Edge-EMS Builder n’intègre pas une logique métier de renforcement de capacité : cette stratégie est assemblée à partir de trois capacités génériques, acquisition, expressions d’agrégation et plans de déclenchement. La même méthode permet de configurer tout scénario de type surveillance d’un seuil → calcul de marge → action.

Une zone de distribution, alimentée par un transformateur, a une capacité fixe, par exemple 315kVA ou 400kVA. Lors de charges concentrées de courte durée, telles que plusieurs recharges rapides simultanées ou une pointe saisonnière, la charge mesurée peut approcher ou dépasser la capacité nominale. Le renforcement traditionnel du transformateur, demandé au gestionnaire de réseau, est long et coûteux, souvent pour de simples pointes temporaires.

Le renforcement temporaire de capacité consiste à déployer un stockage sur la zone. Edge-EMS Builder surveille la charge en temps réel et ordonne la décharge avant l’atteinte de la limite du transformateur. Le stockage couvre une partie du déficit de puissance pour maintenir le prélèvement total au réseau sous le seuil de sécurité. Lorsque la charge baisse, le mode de soutien cesse et le stockage reprend son fonctionnement normal, par exemple la charge en heures creuses. L’effet temporaire de capacité supplémentaire est obtenu par logiciel et stockage, sans modifier le transformateur.

Rôle Équipement Points clés
Comptage global de la zone Compteur intelligent en sortie du transformateur Puissance totale prélevée au réseau Feeder_active_power (kW)
Stockage PCS + BMS Puissance courante PCS1_active_power (kW, positive en décharge), SOC PCS1_soc (%), puissance maximale disponible de décharge PCS1_max_discharge_power (kW)
Paramètres de stratégie Points personnalisés/agrégés Capacité nominale du transformateur Transformer_rated_capacity (kW), ratio du seuil de déclenchement, limite basse de protection SOC

Ces points relèvent des données brutes du modèle de données, pour les mesures compteur/PCS/BMS, et des données horaires/personnalisées pour les seuils, afin que les opérateurs puissent les ajuster selon la saison sans modifier les scripts.

3. Agrégation : marge de capacité et besoin de soutien

Section intitulée « 3. Agrégation : marge de capacité et besoin de soutien »

Créez le point agrégé Feeder_headroom_kw, marge de capacité de la zone, avec l’expression suivante :

-- Capacité restante = capacité nominale × ratio du seuil de déclenchement - puissance prélevée mesurée
local rated = tonumber(${Transformer_rated_capacity} or 0)
local ratio = tonumber(${Capacity_trigger_ratio} or 0.9) -- Par défaut, déclencher à 90% de la capacité nominale
local used = tonumber(${Feeder_active_power} or 0)
return rated * ratio - used

Une valeur négative de Feeder_headroom_kw indique que la charge approche ou dépasse le seuil de déclenchement et que le stockage doit contribuer à l’alimentation.

4. Déclenchement : décharge automatique à l’approche du seuil

Section intitulée « 4. Déclenchement : décharge automatique à l’approche du seuil »

Condition de déclenchement, sur changement de données DATA_CHANGE :

return tonumber(${Feeder_headroom_kw} or 0) < 0

Action de déclenchement :

local resultList = {}
local headroom = tonumber(${Feeder_headroom_kw} or 0) -- Valeur négative représentant le déficit de puissance
local soc = tonumber(${PCS1_soc} or 0)
local maxDischarge = tonumber(${PCS1_max_discharge_power} or 0)
-- Protection SOC : sous la limite basse, ne pas soutenir la capacité ; émettre seulement une alarme pour éviter une décharge excessive
if soc < tonumber(${SOC_protect_min} or 20) then
table.insert(resultList, buildCommonAlarmMap(
"增容能力不足", "台区负荷超限但储能SOC过低(" .. soc .. "%),无法执行临时增容,请人工介入"
))
return resultList
end
-- Puissance à compenser = valeur absolue du déficit, limitée à la capacité maximale de décharge du stockage
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. Sortie : hystérésis pour éviter les démarrages et arrêts répétés

Section intitulée « 5. Sortie : hystérésis pour éviter les démarrages et arrêts répétés »

Utiliser directement « marge de capacité ≥ 0 » pour sortir ferait démarrer et arrêter sans cesse le stockage lorsque la charge oscille autour du seuil. Introduisez une bande d’hystérésis (Hysteresis) avec des seuils distincts d’entrée et de sortie du mode de soutien.

Créez le point agrégé Feeder_headroom_exit_kw, marge de décision de sortie, avec un ratio de seuil plus large, par exemple 0.8 au lieu 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

Ajoutez un plan dont la condition est ${Feeder_headroom_exit_kw} >= 0 et ${PCS1_power_setpoint} > 0, indiquant le mode de soutien actif. L’action ramène progressivement PCS1_power_setpoint à zéro pour quitter ce mode et reprendre la stratégie normale, par exemple la charge en heures creuses.

  • Coordination de plusieurs stockages : utilisez la coordination des équipements pour agréger leur capacité disponible, puis répartissez les décharges selon le SOC ou la puissance nominale. Le principe est celui de la répartition égale dans l’exemple d’équilibrage des bornes.
  • Visualisation et pilotage cloud : la coordination cloud-edge remonte périodiquement Feeder_headroom_kw, l’activation du soutien et la puissance du stockage pour superviser plusieurs zones à distance. Le cloud peut aussi envoyer des seuils afin d’ajuster dynamiquement la stratégie.
  • Réutilisation à grande échelle : pour de nombreuses zones de structure identique, avec mêmes PCS/BMS et même structure de stratégie, l’extension dynamique des unités transforme les points agrégés en modèles. Les nouvelles zones génèrent leur configuration automatiquement.

Toutes les capacités utilisées, acquisition brute, calcul agrégé de marge, déclenchement par données, commandes d’écriture, alarmes et remontée MQTT, sont des composants génériques d’Edge-EMS Builder. La logique de renforcement temporaire résulte entièrement de leur configuration. En remplaçant compteur et PCS par d’autres équipements, et les seuils par d’autres règles métier, la méthode se réutilise pour l’écrêtage des pointes, le contrôle de la puissance appelée, la complémentarité multiénergie et presque tout scénario surveiller → décider → exécuter.

Conditions d’entrée, contrôle du stockage et sortie avec hystérésis du renforcement temporaire de capacité

Ce schéma représente le flux de données et de contrôle selon la configuration décrite ici. Référez-vous aux configurations et scripts pour les champs exacts.

⚠️ Les ratios de seuil et limites SOC de cet exemple sont indicatifs. Un projet réel doit les définir selon la capacité nominale du transformateur, le stockage disponible et les exigences locales de dispatching.