$HistoryLength=2;
Off[General::"spell1",General::"newpkg",General::"obspkg",FindRoot::"lstol"];
<<Calculus`VectorAnalysis`;
<<Miscellaneous`PhysicalConstants`;

hd=3600;
den=24*hd;
Odklon=180; (*stupnu od jihu| V- Z+ , zmenil jsem kvuli navazujicim definicim*)

d=160; (*poradi dne v roce*)
zs=50; (*rovnobezka*)
α=0;(*úhel normály od vodorovné roviny*)

(*tady se pocita normala vyhodnocovane roviny v souradnicich J,Z,h; velikost vektoru=1*)
Normala:={Cos[α*(Pi/180) ]*Cos[Odklon*(Pi/180.) ],Cos[α*(Pi/180.) ]*Sin[Odklon*(Pi/180.) ],Sin[α*(Pi/180.) ]} 

Normala;
de[d_]:=-23.5*Cos[((2Pi)/360)*(30+d-21)];
(*tady se pocita poloha slunce v souradnicich J,Z,h; velikost vektoru=1*)
SlunceJ[d_,hod_,zs_]:=Cos[Pi-((2*Pi)*hod)/24]*Cos[ArcSin[Sin[((2Pi)/360)de[d]]*Sin[zs((2Pi)/360)]+Cos[((2Pi)/360)de[d]]*Cos[zs((2Pi)/360)]*Cos [((2Pi)/360)15*(hod-12)]]];
SlunceZ[d_,hod_,zs_]:=Cos[ArcSin[Sin[((2Pi)/360)de[d]]*Sin[zs((2Pi)/360)]+Cos[((2Pi)/360)de[d]]*Cos[zs((2Pi)/360)]*Cos [((2Pi)/360)15*(hod-12)]] ]*(-Sin[Pi-((2*Pi)*hd*hod)/den ]);
SlunceH[d_,hod_,zs_]:=Sin[ArcSin[Sin[((2Pi)/360)de[d]]*Sin[zs((2Pi)/360)]+Cos[((2Pi)/360)de[d]]*Cos[zs((2Pi)/360)]*Cos [((2Pi)/360)15*(hod-12)]] ] ;
(*tady se pocita ucinnost, prvni clen osetruje pokles slunce pod obzor, druhy clen osetruje zapornou ucinnost jako takovou, cili hlavne svícení z druhé strany...*)
Ucinnost=(0.5+0.5*Sign[ArcSin[Sin[((2Pi)/360)de[d]]*Sin[zs((2Pi)/360)]+Cos[((2Pi)/360)de[d]]*Cos[zs((2Pi)/360)]*Cos [((2Pi)/360)15*(hodin-12)]]])*(0.5+0.5*Sign[((Normala[[1]]*SlunceJ[d,hodin,zs])+(Normala[[2]]*SlunceZ[d,hodin,zs])+(Normala[[3]]*SlunceH[d,hodin,zs]))])*((Normala[[1]]*SlunceJ[d,hodin,zs])+(Normala[[2]]*SlunceZ[d,hodin,zs])+(Normala[[3]]*SlunceH[d,hodin,zs]));

Plot[Ucinnost,{hodin,0,24}]