Recent Posts

pondělí 18. února 2013

Vodohospodářské řešení nádrže (využití funkce vh_reseni)

VOSO ukol 1 - Vodohospodarske reseni nadrze

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;    %pro zadanou hodnotu Pt nalezne odpovidajici Qn
Vz=24.5e6;      %objem nadrze Kruzberk
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;      %zacatek intervalu hledani
dQn=0.005;       %krok v intervalu
Qnmax=5;        %maximalni hodnota Qn v intervalu hledani

Reseni realne rady K

Hledani Qn pro zadane Pt (pomoci funkce vh_reseni_optim)
Qn=(Qnmin:dQn:Qnmax)';          %rozsah hledani Qn
for i=1:length(Qn)              %nalezeni Pt pro dana Qn
    Pt_g(i,1)=vh_reseni_optim(P,Vz,Qn(i,1));
end

% Vykresleni zavisloti mezi Pt a Qn
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];             %zapsani zavislosti do tabulky data
for j=1:length(Qn)          %hledani daneho prutoku Qn v tabulce data
    if data(j,2)>=Pt_poz
        pozice=j;
    end
end
Qn_vysl=data(pozice,1);     %vysledny hledany prutok

% Urceni vsech potrebnych hodnot pouzitim funkce vh_reseni
[ 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)';          %rozsah hledani Qn
for i=1:length(Qn)              %nalezeni Pt pro dana Qn
    Pt_gS(i,1)=vh_reseni_optim(P500,Vz,Qn(i,1));
end

% Vykresleni zavisloti mezi Pt a Qn
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];       %zapsani zavislosti do tabulky dataS
for j=1:length(Qn)      %hledani daneho prutoku Qn v tabulce dataS
    if dataS(j,2)>=Pt_poz
        pozice=j;
    end
end
Qn_vyslS=dataS(pozice,1);   %vysledny hledany prutok

% Urceni vsech potrebnych hodnot pouzitim funkce vh_reseni
[ 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]