Využití Matlabu v problematice zjištění optimálního objemu dané nádrže pro zadanou zabezpečenost podle trvání v závislosti na zvoleném nadlepšeném odtoku. Tento skript využívá předem definovanou funkci vh_reseni, která tuto problematiku konkrétně řeší, a která požaduje tři vstupní údaje (průtoková řada, objem nádrže, nadlepšený odtok) a vrací hodnotu zabezpečenosti. Níže uvedený skript se tedy pokouší využít výše uvedené funkce k tomu, aby pro konkrétní zabezpečenost našel odpovídající nadlepšený odtok z nádrže. Z důvodu nespojité závislosti zabezpečenosti a nadlepšených průtoků bylo zvoleno řešení vybírající správnou hodnotu z tabulky předem vypočtených nadlepšených průtoků v závislosti na zvolené zabezpečenosti (průběh viz Gr. 1 a 4).
(Matlabovské soubory jsou ke stažení zde. )
Vodohospodarske reseni nadrze (VOSO_1)
Skript spousti funkce:
- vh_reseni - nalezne pro dane P,Vz a Qn zabezpecenosti Pt,
Po a vykresli graf prubehu pritoku a graf prubehu objemu vody v
nadrzi
- vh_reseni optim - osekana funkce vh_reseni vraci pouze Pt
a nevykresluje zadne grafy
Dale nacte mesicni prutokove rady K a K500, pro ktere na nadrzi
Kruzberk(Vz=24.5 mil m^3) urci pro pozadovanou zabezpecenost podle trvani Pt
odpovidajici nalepseny prutok Qn, a to jak pro realnou radu prutoku K, tak pro
syntetickou radu K500. Mimo jine tez vykresli do grafu zavislost mezi
zabezpecenosti Pt a nalepsenym prutokem Qn.
Rucni zmena zabezpecenosti Pt se provadi v sekci 'VSTUPNI UDAJE' v radku
oznacujicim pozadovanou zabezpecenost Pt_poz.
Contents
Zadani
Ukolem je nalezt pro zabezpecenost 98,5 % odpovidajici nadlepseny odtok z
nadrze.
clc;clear;close all hidden;
set(0,'DefaultFigureWindowStyle','docked');
VSTUPNI UDAJE
Pt_poz=98.5;
Vz=24.5e6;
Import datovych rad mesicnich prutoku
K= importdata('K.DAT');
K500=importdata('K500.DAT');
P=do_sloupce(K);
P500=do_sloupce(K500);
Interval hledani Qn
Qnmin=0.1;
dQn=0.005;
Qnmax=5;
Reseni realne rady K
Hledani Qn pro zadane Pt (pomoci funkce
vh_reseni_optim)
Qn=(Qnmin:dQn:Qnmax)';
for i=1:length(Qn)
Pt_g(i,1)=vh_reseni_optim(P,Vz,Qn(i,1));
end
figure(1)
plot(Qn,Pt_g,'ro');
grid on; text('interpreter','tex','String','');
title('Zavislost mezi P_t a Q_n','FontWeight','bold','FontSize',14);
xlabel('Nadlepseny prutok Q_n [m^3.s^{-1}]');
ylabel('Zabezpecenost podle trvani P_t [%]');
data=[Qn,Pt_g];
for j=1:length(Qn)
if data(j,2)>=Pt_poz
pozice=j;
end
end
Qn_vysl=data(pozice,1);
[ Pt,Po, por_mes,por_rok ]=vh_reseni(P,Vz,Qn_vysl);
 |
Gr. 1: Průběh závislosti zabezpečenosti podle trvání v souvislosti se zvoleným nadlepšeným odtokem |
 |
Gr. 2: Průběh stavu objemu vody v nádrži v milionech m^3 během modelovaných třiceti let |
 |
Gr. 3: Průtoková řada přítoku do nádrže pro období třiceti let |
ULOZENI A ZOBRAZENI VYSLEDKU
realna(:,1)={['Pt'];['Po']; ['poruchy_mesicni'];['poruchy_rocni'];...
['nadlepseny prutok']};
realna(:,2)={[Pt];[Po]; [por_mes];[por_rok];[Qn_vysl]};
disp('Realna rada');
disp(realna);
Realna rada
'Pt' [98.6959]
'Po' [91.1184]
'poruchy_mesicni' [ 4]
'poruchy_rocni' [ 2]
'nadlepseny prutok' [ 2.1300]
Reseni synteticke rady K500
Hledani Qn pro zadane Pt (pomoci funkce
vh_reseni_optim)
Qn=(Qnmin:dQn:Qnmax)';
for i=1:length(Qn)
Pt_gS(i,1)=vh_reseni_optim(P500,Vz,Qn(i,1));
end
figure(4)
plot(Qn,Pt_gS,'bo');
grid on
title('Zavislost mezi P_t a Q_n','FontWeight','bold','FontSize',14);
xlabel('Nadlepsený prutok Q_n [m^3.s^{-1}]');
ylabel('Zabezpecenost podle trvani P_t [%]');
dataS=[Qn,Pt_gS];
for j=1:length(Qn)
if dataS(j,2)>=Pt_poz
pozice=j;
end
end
Qn_vyslS=dataS(pozice,1);
[ Pts,Pos, por_mess,por_roks ]=vh_reseni(P500,Vz,Qn_vyslS);
 |
Gr. 4: Průběh zabezpečenosti podle trvání v souvislosti se zvoleným nadlepšeným odtokem (syntetická řada) |
 |
Gr. 5: Průběh stavu objemu vody v nádrži v milionech m^3 během modelovaných třiceti let (syntetická řada) |
 |
Gr. 6: Průtoková řada přítoku do nádrže pro období třiceti let (syntetická řada) |
ULOZENI A ZOBRAZENI VYSLEDKU
synteticka(:,1)={['Pt'];['Po']; ['poruchy_mesicni'];['poruchy_rocni'];...
['nadlepseny prutok']};
synteticka(:,2)={[Pts];[Pos]; [por_mess];[por_roks];[Qn_vyslS]};
disp('Synteticka rada');
disp(synteticka);
Synteticka rada
'Pt' [98.5218]
'Po' [89.4684]
'poruchy_mesicni' [ 88]
'poruchy_rocni' [ 52]
'nadlepseny prutok' [ 2.4400]