Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УИРС_Авдияров.docx
Скачиваний:
44
Добавлен:
13.05.2015
Размер:
421.04 Кб
Скачать

Список использованной литературы

  1. Лигум Т.И. Практическая аэродинамика и динамика полёта турбореактивных самолётов, Транспорт 1967

  2. Лигум Т.И. Аэродинамика самолёта Ту-134А-3 (Б-3) , Транспорт 1987

  3. Верещиков Д.В., Салтыков С.Н. Самолет Ил-76: аэродинамика и динамика полета, Электрон. текстовые дан. 2006

  4. Остославский И.В. Аэродинамика самолета, Государственное издательство оборонной промышленности 1957

  5. Остославский И.В , Титов В.М. Аэродинамический расчет самолета. - М.: Оборонгиз,1947

Приложение 1. Листинг программы

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject); //моделируем взлёт самолёта без нашей системы

var polosa,s,n,s1,vmax:Integer;

P,P1,v,G,i,S2,Ya,Xa,Cy,Cx,m,f:Real;

begin

polosa:=strtoint(edt2.text);

Chart1.Series[0].Clear;

Chart1.Series[1].Clear;

Chart1.Series[2].Clear;

S:=0;

v:=0;

S2:=strtofloat(edt8.text);

P:=StrToFloat(edt5.text);

m:=StrToFloat(edt3.text);

if rb1.Checked then f:=0.06; //выбор ср. величины коэфициента трения

if rb2.Checked then f:=0.06;

if rb3.Checked then f:=0.23;

if rb4.Checked then f:=0.26;

vmax:=strtoint(edt1.text)-strtoint(edt4.text);//учёт ветра

for S:=1 to polosa do begin

Chart1.Series[0].AddXY(S, vmax);

end;

v:=0;

if (P-Xa-(1.1*f*(m*g))<=0) then showmessage('сила тяги слишком мала!')

else begin

for n:=1 to polosa do begin

S:=n;

Cy:=strtofloat(edt9.text);

Cx:=strtofloat(edt6.Text);

if s=s1 then P:=P-P1;

Ya:=50;

Xa:=500;

i:=9.8*(P-Xa-(1.1*f*(m*9.8-Ya)))/m; if i<0 then break;

v:=Sqrt(Sqr(v)+(i*2)); //вычисляем скорость на каждом шаге

if v>=vmax then Break;

Chart1.Series[1].AddXY(S, v);

if (S mod 10)=0 then Chart1.Refresh;

Sleep(1);

end;

end;

btn2.Visible:=True;

end;

procedure TForm1.btn2Click(Sender: TObject);

var color: TColor;

S,S1,n1,n,polosa: integer;

flag:boolean;

P,P1,f,i,i2,G, S2, Ya, v, Cy, m, Xa, Cx, vmax, Smax2,Smax:Real;

begin

vmax:=StrToFloat(edt1.text)-StrToFloat(edt4.text);//учёт ветра

Flag:=false; //флаг остановки

P:=strtofloat(edt5.Text);

polosa:=strtoint(edt2.text);

S2:=strtofloat(edt8.text);

m:=StrToFloat(edt3.text);

P:=StrToFloat(edt5.text);

if rb1.Checked then f:=0.06;

if rb2.Checked then f:=0.06;

if rb3.Checked then f:=0.23;

if rb4.Checked then f:=0.26;

for n:=1 to Chart1.Series[1].LastValueIndex do begin //расчёт по метрам

if flag=true then break;

S:=n;

i:=(sqr(Chart1.Series[1].YValue[S])-sqr(v))/2;

Cy:=strtofloat(edt9.text);

Ya:=50;

Xa:=500;

i2:=9.8*((P*strtofloat(edt10.Text)/100)+Xa+(1.1*f*(m*9.8-Ya)))/m;

Smax2:=sqr(v)/(2*i2);

Smax:=(Sqr(Vmax)-(v*vmax))/(2*i);

if (polosa-S-10<=Smax2) and (polosa-S<=Smax) and (v<vmax) then

begin showmessage(floattostr(Smax)+' '+floattostr(Smax2));

flag:=true; end;

if flag=false then begin

v:=Chart1.Series[1].YValue[S];

Chart1.Series[2].AddXY(S, v);

if (S mod 5)=0 then Chart1.Refresh;

end;

if flag=true then stop(S,P,v);

if v>=vmax then break;

end;

end;

procedure TForm1.stop(S: integer; P,v: real);

var s1,polosa:integer;

F1,i,m,S2,Xa,Ya,f,Cy,Cx:Real;

begin

polosa:=strtoint(edt2.text);

S2:=strtofloat(edt8.text);

m:=StrToFloat(edt3.text);

if rb1.Checked then f:=0.06; //выбор ср. величины коэфициента трения

if rb2.Checked then f:=0.06;

if rb3.Checked then f:=0.23;

if rb4.Checked then f:=0.26;

s1:=0;

repeat

Chart1.Series[2].AddXY(S, v);

Sleep(1);

if (S mod 10)=0 then Chart1.Refresh;

inc(S);

inc(S1);

Cy:=strtofloat(edt9.text);

Cx:=strtofloat(edt6.text);

Ya:=50;

Xa:=500;

i:=9.8*((P*strtofloat(edt10.Text)/100)+Xa+(1.1*f*(m*9.8-Ya)))/m;

if (Sqr(v)-(i*2))<=0 then v:=0 else

v:=sqrt(Sqr(v)-(i*2));

if v<=0 then break;

if (S=polosa) then break;

until v=0;

end;

end.