Контрольная работа: Расчет сверхзвукового обтекания заостренных тел вращения
Название: Расчет сверхзвукового обтекания заостренных тел вращения Раздел: Рефераты по физике Тип: контрольная работа |
Министерство Образования Российской Федерации Омский государственный технический университет Кафедра “Авиа- и ракетостроение” Расчетно-графическая работа Расчет сверхзвукового обтекания заостренных тел вращения КР 2068998-00.00.00.000.ПЗ Омск 2006 Введение Некоторые летательные аппараты (например, ракета, артиллерийский снаряд) или их конструктивные элементы могут иметь форму тела вращения. Исследования обтекания таких тел составляют содержание одного из важнейших разделов современной аэродинамики. Корпус (фюзеляж) в виде тела вращения, или тела, по форме близкого к нему, представляет собой наряду с крыльями, управляющими и стабилизирующими элементами важнейшую часть многих летательных аппаратов. Некоторые типы аппаратов имеют корпус, как единственный, другие - как основной элемент аэродинамической схемы. Поэтому, в аэродинамических исследованиях изучение обтекания тел вращения и разработка методов расчета силового воздействия на них при таком обтекании занимают большое место. Результаты аэродинамического расчета можно использовать для оценки аэродинамических свойств летательного аппарата, если он собой по форме представляет тело вращения, или же применить эти результаты с соответствующими данными для несущих поверхностей (крыльев, рулей, стабилизаторов) и интерференционными поправками как отдельные составляющие для комбинации «корпус- крыло- оперение». Расчет установившегося обтекания летательных аппаратов, имеющих форму тонкого заостренного тела вращения, можно производить путем линеаризации задачи. Соответствующие способы расчета, основанные на методе источников и диполей. Дают возможность определить параметры потока на поверхности тонкого заостренного тела вращения, а также, его аэродинамические коэффициенты, как при осесимметричном обтекании, так и при движении под малым углом атаки. ЗаданиеНайти распределение диполей (функцию m(ε)) на цилиндрическом корпусе, имеющем заостренную головную часть с параболической образующей. Корпус совершает движение при M¥ , под некоторым углом атаки α и одновременно вращается с угловой скоростью вокруг поперечной оси, проходящей через центр масс. Длина тела xk , длина головной части xмид , расстояние от носка до центра масс хм , радиус корпуса rмид . Исходные данные для расчета: M¥ =1.5; xk =7.5 м; xмид =4.5; хм =5; rмид =1.5. Корпус разбиваем на n=15 частей. Расчет первых трех точек в MathCAD: Формула для расчета радиуса тела: Интенсивность диполей при обтекании под нулевым углом атаки рассчитывается по формулам: Распределение диполей первых трех точек: Коэффициент давления при обтекании под нулевым углом атаки расчитывается по формуле: . Интенсивность диполей при обтекании под малым углом атаки рассчитывается по формулам: Расчет коэффициента давления при обтекании под малым углом атаки Текст программы расчета выполненной в среде Delphi :unitUnit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, ExtCtrls, ComCtrls, TeEngine, Series, TeeProcs, Chart, Buttons, DbChart, math, Menus; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; PageControl2: TPageControl; TabSheet3: TTabSheet; TabSheet4: TTabSheet; TabSheet5: TTabSheet; TabSheet6: TTabSheet; TabSheet7: TTabSheet; LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit; LabeledEdit4: TLabeledEdit; LabeledEdit5: TLabeledEdit; LabeledEdit6: TLabeledEdit; Panel1: TPanel; Button1: TButton; StringGrid1: TStringGrid; Chart1: TChart; Chart2: TChart; Chart3: TChart; Chart4: TChart; Chart5: TChart; Series1: TLineSeries; Series2: TLineSeries; Series3: TLineSeries; Series4: TLineSeries; Series5: TLineSeries; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); type vector = array[0..101]of real; var Form1: TForm1; n:integer; m,p,m1,p1:Vector; x,r,e:vector; implementation procedure DoCount(const Minf,Xk,Xmid,Xm,Rmid:real); var a1,pr,sm:real; k,i:Integer; begin a1:= sqrt( sqr(Minf)-1); x[0]:=0; for i := 1 to n do x[i]:=x[i-1]+Xk/n; for i:=0 to n do if x[i]<=Xmid then r[i]:= (Rmid/Xmid)*(2-x[i]/Xmid)*x[i] else r[i]:= Rmid ; for i := 1 to n do begin e[i]:=x[i]-a1*r[i]; end; pr:=x[1]/(a1*r[1]); m[1]:= 1/(pr*sqrt(pr*pr-1)+ln(pr+sqrt(pr-1))); for i := 1 to n-1 do begin sm:=0; pr:=0; for k := 1 to i do begin pr:=(x[i+1]-e[k-1])/(a1*r[i+1]); sm:=sm+ m[k]*( pr* sqrt(pr*pr - 1)+ln( pr + sqrt(pr-1) )) end; pr:=(x[i+1]-e[i])/(a1*r[i+1]); m[i+1]:=(1-sm)/( pr* sqrt(pr*pr-1)+ln( pr + sqrt(pr-1) )); end; for i:= 1 to n-1 do begin sm:=0; for k:=1 to i do begin pr:=(x[i]-e[k-1])/(a1*r[i]); sm:= sm+ m[i]*sqrt( pr*pr-1) end; p[i]:=(-4/a1)*sm; end; pr:=(x[1])/(a1*r[1]); m1[1]:=((x[1]-Xm)/Xk)/(pr*sqrt(pr*pr-1)+arccosh(pr)); for i := 1 to n-1 do begin sm:=0; for k := 1 to i do begin pr:=(x[i+1]-e[k-1])/(a1*r[i+1]); sm:=sm+m1[k]*(pr*sqrt(pr*pr-1)+arccosh(pr)) end; pr:=(x[i+1]-e[i])/(a1*r[i+1]); m1[i+1]:=( ( (x[i+1]-Xm)/Xk )-sm)/ (pr*sqrt(pr*pr-1)+arccosh(pr)); end; for i:= 1 to n-1 do begin sm:=0; for k:=1 to i do begin pr:=(x[i]-e[k-1])/(a1*r[i]); sm:= sm+ m1[k]*sqrt( pr*pr-1) end; p1[i]:=(-4/a1)*sm; end; end; procedure TForm1.FormCreate(Sender: TObject); begin n:=StrToInt(LabeledEdit6.Text); DecimalSeparator:='.'; StringGrid1.Cells[0,0]:= '№'; StringGrid1.Cells[1,0]:= 'X'; StringGrid1.Cells[2,0]:= 'R'; StringGrid1.Cells[3,0]:= 'm'; StringGrid1.Cells[4,0]:= 'p'; StringGrid1.Cells[5,0]:= 'm1'; StringGrid1.Cells[6,0]:= 'p1'; end; procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin n:=StrToInt(LabeledEdit6.Text); StringGrid1.RowCount:=n+1; for i := 1 to n+1 do with StringGrid1 do begin Cells[0,i]:= IntToStr(i-1); end; try DoCount (StrToFloat(LabeledEdit1.Text), StrToFloat(LabeledEdit2.Text), StrToFloat(LabeledEdit3.Text), StrToFloat(LabeledEdit4.Text), StrToFloat(LabeledEdit5.Text)); except ShowMessage('Проверьте введенные параметры!'); end; Series1.Clear; Series2.Clear; Series3.Clear; Series4.Clear; Series5.Clear; for i:= 0 to n do begin try //рисуюграфики Series1.Add(r[i]); Series2.Add(m[i]); Series3.Add(p[i]); Series4.Add(m1[i]); Series5.Add(p1[i]); //Заполняютаблицу StringGrid1.Cells[1,i+1]:= FloatToStrF(x[i],ffFixed,3,3); StringGrid1.Cells[2,i+1]:= FloatToStrF(r[i],ffFixed,3,3); StringGrid1.Cells[3,i+1]:= FloatToStrF(m[i],ffFixed,3,3); StringGrid1.Cells[4,i+1]:= FloatToStrF(p[i],ffFixed,3,3); StringGrid1.Cells[5,i+1]:= FloatToStrF(m1[i],ffFixed,3,3); StringGrid1.Cells[6,i+1]:= FloatToStrF(p1[i],ffFixed,3,3); except end; end; end; end. Скришоты работы программы в сравнении с графиками MathCad: ВыводПроведенный в программе расчет на первых трех участках совпадает с данными, полученными при моделировании в MathCAD (с точностью до 103 ), поэтому принимается, что программа расчета дает справедливые результаты для остальных участков обтекаемого тела. Список литературы 1. Кузнецов В.И., Макаров В.В. Сверхзвуковое обтекание заостренных тел вращения: Учебное пособие.- Омск: Изд-во ОмГТУ, 1999г.- 80с. 2. Кузнецов В.И., Макаров В.В. Аэрогазодинамика в вопросах и задачах: практикум.- Омск: Изд-во ОмГТУ, 2002г.- 80с. |