====== Editor komplexe Steuerung ====== //Menüpunkt: EPANET > Zeitschritte und Steuerung > Komplexe Steuerung//\\ //Handbuch: MIKE URBAN Water Distribution User Guide, section 1.4.2 Rule Based Controls//\\ //Letzte Änderung mit MIKE URBAN Version 2012, Service Pack 2//\\ Die Elemente sind zu finden in der Tabelle **mw_Rule**. ===== Dialogfeld ===== Eine komplexe Steuerung eignet sich vor allem für übergeordnete Bewirtschaftungssysteme, in denen Pumpen oder Schieber in Abhängigkeit von mehreren Messgrößen geschaltet werden. Die komplexe Steuerung besteht aus einer Abfolge mehrerer Regeln. Jede Regel besteht aus einer ID, einer optionalen Beschreibung und der eigentlichen Anweisung (im Editor mit "Definition" bezeichnet). {{ :mikeurban:menue:editor_komplexe_steuerung.png?300 |Klicken zum Vergrößern}} ^ Feld ^ Erklärung ^ |Regel ID\\ //(MUID)// |eindeutige ID der Regel (MUID) | |Beschreibung\\ //(Description)// |optionale Beschreibung der Regel | |Definition\\ //(Condition)// |eigentlicher Regeltext | |**Schaltflächen** || |Neu |fügt einen neuen Datensatz ein | |Löschen |löscht ausgewählte Datensätze | |Befehle | | |...Mit Attributen auswählen |öffnet Dialogfeld zum Auswählen mit Attributen | |...In die Zwischenablage kopieren |kopiert ausgewählte Datensätze in die Zwischenablage (TAB-getrennt) | |...XML-Bericht erstellen |erstellt einen XML-Bericht mit allen Datensätzen | |Schließen |schließt den Editor | ===== Beispiele für Regeln ===== IF bedingung_1 OR bedingung_2 AND bedingung_3 OR bedingung_4 [...] THEN aktion_1 AND aktion_2 [...] ELSE aktion_3 AND aktion_4 [...] PRIORITY prioritaet Eine Regel testet also eine oder mehrere Bedingungen und führt dann eine oder mehrere Aktionen aus. Falls erforderlich, werden widersprüchliche Regeln durch Prioritäten untereinander gereiht. Nur die Ausdrücke ''IF'' und ''THEN'' sind unbedingt erforderlich. ''ELSE'' und ''PRIORITY'' sind optional. **Beispiel 1** schließt Pumpe 335 und öffnet den Bypass 330, wenn der Wasserspiegel im Behälter 19,1 m überschreitet, und kehrt die Wirkung um, wenn der Wasserspiegel unter 17,1 m sinkt. IF TANK 1 LEVEL > 3.5 THEN PUMP 335 STATUS IS CLOSED AND PIPE 330 STATUS IS OPEN IF TANK 1 LEVEL < 1.0 THEN PUMP 335 STATUS IS OPEN AND PIPE 330 STATUS IS CLOSED **Beispiel 2** verändert den auf einem Behälterwasserspiegel beruhenden Einschaltpunkt der Pumpe 335 je nach Tageszeit. IF SYSTEM CLOCKTIME >= 8 AM AND SYSTEM CLOCKTIME < 6 PM AND TANK 1 LEVEL BELOW 0.8 THEN PUMP 335 STATUS IS OPEN IF SYSTEM CLOCKTIME >= 6 PM OR SYSTEM CLOCKTIME < 8 AM AND TANK 1 LEVEL BELOW 1.2 THEN PUMP 335 STATUS IS OPEN **Beispiel 3** Vielfach aktivieren Wassermeister die Pumpen zum Füllen eines Behälters, wenn sie den Eindruck gewinnen, dass der hohe Verbrauch den Behälter vorzeitig leeren könnte. MIKE URBAN kann dieses Betriebsverhalten in der Simulation berücksichtigen. Der Wert ''DRAINTIME'' extrapoliert die Geschwindigkeit, mit der sich Behälter 1 pro Zeitschritt leert. Fällt die Zeit, bis der Behälter voraussichtlich leer ist, unter 2 Stunden, schaltet sich Pumpe 335 ein. ''DRAINTIME'' wirkt parallel zum normalen Einschaltpunkt, das zuerst erfüllte Kriterium startet die Pumpe. IF TANK 1 DRAINTIME < 2.0 OR TANK 1 LEVEL BELOW 1.0 THEN PUMP 335 STATUS IS OPEN ===== Bedingungen ===== **Syntax:**\\ Element ID Attribut Vergleichsoperator Wert Einige Beispiele für Bedingungen: |''JUNCTION 23 PRESSURE > 20 '' |der Druck in Knoten 23 ist größer als 20 | |''TANK T200 FILLTIME BELOW 3.5 '' |die Zeit bis zum Füllen des Behälters T200 sinkt unter 3,5 h | |''LINK 44 STATUS IS OPEN '' |Rohr 44 ist offen | |''SYSTEM DEMAND >= 1500 '' |der Gesamtbedarf ist größer oder gleich 1500 | |''SYSTEM CLOCKTIME = 7:30 AM '' |die Tageszeit erreicht 7:30 | Beachten Sie, dass Sie immer nur //ein Attribut mit einem Wert// vergleichen können, nicht aber //zwei Attribute untereinander//. Bedingungen wie IF JUNCTION 1 HEAD > JUNCTION 2 HEAD oder wie IF TANK 3 LEVEL > TANK 4 LEVEL lassen sich mit MIKE URBAN nicht realisieren. /*** siehe Fall 600 ***/ ==== Elemente ==== Elemente werden immer gefolgt von der ''ID'' (entspricht der MUID). Weil diese ID im Zuge der hydraulischen Berechnung in GROSSBUCHSTABEN umgewandelt wird, müssen die MUIDs der Behälter, Rohre etc. in den entsprechenden Editoren ebenfalls in GROSSBUCHSTABEN definiert sein. Bei ''SYSTEM'' ist keine ''ID'' anzugeben. Folgende punktförmigen Elemente sind verfügbar: ''JUNCTION'' (Knoten), ''RESERVOIR'' (Reservoir), ''TANK'' (Behälter). Alternativ kann man auch das allgemeine ''NODE'' verwenden. Folgende linienförmigen Elemente sind verfügbar: ''PIPE'' (Rohr), ''PUMP'' (Pumpe) und ''VALVE'' (Ventil). Alternativ kann man auch das allgemeine ''LINK'' verwenden. Schließlich gibt es noch das Element ''SYSTEM''. ==== Attribute ==== Mit Knoten können folgende Attribute verwendet werden: |''DEMAND'' |Wasserbedarf | |''HEAD'' |Wasserspiegel | |''PRESSURE'' |Wasserdruck | Mit Behältern können folgende Attribute verwendet werden: |''LEVEL'' |Wassertiefe | |''FILLTIME'' |geschätzte Zeit, bis Behälter voll ist | |''DRAINTIME'' |geschätzte Zeit, bis Behälter leer ist (siehe Beispiel 3 oben) | Mit Leitungen, Pumpen und Ventilen können folgende Attribute verwendet werden: |''FLOW'' |Durchfluss | |''STATUS'' |OPEN, CLOSED, oder ACTIVE | |''SETTING'' |relative Pumpendrehzahl oder Ventilstellung | SYSTEM verwendet folgende Attribute: |''DEMAND'' |Bedarf im gesamten Netz | |''TIME'' |Zeit seit Simulationsstart | |''CLOCKTIME'' |24h-Uhrzeit mit angehängtem AM und PM | ==== Vergleichsoperatoren ==== | = |gleich | | <> |ungleich | | < |kleiner als, auch ''BELOW'' möglich | | > |größer als, auch ''ABOVE'' möglich | | %%<=%% |kleiner gleich | | >= |größer gleich | | IS |nur mit OPEN und CLOSED | ===== Aktionen ===== **Syntax:**\\ Element ID ''STATUS'' ''IS'' Wert \\ Element ID ''SETTING'' ''IS'' Wert Folgende linienförmigen Elemente sind verfügbar: ''PIPE'' (Rohr), ''PUMP'' (Pumpe) und ''VALVE'' (Ventil). Alternativ kann man auch das allgemeine ''LINK'' verwenden. Die Elemente werden immer gefolgt von der ID. ''STATUS'' ''IS'' wird gefolgt von ''OPEN'' oder ''CLOSED'' und schließt bzw. öffnet das Element. ''SETTING'' ''IS'' funktioniert nur mit Pumpen und Ventilen und setzt die relative Pumpendrehzahl bzw. ein Ventilstellwert fest. Einige Beispiele für Aktionen: |''LINK 23 STATUS IS CLOSED'' |Schließe Leitung 23 | |''PUMP P100 SETTING IS 1.5'' |Setze die relative Drehzahl der Pumpe P100 auf 1.5 | |''VALVE 123 SETTING IS 90'' |Setze die Einstellung von Ventil 123 auf 90 | Beachten Sie, dass Sie die Pumpendrehzahl und den Stellwert eines Ventils neu festlegen müssen, wenn Sie die Pumpe bzw. das Ventil von geschlossen auf offen setzen (außer die Pumpe soll mit Drehzahl 1.0 laufen und das Ventil soll ganz offen sein). **Beispiel 4** öffnet Ventil 23 und setzt die Einstellung des Ventils auf 6, wenn der Wasserspiegel im Behälter 23 unter 3.5 fällt. IF TANK 3 LEVEL BELOW 3.5 THEN VALVE 23 STATUS IS OPEN AND VALVE 23 SETTING IS 6 ===== Kombinationen und Prioritäten ===== 1. Die Anzahl der Regeln in einem Projekt ist nicht beschränkt. 2. Innerhalb einer Regel sind beliebig viele Kombinationen von ''AND'' und ''OR'' erlaubt. 3. Wenn innerhalb einer Regel ''OR'' und ''AND'' gemischt werden, ist ''OR'' stärker als ''AND''. Will man eine Aktion d setzen, wenn (a oder b) und c wahr sind, hat die Anweisung die Form IF a OR b AND c THEN d Will man eine Aktion d setzen, wenn a oder (b und c) wahr sind, muss man die Aktion in zwei Regeln abrufen: IF a THEN d IF b AND c THEN d 4. ''PRIORITY'' gibt an, welche Regel verwendet werden soll, wenn zwei oder mehr Regeln widersprüchliche Aktionen auf ein bestimmtes Element auslösen. Eine größere Zahl bedeutet eine höhere Priorität. Eine Regel ohne Priorität ist immer schwächer als eine Regel mit Priorität. Haben zwei Regeln die gleiche Priorität, wird die Regel angewandt, die in der Abfolge früher gereiht ist. 5. Innerhalb eines Modells dürfen einfache Steuerungen und komplexe Steuerungen nebeneinander verwendet werden, beispielsweise wenn für die einen Pumpen einfache Steuerungen ausreichen, für andere Pumpen hingegen komplexe Steuerungen erforderlich sind. Für den Fall, dass sowohl eine einfache als auch eine komplexe Steuerung auf dasselbe Element zugreift, hat die komplexe Steuerung den Vorrang. /*** Rule-Based Controls are implemented during the hydraulic analysis portion of a simulation as follows: 1. Controls are evaluated at a sub-hydraulic time step equal to 1/10 of the normal hydraulic time step (e.g., if hydraulics are updated every hour, then rules are evaluated every 6 minutes). 2. Over this sub-hydraulic time step, clock time is updated as are the water levels in storage tanks (based on the last set of pipe flows computed). 3. If a rule's conditions are satisfied, then its actions are added to a list. If an action conflicts with one for the same link already on the list then the action from the rule with the higher priority stays on the list and the other is removed. If the priorities are the same then the original action stays on the list. 4. If the list is not empty, then the new actions are taken. If this causes the status of one or more links to change then a new hydraulic solution is computed. The action list is cleared and the next sub-hydraulic time step is checked. ***/