Staudamm: Überflutung bestimmen mit Hilfe der Integralrechnung

Aus Wikiversity

Integrative Staudammüberflutung

(A1) Modellierungsthema[Bearbeiten]

Der Nangbeto-Staudamm staut den Mono, den größten Fluss des westafrikanischen Staates Togo.Der Stausee liegt bei Atakpame nahe der Grenze zu Benin. Der Damm ist ein Partnerprojekt zur Bewässerung und zur Erzeugung von Strom aus Wasserkraft zwischen Togo und dem benachbarten Staat Benin und wurde 1987 fertiggestellt. Jährlich liefert das Wasserkraftwerk zwischen 230 Millionen kWh und (1991) 150 Millionen kWh. Die Errichtung erfolgte hauptsächlich durch das deutsche Bauunternehmen Hochtief AG, die Finanzierung des 110 Millionen DM teuren Vorhabens erfolgte größtenteils durch Kredite unter anderem durch die Kreditanstalt für Wiederaufbau, der Weltbank, des Afrikanischen Entwicklungsfonds und auch aus Entwicklungshilfe.


Einige Faktoren/ Daten müssen dabei beachtet/ eingeholt werden:[Bearbeiten]

(vereinfachte Darstellung)

  • Niederschlagswerte
  • Größe (H,L,B) des Staudamms
  • Volumen des Stausees
  • Koordinaten des Stausees in geographischen Längen und Breite
  • Höhe über dem Meeresspiegel

Ziel[Bearbeiten]

Der Staudamm wurde aus einen nützlichen Zweck gebaut (Bewässerung und Erzeugung von Strom aus Wasserkraft zwischen Togo und Benin). Nun möchte ich untersuchen, wie viel Regenwasser fallen muss, bis der Stauinhalt überfüllt ist und der Stausee über den Staudamm fließt um die Dörfer überflutet. Weiterhin möchte ich bestimmen, wie lange dieser Vorgang dauern würde.

(A3) Niveauzuordnung[Bearbeiten]

Sekundarstufe 1[Bearbeiten]

  • Geometrie (Geraden)
  • Zahlenbereicherweiterung (leichte Aufgaben wie: 1168/12)

Sekundarstufe 2[Bearbeiten]

  • Excel (Extrapolieren)
  • Lineare Algebra (Matrizen,Vetoren)
  • Analysis (Intervalle)

Universität[Bearbeiten]

  • Matlab (Plotten)

(A2) Modellierungszyklen[Bearbeiten]

Zyklus 1[Bearbeiten]

Für unseren ersten Plot verwenden wir die Software MATLAB, um später eine Abbildung zu erhalten.

Input eingeben[Bearbeiten]

In der Input-Eingabe werden die Voraussetzungen festgelegt.

Die Ausgangshöhe

  • Ausgangshöhe h(1) in m
  • h in m
 h(0)= 40
  • t in Monate

t_step=1
t_max=12
h_step=0.1


(A6) Daten importieren[Bearbeiten]

Mit Hilfe eines Dozenten erhielten wir die geographische Daten (Längen- und Breitengrad) zu unserem Stausee.

Import_Data

geographische Daten


Dies ist nur ein kleiner Ausschnitt von der ganzen Datei (Seite 1 von 1615). Diese Daten (x- und y- Werte) haben wir in der Software MATLAB importiert.

Als Kontrolle haben wir mit Hilfe von GoogleMaps die Eckpunkte der geographischen Daten ermittelt.


Nangebto-Stausee Eckdaten


(A6) Rohdaten bearbeiten[Bearbeiten]

Dazu schauen wir uns die Rohdaten der geographischen Daten nochmal an (Längen- und Breitengrad). Nun definieren wir V_x als die erste Spalte der geographischen Daten, so wie V_y als die erste Zeile der geographischen Daten. M_z ist die Matrix der übrig gebliebenen Daten.

  • l= tdd(2:end), 1)
 M_z= tdd(2:end, 2:end-1)
  • GPS- Koordinaten aus den Rohdaten
  • V_y= tdd(1,2:end-1)
  • V_x=tdd(2:end,1)
  • V_x und V_y in m
 V_x= linspace (0,31,39•1000,1024)
 V_y=linspace (0,20,78•1000,676)
 V_x=fliplr(V_x)
 red_face=10
 V_x_red=V_x(1:red_fac:end)
 V_y_red=V_y(1:red_fac:end)
 M_z_red=M_z(1:red_fac:end,1:red_fac:end)


Entfernung- Luftlinie

 V_x= V_x_red
 V_y= V_y_red
 M_z= M_z_red

Surface Plot[Bearbeiten]

Aus den Vektoren V_x und V_y haben wir eine Matrix erstellt, sodass weitere Aufgaben mit Matrizen berechnet werden können.

[V_x,V_y]= meshgrid(V_x,V_y)
figure(1) surf (V_x, V_y, M_z)

Des Weiteren haben wir die Farbgebung festgelegt (in 7 Stufen).

colormap (Parula(7))
cb=colorbar
zlab=get(cb,'ylabel')
set (zlab, 'string', 'Höhe/m')
caxis([0 250])
xlabel('x/m')
ylabel('y/m')
zlabel('z/m')
view(2)


Plot Nangbeto-Stausee
Plot Nangbeto-Stausee
Vergleichsbild mit Plot
Vergleichsbild mit Plot



2. Zyklus[Bearbeiten]

Niederschlagswerte berechnen[Bearbeiten]

Im unten angegeben Link sind die durchschnittliche Niederschlagswerte (1987/2017)in mm pro Jahr von Togo.
Der durchschnittliche Niederschlagswert liegt bei 1168 Liter pro Quadratmeter.
Da der Wert nur den jährlichen Niederschlag angibt, haben wir diesen Wert durch 12 dividiert. Somit erhalten wir einen Niederschlagswert pro Monat.

 a=1168/12
r_regen_mm=[a,a,a,a,a,a,a,a,a,a,a,a]
  • regen [m/m^2] : r_regen_mm
 r_regen = r_regen_mm ./ 1000 ;
 r_regeng=[r_regen,r_regen,r_regen,r_regen,r_regen,r_regen,r_regen,r_regen,r_regen,r_regen];

Anschließend werden die Voraussetzungen für das Volumen des Regenwassers festgelegt.

  • Regen volumen Wasser
 V_regen = zeros(t_max,1);
 t=[1:1:120];
 figure(2);
 plot(t,r_regeng);
  • axis([0 0.0120 0 0.0120])
 xlabel('t [Monate]') ;
 ylabel('Regen [m/m^2]');
 grid minor;

Togo Niederschlagswerte

Konstante berechnen[Bearbeiten]

 verdunstung_day = zeros(1,100*12);
  • Verdunstung Volumen per month: V_verdunstung_day [m^3/month]
 V_verdunstung = zeros(1,100*12);
  • Temperatur Luft [C]
 T_C = [20,20,20,20,20,20,20,20,20,20,20,20];
 V_T_C = repmat(T_C,1,100)
  • Empirische Monatsfaktoren: f_mon [mm/d]
 f_mon = [0.22 0.22 0.22 0.29 0.29 0.28  0.26 0.25 0.23 0.22 0.22 0.22]
 V_f_mon = repmat(f_mon,1,100);
  • Luftdruck: p_a [hPa]
 p_a =0.01;
 for i =1:1:100*12
  • Saettigungsdampfdruck der Luft: e_sat [hPa]
 p_sat = 6.11*10^(7.48 * V_T_C(i)/(237+V_T_C(i)));
 verdunstung_day(i) = V_f_mon(i) *(p_sat - p_a);% kommt ein vektor raus
 end
 Verdunstung: V_verdunstung [m/month]
 verdunstung_month = verdunstung_day /1000;

3. Zyklus[Bearbeiten]

Berechnung der Oberfläche eines einzelnen Segments A_single[Bearbeiten]

x_max = 31.39*1000
y_max = 20.78*1000
n_x = length(V_x)
n_y = length(V_y)
l_x = x_max / n_x
l_y = y_max / n_y
A_single = l_x * l_y

Wasserpegel zum Ausgangszeitpunkt t(1)[Bearbeiten]

 M_z1 = M_z
  • Angabe Höhe h Wasser über Meeresspiegel [m]
 h_wasser = zeros(t_max,1);
  • min Höhe Boden
 h_min_b = min(min(M_z1))
h_wasser(1) = h_min_b + h0
for i = 1:length(V_y)
for j =1:length(V_x) if M_z1(i,j) > h_wasser(1) M_z1(i,j) = h_wasser(1); end end end
  • Berechnung Volumen Boden V_B1 unter der Höhe h_wasser
 V_B1_matrix = M_z1 .* A_single
V_B1 = zeros(t_max,1) V_B1(1)= sum(sum(V_B1_matrix))
  • Berechnung gesamtes Volumen V_G2 (Wasser + Boden) unter der Höhe
 V_G2_matrix = h_wasser(1) * ones(length(V_y),length(V_x)) .* A_single
V_G2(1)= sum(sum(V_G2_matrix))
  • Berechnung Volumen Wasser V_w
 V_wasser = zeros(t_max,1)
 V_wasser(1) = V_G2(1) - V_B1(1)


  • Berechnung Oberfläche Wasser A_wasser
 A_wasser = zeros(t_max,1)
 n_Aw = 0
 for i = 1:length(V_y)
   for j =1:length(V_x)
       if M_z(i,j) <= h_wasser(1)
           n_Aw = n_Aw +1
       end
   end

end A_wasser(1) = n_Aw * A_single

Wasserpegel zu den weiteren Zeitpunkten t(:)

disp(['time: ', num2str(1), '[Monat]']) disp(['Volumen Wasser: ', num2str(V_wasser(1)), '[m^3]']) disp(['Ausgangshöhe Wasserpegel über Meeresspiegel: ', num2str(h_wasser(1)), '[m]']) for k = 2:t_step:t_max

   t(k) = k;
   M_z1 = M_z;
   
   
  • Bestimmung Volumen Wasser durch Regenfall
 V_regen(k-1) = r_regeng(k-1) .* A_wasser(k-1);
  • Bestimmung Volumen Wasser durch Verdunstung
 V_verdunstung(k-1) = verdunstung_month(k-1) .* A_wasser(k-1);
  • Bestimmung Wasser im Staussee
 V_wasser(k) = V_wasser(k-1) + V_regen(k-1) - V_verdunstung(k-1);
  • Iteratives Bestimmen des Wasserpegels
 V_wasser_temp = V_wasser(k-1);
 h_temp = h_wasser(k-1);

isp(['time: ', num2str(k), '[Monate]']);

   disp(['Volumen Wasser im Staussee: ', num2str(V_wasser(k)/1000000), '[Mio m^3]']);
   disp(['Volumen Regen: ', num2str(V_regen(k-1)/1000000), '[Mio m^3]']);
   disp(['Volumen verdunstetes Wasser: ', num2str(V_verdunstung(k-1)/1000000), '[Mio m^3]']);
   disp('Beginn Iteration: ');
   Iter_zaehler = 1;
   while V_wasser_temp < V_wasser(k)
       %         disp(['time: ', num2str(k),' Iteration : ', num2str(Iter_zaehler) ]);
       h_temp = h_temp + h_step;
       M_z1 = M_z;
       for i = 1:length(V_y)
           for j =1:length(V_x)
               if M_z1(i,j) > h_temp
                   M_z1(i,j) = h_temp;
               end
           end
       end
  • Berechnung Volumen Boden V_B1 unter der Höhe h
 V_B1_matrix_temp = M_z1 .* A_single;
 V_B1_temp= sum(sum(V_B1_matrix_temp));
  • Berechnung gesamtes Volumen V_G2 (Wasser + Boden) unter der Höhe h
 V_G2_matrix_temp = h_temp * ones(length(V_y),length(V_x)) .* A_single;
 V_G2_temp= sum(sum(V_G2_matrix_temp));
  • Berechnung Volumen Wasser V_w
 V_wasser_temp = V_G2_temp - V_B1_temp;
  • disp(['Höhe Wasserpegel _temp: ', num2str(h_temp), '[m]']);
  • disp(['Volumen Wasser _temp: ', num2str(V_wasser_temp), '[m^3]']);
 Iter_zaehler = Iter_zaehler +1;
   
   n_Iterationen = Iter_zaehler;
   h_wasser(k) = h_temp;
  • Bestimmung Oberfläche Wasser A_wasser über Zeit t
 n_Aw = 0;
 for i = 1:length(V_y)
 for j =1:length(V_x)
 if M_z(i,j) <= h_wasser(k)
 n_Aw = n_Aw +1;
           end
       end
   end
 A_wasser(k) = n_Aw * A_single;
 disp(['Anzahl Iterationen: ', num2str(n_Iterationen)]);
 disp(['Höhe Wasserpegel über Meeresspiegel: ', num2str(h_wasser(k)), '[m]']);
 disp(['Höhe Talsohle: ', num2str(h_wasser(k)-h_min_b), '[m]']);
   
  • Plot Wasserstand zu jedem Zeitpunkt t
 M_w1 = M_z;
 for i = 1:length(V_y)
 for j =1:length(V_x)
 if M_w1(i,j) > h_wasser(k)
               M_w1(i,j) = 9999;
           end
       end
   end
   figure(k);
   title(['time: ', num2str(k), '[Monate]']);
   surf(V_X,V_Y,M_w1)
   colormap(parula(7));
   cb= colorbar;%('vert');
   zlab = get(cb,'ylabel');
   set(zlab,'String','Höhe /m');
   caxis([0 500]);
   xlabel('x /m');
   ylabel('y /m');
   zlabel('Höhe /m');
   view(2);
   
  • Ausgabe werte
  • Stauseetiefe h_wasser2 über t [m]
 h_wasser2 = h_wasser - h_min_b;
  • Volumen Wasser im Stausee über t[m^3]
 V_wasser;
  • Volumen regenfall über Stausee über t[m^3]
 V_regen;
  • Volumen verdunstung über Stausee über t[m^3]
 V_verdunstung;

(A4) Zuordnung des Themas zu den Nachhaltigkeitszielen der Vereinten Nationen[Bearbeiten]

  • SDG6: Clean Water and Sanitation
  • SDG7: Affordable and Clean Energy
  • SDG8: Decent Work and Economic Growth
  • SDG10: Reduced Inequalities
  • SDG13: Climate Action
  • SDG17: Partnerships for the Goals


(A5) Literatur[Bearbeiten]

https://www.tu-braunschweig.de/Medien-DB/geooekologie/nachtrag-verdunstung.pdf
https://de.theglobaleconomy.com/Togo/precipitation/
https://en.wikiversity.org/wiki/Sustainable_Development_Goals
https://de.wikipedia.org/wiki/Nangbeto-Staudamm
die Verdunstung freier Wasseroberflächen; Ufo Naturwissenschaft Band 201; Atelier für Gestaltung und Verlag, 2000
Prof. Dr. M. Schöniger (TU Carolo Wilhelmina, Braunschweig) & Prof. Dr.-Ing. H. Wittenberg (FHNON, Suderburg), Hydrologie I (Nachtrag: Verdunstug)
https://www.google.de/maps/place/Nangbeto-Staudamm/@7.4236108,1.4315232,2887m/data=!3m2!1e3!4b1!4m5!3m4!1s0x1025c21ce9d18b43:0xdc8afb6f504f004a!8m2!3d7.423611!4d1.440278