Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дз (4-2) Этап 1,2,3.doc
Скачиваний:
6
Добавлен:
09.02.2015
Размер:
627.71 Кб
Скачать

МГТУ им. Н.Э. Баумана

Факультет “Энергомашиностроение”

Кафедра Э5

ДОМАШНЕЕ ЗАДАНИЕ

по курсу “Пневматические системы”

ЭТАП 1

Схема 4

Вариант 2

Студент: Уразбахтин Т.Ф.

Группа: Э5-91

Преподаватель: Чернышёв А.В.

    1. Москва

2014 г

Введение

Неотъемлемой частью большинства современных сложных технических систем наземного применения и летательных аппаратов является одна или несколько пневматических систем. Чаще всего пневматические системы являются составной частью более общей пневмомеханической или пневмогидравлической системы. Примером таких систем может служить система наддува топливных баков. В летательных аппаратах пневмосистемы, прежде всего, применяются в системах ориентации и стабилизации, кондиционирования и пожаротушения. В наземных комплексах пневмосистемы применяются практически во всех областях техники, например, системы искусственного дыхания в медицине, прецизионные системы подготовки газовых смесей в лазерной технологии, а также системы воздухоснабжения машиностроительных, горнодобывающих и горнообогатительных предприятий. Диапазон применения пневмосистем крайне широк, а их рабочие характеристики оказывают существенное влияние на работоспособность, энергоемкость и надежность комплексов, в состав которых они входят. Поэтому современный инженер, специализирующийся в области разработки и эксплуатации пневматических систем, должен владеть основами расчета процессов, протекающих в них.

Расчетная схема.

Рис. 1

Этап1

На первом этапе необходимо произвести расчет ПС при следующих допущениях:

  1. При моделировании процессов, протекающих в системе, за рабочее тело принят идеальный газ, подчиняющийся термическому уравнению состояния;

  2. Изменение состояния рабочего тела в полостях системы квазистатическое;

  3. Теплообмен между рабочим телом и корпусными элементами системы отсутствует;

  4. Процесс истечения рабочего тела из полостей системы через условные сопротивления принимается одномерным, установившимся, протекающим без трения и теплообмена. Потери при истечении рабочего тела, обусловленные принятыми допущениями, учитываются коэффициентами расхода.

Математическая модель

Исходные данные:

Начальные условия:

t=0;

Р1; Р2; Р3; Р4;

Т1 =300 К; Т2=300 К; Т3=300 К; Т4=300 К.

Предварительные расчеты:

F12=12d122/4

F13=13d132/4

F34=34d342/4

F23=23d232/4

S1= (6V1/)2/3

S2= (6V2/)2/3

S3= (6V3/)2/3

S4= (6V4/)2/3

Уравнения расхода:

G12=G(F12,P1,P2,TP1)

G13=G(F13,P1,P3,TP2)

G34=G(F34,P3,P4,TP3)

G23=G(F23,P2,P3,TP4),

где TPmaxi – температура газа в той из двух рассматриваемых емкостей, где давление больше.

Уравнения расчета изменения параметров в емкостях ПС:

1-я емкость:

2-я емкость

3-я емкость

4-я емкость

Конечное условие: Pmin 0.95*Pmax

Программа расчета на эвм.

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Buttons, jpeg, ComCtrls;

type

TForm1 = class(TForm)

Panel1: TPanel;

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Panel2: TPanel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Panel3: TPanel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label27: TLabel;

Label28: TLabel;

Label29: TLabel;

Label30: TLabel;

Edit11: TEdit;

Edit12: TEdit;

Edit13: TEdit;

Edit14: TEdit;

Panel4: TPanel;

Label15: TLabel;

Label24: TLabel;

Label25: TLabel;

Label26: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Edit15: TEdit;

Edit16: TEdit;

Edit17: TEdit;

Edit18: TEdit;

Panel5: TPanel;

Label35: TLabel;

Label36: TLabel;

Label37: TLabel;

Label38: TLabel;

Label39: TLabel;

Edit19: TEdit;

Edit20: TEdit;

Edit21: TEdit;

Edit22: TEdit;

Label43: TLabel;

Label40: TLabel;

Label41: TLabel;

Label42: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

GroupBox1: TGroupBox;

Label44: TLabel;

Label45: TLabel;

Label46: TLabel;

Label47: TLabel;

Label48: TLabel;

Label49: TLabel;

Label50: TLabel;

Label51: TLabel;

Edit23: TEdit;

Edit24: TEdit;

Edit25: TEdit;

GroupBox2: TGroupBox;

Label52: TLabel;

Label53: TLabel;

Label54: TLabel;

Label55: TLabel;

Label56: TLabel;

Label57: TLabel;

Label58: TLabel;

Label59: TLabel;

Edit26: TEdit;

Edit27: TEdit;

Edit28: TEdit;

Label60: TLabel;

Label61: TLabel;

Edit29: TEdit;

Label62: TLabel;

Label63: TLabel;

Label64: TLabel;

ScrollBox1: TScrollBox;

Label65: TLabel;

G1: TLabel;

Label66: TLabel;

Label67: TLabel;

Label68: TLabel;

Label69: TLabel;

Label70: TLabel;

Label71: TLabel;

Label72: TLabel;

Label73: TLabel;

Label74: TLabel;

Label75: TLabel;

Label76: TLabel;

Label77: TLabel;

Label78: TLabel;

Label79: TLabel;

t: TMemo;

mg1: TMemo;

mg2: TMemo;

mg3: TMemo;

p1: TMemo;

p2: TMemo;

p3: TMemo;

p4: TMemo;

T1: TMemo;

T2: TMemo;

T3: TMemo;

T4: TMemo;

Edit30: TEdit;

Label80: TLabel;

mg4: TMemo;

Label81: TLabel;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Form1.Close; // закрыть главное окно программы

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

const

R=287.2; k=1.41; Betakr=0.528; PI=3.14;

Var

M1,M2,M3,M4,D1,D2,D3,D4,V1,V2,V3,V4,F1,F2,F3,F4,Pa1,Pa2,Pa3,Pa4,Pb1,Pb2,Pb3,Pb4,

Ta1,Ta2,Ta3,Ta4,A,B,C,D,E,F,L,H,G12,G13,G34,G23,DT,PM,PX,H1,H2,H3,H4,tt,S1,S2,S3,S4:real;

i,max,min,n:integer;

Y,V:array [1..8] of real;

begin

M1:=strToFloat(Edit1.Text);

M2:=strToFloat(Edit2.Text);

M3:=strToFloat(Edit3.Text);

M4:=strToFloat(Edit4.Text);

D1:=strToFloat(Edit6.Text)/1000;

D2:=strToFloat(Edit7.Text)/1000;

D3:=strToFloat(Edit8.Text)/1000;

D4:=strToFloat(Edit9.Text)/1000;

V1:=strToFloat(Edit11.Text)/1000;

V2:=strToFloat(Edit12.Text)/1000;

V3:=strToFloat(Edit13.Text)/1000;

V4:=strToFloat(Edit14.Text)/1000;

DT:=strToFloat(Edit10.Text);

Y[1]:=strToFloat(Edit19.Text)*1000000;

Y[2]:=strToFloat(Edit15.Text);

Y[3]:=strToFloat(Edit20.Text)*1000000;

Y[4]:=strToFloat(Edit16.Text);

Y[5]:=strToFloat(Edit21.Text)*1000000;

Y[6]:=strToFloat(Edit17.Text);

Y[7]:=strToFloat(Edit22.Text)*1000000;

Y[8]:=strToFloat(Edit18.Text);

F1:=M1*PI*sqr(D1)/4;

F2:=M2*PI*sqr(D2)/4;

F3:=M3*PI*sqr(D3)/4;

F4:=M4*PI*sqr(D4)/4;

S1:=PI*exp((2/3)*ln(6*V1/PI));

S2:=PI*exp((2/3)*ln(6*V2/PI));

S3:=PI*exp((2/3)*ln(6*V3/PI));

S4:=PI*exp((2/3)*ln(6*V4/PI));

Edit26.Text :=FloatToStrF(F1*1000000,ffFixed,4,4);

Edit27.Text :=FloatToStrF(F2*1000000,ffFixed,4,4);

Edit28.Text :=FloatToStrF(F3*1000000,ffFixed,4,4);

Edit30.Text :=FloatToStrF(F4*1000000,ffFixed,4,4);

Edit23.Text :=FloatToStrF(S1,ffFixed,4,4);

Edit24.Text :=FloatToStrF(S2,ffFixed,4,4);

Edit25.Text :=FloatToStrF(S3,ffFixed,4,4);

Edit29.Text :=FloatToStrF(S4,ffFixed,4,4);

tt:=0;

n:=1;

t.Lines.Add('____');

mg1.Lines.Add('____');

mg2.Lines.Add('____');

mg3.Lines.Add('____');

mg4.Lines.Add('____');

p1.Lines.Add('____');

p2.Lines.Add('____');

p3.Lines.Add('____');

p4.Lines.Add('____');

T1.Lines.Add('____');

T2.Lines.Add('____');

T3.Lines.Add('____');

T4.Lines.Add('____');

REPEAT

//writeln('Opredelenie napravleniya rashoda');

//writeln;

if Y[1]>Y[3] then

begin

Pa1:=Y[1]; Pb1:=Y[3]; Ta1:=Y[2]; A:=-1; B:=1;

end

else begin

Pa1:=Y[3]; Pb1:=Y[1]; Ta1:=Y[4]; A:=1; B:=-1;

end;

if Y[1]>Y[5] then

begin

Pa2:=Y[1]; Pb2:=Y[5]; Ta2:=Y[2]; C:=-1; D:=1;

end

else begin

Pa2:=Y[5]; Pb2:=Y[1]; Ta2:=Y[6]; C:=1; D:=-1;

end;

if Y[5]>Y[7] then

begin

Pa3:=Y[5]; Pb3:=Y[7]; Ta3:=Y[6]; E:=-1; F:=1;

end

else begin

Pa3:=Y[7]; Pb3:=Y[5]; Ta3:=Y[8]; E:=1; F:=-1;

end;

if Y[3]>Y[5] then

begin

Pa4:=Y[3]; Pb4:=Y[5]; Ta4:=Y[4]; H:=-1; L:=1;

end

else begin

Pa4:=Y[5]; Pb4:=Y[3]; Ta4:=Y[6]; H:=1; L:=-1;

end;

//Расчёт расходов

if (Pb1/Pa1)>Betakr then

begin

H1:=2*k*(exp((2/k)*ln(Pb1/Pa1))-exp(((k+1)/k)*ln(Pb1/Pa1)))/(k-1)/R/Ta1;

if H1<0 then G12:=0

else

G12:=F1*Pa1*sqrt(H1);

end

else begin

H1:=2*k*(exp((2/k)*ln(Betakr))-exp(((k+1)/k)*ln(Betakr)))/(k-1)/R/Ta1;

if H1<0 then G12:=0

else

G12:=F1*Pa1*sqrt(H1);

end;

if (Pb2/Pa2)>Betakr then

begin

H2:=2*k*(exp((2/k)*ln(Pb2/Pa2))-exp(((k+1)/k)*ln(Pb2/Pa2)))/(k-1)/R/Ta2;

if H2<0 then G13:=0

else

G13:=F2*Pa2*sqrt(H2);

end

else begin

H2:=2*k*(exp((2/k)*ln(Betakr))-exp(((k+1)/k)*ln(Betakr)))/(k-1)/R/Ta2;

if H2<0 then G13:=0

else

G13:=F2*Pa2*sqrt(H2);

end;

if (Pb3/Pa3)>Betakr then

begin

H3:=2*k*(exp((2/k)*ln(Pb3/Pa3))-exp(((k+1)/k)*ln(Pb3/Pa3)))/(k-1)/R/Ta3;

if H3<0 then G34:=0

else

G34:=F3*Pa3*sqrt(H3);

end

else begin

H3:=2*k*(exp((2/k)*ln(Betakr))-exp(((k+1)/k)*ln(Betakr)))/(k-1)/R/Ta3;

if H3<0 then G34:=0

else

G34:=F3*Pa3*sqrt(H3);

end;

if (Pb4/Pa4)>Betakr then

begin

H4:=2*k*(exp((2/k)*ln(Pb4/Pa4))-exp(((k+1)/k)*ln(Pb4/Pa4)))/(k-1)/R/Ta4;

if H4<0 then G23:=0

else

G23:=F4*Pa4*sqrt(H4);

end

else begin

H4:=2*k*(exp((2/k)*ln(Betakr))-exp(((k+1)/k)*ln(Betakr)))/(k-1)/R/Ta4;

if H4<0 then G23:=0

else

G23:=F4*Pa4*sqrt(H4);

end;

t.Lines.Add(FloatToStrF(tt,ffFixed,2,3));

mg1.Lines.Add(FloatToStrF(G12,ffFixed,6,6));

mg2.Lines.Add(FloatToStrF(G13,ffFixed,6,6));

mg3.Lines.Add(FloatToStrF(G34,ffFixed,6,6));

mg4.Lines.Add(FloatToStrF(G23,ffFixed,6,6));

p1.Lines.Add(FloatToStrF(Y[1]/1000000,ffFixed,2,5));

p2.Lines.Add(FloatToStrF(Y[3]/1000000,ffFixed,2,5));

p3.Lines.Add(FloatToStrF(Y[5]/1000000,ffFixed,2,5));

p4.Lines.Add(FloatToStrF(Y[7]/1000000,ffFixed,2,5));

T1.Lines.Add(FloatToStrF(Y[2],ffFixed,3,2));

T2.Lines.Add(FloatToStrF(Y[4],ffFixed,3,2));

T3.Lines.Add(FloatToStrF(Y[6],ffFixed,3,2));

T4.Lines.Add(FloatToStrF(Y[8],ffFixed,3,2));

n:=n+1;

tt:=tt+DT;

max:=1; min:=1; i:=1;

repeat

i:=i+2;

if Y[i]>Y[max] then max:=i;

if Y[i]<Y[min] then min:=i;

until i=7;

PX:=Y[max];

PM:=Y[min];

//writeln('Maksimalnoe davlenie PX=',PX:3:2);

//writeln('Minimalnoe davlenie PM=',PM:3:2);

//writeln('PM/PX=',PM/PX:3:2);

//writeln;

V[1]:=k*(R*Ta2*G13*C+R*Ta1*G12*A)/V1;

V[2]:=Y[2]*(V1*V[1]-R*Y[2]*G13*C-R*Y[2]*G12*A)/(Y[1]*V1);

V[3]:= k*(R*Ta1*G12*B+R*Ta4*G23*H)/V2;

V[4]:=Y[4]*(V2*V[3]-R*Y[4]*G12*B- R*Y[4]*G23*H)/(Y[3]*V2);

V[5]:=k*(R*Ta2*G13*D+R*Ta3*G34*E+ R*Ta4*G23*L)/V3;

V[6]:=Y[6]*(V3*V[5]-R*Y[6]*G13*D-R*Y[6]*G34*E- R*Y[6]*G23*L)/(Y[5]*V3);

V[7]:=k*R*Ta3*G34*F/V4;

V[8]:=Y[8]*(V4*V[7]-R*Y[8]*G34*F)/(Y[7]*V4);

for i:=1 to 8 do

Y[i]:=Y[i]+V[i]*DT;

{writeln(file1, G1:6:6);

writeln(file2, G2:6:6);

writeln(file3, G3:6:6);

writeln(file4, PX:3:2);

writeln(file5, PM:3:2);

write('dlya prodolgenya nazgmite <Enter>'); readln; }

UNTIL PM>=0.95*PX;

end;

end.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]