Simulation of Storage Elements

Aus TALSIM Docs
Sprachen:
Piecewise linearized release function

The simulation of reservoirs is carried out with a newly developed module for the calculation of reservoirs, whose process functions are linear inbetween nodes. This module is based on the approach of Ostrowski (1992)[1] and is described in detail in Mehler (2000)[2]. It allows for the simultaneous solving of the continuity equation for multiple processes without complex iterations and is briefly explained below.

For a reservoir whose storage volume depends on several inflow and outflow processes, the continuity equation can be represented as follows:


[math]\displaystyle{ \frac{\mbox{d}S(t)}{\mbox{d}t} = \sum_{j=1}^m Q_{zu,j}(t) - \sum_{i=1}^n Q_{ab,i}(t) }[/math]
with:
S(t) = Storage contents of the reservoir
Qzu,j(t) = Inflow process
Qab,i(t) = Operational process
m = Number of inflow processes
n = Number of operational process

The withdrawal terms are usually non-linear functions of the storage rate (e.g. withdrawal from the soil storage tank with the process functions). These functions are linearized area by area.

[math]\displaystyle{ y(t) = A \cdot \left ( \frac{y_{i+1}-y_i}{S_{i+1}-S_i} \cdot (S(t)-S_i) + y_i \right ) }[/math]
with:
[math]\displaystyle{ A = A_1 \cdot A_l \cdot A_{l+1} \cdot \ldots \cdot A_{p-1} \cdot A_p }[/math]
y(t) = Withdrawal from reservoir
S(t) = Reservoir capacity
yi = Size of the extraction at the grid point i
Si = Reservoir capacity at the sampling point i
A = Multiplier of the process variable as product of all further dependencies
p = Number of additional dependencies

After linearization, a straight line equation can be set up for each sampling function, which is only dependent on the storage capacity. The gradient "m" of the line changes from interpolation point to interpolation point. Thus, for each function dependent on the storage rate, there is a linearized course along the storage filling. The function itself can be scaled with a constant factor (A) for each time step, which summarizes all further dependencies as product.

The continuity equation can now be reformulated to:

[math]\displaystyle{ \frac{\mbox{d}S}{\mbox{d}t} = \sum_{j=1}^m Q_{z,j}(t) + \sum_{k=1}^m y_{k,i} + \sum_{k=1}^m m_{k,i} \cdot (S(t)-S_i) }[/math]
[math]\displaystyle{ \frac{\mbox{d}S}{\mbox{d}t} = \sum_{j=1}^m Q_{z,j}(t) + \sum_{k=1}^m y_{k,i} + \mbox{C}_2 \cdot (S(t)-S_i) }[/math]
mit:
[math]\displaystyle{ \mbox{C}_2 = \sum_{k=1}^m m_{k,i} }[/math]

After multiplying out the brackets the continuity equation becomes closed:

[math]\displaystyle{ \frac{\mbox{d}S}{\mbox{d}t} + \mbox{C}_2 \cdot S(t) = \mbox{C}_1 }[/math]
with:
[math]\displaystyle{ \mbox{C}_1 = \sum_{j=1}^m Q_{z,j}(t) + \sum_{k=1}^m y_{k,i} + \mbox{C}_2 \cdot S_i }[/math]

This equation is an inhomogeneous first order linear differential equation and has the following solution:

[math]\displaystyle{ S(t) = \frac{\mbox{C}_2}{\mbox{C}_1} \cdot (1-e^{-C_1 \cdot t}) + S_0 \cdot e^{-C_1 \cdot t} }[/math]
with:
[math]\displaystyle{ S_0 = S(t=0) }[/math]


This means that the storage filling is fixed at any time. If a range transgression occurs within a time interval, the quantities C1 and C2 must be recalculated with the respective current gradients and intercept values of the range-wise linearized functions. The simultaneous calculation of the output functions is achieved by inserting the storage content equation into the respective straight line equation. Generally speaking, the average intensity of all outputs is the same:

[math]\displaystyle{ \bar{y} = \frac{1}{\Delta t} \int_{t=0}^{\Delta t} A \cdot \left [ y_i \cdot S_i + m_i \cdot \left ( \frac{C_2}{C_1} \cdot ( 1 - e^{-C_1 \cdot t} ) + S_0 \cdot e^{-C_1 \cdot t} \right ) \right ] }[/math]
[math]\displaystyle{ \bar{y} = y_i + m_i \cdot \left [ -S_i + \frac{C_2}{C_1} + (1-e^{-C_1 \cdot \Delta t}) \cdot \left ( \frac{S_0}{\Delta t \cdot C_1} - \frac{C_2}{\Delta t \cdot C_1^2} \right ) \right ] }[/math]

With this calculation scheme, all memories whose processes are to be described linearly by area can be calculated. In Talsim-NG this module is used to calculate the soil processes, the reservoirs and the transport distances.


Literature references

  1. Ostrowski, M. (1992): A universal module for the simulation of hydrological processes, water and soil, issue 11
  2. Mehler, R. (2000): Mischwasserbehandlung - Verfahren und Modellierung, Mitteilungen des Instituts für Wasserbau und Wasserwirtschaft der TU Darmstadt, Heft 113