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
    