From 3fce6d2343c8a9a53e12d85b43cd614901319257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=A4fliger?= Date: Thu, 12 Jun 2025 16:45:40 +0200 Subject: [PATCH] no message --- README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 82 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 43fde45..3979c32 100644 --- a/README.md +++ b/README.md @@ -114,17 +114,90 @@ Bearbeiten ### 3.3 Leistungszuweisung -- Für jeden Verbraucher wählt der Manager die **höchste** Stufe aus `PowerSteps`, die die verbleibende Differenz |D| **nicht überschreitet**. -- Er durchläuft die Verbraucher nacheinander (Round-Robin), bis |D| annähernd erschöpft ist. +- Zunächst ermittelt der Manager die **Soll–Ist-Differenz** + ```text + D = Sollleistung_Max − Ist-Netzbezug +Dann addiert er alle aktuell zugeteilten Verbraucher­leistungen zum Sollwert: -**Beispiel:** -- Verbraucher A: `[0,1000,2000]` -- Verbraucher B: `[0,500,1500,2000]` -- Differenz D = 3000 W +text +Kopieren +Bearbeiten +GesamtVerteilbareLeistung = D + ∑(bereits zugeteilte Leistungen) +Die Verbraucher werden nach Priorität und Fairness sortiert: -1. A erhält 1000 W → Rest 2000 W -2. B erhält 1500 W → Rest 500 W -3. Nächster Zyklus oder weitere Verteilschritte mit Rest 500 W +Aufsteigend nach PV_Prio (niedrig = höher) + +Bei gleicher Priorität Round-Robin anhand Bezogene_Energie (weniger Energie → zuerst) + +Innerhalb jeder Prioritätsstufe wird ein „Stufen-Array“ aufgebaut, das alle möglichen Leistungsstufen aller Verbraucher enthält, sortiert nach der Reihenfolge, in der sie zugeteilt werden dürfen. + +Beispiel + +Gegeben + +Sollleistung_Max = 0 W, Ist-Netzbezug = –5000 W → D = 5000 W + +Bereits zugeteilte Leistungen: A=2000 W, B=500 W → GesamtVerteilbareLeistung = 5000 + 2000 + 500 = 7500 W + +Verbraucher + +yaml +Kopieren +Bearbeiten +A: [0,1000,2000], Prio 1, Bezogene_Energie 5 kWh, aktuell 2000 W +B: [0,500,1500,2500], Prio 2, Bezogene_Energie 0 kWh, aktuell 500 W +C: [0,500,1500,4000], Prio 2, Bezogene_Energie 10 kWh, aktuell 0 W +D: [0,500,1200,2500], Prio 2, Bezogene_Energie 15 kWh, aktuell 0 W +E: [0,200,1500], Prio 3, Bezogene_Energie 15 kWh, aktuell 0 W +Stufen-Array pro Prio + +yaml +Kopieren +Bearbeiten +Prio 1: A0, A1000, A2000 +Prio 2: B0, C0, D0, B500, C500, D500, D1200, B1500, C1500, B2500, D2500, C4000 +Prio 3: E0, E200, E1500 +Verteilung + +Prio 1 + +7500 W − 0 W (A0) = 7500 W + +7500 W − 1000 W (A1000) = 6500 W + +6500 W − 2000 W (A2000) = 4500 W → A erhält 2000 W + +Prio 2 + +4500 W − 0 W (B0) = 4500 W + +4500 W − 0 W (C0) = 4500 W + +4500 W − 0 W (D0) = 4500 W + +4500 W − 500 W (B500) = 4000 W + +4000 W − 500 W (C500) = 3500 W + +3500 W − 500 W (D500) = 3000 W + +3000 W − 1200 W (D1200)= 1800 W + +1800 W − 1500 W (B1500)= 300 W + +300 W − 1500 W (C1500)= (negativ) → nicht möglich +→ B erhält 2500 W, C 1500 W, D 1200 W + +Prio 3 + +Rest 300 W + +300 W − 0 W (E0) = 300 W + +300 W − 200 W (E200) = 100 W +→ E erhält 200 W (Rest 100 W ungenutzt) + +Fazit: Durch Aufaddieren der bereits verteilten Leistungen vor der Neuverteilung und das schrittweise Abarbeiten der Stufen-Arrays in Prioritäts- und Fairness-Reihenfolge wird die verfügbare Gesamtleistung optimal und gerecht auf alle Verbraucher verteilt. ---