Betriebsplan/en: Unterschied zwischen den Versionen

Aus TALSIM Docs
(Die Seite wurde neu angelegt: „Operating plan“)
 
Keine Bearbeitungszusammenfassung
 
(177 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
{{Navigation|vorher=Systemelementsdaten|hoch=Arbeitsschritte zur Modellerstellung|nachher=Simulation}}
{{Navigation|vorher=Systemelementsdaten|hoch=Arbeitsschritte zur Modellerstellung|nachher=Simulation}}


Talsim-NG schließt ein [[Special:MyLanguage/Bewirtschaftungsmodell|Bewirtschaftungsmodell]] mit ein, d.h. es bietet die Möglichkeit Speicher und Aufteilungsbauwerke mittels konkreter Vorschriften zu regeln. Die in Realität bestehenden oder geplanten Betriebsregeln müssen dazu in eine Form gebracht werden, mit der Talsim-NG rechnet kann.
Talsim-NG includes a [[Special:MyLanguage/Bewirtschaftungsmodell|storage operation model]], i.e.it offers the possibility to simulate storage regulation and distribution through defined operating rules. Existing or proposed operating rules need to be converted into a Talsim-NG compatible form.


Was in der Realität Messungen im Flussgebiet sind, kann in Talsim-NG durch das Abgreifen von sogenannten [[Special:MyLanguage/#systemzustand|Systemzuständen]] der Systemelementen abgebildet werden. Diese Systemzustände können weiterverarbeitet werden und mittels mathematischer und logischer Operatoren zu [[Special:MyLanguage/#zustandsgruppe|Zustandsgruppen]] verknüpft werden (auch mehrfach hintereinander). Aufgrund der Vielfalt der Optionen und Verknüpfungsmöglichkeiten, können beinahe beliebige Regeln abgebildet werden. Der Systemzustand/ die Zustandsgruppe, die so die letztendliche Betriebsregel repräsentiert, wird in dem Systemelement angeschlossen, das damit geregelt werden soll. Handelt es sich bei dem Systemelement um einen Speicher können dann gegebenenfalls noch physikalische Grenzen für die Abgabe, sowie die internen Abhängigkeiten zwischen verschiedenen Abgaben eingegeben werden. Somit erhält man die [[Special:MyLanguage/#steuerlogik|Steuerlogik]] für das Flussgebietsmodell.
The model equivalent to conducting measurements within the river basin is the retrieval of so-called [[#systemzustand|system states]] of the system elements. Further, these system states are processed and connected to mathematical and logical operators (also consecutively) into [[#zustandsgruppe|control clusters]]. The variety of options and possible connections allows for the representation of almost any desired operating rule. The system state / the control cluster representing the operating rule is linked to the system element to which the rule should be applied to. In the case of a storage, physical boundaries for releases as well as internal dependencies can be implemented. The result is the [[#steuerlogik|control logic]] of the river basin model.




<span id="systemzustand"></span>
<span id="systemzustand"></span>


==Systemzustand==
==System State==


Um zu entscheiden, welcher Systemzustand/ welche Systemzustände für das Erstellen wie definiert werden sollen, ist es hilfreich sich für jede Betriebsregel folgende Fragen zu beantworten.
To determine how to represent a system state / system states, one should consider the following questions regarding the operation rules:




{|class=wikitable style="width: 80%
{|class=wikitable style="width: 80%
! Thema || Fragen zur realen Regel || Fragen zum Talsim-NG-Flussgebietsmodell || Umsetzung in Talsim-NG  
! Subject || Questions about real-world operating rule || Questions about Talsim-NG river basin model || Implementation in Talsim-NG  
|-
|-
| Messgröße
| Measured variable
| Auf welchem Messwert/ welchen Messwerten beruhen die Regeln? Welcher Parameter wird gemessen?
| Which measured variables are the operating rules based on? Which variables are measured?
| Welcher Simulationsgröße entspricht das, bzw. aus welcher Simulationsgröße könnte der Parameter abgeleitet werden? Sämtliche Simulationsgrößen, d.h. Ein-, Ausgangs- und Zustandsgrößen der Systemelemente stehen prinzipiell zur Verfügung (z.B. Zufluss, Abfluss, Speicherinhalt, ...).
| Which is the equivalent simulated variable, or which simulated variable could be used for reference / derivation? All simulated variables i.e. the system element's input, output, and state variables are generally accessible  (e.g. discharge, storage volume, ...).
|rowspan="2"|Konkretes Systemelement und Parameter auswählen <br/> &rarr; Systemzustand anlegen
|rowspan="2"| Choose a system element and a simulated variable. <br/> &rarr; Implement a system state.
|-
|-
| Räumlicher Bezug
| Spatial reference
| An welchem Ort wird gemessen?
| Which location is the measurement made at?
| Welches konkrete Systemelement (Kennung) kann also die Messung (mit welcher Simulationsgröße als Systemzustand) repräsentieren?
| Which specific system element (key) represents the measurement (with which simulated variable for the system state)?
|-
|-
| Zeitlicher Bezug
| Temporal reference
| Wie ist der zeitliche Bezug der Messung? Wird z.B. der aktuelle Wert verwendet, eine Bilanz oder Werte vom Vortag?
| What is the temporal reference of the measurement? Is the instantaneous value used, a balance, or a previous day's value?
| Mit welcher Option in Talsim-NG kann der zeitliche Bezug am Besten dargestellt werden?
| Which of the available options in Talsim-NG represents the temporal reference best?
| [[Special:MyLanguage/#zustandsattribut-zweck|Zweck]] des Systemzustandes festlegen und Optionen zur [[Special:MyLanguage/Werteänderung|Werteänderung]] entsprechend einstellen
| Define the [[#zustandsattribut-zweck|objective]] of the system state and adjust the options for [[Special:MyLanguage/Werteänderung|value changes]] respectively.
|-
|-
| Transformation
| Transformation
| Wird der Messwert nachträglich noch verändert, bevor er in die Betriebsregel eingeht (z.B. Umrechnung der Einheiten, Gewichtung,...)?
| Is the measured value changed subsequently before its inclusion in the operating rule (e.g. unit conversion, weighting function, ...)?  
| Mit welcher der Funktionen aus Talsim-NG kann die Transformation dargestellt werden?
| Which function in Talsim-NG represents the transformation?
| Auswahl und Definition der [[Special:MyLanguage/#transformationsfunktion|Transformationsfunktion]] des Systemzustandes
| Select and implement the [[#transformationsfunktion|transformation function]] of the system state.
|}
|}






Nachdem die Fragen zu Ort der Messung und dem Parameter geklärt sind, kann der [[Special:MyLanguage/Systemzustandsfenster|Systemzustand angelegt]] werden. Für diesen Systemzustand können dann die [[Special:MyLanguage/Zustandsattributefenster|Zustandsattribute]] festgelegt werden. Dafür stehen folgende Optionen zur Verfügung:
After answering the questions, a [[Special:MyLanguage/Systemzustandsfenster|system state]] can be created. Subsequently, [[Special:MyLanguage/Zustandsattributefenster|state attributes]] describing the system state can be specified. The following options are available:




<span id="zustandsattribut-zweck"></span>
<span id="zustandsattribut-zweck"></span>


===Zustandsattribut Zweck===
===Sytem State Attributes===


Talsim-NG bietet folgende Optionen den Typ oder auch Zweck des Systemzustandes festzulegen:
Talsim-NG offers the following types of system state attributes:


{|
{|
|A
|A
|Aktueller Wert
|Current value
|verwendet den aktuellen Wert ohne Veränderung
|Value is the current value without any modifications
|-
|-
|''F''
|F
|''Funktion''
|Function
|''Wert wird mittels einer Funktion transformiert''
|Value is transformed by applying a function
|-
|-
|B
|B
|Bilanz (mit Zielwert)
|Balance (with target)
| Wert wird als Abweichung vom Soll in % verwendet
|Value is used as a discrepancy from the target value in %
|-
|-
|C
|C
|Bilanz (ohne Zielwert)
|Balance (without target)
|Wert wird über Zeitschritte bilanziert)
|Value is calculated as a balance from several timesteps
|-
|-
|''Z''
|Z
|''Zielfunktion''
|Objective function
|''Wert ist Ergebnis einer Zielfunktion''
|Value is the result of an objective function
|-
|-
|''P''
|P
|''Unterwasserpegel''
|Control gauge
|''momentan deaktiviert''
|Currently disabled
|-
|-
|S
|S
|Summe
|Sum
|Summe des Zustandes anstatt Einzelwerte
|Value is not a single value but is calculated as the sum of the system state
|}
|}






=====Aktueller Wert=====
=====Current Value=====


Die Option aktueller Wert verwendet den im aktuellen Zeitschritt simulierten Wert ohne Veränderung:
The option ''current value'' uses the simulated value of the current timestep without any modifications:


Ergebnis = Aktueller Wert des Systemzustandes
result = current value of the system state






=====Funktion=====
=====Function=====


Die Option Funktion hat als zeitlichen Bezug ebenfalls den aktuellen Zeitschritt, allerdings schließt sie die Möglichkeit ein, den Wert mittels einer Funktion zu transformieren. Da auch die anderen Optionen (Ausnahme: aktueller Wert) anschließend transformiert werden können, wird das erst im [[Special:MyLanguage/#transformationsfunktion|nächsten Abschnitt]] erläutert.
The option ''function'' also uses the current timestep as time reference, but it includes the possibility to transform the value by applying a function. As the values from this option and all the following options (''current value'' is the only exception) can be transformed, the general transformation process will only be explained in the [[#transformationsfunktion|next section]].






=====Bilanz=====
=====Balance=====


Die Bilanz kann definiert werden als
A balance can be defined as
[[Special:MyLanguage/Datei:Schema Definition Bilanz.png|thumb|Optionen für die Definition der Bilanz]]
[[Datei:Schema Definition Bilanz.png|thumb|Choices to define a balance]]
<ol style="list-style-type:lower-alpha">
<ol style="list-style-type:lower-alpha">
   <li>Mittelwert der letzten n Zeitschritte (max. 1200)</li>
   <li>an average over the last n time steps (max. 1200)</li>
   <li>Fixer Zeitraum (Startdatum bis Enddatum)</li>
   <li>a fixed timeframe (start date to end date)</li>
   <li>Konstanter Zeitraum (gleitendes Mittel)</li>
   <li>a constant timeframe (moving average)</li>
   <li>i-ter Zeitschritt</li>
   <li>the i-th time step</li>
</ol>
</ol>


Bei der Bilanz ohne Zielwert, ist die Bilanz selbst der Startwert für die anschließende [[Special:MyLanguage/#transformationsfunktion|Transformation]].
In the case of ''Balance (without target)'', the balance itself is the initial value for the subsequent [[#transformationsfunktion|transformation]].


Bei der Bilanz mit Zielwert geht die Abweichung als Startwert in die [[Special:MyLanguage/#transformationsfunktion|Transformation]] ein und diese wird wie folgt berechet:
In the case of ''Balance (with target)'' the discrepancy from the target value is used as the initial value for the [[#transformationsfunktion|transformation]] and is calculated as follows:


Abweichung = ((BILANZ- Soll) / Soll) * 100
Discrepancy = ((BALANCE- target value) / target value) * 100


Der Sollwert wird dazu als Konstante ggfs. skaliert mit einem Jahresgang definiert.
The target value is defined as a constant possibly scaled with an annual pattern.


<div class="mw-translate-fuzzy">
=====Sum=====
</div>


 
<div class="mw-translate-fuzzy">
=====Summe=====
====Value Modification====
 
</div>
 
====Werteänderung====


<span id="transformationsfunktion"></span>
<span id="transformationsfunktion"></span>


===Transformationsfunktion===
===Transformation Function===


Die Systemzustände können zusätzlich noch über Funktionen transformiert werden (Ausnahme: Zweck aktueller Wert).
The system states can be transformed additionally by applying a function (exception: ''current value'').
Es gibt die Optionen
In the following all transformation options are listed:


{|
{|
|
|
:KNL
:KNL
|Kennlinie
|Capacity curve
|-
|-
|
|
:JGG
:JGG
|Konstanter Jahresgang
|Constant annual pattern
|-
|-
|
|
:GGL
:GGL
|Variabler Jahresgang
|Variable annual pattern
|-
|-
|
|
:LAM
:LAM
|Lamellenplan
|Pool-based operating plan
|-
|-
|
|
:XYZ
:XYZ
|Zeitabhängige Funktion
|Time-dependent function
|}
|}






====Kennlinie====
====Capacity Curve====


Die einfachste Option und zugleich Voreinstellung für Systemzustände, die nicht als ''Aktueller Wert'' behandelt werden ist die der ''Kennlinie''. Hierbei werden die Stützstellen einer Funktion eingegeben, gemäß derer die Werte transformiert werden. Der Funktionseingang ist jeweils der Systemzustand entsprechend seinem Zweck (also z.B. aktueller Wert bei Zwecke Funktion, Bilanz bei Bilanz (ohne Zielwert) oder die prozentuale Abweichung bei Bilanz (mit Zielwert)). Die Funktion kann als Treppenfunktion interpretiert werden oder zwischen den Stützstellen kann linear interpoliert werden.
The simplest option and the default for any system state that is not treated as ''current value'' is the ''capacity curve''. The option takes previously entered supporting points to create a function, which is then used for the transformation of values. The function's entry value is corresponding to the system state's type (e.g. current value (entry value) with function (type), balance (entry value) with balance without target (type), or discrepancy (entry value) with balance with target (type)). The function can be either interpreted as a step function or interpolation between the supporting points is performed.


Möchte man keine Transformation vornehmen, kann die Kennlinie entsprechend als 1:1 Funktion definiert werden. Wichtig hierbei ist, dass der gesamte mögliche Wertebereich eingeschlossen ist, da ansonsten für Werte kleiner der ersten Stützstelle der y-Wert der kleinsten Stützstelle verwendet wird und bei Werten größer der ersten Stützstelle jeweils der y-Wert der größten Stützstelle. Außerdem muss hier zwingend die Option Stützstellen interpolieren gesetzt werden.
If the user chooses not to perform a transformation, the capacity curve can be defined as a 1:1 function. It is important that the entire value range is included because otherwise y-values smaller than the first supporting point by default use the y-value of the first supporting point and y-values bigger than the y-value of the last supporting point by default use the y-value of the last supporting point. In addition, the option to interpolate between the supporting points must be activated.


{|class=wikitable  style="width: 15%
{|class=wikitable  style="width: 15%
|+ Funktion: Eingang unverändert
|+ Function: entries unchanged
! X-Wert || Y-Wert
! x-value || y-value
|-
|-
| -10000 || -10000
| -10000 || -10000
Zeile 168: Zeile 169:




Möchte man für die Erstellung der Betriebsregeln Konstanten definieren, kann man das ebenfalls über die Option Kennlinie tun:
If the user chooses to define constants for the implementation of the operating rules, it is also possible with the option ''capacity curve'':


{|class=wikitable style="width: 15%
{|class=wikitable style="width: 15%
|+ Funktion: Ergebnis= Konstante
|+ Function: result= constant
! X-Wert || Y-Wert
! x-value || y-value
|-
|-
| 0 || 20
| 0 || 20
Zeile 181: Zeile 182:




====Jahresgang====
====Annual Pattern====


Bei der Option ''Jahresgang'' wird für verschiedene Zeitabschnitte des Jahres jeweils eine Funktion mit einer Stützstelle definiert. Beim konstanten Jahresgang erfolgt die Unterteilung jeweils nach Monaten, es gibt also isngesamt 12 Stützstellen. Beim variablen Jahresgang, wird an beliebigen Datumswerten unterteilt.
With the option ''annual pattern'', a function with one supporting point is defined for each chosen time period within one year. With a constant annual pattern, the division of the year into time periods is undertaken by month, resulting in a total of 12 supporting points. With a variable annual pattern, the division of the year into time periods is undertaken at the desired dates.


Pro zeitlicher Stützstelle wird jeweils ein x- und ein y-Wert eingegeben. Ist der Systemzustandswert vor der Transformation kleiner als der x-Wert wird er zu Null. Ist er größer/gleich dem x-Wert wird er zum y-Wert transformiert. Das aktuelle Datum entscheidet dabei jeweils welche zeitliche Stützstelle verwendet wird.  
For each (temporal) supporting point, values for x and y are entered. If, before the transformation, the system state value is smaller than the x-value, it is set to zero. If it is equal to or bigger than the x-value, it is transformed to the y-value. Every current date / time stamp constitutes which respective supporting point is then used for the transformation.  


Standardmäßig werden die Sützstellen für den jeweiligen Zeitabschnitt konstant gehalten. Es gibt aber auch die Möglichkeit in der Zeit linear zu interpolieren.
By default, the supporting points are kept constant within each time frame. Yet, it is also possible to linearly interpolate over time.






====Lamellenplan====
====Pool-based Operating Plan====


Bei der Option ''Lamellenplan'' wird klassischerweise der Speicherinhalt über das Jahr in verschiedene Bereiche (Lamellen) eingeteilt und diesen Lamellen jeweils eine feste Abgabestufen zugeteilt. Es werden also beliebige aufsteigende Abgabestufen definiert und pro festgelegtem Zeitabschnitt werden für jede dieser Abgabestufe die jeweiligen Speicherinhalte eingegeben. Die Option ''Lamellenplan'' ist aber nicht auf diese Anwendung beschränkt. Prinzipiell kann jeder beliebige x-Wert (klassisch: Talsperreninhalte) über einen Lamellenplan, zeitlich variabel in einen y-Wert (klassisch: Talsperrenabgaben) transformiert werden. Die y-Werte der Stützstellen sind dabei aufsteigend und für jeden Zeitabschnitt dieselben.
With the option ''pool-based operating plan'', the storage volume during a year is divided into different zones (pools), where each pool is associated with a fixed release level. Hence, for each defined release level and for each fixed time period the specific storage volumes are entered. However, the option ''pool-based operating plan'' is not restricted to this use. Generally, any chosen x-value (usually: storage volume) can be transformed into a y-value (usually: storage releases) via a pool-based operating plan. To do this, the y-values of the supporting points need to be ascending and identical for every timestep.


Standardmäßig werden die eingegebenen Stützstellen des Lamellenplans als Blockstufen interpretiert. Es besteht aber auch die Möglichkeit in der Zeit linear zu interpolieren und/ oder zwischen den Stützstellen der x-/y-Werte linear zu interpolieren.<br clear="all" />
By default, the entered supporting points of the ''pool-based operating plan'' are interpreted similarly to a step function but in blocks. However, it is also possible to interpolate over time and / or interpolate linearly between the supporting points of x-/y-values.<br clear="all" />


<gallery mode="nolines" widths=600px heights=200px>
<gallery mode="nolines" widths=600px heights=200px>
Datei:Lamellenplan.png|Gegenüberstellung eines Lamellenplans in der zwei- und dreidimensionalen Darstellung, <br/>Interpretation: konstanter Block
Datei:Lamellenplan_EN.png|Comparison of a pool-based operating plan in the two- and three-dimensional representation, <br/>Interpretation: constant block (steps)
Datei:Lamellenplan_linear_interpoliert.png|Gegenüberstellung eines Lamellenplans in der zwei- und dreidimensionalen Darstellung, <br/>Interpretation: linear interpoliert (zeitlich und zwischen Inhalts-/Abgaben-Stützpunkten)
Datei:Lamellenplan_linear_interpoliert_EN.png|Comparison of a pool-based operating plan in the two- and three-dimensional representation, <br/>Interpretation: linearly interpolated (both in time and between pools)
</gallery>
</gallery>






====Zeitabhängige Funktion====
====Time-dependent Function====


Die ''Zeitabhängige Funktion'' ist dem Lamellenplan sehr ähnlich, aber noch ein bisschen flexibler: Die Stützstellen für die y-Werte müssen für die verschiedenen Zeitabschnitte nur in der Anzahl, nicht aber im Wert dieselben sein, zudem müssen sie nicht zwingend aufsteigend sein. Es können also für verschiedene Zeitabschnitte beliebige Funktionen mit ihren jeweiligen x- und y-Werten definiert werden.
The ''time-dependent function'' acts similar to the pool-based operating plan, yet is more flexibly applicable: For different periods, the supporting points of the y-values only need to correspond regarding their number but do not have to be identical in value. Furthermore, they do not necessarily have to be ascending. Hence, one picks a user-defined function with individual x- and y-values.


Standardmäßig werden die eingegebenen Stützstellen als Blockstufen interpretiert. Es besteht aber auch die Möglichkeit in der Zeit linear zu interpolieren und/ oder zwischen den Stützstellen der x-/y-Werte linear zu interpolieren.<br clear="all" />
By default, the entered supporting points are interpreted similarly to a step function, but in blocks. However, it is also possible to interpolate over time and / or interpolate linearly between the supporting points of x-/y-values.<br clear="all" />




<span id="zustandsgruppe"></span>
<span id="zustandsgruppe"></span>


==Zustandsgruppe==
==Control Cluster==


Eine Zustandsgruppe ist die Verknüpfung von Systemzuständen und anderen Zustandsgruppen mittels mathematischer und logischer Operatoren. Während der Systemzustand also den Zustand eines Systemelements beschreibt, bietet die Zustandsgruppe eine Zusammenfassung mehrerer Systemzustände.  
A control cluster is the combination of system states and other control clusters using mathematical and logical operators. While a system state represents the condition of a system element, a control cluster describes the aggregation of several system states.  


Folgende Operatoren stehen für die Verknüpfung zur Verfügung:
The following operators are available for combination of system states:


{|class=wikitable  
{|class=wikitable  
| +/- || Addition und Subtraktion
| +/- || Addition and subtraction
|-
|-
| ●/÷ || Multiplikation und Division
| ●/÷ || Multiplication and division
|-
|-
|<>≤≥ || Vergleichsoperatoren
|<>≤≥ || Comparative operators
|-
|-
|mn, mx  || Minimum, Maximum
|mn, mx  || Minimum and maximum
|}
|}


Eine Zustandsgruppe kann aus bis zu fünf verschiedenen Systemzuständen und/oder Zustandsgruppen verknüpft werden. Da die Zustandsgruppen ihrereseits wieder weiterverknüpft werden können, besteht praktisch keine Begrenzung bezüglich der Anzahl. Dabei sind beliebige Kombinationsmöglichkeiten denkbar. Es bestehen keine Einschränkungen, z.B. hinsichtlich einer Kombination verschiedener Größen und Einheiten. Für sinnvolle Kombinationen ist der Anwender verantwortlich.
A control cluster can consist of up to five different system states and/or control clusters. As control clusters can continuously be linked, there is no limit to their number, and any possible combination is feasible. There are no limits regarding e.g. the combination of different values and units. It is the user's responsibility to achieve reasonable combinations.


Die Systemzustände/Zustandsgruppen aus denen die neue Zustandsgruppe sich zusammensetzen soll, können bevor sie mit dem Operator verknüpft werden noch mit einem Faktor skaliert werden (s. [[Special:MyLanguage/Verbindungsfenster|Verbindungsfenster]]).  
When building new control clusters, the comprising system states/control clusters can be scaled by a factor before using the operator for combination (see [[Special:MyLanguage/Verbindungsfenster|Connection window(?)]]).  


Die Zustandsgruppe selbst hat wie die Systemzustände auch das [[Special:MyLanguage/#zustandsattribut-zweck|Zustandsattribut Zweck]] und kann mit einer [[Special:MyLanguage/#transformationsfunktion|Transformationsfunktion]] noch transformiert werden (s. [[Special:MyLanguage/Zustandsattributefenster|Zustandsattributefenster]]).
The control cluster itself, just like the system states, has a [[#zustandsattribut-zweck|system state attribute]] and can be transformed further with a [[#transformationsfunktion|transformation function]] (see [[Special:MyLanguage/Zustandsattributefenster|state attribute window]]).


Zuletzt kann die Zustandsgruppe noch in ihrem Wertebereich eingeschränkt werden (s. [[Special:MyLanguage/Verbindungsfenster|Verbindungsfenster]]).
Lastly, the control cluster can be limited in its value range (see [[Special:MyLanguage/Verbindungsfenster|connections]]).




<span id="steuerlogik"></span>
<span id="steuerlogik"></span>


==Steuerlogik==
==Control Logic==


Nachdem eine Regel in einer Zustandsgruppe/einem Systemzustand so formuliert ist, dass sie die gewünschte Abgabe aus einem [[Special:MyLanguage/Speicherfenster|Speicher]] oder die Aufteilung durch eine [[Special:MyLanguage/Verzweigungsfenster|Verzweigung]] beschreibt, wird die Zustandsgrupppe/ der Systemzustand an das entsprechende Systemelement angeschlossen. Abhängigkeiten zwischen verschiedenen Abgaben können entweder bereits über die Definition der Zustandsgruppen abgebildet werden oder über die Option [[Special:MyLanguage/Speicherfenster#Interne Abhängigkeiten|Interne Abhängigkeiten]] direkt im Speicherelement.
If a rule in a control cluster/ system state is assigned in a way that it represents the desired release from a [[Special:MyLanguage/Speicherfenster|storage]] or it describes the division from a [[Special:MyLanguage/Verzweigungsfenster|diversion]], the control cluster/ system state is connected to the respective system element. Dependencies between various releases can be implemented either via the definition of a control cluster or using the option [[Special:MyLanguage/Speicherfenster#Interne Abhängigkeiten|internal dependency]] from the storage element.

Aktuelle Version vom 30. August 2021, 12:16 Uhr

Sprachen:

Talsim-NG includes a storage operation model, i.e.it offers the possibility to simulate storage regulation and distribution through defined operating rules. Existing or proposed operating rules need to be converted into a Talsim-NG compatible form.

The model equivalent to conducting measurements within the river basin is the retrieval of so-called system states of the system elements. Further, these system states are processed and connected to mathematical and logical operators (also consecutively) into control clusters. The variety of options and possible connections allows for the representation of almost any desired operating rule. The system state / the control cluster representing the operating rule is linked to the system element to which the rule should be applied to. In the case of a storage, physical boundaries for releases as well as internal dependencies can be implemented. The result is the control logic of the river basin model.


System State

To determine how to represent a system state / system states, one should consider the following questions regarding the operation rules:


Subject Questions about real-world operating rule Questions about Talsim-NG river basin model Implementation in Talsim-NG
Measured variable Which measured variables are the operating rules based on? Which variables are measured? Which is the equivalent simulated variable, or which simulated variable could be used for reference / derivation? All simulated variables i.e. the system element's input, output, and state variables are generally accessible (e.g. discharge, storage volume, ...). Choose a system element and a simulated variable.
→ Implement a system state.
Spatial reference Which location is the measurement made at? Which specific system element (key) represents the measurement (with which simulated variable for the system state)?
Temporal reference What is the temporal reference of the measurement? Is the instantaneous value used, a balance, or a previous day's value? Which of the available options in Talsim-NG represents the temporal reference best? Define the objective of the system state and adjust the options for value changes respectively.
Transformation Is the measured value changed subsequently before its inclusion in the operating rule (e.g. unit conversion, weighting function, ...)? Which function in Talsim-NG represents the transformation? Select and implement the transformation function of the system state.


After answering the questions, a system state can be created. Subsequently, state attributes describing the system state can be specified. The following options are available:


Sytem State Attributes

Talsim-NG offers the following types of system state attributes:

A Current value Value is the current value without any modifications
F Function Value is transformed by applying a function
B Balance (with target) Value is used as a discrepancy from the target value in %
C Balance (without target) Value is calculated as a balance from several timesteps
Z Objective function Value is the result of an objective function
P Control gauge Currently disabled
S Sum Value is not a single value but is calculated as the sum of the system state


Current Value

The option current value uses the simulated value of the current timestep without any modifications:

result = current value of the system state


Function

The option function also uses the current timestep as time reference, but it includes the possibility to transform the value by applying a function. As the values from this option and all the following options (current value is the only exception) can be transformed, the general transformation process will only be explained in the next section.


Balance

A balance can be defined as

Choices to define a balance
  1. an average over the last n time steps (max. 1200)
  2. a fixed timeframe (start date to end date)
  3. a constant timeframe (moving average)
  4. the i-th time step

In the case of Balance (without target), the balance itself is the initial value for the subsequent transformation.

In the case of Balance (with target) the discrepancy from the target value is used as the initial value for the transformation and is calculated as follows:

Discrepancy = ((BALANCE- target value) / target value) * 100

The target value is defined as a constant possibly scaled with an annual pattern.

Sum

Value Modification

Transformation Function

The system states can be transformed additionally by applying a function (exception: current value). In the following all transformation options are listed:

KNL
Capacity curve
JGG
Constant annual pattern
GGL
Variable annual pattern
LAM
Pool-based operating plan
XYZ
Time-dependent function


Capacity Curve

The simplest option and the default for any system state that is not treated as current value is the capacity curve. The option takes previously entered supporting points to create a function, which is then used for the transformation of values. The function's entry value is corresponding to the system state's type (e.g. current value (entry value) with function (type), balance (entry value) with balance without target (type), or discrepancy (entry value) with balance with target (type)). The function can be either interpreted as a step function or interpolation between the supporting points is performed.

If the user chooses not to perform a transformation, the capacity curve can be defined as a 1:1 function. It is important that the entire value range is included because otherwise y-values smaller than the first supporting point by default use the y-value of the first supporting point and y-values bigger than the y-value of the last supporting point by default use the y-value of the last supporting point. In addition, the option to interpolate between the supporting points must be activated.

Function: entries unchanged
x-value y-value
-10000 -10000
10000 10000


If the user chooses to define constants for the implementation of the operating rules, it is also possible with the option capacity curve:

Function: result= constant
x-value y-value
0 20
1 20


Annual Pattern

With the option annual pattern, a function with one supporting point is defined for each chosen time period within one year. With a constant annual pattern, the division of the year into time periods is undertaken by month, resulting in a total of 12 supporting points. With a variable annual pattern, the division of the year into time periods is undertaken at the desired dates.

For each (temporal) supporting point, values for x and y are entered. If, before the transformation, the system state value is smaller than the x-value, it is set to zero. If it is equal to or bigger than the x-value, it is transformed to the y-value. Every current date / time stamp constitutes which respective supporting point is then used for the transformation.

By default, the supporting points are kept constant within each time frame. Yet, it is also possible to linearly interpolate over time.


Pool-based Operating Plan

With the option pool-based operating plan, the storage volume during a year is divided into different zones (pools), where each pool is associated with a fixed release level. Hence, for each defined release level and for each fixed time period the specific storage volumes are entered. However, the option pool-based operating plan is not restricted to this use. Generally, any chosen x-value (usually: storage volume) can be transformed into a y-value (usually: storage releases) via a pool-based operating plan. To do this, the y-values of the supporting points need to be ascending and identical for every timestep.

By default, the entered supporting points of the pool-based operating plan are interpreted similarly to a step function but in blocks. However, it is also possible to interpolate over time and / or interpolate linearly between the supporting points of x-/y-values.


Time-dependent Function

The time-dependent function acts similar to the pool-based operating plan, yet is more flexibly applicable: For different periods, the supporting points of the y-values only need to correspond regarding their number but do not have to be identical in value. Furthermore, they do not necessarily have to be ascending. Hence, one picks a user-defined function with individual x- and y-values.

By default, the entered supporting points are interpreted similarly to a step function, but in blocks. However, it is also possible to interpolate over time and / or interpolate linearly between the supporting points of x-/y-values.


Control Cluster

A control cluster is the combination of system states and other control clusters using mathematical and logical operators. While a system state represents the condition of a system element, a control cluster describes the aggregation of several system states.

The following operators are available for combination of system states:

+/- Addition and subtraction
●/÷ Multiplication and division
<>≤≥ Comparative operators
mn, mx Minimum and maximum

A control cluster can consist of up to five different system states and/or control clusters. As control clusters can continuously be linked, there is no limit to their number, and any possible combination is feasible. There are no limits regarding e.g. the combination of different values and units. It is the user's responsibility to achieve reasonable combinations.

When building new control clusters, the comprising system states/control clusters can be scaled by a factor before using the operator for combination (see Connection window(?)).

The control cluster itself, just like the system states, has a system state attribute and can be transformed further with a transformation function (see state attribute window).

Lastly, the control cluster can be limited in its value range (see connections).


Control Logic

If a rule in a control cluster/ system state is assigned in a way that it represents the desired release from a storage or it describes the division from a diversion, the control cluster/ system state is connected to the respective system element. Dependencies between various releases can be implemented either via the definition of a control cluster or using the option internal dependency from the storage element.