function [pt2,Tt2,m2,V2,V2e,p2,T2,T2e,A2]=dysza(pt1,Tt1,m1,sn,ph,rd)

% funkcja realizuje obliczenia dla dyszy zbie¿nej i zbie¿no-rozbie¿nej.
% zmienne rd definiuje rodzaj dyszy rd='z' -dysza zbie¿na, rd='r' dysza
% zbie¿no-rozbie¿na. Gdy przez dyszê nastêpuje przp³yw powietrza druga 
% zmienna powinna byæ p, dla obliczeñ dopalacza, druga zmienna 'a' lub 'd'
% np  rd ='zp' - dysza zbie¿na powietrze lub 'rp' - dysza zbie¿no-rozbiezna
% powietrze
% dla spalin nie trzeba dodawaæ dodarkowej zmiennej lub mo¿e byæ
% u¿yta zmienna 's' zamiast p np rd='zs' lub 'rs' lub 'rd' dla dopalacza,
% Dla dyszy zbie¿no rozbieznej sn - wspó³czynnik strat ciœnienia w dyszy
% powienien byæ dwuelementowy sn=[sn1, sn2], gdzie sn1- wspólczynnik strat
% ciœnienia dla ca³ej dyszy, sn2- wspólczynnik strt ciœnienia w dyszy do
% przekroju minimalnego np sn=[0.97, 0.98]
% Parametry wyjœciowe z indeksem e - parametry po rozprê¿niu do ciœnienia
% otoczenia, 
% A2=[A2_1, A2_2] - A2_1 - pole przekroju wylotowego dyszy, A2_2 - pole
% przekroju minimalnego dyszy


% W³aœciwoœci spalin - u¿ywane w obliczeniach standardowych
k=1.33;
R=290;
cp=1180;

% Modyfikacja w³aœciwoœci zpalin w zale¿noœci czy jest powietrze czy
% w³aczony dpalacz
if length(rd)==2
    if rd(2)=='p'
        k=1.4;
        cp=1005;
        R=287;
    elseif rd(2)=='A' || rd(2)=='d' || rd(2)=='a' || rd(2)=='D'
        k=1.3;
        cp=1220;
        R=297;
    end
end

m2=m1;
Tt2=Tt1;
m=m1;


pt2=pt1*sn(1);
bet=((k+1)/2).^(k/(k-1));
if pt2<ph
    T2=NaN;
    T2e=NaN;
    pt2=NaN;
    p2=NaN;
    V2=NaN;
    V2e=NaN;
    A2=[NaN,NaN];
else


    if rd(1)=='z' && ((pt2/ph)>=bet)
        % OBLICZENIA DYSZY ZBIE¯NEJ
        %rozprê¿ obliczany do warunków krytycznego przep³ywu
        p2=pt2/bet;
        T2=Tt1*2/(k+1);
        V2=sqrt(2*cp*(Tt1-T2));
        ro2=p2/R/T2;
        A_min=m/(ro2*V2);
        V2e=V2+(p2-ph)/ro2/V2;
        T2e=Tt2-V2e^2/2/cp;
        A2=[A_min,A_min];
    elseif rd(1)=='z'
        % rozprê¿ zupe³ny w dyszy
        p2=ph;
        T2=Tt1*(p2/pt2).^((k-1)/k);
        V2=sqrt(2*cp*(Tt1-T2));
        ro2=p2/R/T2;
        A_min=m/(ro2*V2);
        V2e=V2;
        T2e=T2;
        A2=[A_min,A_min];
    else
        % OBLICZENIA DYSZY ZBIE¯NO-ROZBIE¯NEJ
        % obliczenia przekroju krytycznego za³o¿ono wartoœæ strat ciœnienia
        p2kr=pt1*sn(2)/bet;
        T2kr=Tt1*2/(k+1);
        V2kr=sqrt(k*R*T2kr);
        A_min=m/(p2kr/R/T2kr*V2kr);
        %koniec obliczeñ przekroju krytycznego
        p2=ph;
        T2=Tt1*(p2/pt2).^((k-1)/k);
        V2=sqrt(2*cp*(Tt1-T2));
        A2=m/p2/V2*R*T2;
        V2e=V2; 
        T2e=T2;
        A2=[A2,A_min];
    end
end
    