% Vlastni a vzajemne vypoctove impedance a admitance
% Bezporuchovy stav
Z11=i*Xd+1/(1/Zz+1/(i*Xvn+Rpv/2))
Z12=i*Xd+i*Xvn+Rpv/2+i*Xd*(i*Xvn+Rpv/2)/Zz
pause

% Svorkove napeti generatoru
Is=(Ps-i*Qs)/Unsf/3
Ug=Unsf+Is*(Rpv/2+i*Xvn)
ThetaS=angle(Ug)/pi*180

% Cinne ztraty na vnejsim cinnem odporu
% deltaPvn=3*Rpv/2*(Isc^2+Isj^2)
deltaPvn=3*Rpv/2*abs(Is)^2

% Jalove ztraty na vnejsi reaktanci
% deltaQvn=3*Xvn*(Isc^2+Isj^2)
deltaQvn=3*Xvn*abs(Is)^2

% Vystupni vykon generatoru
Pg=Pz+Ps+deltaPvn
Qg=Qz+Qs+deltaQvn
Sg=Pg-i*Qg
pause

% Elektromotoricke napeti generatoru
Ig=Sg/Ug/3
E02=Ug+Ig*(i*Xd)
Theta02=angle(E02)/pi*180
pause

% Prechodne elektromotoricke napeti generatoru
Uec=Ug+Ig*(i*Xdc)
ThetaC=angle(Uec)/pi*180
pause

% Metoda jednotkoveho proudu pro bezporuchovy stav
Is1=1;
Ug1=(i*Xvn+Rpv/2)*Is1
Iz1=Ug1/Zz
Ig1=Is1+Iz1
E1=Ug1+Ig1*i*Xd
Z11kontr=E1/Ig1
Z12kontr=E1/Is1
Uec1=Ug1+Ig1*i*Xdc

Z11c1=Uec1/Ig1
Z12c1=Uec1/Is1
Z12c1faze=angle(Z12c1)*180/pi
Pmax11=3*abs(Uec)^2/abs(Z11c1)*cos(angle(Z11c1))
Pmax21=3*abs(Uec)*Unsf/abs(Z12c1)
Pmax1=Pmax11+Pmax21

% Metoda jednotkoveho proudu pro 3f zkrat v polovine vedeni
% Prepocet trojuhelnika na hvezdu
Zpv=Rpv+i*Xpv
Za1=Zpv*(Zpv/2)/(Zpv+Zpv/2+Zpv/2)
Zb1=Zpv*(Zpv/2)/(Zpv+Zpv/2+Zpv/2)
Zc1=(Zpv/2)*(Zpv/2)/(Zpv+Zpv/2+Zpv/2)
Is2=1;
Up2=(i*(Xt2+Xs)+Zb1)*Is2
Ip2=Up2/Zc1
Ic2=Is2+Ip2
Ug2=Up2+(i*Xt2+Za1)*Ic2
Iz2=Ug2/Zz
Ig2=Ic2+Iz2
Uec2=Ug2+Ig2*i*Xdc

Z11c2=Uec2/Ig2
Z12c2=Uec2/Is2
Z12c2faze=angle(Z12c2)*180/pi
Pmax12=3*abs(Uec)^2/abs(Z11c2)*cos(angle(Z11c2))
Pmax22=3*abs(Uec)*Unsf/abs(Z12c2)
Pmax2=Pmax12+Pmax22

% Metoda jednotkoveho proudu vypnuti jedne linky vedeni
Is3=1;
Xvn3=Xt1+Xpv+Xt2+Xs
Ug3=(i*Xvn3+Rpv)*Is3
Iz3=Ug3/Zz
Ig3=Is3+Iz3
Uec3=Ug3+Ig3*i*Xdc

Z11c3=Uec3/Ig3
Z12c3=Uec3/Is3
Z12c3faze=angle(Z12c3)*180/pi
Pmax13=3*abs(Uec)^2/abs(Z11c3)*cos(angle(Z11c3))
Pmax23=3*abs(Uec)*Unsf/abs(Z12c3)
Pmax3=Pmax13+Pmax23

% Zobrazeni
Theta=0:3:90;
Pg1=Pmax11-Pmax21*cos((Theta+Z12c1faze)/180*pi);
Pg2=Pmax12-Pmax22*cos((Theta+Z12c2faze)/180*pi);
Pg3=Pmax13-Pmax23*cos((Theta+Z12c3faze)/180*pi);
plot(Theta, Pg1, Theta, Pg2, Theta, Pg3);
grid on;
