Курсовая работа: Разработка программы расчета давления в камере РДТТ в интегрированной среде программирования Delphi

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Программа рассчитывает: e - толщина горящего свода (м), ??- плотность газа (кг/), P - давление в камере (Па), T - температуру газа (К).

Среда программирования Delphi выбрана в связи с тем, что она проста в использовании и наглядно представляет результаты расчетов, выводя их в отдельном окне. В основе среды Delphi лежит одноименный язык программирования - Delphi, ранее известный как Object Pascal. При разработке программы среда Delphi создает пользовательский интерфейс согласно заданному дизайну, затем мы описываются обработчики событий на языке Delphi. Данная программная среда имеет множество плюсов. Например, одно и тоже число мы можем записать разными способами:

15 {целое}

15.0 {вещественное с фиксированной точкой}

1.5E01 {вещественное с плавающей точкой}

$F {шестнадцатиричное}.

Запуск программы.

Чтобы запустить программу необходимо нажать иконку:

Рис. 5. Значок исполняемого кода программы

Появится окошко, где можно задать параметры:

Рис. 6. Окно задания исходных данных

Результаты расчетов выводятся в отдельном файле. Чтобы запустить его, необходимо нажать на иконку

Рис. 7. Значок файла с результатами расчета

Появляется окошко с результатами расчетов:

Рис. 8. Результаты расчета давления в камере сгорания РДТТ

Заключение

В ходе выполнения дипломной работы, мы изучена конструкция ракетного двигателя. Создание реактивной тяги есть назначение всякого ракетного двигателя; поэтому величина тяги является важнейшей характеристикой двигателя. Рассмотрен принцип работы ракетного двигателя. Чтобы создать реактивную силу, необходимо обеспечить упорядоченное, организованное истечение продуктов сгорания ракетного топлива из двигателя в одном направлении, давая в результате нужную нам реактивную силу. Для измерения тяги ракетного двигателя существует два типа тягоизмерительных стендов: с горизонтальными подвесками и вертикальными. Тягу можно определить по известному в камере давлению, которое рассчитывается по разработанной компьютерной программе. В ходе расчета определяются четыре параметра: e - толщину горящего свода; ??- плотность газа; P - давление в камере и T - температуру газа.

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

1. Гильзин К.А. / Ракетные двигатели. М.:1950 - 83 с.

2. Жомотт А., Баррер М., Вебек Б.Ф. / Ракетные двигатели / А. Жомотт и др. М.:1962 - 784 с.

3. Туманов А.Г. / Справочник по авиационным материалам. Коррозионно-стойкие и жаропрочные стали и сплавы. М.: Машиностроение, 1965-165 с.

4. Дорофеев А.А. / Основы теории ракетных двигателей. Теория, расчёт и проектирование. М.: МГТУ им. Н.Э. Баумана, 2010 - 469 с.

5. Глушко В.П. / Ракета. Космонавтика: маленькая энциклопедия, 2-е издание, дополнительное. М.: «Советская энциклопедия», 1970 - 372 с.

6. Кондратьев Е.Г., Соломыков А.И. / Теория ракетных двигателей / Е.Г. Кондратьев и др. М.: 1972 - 341 с.

7. Мелькумов Т.М. / Ракетные двигатели. М.: 1976 - 268 с.

8. Соркин Р.Е. «Теория внутрикамерных процессов в ракетных системах на твердом топливе». М.:1983-288 с.

Приложение

Текст программы:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit7: TEdit;

Edit8: TEdit;

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label7: TLabel;

Label9: TLabel;

Button1: TButton;

procedure Button1Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1. Button1Click (Sender: TObject);

const

b=0; {удельный коволюм}

P_atm=100000; {атмосферное давление, Н/м^2}

Pi=3.14159265;

k=1.5;

hi=0.9; {коэффициент теплопотерь}

fi2=0.9; {коэффициент расхода сопла}

R=300; {газовая постоянная, Дж/кг*К}

ro_top=1600; {плотность топлива кг/м^3}

Tp=2300.0; {термодинамическая температура}

dt=0.00005; {шаг по времени}

BB=0.6580647916; {расходный коэффициент}

var

t, D0, D_kr, D_vn0, L0, Wk, Wz, U:real; {переменные, которые вводятся пользователем}

g1:real; {переменные, необходимые для промежуточных вычислений}

e1, e, en:real;

f: TextFile;

ti:real; {переменная времени}

ro, ron:real; {переменная плотности газа}

p, pn:real; {переменная давления газа}

Tg, tgn:real; {переменная температуры газа}

Gg:real; {переменнач секундного расхода газов}

W, Wn:real; {свободный объем камеры сгорания}

function G (p, T:real):real; {функция вычисления секундного расхода газов, G}

var

F_kr:real; {площадь критического сечения}

begin

F_kr:=Pi*D_kr*D_kr/4;

g1:=fi2*F_kr*BB*p/(sqrt (R*T));

G:=g1;

end;

function S (e:real):real; {функция рассчета площади поверхности горения}

var

S1:real;

begin

if e<e1 then

begin

S1:=Pi*(D0+D_vn0)*(L0+(D0-D_vn0)/2-4*e);

S:=S1;

end

else S:=0.0;

end;

begin

{- Присваиваем значения переменным из полей ввода с Form1 -}

t:=strtofloat (edit1. Text); {время горения}

D0:=strtofloat (edit2. Text); {внешний диаметр камеры сгорания}

D_kr:=strtofloat (edit3. Text); {диаметр критического сечения}

D_vn0:=strtofloat (edit4. Text); {внутренний диаметр заряда}

L0:=strtofloat (edit5. Text); {длина заряда}

 //Wk:=strtofloat (edit6. Text); {объем камеры сгорания}

Wz:=strtofloat (edit7. Text); {объем заряда}

U:=strtofloat (edit8. Text); {скорость горения}

{-}

{- Начальные условия-}

e1:=(D0-D_vn0)/4;

Wk:=Pi*L0*D0*D0/4;

e:=0.0;

en:=0;

p:=40*p_atm;

Tg:=1800;

ro:=p/(R*Tg);

W:=Wk-Wz;

ti:=0;

{-}

AssignFile (f, 'out.txt');

Rewrite(f);

writeln (f, 't', ' e', ' ro', ' p', ' T');

writeln(f);

writeln (f, ti:5:5,' ', e:5:5, ' ', ro:5:5,' ', p:5:5,' ', Tg:5:5,' ');

while ti<=t do

begin

if Tg>0 then begin

en:=e+u*dt;

ron:=ro+dt*(S(e)*ro_top*u-G (p, Tg) - S(e)*ro*u)/W;

pn:=p+dt/W*(k*R*S(e)*ro_top*u*(hi*Tp-Tg)+k*P/ro*(S(e)*ro_top*u-G (p, Tg) - S(e)*ro*u));

Tgn:=Tg+Tg*dt/(W*p)*(k*R*S(e)*ro_top*u*(hi*Tp-Tg)+(k-1)*p/ro*(S(e)*ro_top*u-G (p, Tg) - S(e)*ro*u));

writeln (f, ti:5:5,' ', en:5:5, ' ', ron:5:5,' ', pn:5:5,' ', Tgn:5:5,' ');

Wn:=W+dt*S(e)*u;

e:=en;

ro:=ron;

p:=pn;

Tg:=Tgn;

W:=Wn;

end;

ti:=ti+dt;

end;

closeFile(f);

end;

end.