Учебная работа. Расчет сверхзвукового обтекания заостренных тел вращения

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Расчет сверхзвукового обтекания заостренных тел вращения

Министерство
Образования российской Федерации

Омский
государственный технический университет

 

 

Кафедра “Авиа- и ракетостроение”

Расчетно-графическая
работа

Расчет
сверхзвукового обтекания заостренных тел вращения

КР 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:

unit Unit1;

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);

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;

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:

Список литературы

1.  Кузнецов В.И., Макаров В.В.
Сверхзвуковое обтекание заостренных тел вращения: Учебное пособие.- Омск:
Изд-во ОмГТУ, 1999г.- 80с.

2.  Кузнецов В.И., Макаров В.В.
Аэрогазодинамика в вопросах и  задачах: практикум.- Омск: Изд-во ОмГТУ, 2002г.-
80с.

Учебная работа. Расчет сверхзвукового обтекания заостренных тел вращения