Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ComCtrls;
- var
- S,lambda,tau,skos,g_wzgl,Sh,Sv,b,lo,lk,Vprz,bkl_wzg,bkl,blot,
- lambdah,tauh,skosh,lambdav,tauv,skosv,bh,lo_h,lk_h,bv,lo_v,lk_v,mproj,gh,
- gv,mpal,etakl,etakl1,Czmax_skrz,Czmax_start,Cx_lad,Cx0,Czmax_lad,Cxstart,
- Wmaxstartu,Wmax,Cxklstart,Skl,lambda_efek,Wmaxstart,Vwmax,Vwmax_start,
- Cx0_lad,Cx0_start,Q,Cx_start,Cznaj,Cz_dob,Cx_dob,Cxkllad,Ls,Ll,Vprzelotowe:real;
- const
- mikro=0.09; // wspolczynnik tarcia kol o ziemie
- mikroh=0.3; // wspolczynnik tarcia kol o ziemie z uzyciem hamulcow
- g=9.81;
- ro=1.225; //gestosc powietrza na h=0
- type
- TForm1 = class(TForm)
- Button1: TButton;
- wczytywaniedanych: TPageControl;
- TabSheet1: TTabSheet;
- Edit1: TEdit;
- Edit2: TEdit;
- Edit3: TEdit;
- Edit4: TEdit;
- Edit5: TEdit;
- Edit6: TEdit;
- Edit7: TEdit;
- Edit8: TEdit;
- Edit9: TEdit;
- Edit10: TEdit;
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- Label4: TLabel;
- Label5: TLabel;
- Edit11: TEdit;
- Edit12: TEdit;
- Edit13: TEdit;
- Edit14: TEdit;
- Label6: TLabel;
- Label7: TLabel;
- aerodynamika: TTabSheet;
- Edit15: TEdit;
- Edit16: TEdit;
- Edit17: TEdit;
- Edit18: TEdit;
- Edit19: TEdit;
- Edit20: TEdit;
- Edit21: TEdit;
- Edit22: TEdit;
- Label8: TLabel;
- Label9: TLabel;
- Label10: TLabel;
- Edit23: TEdit;
- Edit24: TEdit;
- Edit25: TEdit;
- Edit26: TEdit;
- Label11: TLabel;
- Label12: TLabel;
- Label13: TLabel;
- modelmasowy: TTabSheet;
- Edit27: TEdit;
- pre: TLabel;
- TabSheet2: TTabSheet;
- Label14: TLabel;
- Label15: TLabel;
- Edit28: TEdit;
- Label16: TLabel;
- Edit29: TEdit;
- Edit30: TEdit;
- Edit31: TEdit;
- Edit32: TEdit;
- Label17: TLabel;
- Label18: TLabel;
- Edit33: TEdit;
- Label19: TLabel;
- Edit34: TEdit;
- Edit35: TEdit;
- Edit36: TEdit;
- Edit37: TEdit;
- Edit38: TEdit;
- Edit39: TEdit;
- Label20: TLabel;
- Label21: TLabel;
- Label22: TLabel;
- Label23: TLabel;
- Label24: TLabel;
- Label25: TLabel;
- Label26: TLabel;
- Label27: TLabel;
- Label28: TLabel;
- Edit40: TEdit;
- Edit41: TEdit;
- Edit42: TEdit;
- Edit43: TEdit;
- Edit44: TEdit;
- Edit45: TEdit;
- Edit46: TEdit;
- Edit47: TEdit;
- Edit48: TEdit;
- Edit49: TEdit;
- Label29: TLabel;
- Label30: TLabel;
- Label31: TLabel;
- Label32: TLabel;
- Label33: TLabel;
- Label34: TLabel;
- Label35: TLabel;
- Label36: TLabel;
- Label37: TLabel;
- Label38: TLabel;
- Label39: TLabel;
- Label40: TLabel;
- Label41: TLabel;
- Label42: TLabel;
- Label43: TLabel;
- Label44: TLabel;
- Label45: TLabel;
- Label46: TLabel;
- Label47: TLabel;
- Edit50: TEdit;
- Edit51: TEdit;
- Edit52: TEdit;
- Edit53: TEdit;
- Edit54: TEdit;
- Label48: TLabel;
- Label49: TLabel;
- Label50: TLabel;
- Label51: TLabel;
- Edit55: TEdit;
- Edit56: TEdit;
- Edit57: TEdit;
- Label52: TLabel;
- Label53: TLabel;
- Label54: TLabel;
- Label55: TLabel;
- Edit58: TEdit;
- Edit59: TEdit;
- Edit60: TEdit;
- Label56: TLabel;
- Label57: TLabel;
- Label58: TLabel;
- Edit61: TEdit;
- Edit62: TEdit;
- Edit63: TEdit;
- procedure geometria(Sender: TObject);
- procedure osiagi(Sender: TObject);
- procedure wczytywaniedanychChange(Sender: TObject);
- procedure aerodynamikaContextPopup(Sender: TObject; MousePos: TPoint;
- var Handled: Boolean);
- procedure modelmasowyContextPopup(Sender: TObject; MousePos: TPoint;
- var Handled: Boolean);
- procedure FormCreate(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- { Private declarations }
- public
- end;
- var
- Form1: TForm1;
- implementation
- uses Math;
- {$R *.dfm}
- Function zsc_trap(a,b,h: real):real; //funkcja liczaca wspolrzedna z SC trapezu
- var
- zsc_trap,xsc_trap,zsc,xsc:real;
- begin
- zsc:=h-(h*((2/3*a+1/3*b)/a+b)); //zsc liczone od dluzszej podstawy
- zsc_trap:=zsc;
- end;
- Function xsc_trap(a,b,h,skos: real):real; //funkcja liczaca wspolrzedna x SC trapezu
- var
- zsc_trap,xsc_trap,zsc,xsc:real;
- begin
- zsc:=h-(h*((2/3*a+1/3*b)/a+b)); //zsc liczone od dluzszej podstawy
- xsc:=a/2+tan(skos)*(zsc_trap); //liczone od przodu trapezu
- xsc_trap:=xsc;
- end;
- Function Pss(V:real):real; //funkcja liczaca ciag od predkosci dla mocy startowej
- begin
- Pss:=(-7E-5)*power(V,4)+0.0144*power(V,3)-0.9331*power(V,2)+3.2889*V+4570;
- end;
- Function Ps(V:real):real; //ciag od predkosci dla warunkow przelotowych 75% mocy
- begin
- Ps:=(-7E-5)*power(V,4)+0.0144*power(V,3)-0.9331*power(V,2)+3.2889*V+1904;
- end;
- Function Lp(V:real):real;
- begin
- Lp:=(Q/(2*g))*(V/(Pss(V)-mikro*Q-0.5*ro*S*V*V*(Cx_start-mikro*Cznaj))); //funcja podcalkowa z dlugosci L1 startu i ladaowania
- end;
- Function Lpl(V:real):real;
- begin
- Lpl:=(Q/(2*g))*(V/(-mikroh*Q-0.5*ro*S*V*V*(Cx_dob-mikroh*Cz_dob))); //funcja podcalkowa z dlugosci L1 startu i ladaowania
- end;
- procedure TForm1.wczytywaniedanychChange(Sender: TObject);
- begin
- //zmienne decyzyjne
- S:=StrToFloat(Edit1.Text);
- lambda:=StrToFloat(Edit3.Text);
- tau:=StrToFloat(Edit5.Text);
- skos:=StrToFloat(Edit7.Text);
- g_wzgl:=StrToFloat(Edit9.Text);
- Sh:=StrToFloat(Edit11.Text);
- Sv:=StrToFloat(Edit13.Text);
- lambdah:=StrToFloat(Edit15.Text);
- tauh:=StrToFloat(Edit17.Text);
- skosh:=StrToFloat(Edit19.Text);
- lambdav:=StrToFloat(Edit21.Text);
- tauv:=StrToFloat(Edit23.Text);
- skosv:=StrToFloat(Edit25.Text);
- gh:=StrToFloat(Edit29.Text);
- gv:=StrToFloat(Edit31.Text);
- Vprz:=StrToFloat(Edit27.Text)/3.6;
- mproj:=StrToFloat(Edit28.Text);
- mpal:=100; //////////////////////ma byc losowane !!!!!!!!!!!!!!!!!!!!
- etakl:=StrToFloat(Edit33.Text); //dlugosc wzgledna klapy
- end;
- procedure TForm1.geometria(Sender: TObject);
- begin
- //geometria skrzydel i statecznikow
- b:=sqrt(lambda*S);
- lo:=S/(b/2+tau*b/2);
- lk:=lo*tau;
- bkl:=bkl_wzg*b;
- blot:=b-bkl-1.6;
- //statecznik poziomy
- bh:=sqrt(lambdah*S);
- lo_h:=S/(bh/2+tauh*bh/2);
- lk_h:=lo*tau;
- //statecznik pionowy
- bv:=sqrt(lambdav*S);
- lo_v:=S/(bv/2+tauv*bv/2);
- lk_v:=lo*tau;
- end;
- procedure TForm1.aerodynamikaContextPopup(Sender: TObject;
- MousePos: TPoint; var Handled: Boolean);
- var
- SCA,Cfskrz,Re_skrz,l_kon,eta_g,Cx_prof,Cxprof_int,Sskkad,deltaCx_szk,deltaCxszcz_kl,
- deltaCxszcz_lot,Cx0_skrz,Swet,Rekad,Cfkad,Cx0_kad,lambdakad,Som_kad,
- Skad,dkad,etakad,Cxt_kad,lh_kon,ReH,etag_h,bster_h,deltaCxH_szkod,CxH,CfH,
- lv_kon,ReV,etag_v,bster_v,deltaCxV_szkod,CxV,CfV,Cx_pod,Skol,Spod,Sgoleni,
- Cz,Cx,Cxklstart,k1z,k2z,k3z,k1w,k2w,k3w,deltaCzstart,
- deltaCzlad,Czmax_prof,Cxlad,cieciwa,d,z,ktau:real;
- const
- k_int=0.6; //wspolczynnik interferncji dla dolnoplata
- k1=2;//wspolczynnik uwzgledniajacy obecnosc gondol na skrzydle
- deltaCx_kon=0.013;
- hkad=1;
- deltaCx_w=0.005; //wspolczynnik uwzgeledniajcy wiatrochron
- Sw=1.2*0.8; //powierzchnia przekroju wiatrochronu
- deltaCz10=0.4; //przystost wspolczynnika Cz przy wychyleniu klapy krokodylowej o 10 stopni
- deltaCz50=0.82; //przystost wspolczynnika Cz przy wychyleniu klapy krokodylowej o 50 stopni
- deltaCx_komp=0.003; //wzpolczynnik ze wzgledu na kompensacje osiowa stery wyskosci
- Cxkon_h=0.0013;// wspolczynnikokreslajacy technologie wykonania statecznika
- Cxkon_v=0.0013;// wspolczynnikokreslajacy technologie wykonania statecznika
- kint=0.06;
- begin
- //Cx0 skrzydla
- l_kon:=S/b;
- Re_skrz:=((Vprz*l_kon)/(1.45E-5));
- Cfskrz:=0.455/((power(log10(Re_skrz),2.58)));
- eta_g:=1+g_wzgl;
- Cx_prof:=0.925*k1*Cfskrz*eta_g;
- Sskkad:=(lo*1.2)/S; //1,2 szerokosc kadluba
- Cxprof_int:=(1-k_int*Sskkad);
- deltaCxszcz_kl:=0.0017*(bkl/b);
- deltaCxszcz_kl:=0.0017*(blot/b);
- deltaCx_szk:=deltaCx_kon+deltaCxszcz_kl+deltaCxszcz_lot;
- Swet:=S-Sskkad;
- Cx0_skrz:=(Cxprof_int+deltaCx_szk)*(Swet/S);
- //Cx kadluba
- Rekad:=(lk*Vprz)/1.45E-5;
- Cfkad:=0.455/((power(log10(Rekad),2.58)));
- Skad:=1.2*hkad;
- dkad:=2*sqrt(Skad/3.14);
- lambdakad:=lk/dkad;
- Som_kad:=3*lambdakad;
- etakad:=1+(2.5/sqrt((power(lambdakad,3))));
- Cxt_kad:=Cfkad*etakad*(Som_kad/Skad);
- Cx0_kad:=Cxt_kad+deltaCx_w*(Sw/Skad);
- //Cx statecznika poziomego
- lh_kon:=Sh/bh;
- ReH:=(lh_kon*Vprz)/1.45E-5;
- bster_h:=bh;
- CfH:=0.455/((power(log10(ReH),2.58)));
- etag_h:=1+3.5*gh;
- deltaCxH_szkod:=0.0017*(bster_h/bh)+Cxkon_h;
- CxH:=2*CfH*etag_H+deltaCx_komp+deltaCxH_szkod;
- //Cx statecznika pionowego
- lv_kon:=Sv/bv;
- Rev:=(lh_kon*Vprz)/1.45E-5;
- bster_v:=bv;
- CfV:=0.455/((power(log10(ReV),2.58)));
- etag_h:=1+3.5*gh;
- deltaCxV_szkod:=0.0017*(bster_V/bV)+Cxkon_v;
- CxH:=2*CfH*etag_H+deltaCx_komp+deltaCxV_szkod;
- //Cx podwozia
- Cx_pod:=0.565;
- Skol:=0.3*0.1;
- Sgoleni:=3*0.02;
- Spod:=Skol+Sgoleni;
- //Cx od wychylonej klapy
- Cxklstart:=0.2*0.0014*power(10,1.5);//klapa krokodylowa start wychylenie 10 stopni
- Cxkllad:=0.2*0.0014*power(50,1.5);//klapa krokodylowa ladowanie wychylenie 50 stopni
- //powierzchnia klap
- z:=1.3;//odleglosc pocztku klapy od osi symetrii samolotu
- d:=(lk*0.5*b)/(lo-lk);
- cieciwa:=(lo/(0.5*b+d))*((d+0.5*b)-z);
- Skl:=cieciwa*0.2*b*etakl;
- //Cx0 samolotu dla konfiguracji gladkiej
- Cx0:=(Cx0_skrz+Cx0_kad*(Skad/S)+CxH*(Sh/S)+CxV*(Sv/S)+Cx_pod*(Spod/S))*(1+kint);
- //Wartosci Cz dla konfiguracji gladkiej, konfiguracji do startu i ladowania
- Czmax_prof:=0.3268+26.06*g_wzgl-161.207*power(g_wzgl,2)+293.334*power(g_wzgl,3);
- ktau:=-0.2135*power(tau,2)+0.2398*tau+0.8737;
- Czmax_skrz:=0.5*Czmax_prof*ktau*(1+cos(skos));
- etakl1:=1.2/(etakl*b); //1,2 szerokosc kadluba
- k1z:=power(-0.04167*etakl,2)+1.467*etakl+4E-16; // poprawka Fiszdon str.81
- k2z:=-0.02*etakl-0.02; //poprawka Fiszdon str.81
- k3z:=-0.0911*etakl+0.0914;
- k1w:=power(-0.04167*etakl1,2)+1.467*etakl1+4E-16; //wps poprawki Fiszdon str.81
- k2w:=-0.02*etakl1-0.02; // wsp poprawki Fiszdon str.81
- k3w:=-0.0911*etakl1+0.0914;
- deltaCzstart:=deltaCz10*(k1z*(1+k2z*(lambda-6)+k3z*sin(skos))-k1w*(1+k2w*(lambda-6)+k3w*sin(skos))); //wplyw ksztaltu skrzydla na klape
- deltaCzlad:=deltaCz50*(k1z*(1+k2z*(lambda-6)+k3z*sin(skos))-k1w*(1+k2w*(lambda-6)+k3w*sin(skos))); //wplyw ksztaltu skrzydla na klape
- //biegunowa analityczna
- //biegunowa dla gladkiej konfiguracji
- lambda_efek:=0.8*lambda;
- Cx:=Cx0+(power(Cz,2)/(3.14*lambda_efek));
- //biegunowa dla startu
- Cxstart:=(Cx0+Cxklstart*(Skl/S))+(power(Cz,2)/3.14*lambda_efek);
- Czmax_start:=Czmax_skrz+deltaCzstart;
- Cx0_start:=Cx0+Cxklstart*(Skl/S);
- //biegunowa dla ladowania
- Cxlad:=(Cx0+Cxkllad*(Skl/S))+(power(Cz,2)/3.14*lambda_efek);
- Czmax_lad:=Czmax_skrz+deltaCzlad;
- Cx0_lad:=Cx0+(Cxkllad*(Skl/S));
- end;
- procedure TForm1.modelmasowyContextPopup(Sender: TObject; MousePos: TPoint;
- var Handled: Boolean);
- var
- mskrz,q,mh,mv,Hh,Hv,mk,mpod_gl,mpod_prz,mwyp,mster,mto,pow_komorysil,
- pow_kabiny,pow_tylkad,powkad,mjed_kad,xsc_sam,zsc_sam:real;
- const
- nz=3.5;
- knz=1; //zespol napedowy w kadlubie
- deltap_kad=0;//nadcisnienie w kadlubie
- hpod=0.6;//wyskosc podwozia w m
- Nk_g=2;//ilosc kol podwozia glownego
- Nk_prz=1;//ilosc kol podwozia przedniego
- mzal=2*80+10;//masa zalogi+10kg bagazu
- mzesnap=64+10; //silnik Rotax+smiglo woodcomp
- begin
- q:=0.5*1.225*Vprz;
- mskrz:=power(0.036*S*10.76,0.758)*power(mpal*2.205,0.0035)*(lambda/power(cos(skos),2))*power(q*0.2089,0.006)*power(tau,0.004)*power(100*g_wzgl/cos(skos),-0.3)*power(1.5*nz*mproj*2.205,0.49)*0.4536; //Raymer
- mh:=0.064*power(nz*mproj,0.414)*power(q,0.168)*Sh*0.896*power(gh*100/cos(skosh),-0.3)*power(lambdah/power(cos(skosh),2),0.043)*power(tauh,-0.02)*power(tauh,-0.02); //Raymer
- Hh:=0.9*bh; //rozpietosc usterzenia poizomego poza kadlubem Raymer
- Hv:=0.9*bv; //rozpietosc usterzenia pionowego poza kadlubem Raymer
- mv:=0.292*(1+0.2*(Hh/Hv))*power(nz*mproj,0.376)*power(q,0.122)*power(Sv,0.873)*power((100*gv)/cos(skosv),-0.49)*power(lambdav/power(cos(skosv),2),0.357)*power(tauv,0.039); //Raymer
- mk:=1.14*knz*(1+0.4*deltap_kad)*power(lk,1.5)*power(mproj,0.25);
- mpod_gl:=0.0431*power(1.5*Nk_g*mproj*2.205,0.768)*power(((hpod*39.37)/12),0.409);
- mpod_prz:=0.0567*power(1.5*Nk_prz*mproj*2.205,0.566)*power(hpod*39.37/12,0.845);
- mster:=0.02*mproj;
- mwyp:=0.045*mproj;
- mto:=mskrz+mh+mv+mh+mk+mpod_gl+mpod_prz+mster+mwyp+mzal+mzesnap;
- //polozenie srodka ciezkosci dla samolotu liczone od sciany ogniowej
- //powierchnia czesci kadluba
- pow_komorysil:=0.5*(0.7+0.25)*0.8;
- pow_kabiny:=0.5*(1.2+0.7)*1.3;
- pow_tylkad:=1.2*(lk-0.8-1.3)*0.5;
- powkad:=pow_komorysil+pow_kabiny+pow_tylkad;
- mjed_kad:=mk/powkad; //masa 1m^2 kadluba
- {przy liczeniu xsc zakladam ze zaloga bedzie siedziec w srodku ciezkosci
- masa ukladu sterowania lezy w polowie dlugosci kadluba),xsc
- liczone jest bez skrzydla bedzie to jednoscie odleglosc w jakiej ma sie zalezc 0,25 SCA skrzydla}
- xsc_sam:=(-pow_komorysil*mjed_kad*xsc_trap(0.7,0.25,0.8,20)-mpod_prz*0.1-mzesnap*0.4+mwyp*0.2+pow_kabiny*mjed_kad*xsc_trap(1.2,0.7,1.3,20)+mpod_gl+pow_tylkad*mjed_kad*0.33*(lk-2.1)+mster*0.5*lk+mv*(lk-2.1-xsc_trap(lo_v,lk_v,0.5*bv,skosv))+mh*(lk-2.1-xsc_trap(lo_h,lk_h,bh,skosh)))/mk+mv+mh+mwyp+mzesnap+mster+mpod_prz+mpod_gl;
- {zsc liczone od podlogi samolotu}
- zsc_sam:=(mpal*0.5*g_wzgl*lo+mzesnap*0.4+mzal*g_wzgl*lo+0.6*mwyp+mv*(0.5+zsc_trap(lo_v,lk_v,bv))+mpod_gl*0.4+mpod_prz*0.4)/(mpal*mzesnap+mzal+mwyp+mv+mpod_gl+mpod_prz);
- end;
- procedure TForm1.osiagi(Sender: TObject);
- const
- ng=0.2; //wspolczynnik przeciazenia
- hs=15; //wymagana wyskosc startu
- hl=15; //wyskosc podekscia
- h3l=5;//wyskosc konca podejscia
- etas=0.76;//sprawnosc zespolu napedowego
- var
- V,Vst,Vs0,Vmin,Q,Nr,Nrs,Nn,Nn_start,Cz,Vod,F0,Fod,Cxod,Pxod,L1,L2,L3,L4,
- deltaP,Pxwz,gammawz,R,h3,Cxopt_lad,Czopt_lad,gammalad,L1l,L2l,L3l,L4l,
- V1,V0,Vl,Rl,Cx_start,Cznaj,dx1,calka1,dx2,calka2,Pxprz,Czprz,Cxprz,K,Q0,Q1,
- zasieg,qe,m0,mk:real;
- i,n:integer;
- begin
- //ciezar samolotu
- Q:=mproj*9.81;
- //Liczenie maksymalnej predkosci wznoszenia dla konfiguracji do startu
- Wmaxstartu:=0;
- Wmax:=0;
- for i:=0 to 100 do
- begin
- Cz:=Czmax_start/100*i;
- Vst:=sqrt(2*Q/1.25*S*Cz);
- Nrs:=-18.709*power(V,2)+2397.7*V+2499.4;
- Nn_start:=Q*((Cx0+Cxklstart*(Skl/S))+(power(Cz,2)/3.14*lambda_efek)/Cz)*Vst;
- if (Wmaxstartu<((Nrs-Nn_start)/Q)) then
- Wmaxstart:=((Nrs-Nn_start)/Q);
- Vwmax_start:=Vst
- end;
- //liczenie maksymalnego wznoszenia w konfiguracji gladkiej
- for i:=0 to 100 do
- begin
- Cz:=Czmax_skrz/100*i;
- V:=sqrt(2*Q/1.25*S*Cz);
- //Nr:=0.1081*power(V,3)-27.405*power(V,2)+2218.4*V-411.82; moc przelotowa
- Nrs:=-18.709*power(V,2)+2397.7*V+2499.4;
- Nn:=Q*(Cx0+(power(Cz,2)/(3.14*lambda_efek))/Cz)*V;
- if(Wmax<((Nrs-Nn)/Q)) then
- Wmax:=(Nrs-Nn)/Q;
- Vwmax:=V;
- end;
- //predkosc minimalna dla konfiguracji gladkiej
- Vmin:=sqrt(2*Q/1.25*Czmax_skrz*S);
- //dlugosc startu
- Vs0:=sqrt((2*Q)/(1.25*S*Czmax_start));
- Vod:=1.15*Vs0;
- Cznaj:=mikro*0.5*3.13*lambda_efek;
- Cx_start:=Cx0+((power(Cznaj,2))/(3.14*lambda_efek));
- //liczenie calki Lp
- dx1:= (Vod) / (n * 1.0);
- calka1 := 0;
- begin
- for i:=1 to n-1 do
- calka1 :=calka1+Lp(i*dx1);
- calka1 :=calka1+((Lp(0) + Lp(Vod)) / 2);
- calka1 :=calka1 *dx1;
- L1:=calka1;
- end;
- deltaP:=((((Pss(Vod)+Pss(Vwmax_start))/2)-((Pxod+Pxwz)/2)));
- Pxwz:=0.5*1.25*power(Vwmax_start,2)*S*Cxod;
- L2:=(Q/2*9.81)*(power(Vwmax_start,2)-power(Vod,2)/deltaP);
- gammawz:=ArcTan(Wmaxstart/Vwmax_start);
- R:=(power(Vwmax_start,2))/(((ng+(power(gammawz,2)/2)))*2);
- h3:=R*(1-cos(gammawz));
- L3:=R*sin(gammawz);
- L4:=(hs-h3)/tan(gammawz);
- Ls:=L1+L2+L3+L4;
- //dlugosc ladowania
- Cxopt_lad:=2*Cx0_lad;
- Czopt_lad:=sqrt(3.14*lambda_efek*Cx0_lad);
- gammalad:=Cxopt_lad/Czopt_lad;
- L1l:=hl-h3l/tan(gammalad);
- V1:=1.1*sqrt((2*Q)/(1.25*S*Czmax_lad));
- V0:=sqrt((2*Q)/(1.25*S*Czmax_lad));
- Vl:=1.15*V0;
- Rl:=(power(V1,2))/(ng*9.81);
- L2l:=Rl*gammalad;
- L3l:=((Czopt_lad)/(Cxopt_lad*2*9.81))*(power(V1,2)-power(V0,2));
- Cx_dob:=(Cx0+Cxkllad*(Skl/S))+(power(0.1,2)/3.14*lambda_efek);
- Cz_dob:=0.1;
- //liczenie calki odcinak 4 (dobiegu) //zakladam ze kat postojowy jest blisko 0
- dx2:= (Vod-0) / (n * 1.0);
- calka1 := 0;
- begin
- for i:=1 to n-1 do
- calka2 :=calka2+Lpl(i*dx1);
- calka2 :=calka2+((Lpl(0) + Lp(Vod)) / 2);
- calka2 :=calka2 *dx1;
- L4l:=calka2;
- end;
- Ll:=L1l+L2l+L3l+L4l;
- //zasieg samolotu liczony dla 75% mocy,spalnie godzinowe 17l/h moc=56kW zakaldam stala prdekosc przelotowa
- //obliczenie predkosci przelotowej
- begin
- for i:=100 to 300 do
- Pxprz:=0.5*ro*i*i*S*(Cx0+((power((2*Q)/(ro*S*i*i),2)/3.14*lambda_efek)));
- if Ps(i)=Pxprz then
- Vprzelotowe:=i;
- end;
- Czprz:=(2*Q)/(ro*power(Vprzelotowe,2)*S);
- Cxprz:=Cx0+((Czprz*Czprz)/(3.13*lambda_efek));
- K:=Czprz/Cxprz;
- qe:=(17*0.75)/56; //kg/kW*h
- m0:=mproj;
- //masa koncowa, zakladam 0,2h na start, ladowanie i kolowanie maksymalny zesieg bez rezerwy
- mk:=mproj+(17*0.75*0.3)-mpal;
- zasieg:=3600*K*(etas/g*qe)*ln(m0/mk);
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Edit1.Text:='8';
- Edit3.Text:='6';
- Edit5.Text:='0.8';
- Edit7.Text:='5';
- Edit9.Text:='12';
- Edit11.Text:='3';
- Edit13.Text:='2';
- Edit15.Text:='3';
- Edit17.Text:='0.8';
- Edit19.Text:='15';
- Edit21.Text:='2';
- Edit23.Text:='0.2';
- Edit25.Text:='20';
- Edit27.Text:='200';
- Edit28.Text:='650';
- Edit29.Text:='12';
- Edit31.Text:='6';
- Edit33.Text:='0.5';
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- //aerodynamika
- Edit34.Text:=FloatToStr(Czmax_skrz); //czmaks
- Edit35.Text:=FloatToStr(Cx0);
- Edit36.Text:=FloatToStr(Czmax_start);
- Edit37.Text:=FloatToStr(Cx0_start);
- Edit38.Text:=FloatToStr(Czmax_lad);
- Edit39.Text:=FloatToStr(Cx0_lad);
- {Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz);
- Edit34.Text:=FloatToStr(Cz); }
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement