%function handles = getFlughoehe(handles)
% r = handles.Rumpflaenge; %## der wert von "handles.scale" wird in die locale Variable "scale" geschrieben um schreibarbeit zu sparen. 
% d = handles.durchmesser; %## der wert von "handles.scale" wird in die locale Variable "scale" geschrieben um schreibarbeit zu sparen. 
% l = handles.laenge_der_nase;
% h = handles.hinterkantenpfeilung;
% v = handles.vorderkantenpfeilung;
% f = handles.flaechenverhaeltnis;
% s = handles.streckung_der_flossen; % this is the Streckung

r=45;
d=3;
l=15;
h=12;
v=45;
f=0.3;
s=0.4;

Ak = d*r;
An = 2*(d^3/24+d*l/2);%(pi*d/(12*l^2))*((((d/2)^2+(2*l)^2)^(3/2))-(d/2)^3);
Alat = Ak +An;
Alw = f*Alat;

Aflo = Alw/3;

sp = sqrt((s*Aflo)/4); % this is the Spannweite

% Create yv and yh variables to avoid write them once and other again
yv = sp*tan(v*pi/180); %oposite side to vor... angle
yh = sp*tan(h*pi/180); %oposite side to hinter... angle
% the Flossen area is divided in 3 more to get lather li and la
A1 = (sp*yv)/2; %Area made for sp and the vor... angle
A2 = (sp*yh)/2; %Area made for sp and the hinter... angle
A3 = Aflo-A1-A2; %Get rectangle area
m = A3/sp; %Get m from the rectangle area and sp (m ist die Ldnge von der rechteckigen Teilfldche)

% Calculation of lm
li = m+yv;
la = m+yh;
lm = (li+la)/2;

Aref = pi*(d/2)^2;

m_nase = (1*pi*d^2*l*0.0335)/(2*4);
m_rumpf = r*0.705;
m_leitwerk = (3*(li+la)*s*0.0706)/2;
m_motor = 16.6;
m_fallschirm = 10;
m_motorhalterung = 2;
m_tuch = 4.5;
m_leitrohr = 0.5;
m_trennstelle = 2;
m_kamera = 19.5;
m_hoehenlogger = 7.5;

% if (handles.kameralogger == 'k')
m_ges = m_nase+m_rumpf+m_leitwerk+m_motor+m_fallschirm+m_motorhalterung+m_tuch+m_leitrohr+m_trennstelle+m_kamera;
m_start = m_ges*1.1;
% end
% 
% if (handles.kameralogger == 'h')
% m_ges = m_nase+m_rumpf+m_leitwerk+m_motor+m_fallschirm+m_motorhalterung+m_tuch+m_leitrohr+m_trennstelle+m_hoehenlogger;
% end

% k_ru der empirische Faktor.
k_ru = (2.2*d^(1.5)/r^(1.5))+(3.8*d^(3)/r^(3));
% rho_l ist die Luftdichte nach ISA auf MSL.
rho_l = 0.000001225;
% nue_0 ist die dynamische Viskositdt zum Zeitpunkt 0.
nue_0 = 17.17*10^(-6);
% t ist die Temperatur in Kelvin (ISA auf MSL)
t = 288.15;
%nue ist die dynamische Viskositdt.
nue = nue_0*((t/273.15)^0.76);
% u ist die mittlere Geschwindigkeit.
u = 3000;
% lg ist die Gesamtldnge.
lg = l +r;
% re ist die Reynoldszahl.
re = (u*lg*rho_l)/nue;
% cf_tr ist der Reibungswiderstand (turbulent).
cf_tr = 0.455/(log(re)^(2.58));
% cw_rmin ist Widerstandbeiwert Rumpf.  
cw_rmin = cf_tr*(1+k_ru);
% k_fl der empirische Faktor.
k_fl = 2.7*(0.3/lm)+100*(0.3/lm)^4;
% re_f ist die Reynoldszahl f|r die Flosse.
re_f = (u*lm*rho_l)/nue;
%cf_tf ist der Reibungswiderstand (turbulent).
cf_tf = 0.455/(log(re_f)^(2.58));
% Winkel phi_50.
phi_50 = atan((tan(v*pi/180)*sp+(la/2)-(li/2))/sp);
% cw_fmin ist der Widerstandsbeiwert f|r die Flosse.
cw_fmin = cf_tf * (1+k_fl*(cos(phi_50*pi/180)^2));
% cw_ges ist der Gesamtwiderstandsbeiwert.
cw_ges = cw_rmin*((2*pi*(d/2)*r)/(pi*((d^2)/4)))+3*cw_fmin*(((la+li)*sp/2)/(pi*((d^2)/4)));


% Zeit und Schubwerte in Vektoren.
t = [0 1/6 2/6 3/6 4/6 5/6 1 7/6 8/6 9/6 10/6 11/6 2 13/6 14/6];
schub = [0 0.0034335 0.20601 1.30473 4.174155 7.048485 7.20054 5.478885 3.399165 1.67751 0.65727 0.22563 0.083385 0.024525 0];
% t_b ist die Brenndauer
t_b = 14/6;
% Fallbeschleunigung innerhalb der Erdatmosphäre in cm/s^2.
g=9.81;
% Der Winkel gamma bleibt während der Schubphase konstant 85 grad.
gamma=85*pi/180;
% Masse des Motors vor beginn der Schubphase.
m_0=16.7;
i=1;
v(1)=0;
h(1)=0;
x(1)=0;
% Fläche des Fallschirms für den Fall mit Höhenlogger
Afall_h=664.11;
% Fläche des Fallschirms für den Fall mit Kamera
Afall_k=763.65;

while t(i)<t_b
    
    %st ist die Zeitänderung 
    dt=(t(i+1)-t(i));
    % dm ist die massenänderung während der Schubphase
    dm=-(6.8/15);
    % ma ist die Masse
    ma=m_start+(dm/dt)*t(i);
    % Berechnung der Widerstandkraft.
    fw=cw_ges*Aref*(rho_l/2)*(v(i))^2;
    % der Schub f wird verändert (in abhängigkeit der Zeit).
    f=schub(i);
    % Die Geschwindigkeit v ändert sich mit dem veränderten Schub.
    v(i+1)=v(i)+(((f-fw)*1000/ma)-g*sin(gamma))*dt;
    h(i+1)=h(i)+v(i)*sin(gamma)*dt;
    x(i+1)= x(i)+v(i)*cos(gamma)*dt;
    
    if v(i+1)<0
        v(i+1)=0;
    end
    i=i+1;

end
t_ausstoss=32/6;
t2=14/6:0.01:t_ausstoss;
t = [t t2];
gamma(i)=gamma;
while t(i)< t_ausstoss
  
    %st ist die Zeitänderung 
    dt=(t(i+1)-t(i));
    gamma(i+1)=gamma(i)-(g/(abs(v(i))))*cos(gamma(i))*dt;
    % Berechnung der Widerstandkraft.
    fw=cw_ges*Aref*(rho_l/2)*(v(i))^2;
    % der Schub f wird verändert (in abhängigkeit der Zeit).
    f=0;
    % Die GEschwindigkeit v ändert sich mit dem veränderten Schub.
    v(i+1)=v(i)+(((f-fw)*1000/ma)-g*sin(gamma(i)))*dt;
    h(i+1)=h(i)+v(i)*sin(gamma(i))*dt;
    x(i+1)= x(i)+v(i)*cos(gamma(i))*dt;
    i=i+1;
end
t_max=30;
% t2=14/6:0.01:t_ausstoss;
% t = [t t2];
t3=t(i):0.01:t_max;
t = [t t3];
cw_fall=1.33;

while t(i)<t_max
    if h(i)<=0
        break
    else 
    %dt ist die Zeitänderung 
    dt=(t(i+1)-t(i));
    gamma(i+1)=gamma(i)-(g/(abs(v(i))))*cos(gamma(i))*dt;
    % Gewichtskraft fg
    fg=g*(ma/1000);
    % Sinkgeschwindigkeit des Fallschrims
    v(i+1)=sqrt((2*fg)/(rho_l*cw_fall*Afall_k));
    h(i+1)=h(i)+v(i)*sin(gamma(i))*dt;
    x(i+1)= x(i)+v(i)*cos(gamma(i))*dt;
    h(i)=h(i+1);
    i=i+1;
    end
   

end
plot(t,h);
figure;
plot(t,v);
















