Berechnungsschema/ Implementierung der Betriebsregeln/en: Unterschied zwischen den Versionen

Aus TALSIM Docs
(Die Seite wurde neu angelegt: „As long as the reservoir contents are within a section <code>S<sub>i-1</sub></code> to <code>S<sub>i</sub></code>, the solution to the differential equation is:“)
Keine Bearbeitungszusammenfassung
 
(60 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
{{Navigation|vorher=Abstraktion der Betriebsregeln|hoch=Betriebsregelkonzept|nachher=Anwendungsbeispiel: Umsetzung eines Betriebsplans}}
{{Navigation|vorher=Abstraktion der Betriebsregeln|hoch=Betriebsregelkonzept|nachher=Anwendungsbeispiel: Umsetzung eines Betriebsplans}}


In order to make the principles found accessible for simulation, a suitable mathematical formulation is required.
To operationalize principles for simulation, it is required to devise mathematical relations.


The order of the regularities given before already gives a structure which is also usable for mathematics. The central dependence is given by the storage content. In system hydrology, such a form of dependence is known by the linear single reservoir and can be solved in a closed way. Its principle is based on the assumption that the discharge is always proportional to the amount of water present in it (reservoir content). The proportionality factor k is called the storage constant. Together with the continuity equation, this gives the differential equation of the single-linear reservoir. This form of the storage equation is unsuitable for actual application to control-influenced storage systems. On the one hand, the discharges are normally not proportional to the storage content, on the other hand, the equation must be extended to any number of discharges.
The previously given order of principles already indicates a useful structure for the mathematical formulation. The storage volume poses the most essential dependency. In system hydrology, this type of dependency is known as a linear single stroage and can be thoroughly solved. Its principle is based on the assumption that the discharge is always proportional to the amount of water present in the storage (storage volume). The proportionality factor k is referred to as the storage constant. Taking into account the continuity equation and the storage constant gives the differential equation of the linear single storage. However, the storage equation is inapplicable to storage systems influenced by controls and operation rules. In this case, the discharges are not proportional to the storage volume, and therefore, an extension of the equation to any number of discharges is necessary.


[[Bild:Theorie_Abb24.png|thumb|Figure 24: Rangewise linearization of a function]]
[[Bild:Theorie_Abb24.png|thumb|Figure 24: Linearization of a function - section by section ]]


As can be seen from the examples in this chapter, the functional relationships between storage content and delivery used in the operating rules are normally only available in the form of interpolation points. The connection of the interpolation points provides the curve of a delivery function. A discharge function given in the form of several nodes, e.g. the characteristic curve of a spillway, can be linearly connected between its nodes (or grid points). The general representation of functions with range-wise linearization is given in [[:Bild:Theorie_Abb24.png|Figure 24]].
Operation rules and controls need to be implemented to the set of equations by considering the relation of the storage volume to the discharge. As exemplarily shown in this chapter, this relation is usually only available in the form of supporting points. Linearly connecting supporting points leads to a characteristic curve. Here, the connection of supporting points results in a discharge function. A general demonstration of the linearization process, section by section, is given in [[:Bild:Theorie_Abb24.png|Figure 24]].


For a section of the function applies:
One section can be described by:


<div style="float:right">(2-1)</div>
<div style="float:right">(2-1)</div>
Zeile 19: Zeile 19:
:<math>S_i < S_{(t)} \le S_{i+1}</math>
:<math>S_i < S_{(t)} \le S_{i+1}</math>


For any number of delivery functions, the equation of linear single reservoir for a section becomes:
For any number of discharge functions, the equation of a linear single storage for a section is:


<div style="float:right">(2-2)</div>
<div style="float:right">(2-2)</div>
:<math>\frac{dS}{dt} = \sum_{z=1}^n Q_z - \sum_{p=1}^m (y_{p,i-1} + k_{p,i} \cdot (S_{(t)} - S_{p,i-1}))</math>  
:<math>\frac{dS}{dt} = \sum_{z=1}^n Q_z - \sum_{p=1}^m (y_{p,i-1} + k_{p,i} \cdot (S_{(t)} - S_{p,i-1}))</math>  
:with
:with
:S : reservoir content
:S : Storage volume
:Q<sub>z</sub> : inflow (independent of reservoir content).
:Q<sub>z</sub> : Inflow (independent of storage volume).
:y<sub>i-1</sub> : discharge value at grid point i-1  
:y<sub>i-1</sub> : Discharge value at supporting point i-1  
:k : slope between interpolation points i-1 and i  
:k : Slope between the supporting points i-1 and i  
:n : number of inflows  
:n : Number of inflows  
:m : number of discharges dependent on the storage content
:m : Number of discharges dependent on the storage volume
:t : time
:t : Time


After division into a constant part and a part depending on the storage content S, the well-known and closed solvable equation of the linear single storage is obtained.
After dividing the equation into a constant part and a part depending on the storage volume S, the known and solvable equation of the linear single storage is obtained.


<div style="float:right">(2-3)</div>
<div style="float:right">(2-3)</div>
:<math>\frac{dS}{dt} = \begin{matrix} \underbrace {\sum_{z=1}^n Q_z - \sum_{p-1}^m ( y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} )} \\ C_1=\mbox{konstanter Anteil} \end{matrix} - \begin{matrix} \underbrace {\sum_{p=1}^m (k_{p,i})} \\ C_2=\mbox{von S abhaengig} \end{matrix} \cdot S_{(t)}</math>
:<math>\frac{dS}{dt} = \begin{matrix} \underbrace {\sum_{z=1}^n Q_z - \sum_{p-1}^m ( y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} )} \\ C_1=\mbox{constant part} \end{matrix} - \begin{matrix} \underbrace {\sum_{p=1}^m (k_{p,i})} \\ C_2=\mbox{depending on S} \end{matrix} \cdot S_{(t)}</math>


:<math>\frac{dS}{dt} = C_1 - C_2 \cdot S_{(t)} </math>
:<math>\frac{dS}{dt} = C_1 - C_2 \cdot S_{(t)} </math>


As long as the reservoir contents are within a section <code>S<sub>i-1</sub></code> to <code>S<sub>i</sub></code>, the solution to the differential equation is:
As long as the storage volumes are within one section <code>S<sub>i-1</sub></code> to <code>S<sub>i</sub></code>, the solution to the differential equation is:


<div style="float:right">(2-4)</div>
<div style="float:right">(2-4)</div>
:<math>S(t) = \frac{C_1}{C_2} \cdot \left [ 1 - e^{-C_2} \cdot (t-t_0) \right ]</math>
:<math>S(t) = \frac{C_1}{C_2} \cdot \left [ 1 - e^{-C_2} \cdot (t-t_0) \right ]</math>


Wird bei mindestens einer Abgabenfunktion der Abschnitt überschritten, müssen die bis dahin stattgefundenen Änderungen sowohl des Speicherinhaltes als auch der Abgaben registriert und <code>C<sub>1</sub></code> und <code>C<sub>2</sub></code> neu berechnet werden. Mit dieser Methode wird das benutzte Zeitintervall - der äußere Zeitschritt - durch eine beliebige, von der Dichte der Stützstellen abhängige Anzahl innerer Zeitschritte abgearbeitet. Die Zeit bis zu einem Bereichswechsel lässt sich durch Umformung nach <code>t</code> aus folgender Gleichung ermitteln:
If at least one discharge function exceeds the viewed section, respective changes to the storage volumes and to the discharges must be identified up to that point and <code>C<sub>1</sub></code> and <code>C<sub>2</sub></code> recalculated. With this method, the used time interval - the outer time step - is processed by an arbitrary number of inner time steps, depending on the closeness of the supporting points. The time it takes to undertake a section change can be determined by solving the following equation for <code>t</code>:


<div style="float:right">(2-5)</div>
<div style="float:right">(2-5)</div>
:<math>t_1 = -\frac{1}{C_2} \cdot \ln \left ( \frac{S(t)-\frac{C_1}{C_2}}{S_0-\frac{C_1}{C_2}} \right ) + t_0</math>
:<math>t_1 = -\frac{1}{C_2} \cdot \ln \left ( \frac{S(t)-\frac{C_1}{C_2}}{S_0-\frac{C_1}{C_2}} \right ) + t_0</math>


Ob im betrachteten Intervall eine Speicherinhaltszu- oder –abnahme stattfindet, ist dadurch zu ermitteln, indem für <code>S(t)</code> der Wert der oberen Abschnittsgrenze eingesetzt wird, wobei die nächstliegende Stützstelle aller Funktionen für die Bestimmung der Abschnittsgrenze maßgebend ist. Der resultierende Wert <code>t<sub>1</sub></code> bestimmt die folgenden drei Fälle:
Whether a storage volume increases or decreases within the viewed section is to be determined by substituting <code>S(t)</code> by the upper section boundary, whereupon the nearest supporting point of all functions is crucial for the determination of the section boundary. The resulting value <code>t<sub>1</sub></code> determines the following three cases:


# <math>t_1 > \Delta t \,</math> (äußerer Zeitschritt)  
# <math>t_1 > \Delta t \,</math> (outer time step)  
#: Im betrachteten Zeitintervall findet kein Bereichswechsel statt.  
#: In the considered time interval, no section change takes place .  
# <math>0 < t_1 < \Delta t \,</math>
# <math>0 < t_1 < \Delta t \,</math>
#: Es findet ein Bereichswechsel nach der Zeit <code>t<sub>1</sub></code> statt. Die Spanne zwischen <code>t<sub>0</sub></code> und <code>t<sub>1</sub></code> stellt die innere Zeitschrittlänge dar.  
#: After the time <code>t<sub>1</sub></code>, there is a section change . The span between <code>t<sub>0</sub></code> and <code>t<sub>1</sub></code> represents the length of the inner time step.
# <math>t_1 < 0 \,</math>
# <math>t_1 < 0 \,</math>
#: Es findet keine Speicherinhaltszunahme sondern eine –abnahme statt. Anstatt der oberen muss die untere Abschnittsgrenze eingesetzt und die Berechnung wiederholt werden.
#: There is no storage content increase but a decrease. Instead of the upper section boundary, the lower section boundary must be used and the calculation repeated.


Bei Beachtung der Bereichsüberschreitungen ist zu jedem Zeitpunkt <code>t</code> der Speicherinhalt bekannt. Folglich sind auch die vom Speicherinhalt abhängigen Prozesse in ihrem Verlauf über die Zeit bekannt. In der Regel ist aber nicht ein zeitlicher Verlauf gefragt, sondern der Mittelwert innerhalb eines Zeitintervalls. Wenn Gleichung 2-4 in Gleichung 2-1 eingesetzt und über die innere Zeitschrittlänge integriert wird, erhält man die mittlere Prozessrate im betreffenden Zeitintervall.
If section changes are observed, the storage volume is known at every time <code>t</code>. Consequently, processes depending on the storage volumes are also known. In general, the development of the curve over time is not required but rather the mean value within one time interval. If equation 2-4 is inserted into equation 2-1 and integrated over the inner time step length, the average process rate in the relevant time interval is obtained.


<div style="float:right">(2-6)</div>
<div style="float:right">(2-6)</div>
:<math>\bar{y} = y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} + k_{p,i} \cdot \left [ \frac{C_1}{C_2} + \left ( 1-e^{-C_2} \cdot (t_1-t_0) \right ) \cdot \left ( \frac{S_0}{(t_1-t_0) \cdot C_2} - \frac{C_1}{(t_1-t_0) \cdot C_2^2} \right ) \right ] </math>
:<math>\bar{y} = y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} + k_{p,i} \cdot \left [ \frac{C_1}{C_2} + \left ( 1-e^{-C_2} \cdot (t_1-t_0) \right ) \cdot \left ( \frac{S_0}{(t_1-t_0) \cdot C_2} - \frac{C_1}{(t_1-t_0) \cdot C_2^2} \right ) \right ] </math>


Nach Aufsummierung der Werte aller durchlaufenen inneren Zeitschritte ergibt sich die mittlere Prozessrate über das gesamte äußere Zeitintervall.
After summing up the inner time step values, the average process rate over the entire outer time interval is obtained.


[[Bild:Theorie_Abb25.png|thumb|Abbildung 25: Bereichsweise Linearisierung einer skalierten Abgabenfunktion]]
[[Bild:Theorie_Abb25.png|thumb|Figure 25: Linearization of a scaled discharge function - section by section]]


Aus den Grundsätzen zur Beschreibung von Betriebsregeln ist ersichtlich, dass eine Abgabe sowohl vom Speicherinhalt als auch von anderen Systemzuständen abhängig sein kann. Dadurch ist eine eindimensionale Abhängigkeit – nur vom Speicherinhalt - nicht mehr gegeben. In solch einem Fall existiert eine zwei- oder mehrdimensionale Beziehung zur eindeutigen Bestimmung einer Abgabe. Kommt zusätzlich eine Zeitabhängigkeit hinzu; ist das Problem noch um eine Dimension erweitert. Eine graphisch einfache Darstellung ist nicht mehr realisierbar. Ebenso reicht die oben beschriebene Lösung nicht aus, da zur Abhängigkeit vom Speicherinhalt weitere hinzukommen. Sowohl aus Gründen der Übersichtlichkeit als auch einer geeigneten mathematischen Formulierung ist es erstrebenswert, sämtliche Abhängigkeiten wieder in eine eindimensionale Beziehung ohne Informationsverlust zu überführen. Dies gelingt durch die Skalierung der ''Abgabenfunktionen'' Beziehung. Eine Skalierung ist sowohl für die Abgabe (y-Achse) als auch für den Speicherinhalt (x-Achse) möglich.
The principles in the description of operating rules illustrate that discharges depend on storage volumes as well as on other system states. Thus, a one-dimensional dependency no longer exists but rather a two- or multi-dimensional relation. Considering also a time dependency the problem is extended by one more dimension. Therefore, the solution from above, and respectively a simple depiction in a diagram, are no longer possible. For clarity and adequate mathematical formulation, a conversion from multiple dependencies to a one-dimensional relation needs to be undertaken without a loss of information. Scaling the discharge functions relation achieves said conversion. It is possible for the discharge (y-axis) as well as for the storage volumes (x-axis).


Nach Einführung der Skalierungsfaktoren ergibt sich für einen skalierten Abschnitt einer Funktion:
After introducing the scaling factors, the result for a scaled section of a function is:


<div style="float:right">(2-7)</div>
<div style="float:right">(2-7)</div>
:<math>y_{(t)}^s = y_{i-1} \cdot y_{\mbox{faktor}} + k_i \cdot \frac{y_{\mbox{faktor}}}{x_{\mbox{faktor}}} \cdot \left ( S_{(t)} \cdot x_{\mbox{faktor}} -S_{i-1} \cdot x_{\mbox{faktor}} \right )</math>
:<math>y_{(t)}^s = y_{i-1} \cdot y_{\mbox{factor}} + k_i \cdot \frac{y_{\mbox{factor}}}{x_{\mbox{factor}}} \cdot \left ( S_{(t)} \cdot x_{\mbox{factor}} -S_{i-1} \cdot x_{\mbox{factor}} \right )</math>


:<math>y_{(t)}^s = y_{i-1}^s + k_i^s \cdot \left ( S_{(t)}^s - S_{i-1}^s \right )</math>
:<math>y_{(t)}^s = y_{i-1}^s + k_i^s \cdot \left ( S_{(t)}^s - S_{i-1}^s \right )</math>


Zur Berechnung der mit externen Systemzuständen skalierten Abgabenfunktion wird analog der obigen Methode verfahren. Dabei entspricht <code>x<sub>faktor</sub></code> dem maximalen Speicherinhalt und <code>y<sub>faktor</sub></code> dem Skalierungsfaktor aus dem externen Systemzustand oder der Zustandsgruppe. Vorausgesetzt wird, dass die Faktoren während des äußeren Zeitintervalls konstant bleiben. Die Summe der Integrationen über die interne Zeitschleife dividiert durch den äußeren Zeitschritt liefert den endgültigen Abgabewert.
To calculate the delivery function scaled with external system states, proceed analogously to the above method. Here, <code>x<sub>factor</sub></code> corresponds to the maximum storage volume and <code>y<sub>factor</sub></code> corresponds to the scaling factor from the external system state or state group. It is assumed that the factors remain constant during the outer time interval. The sum of the integrations over the internal time loop divided by the outer time step provides the final output value.


<div style="float:right">(2-8)</div>
<div style="float:right">(2-8)</div>
:<math>\bar{y} = y_{\mbox{faktor}} \cdot \left [ y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} + \frac{1}{x_{\mbox{faktor}}} k_{p,i} \cdot \left [ \frac{\mbox{C1}^s}{\mbox{C2}^s} + \left ( 1 - \mbox{e}^{-\mbox{C2}^s \cdot \left ( t_1 - t_0 \right )} \right ) \cdot \left ( \frac{S_0 \cdot x_{\mbox{faktor}}}{(t_1 - t_0) \cdot \mbox{C2}^s} - \frac{\mbox{C1}^s}{(t_1 - t_0) \cdot {\mbox{C2}^s}^2} \right ) \right ] \right ]</math>
:<math>\bar{y} = y_{\mbox{faktor}} \cdot \left [ y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} + \frac{1}{x_{\mbox{faktor}}} k_{p,i} \cdot \left [ \frac{\mbox{C1}^s}{\mbox{C2}^s} + \left ( 1 - \mbox{e}^{-\mbox{C2}^s \cdot \left ( t_1 - t_0 \right )} \right ) \cdot \left ( \frac{S_0 \cdot x_{\mbox{faktor}}}{(t_1 - t_0) \cdot \mbox{C2}^s} - \frac{\mbox{C1}^s}{(t_1 - t_0) \cdot {\mbox{C2}^s}^2} \right ) \right ] \right ]</math>


Die Berechnung eines bereichsweise linearen Speichers mit beliebig vielen Ein- und Ausgängen hat Ostrowski (1992)<ref name="Ostrowski_1992">'''Ostrowski, M.''' (1992): Ein universeller Baustein zur Simulation hydrologischer Prozesse, Wasser und Boden, Heft 11</ref> beschrieben. Diese Lösung wurde um die Skalierung sowohl der X- als auch der Y-Achse erweitert<ref name="Ostrowski_1999">'''Ostrowski, M. et al.''' (1999): Ein universeller, nicht linearer Speicherbaustein zur Simulation hydrologischer Systeme. Institutseigene Modell- und Anwendungsbeschreibung, Institut für Wasserbau und Wasserwirtschaft, TU Darmstadt, unveröffentlicht</ref> .
The computation of a section-by-section linear memory with arbitrary many inputs and outputs has been described by Ostrowski (1992)<ref name="Ostrowski_1992">'''Ostrowski, M.''' (1992): Ein universeller Baustein zur Simulation hydrologischer Prozesse, Wasser und Boden, Heft 11</ref>. This solution was extended to include scaling of both the x-axis and y-axis by Ostrowski (1999)<ref name="Ostrowski_1999">'''Ostrowski, M. et al.''' (1999): Ein universeller, nicht linearer Speicherbaustein zur Simulation hydrologischer Systeme. Institutseigene Modell- und Anwendungsbeschreibung, Institut für Wasserbau und Wasserwirtschaft, TU Darmstadt, unveröffentlicht</ref>.


Zusammenfassend gilt, dass ein Speicher eine beliebige Anzahl von Nutzungen besitzen kann. Für jede Nutzung existiert eine vom Speicherinhalt abhängige Funktion, die innerhalb eines äußeren Zeitschrittes konstant bleiben muss, von Zeitschritt zu Zeitschritt aber verändert werden kann (Zeitabhängigkeit). Zusätzlich können diese Funktionen durch externe Abhängigkeiten über Faktoren je Zeitschritt verschieden skaliert werden. Voraussetzung für die Skalierung sind während des Zeitschrittes konstante Faktoren. Der Berechnungsgang ist vom Zeitschritt unabhängig, da er entsprechend den Abschnittsüberschreitungen in beliebig viele innere Zeitschritte zerlegt wird. Das bedeutet, dass die Methode für unterschiedlichste Zeitintervalle geeignet ist und volumentreue Ergebnisse erzeugt. Dadurch kann sowohl ein Hochwasserereignis mit einem Zeitschritt von wenigen Minuten als auch eine Langzeitsimulation mit Tageswerten oder noch größeren Zeitintervallen zum Einsatz kommen. Entscheidend ist nur, dass alle ''Abgabenfunktionen'' über eine ausreichende Anzahl von Stützstellen definiert sind.
In summary, a storage can have multiple uses. For each use, there is a function depending on the storage volume, which must remain constant within an outer time step, but is changeable from time step to time step (time dependency). Besides, scaling the functions differently for each time step accounts for external dependencies via factors. Prerequisites for the scaling are constant factors during the time step. The calculation process is independent of the time step, as it is split according to section changes into an arbitrary number of inner time steps. As a result, the method is suitable for a wide variety of time intervals and produces results that are true to the volume. The method facilitates its use for diverse time intervals, e.g. it is suitable for a flood event with a time step of a few minutes but as well for a long-term simulation with daily values or even larger time intervals. For this purpose, it is critical, to define discharge functions with a sufficient number of supporting points.






==Literaturangaben==
==Literature references==


<references/>
<references/>

Aktuelle Version vom 30. August 2021, 10:27 Uhr

Sprachen:

To operationalize principles for simulation, it is required to devise mathematical relations.

The previously given order of principles already indicates a useful structure for the mathematical formulation. The storage volume poses the most essential dependency. In system hydrology, this type of dependency is known as a linear single stroage and can be thoroughly solved. Its principle is based on the assumption that the discharge is always proportional to the amount of water present in the storage (storage volume). The proportionality factor k is referred to as the storage constant. Taking into account the continuity equation and the storage constant gives the differential equation of the linear single storage. However, the storage equation is inapplicable to storage systems influenced by controls and operation rules. In this case, the discharges are not proportional to the storage volume, and therefore, an extension of the equation to any number of discharges is necessary.

Figure 24: Linearization of a function - section by section

Operation rules and controls need to be implemented to the set of equations by considering the relation of the storage volume to the discharge. As exemplarily shown in this chapter, this relation is usually only available in the form of supporting points. Linearly connecting supporting points leads to a characteristic curve. Here, the connection of supporting points results in a discharge function. A general demonstration of the linearization process, section by section, is given in Figure 24.

One section can be described by:

(2-1)
[math]\displaystyle{ y_{(t)}=y_{i-1}+k_i \cdot (S_{(t)} - S_{i-1}) }[/math]
with
[math]\displaystyle{ S_i \lt S_{(t)} \le S_{i+1} }[/math]

For any number of discharge functions, the equation of a linear single storage for a section is:

(2-2)
[math]\displaystyle{ \frac{dS}{dt} = \sum_{z=1}^n Q_z - \sum_{p=1}^m (y_{p,i-1} + k_{p,i} \cdot (S_{(t)} - S_{p,i-1})) }[/math]
with
S : Storage volume
Qz : Inflow (independent of storage volume).
yi-1 : Discharge value at supporting point i-1
k : Slope between the supporting points i-1 and i
n : Number of inflows
m : Number of discharges dependent on the storage volume
t : Time

After dividing the equation into a constant part and a part depending on the storage volume S, the known and solvable equation of the linear single storage is obtained.

(2-3)
[math]\displaystyle{ \frac{dS}{dt} = \begin{matrix} \underbrace {\sum_{z=1}^n Q_z - \sum_{p-1}^m ( y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} )} \\ C_1=\mbox{constant part} \end{matrix} - \begin{matrix} \underbrace {\sum_{p=1}^m (k_{p,i})} \\ C_2=\mbox{depending on S} \end{matrix} \cdot S_{(t)} }[/math]
[math]\displaystyle{ \frac{dS}{dt} = C_1 - C_2 \cdot S_{(t)} }[/math]

As long as the storage volumes are within one section Si-1 to Si, the solution to the differential equation is:

(2-4)
[math]\displaystyle{ S(t) = \frac{C_1}{C_2} \cdot \left [ 1 - e^{-C_2} \cdot (t-t_0) \right ] }[/math]

If at least one discharge function exceeds the viewed section, respective changes to the storage volumes and to the discharges must be identified up to that point and C1 and C2 recalculated. With this method, the used time interval - the outer time step - is processed by an arbitrary number of inner time steps, depending on the closeness of the supporting points. The time it takes to undertake a section change can be determined by solving the following equation for t:

(2-5)
[math]\displaystyle{ t_1 = -\frac{1}{C_2} \cdot \ln \left ( \frac{S(t)-\frac{C_1}{C_2}}{S_0-\frac{C_1}{C_2}} \right ) + t_0 }[/math]

Whether a storage volume increases or decreases within the viewed section is to be determined by substituting S(t) by the upper section boundary, whereupon the nearest supporting point of all functions is crucial for the determination of the section boundary. The resulting value t1 determines the following three cases:

  1. [math]\displaystyle{ t_1 \gt \Delta t \, }[/math] (outer time step)
    In the considered time interval, no section change takes place .
  2. [math]\displaystyle{ 0 \lt t_1 \lt \Delta t \, }[/math]
    After the time t1, there is a section change . The span between t0 and t1 represents the length of the inner time step.
  3. [math]\displaystyle{ t_1 \lt 0 \, }[/math]
    There is no storage content increase but a decrease. Instead of the upper section boundary, the lower section boundary must be used and the calculation repeated.

If section changes are observed, the storage volume is known at every time t. Consequently, processes depending on the storage volumes are also known. In general, the development of the curve over time is not required but rather the mean value within one time interval. If equation 2-4 is inserted into equation 2-1 and integrated over the inner time step length, the average process rate in the relevant time interval is obtained.

(2-6)
[math]\displaystyle{ \bar{y} = y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} + k_{p,i} \cdot \left [ \frac{C_1}{C_2} + \left ( 1-e^{-C_2} \cdot (t_1-t_0) \right ) \cdot \left ( \frac{S_0}{(t_1-t_0) \cdot C_2} - \frac{C_1}{(t_1-t_0) \cdot C_2^2} \right ) \right ] }[/math]

After summing up the inner time step values, the average process rate over the entire outer time interval is obtained.

Figure 25: Linearization of a scaled discharge function - section by section

The principles in the description of operating rules illustrate that discharges depend on storage volumes as well as on other system states. Thus, a one-dimensional dependency no longer exists but rather a two- or multi-dimensional relation. Considering also a time dependency the problem is extended by one more dimension. Therefore, the solution from above, and respectively a simple depiction in a diagram, are no longer possible. For clarity and adequate mathematical formulation, a conversion from multiple dependencies to a one-dimensional relation needs to be undertaken without a loss of information. Scaling the discharge functions relation achieves said conversion. It is possible for the discharge (y-axis) as well as for the storage volumes (x-axis).

After introducing the scaling factors, the result for a scaled section of a function is:

(2-7)
[math]\displaystyle{ y_{(t)}^s = y_{i-1} \cdot y_{\mbox{factor}} + k_i \cdot \frac{y_{\mbox{factor}}}{x_{\mbox{factor}}} \cdot \left ( S_{(t)} \cdot x_{\mbox{factor}} -S_{i-1} \cdot x_{\mbox{factor}} \right ) }[/math]
[math]\displaystyle{ y_{(t)}^s = y_{i-1}^s + k_i^s \cdot \left ( S_{(t)}^s - S_{i-1}^s \right ) }[/math]

To calculate the delivery function scaled with external system states, proceed analogously to the above method. Here, xfactor corresponds to the maximum storage volume and yfactor corresponds to the scaling factor from the external system state or state group. It is assumed that the factors remain constant during the outer time interval. The sum of the integrations over the internal time loop divided by the outer time step provides the final output value.

(2-8)
[math]\displaystyle{ \bar{y} = y_{\mbox{faktor}} \cdot \left [ y_{p,i-1} - k_{p,i} \cdot S_{p,i-1} + \frac{1}{x_{\mbox{faktor}}} k_{p,i} \cdot \left [ \frac{\mbox{C1}^s}{\mbox{C2}^s} + \left ( 1 - \mbox{e}^{-\mbox{C2}^s \cdot \left ( t_1 - t_0 \right )} \right ) \cdot \left ( \frac{S_0 \cdot x_{\mbox{faktor}}}{(t_1 - t_0) \cdot \mbox{C2}^s} - \frac{\mbox{C1}^s}{(t_1 - t_0) \cdot {\mbox{C2}^s}^2} \right ) \right ] \right ] }[/math]

The computation of a section-by-section linear memory with arbitrary many inputs and outputs has been described by Ostrowski (1992)[1]. This solution was extended to include scaling of both the x-axis and y-axis by Ostrowski (1999)[2].

In summary, a storage can have multiple uses. For each use, there is a function depending on the storage volume, which must remain constant within an outer time step, but is changeable from time step to time step (time dependency). Besides, scaling the functions differently for each time step accounts for external dependencies via factors. Prerequisites for the scaling are constant factors during the time step. The calculation process is independent of the time step, as it is split according to section changes into an arbitrary number of inner time steps. As a result, the method is suitable for a wide variety of time intervals and produces results that are true to the volume. The method facilitates its use for diverse time intervals, e.g. it is suitable for a flood event with a time step of a few minutes but as well for a long-term simulation with daily values or even larger time intervals. For this purpose, it is critical, to define discharge functions with a sufficient number of supporting points.


Literature references

  1. Ostrowski, M. (1992): Ein universeller Baustein zur Simulation hydrologischer Prozesse, Wasser und Boden, Heft 11
  2. Ostrowski, M. et al. (1999): Ein universeller, nicht linearer Speicherbaustein zur Simulation hydrologischer Systeme. Institutseigene Modell- und Anwendungsbeschreibung, Institut für Wasserbau und Wasserwirtschaft, TU Darmstadt, unveröffentlicht