Program elektrolýza

Načítání vstupních hodnot z excelu

SetDirectory[NotebookDirectory[]];
loadDiagram=Import["data.xlsx"][[1]];

vykony=(Last/@loadDiagram);
uroven=Max[vykony];(*max hodnota v dennim diagramu v MWh*)
vyroba=ConstantArray[0,Length[vykony]]; (*nove pole*)
maximalniVyroba=10.5; (*maximalni vyroba elektrolyzeru, kazdy elektrolyzer 3,5 MW (3*3,5MW)*)

(*Vytupem for cyklu je diagram vyroby elektrolyzeru*)
For[i=1,i<8760,i++,aktualniVyroba=uroven-vykony[[i]];
If[aktualniVyroba≥maximalniVyroba,vyroba[[i]]=maximalniVyroba,vyroba[[i]]=aktualniVyroba
]
]

ListStepPlot[vykony];
ListStepPlot[vyroba,Filling->Axis,AxesLabel->{"h","MW"},GridLines->Automatic]
vyrobaCelkem=Total[vyroba];

cenaMWh=1300;(*naklady na elektrinu v CZK za 1 MWh*)
cenaH2=12;(*vykupni cena vodiku v CZK za 1Nm3 H2*)
cenaO2=6;(*vykupni cena kysliku v CZK za 1Nm3 O2*)
cenaH2O=0.1;(*cena H2O v CZK za 1 litr*)
spotrebaH2O=0.85;(* minimum je  0,8 l + ztraty; spotreba H2O na vyrobu 1Nm3 H2*)
vyrobaH2=4.6;(*spotreba kWh na vyrobu 1Nm3 H2*)
mnozstviH2=vyrobaCelkem/(vyrobaH2*0.001);(*vyrobene mnozstvi H2 v Nm3*)
mnozstviO2=mnozstviH2/2;(*vyrobene mnozstvi O2 v Nm3*)
vydajeElektrina=vyrobaCelkem*cenaMWh;(*celkove vydaje za elektrinu na elektrolyzu*)
vydajeH2O=mnozstviH2*spotrebaH2O*cenaH2O;(*vydaje za destilovanou vodu*)
prijmyVodik=mnozstviH2*cenaH2;(*prijmy z vyrobeneho vodiku*)
prijmyKyslik=mnozstviO2*cenaO2;(*prijmy z vyrobeneho kysliku*)
vodik1MWh=mnozstviH2/vyrobaCelkem;
a=vodik1MWh*maximalniVyroba;

Náklady na stlačení a přepravu H2, O2

bar=(10^5);
p1=30bar;(*vystupni tlak z elektrolyzeru 30 baru*)
κ=1.4;(*pocet stupnu volnosti pro H2 a O2*)
cenaZaKWh=5;
eps=0.1;
objem=vodik1MWh*1.5/12;(*mnozstvi vodiku a kysliku na 1MWh podeleny normovanym mnozstvim*)
n=4;(*pocet stupnu kompresoru*)

kamionCena=30000;(*cena prevozu 30 Kč/km vzdálenost (1000 Km)*)
objemPoStlaceniP1=((objem*bar)/p1);(*objem po stlaceni*)
prevezenyObjemSkut=20;(*kamion uveze 20m3*)

Cena[p2_,V1_]:=((((p1*((V1*bar)/p1))/(κ-1))*(((((p2/p1)))^((κ-1)/κ))-1))/(3.6*(10^6)*0.5(1-eps*(((((p2/p1)))^(1/n))-1))))*cenaZaKWh+(kamionCena/(prevezenyObjemSkut*(p2/(1bar))))*V1 (*cena stlaceni + cena prevozu*)
vydajeDaS=Cena[200bar,objem];(*vydaje na stlaceni plynu na 200 baru a prevoz plynu, vystupem je cena za 1 MWh*)


Plot[Cena[p2,objem],{p2,12bar,10000bar},AxesLabel->{"tlak","CZK/MW"},GridLines->Automatic]

((p2/.FindMinimum[Cena[p2,objem],{p2,1000 }][[2]])/bar);

cashflow=prijmyKyslik+prijmyVodik-vydajeElektrina-vydajeH2O-vydajeDaS*vyrobaCelkem;

Print ["Množství vyrobeného H2: ",mnozstviH2,"  Nm3."]
Print ["Množství vyrobeného O2: ",mnozstviO2,"  Nm3."]
Print ["Cena stlačení a dopravy je: ",vydajeDaS,"  Kč/MWh."]
Print ["Roční příjmy z prodeje H2 a O2 jsou: ",cashflow/1000000,"  mil. Kč."]
Print ["Roční spotřeba elektrické energie v elektrolyzéru je: ",vyrobaCelkem/1000," GWh."]