Расчет основных характеристик сепаратора высокого давления блока предварительной гидроочистки бензина установки каталитического риформинга. Автор: Пуцко И.В. Дата: 20.05.1999 Язык: Турбо Паскаль 7.0 |
Uses CRT;
const
Eps = 0.0001;
MaxStrLen = 14;
SepVertikal = True;
CRLF = #13#10;
type
TVect = array [1..7] of Real;
TVectStr = array [1..7] of String [MaxStrLen];
const
M: TVect = (2, 16, 30, 44, 58, 123.4, 34);
M: TVect = (388.44, 111.44, 29.93, 11.98, 6.95, 240.82, 1.1);
K: TVect = (38.4, 5.84, 1.23, 0.54, 0.2, 0.0015, 0.88);
L1: TVectStr = ( 'Водород', 'Метан', 'Этан', 'Пропан',
'Бутан', 'Гидрогенизат', 'Сероводород' );
var
G_cvsg, x, y, x1, x2, x3: TVect;
a, b, y1, t, p, w, dd, Vv, V_v, Ee, s, D, h1, hs,nn,
xx1, xx2, xx3, F, V, z, g_zagr, G_cvsg1, D1, Vg,
Ug, Ho, Gg, U_cvsg, N_cvsg, N_cvsg1, Diam,
Hg, Hp, Tau, Tau1, Hopor : Real;
i: Integer;
FOut: Text;
{----------------------------------------------}
PROCEDURE InputParm (S: String; var Value: Real);
BEGIN
Write (FOut, S, ' = ');
TextAttr :=$1E;
while Length (S) < 45 do S :=S + ' . ';
Write (' ', chr ($FE), ' ', S, ' ');
ReadLn (Value);
WriteLn (Fout, Value:3:4);
END;
{----------------------------------------------}
PROCEDURE TabLine;
BEGIN;
Write (' ' :10);
for i:=1 to 57 do
Write (chr($CD));
WriteLn
END;
{----------------------------------------------}
BEGIN
Assign ( Fout, ' separat.dat' );
Rewrite ( Fout );
WriteLn ( Fout, 'Исходные данные:', CRLF );
TextMode (Co80);
Window (5, 19, 75, 25);
TextAttr := $1F;
ClrScr;
WriteLn ('Введите следующие параметры' :48, CRLF);
InputParm ( 'Суммарное кол-во кмолей (Nцвсг) ', N_cvsg);
Window (1, 1, 80, 17);
TextAttr := 7;
nn :=0;
for i := 1 to 7 do
nn := nn + N[ i ];
a := 0; b := 1.1*N_cvsg;
repeat
N_cvsg1 := (a+b) / 2;
for i := 1 to 7 do
begin
x1 [ i ] := N [ i ] / (nn + N_cvsg1*(K [ i ] -1));
x2 [ i ] := N [ i ] / (nn + a*(K[ i ] - 1));
x3 [ i ] := N [ i ] / (nn + b*(K[ i ] - 1))
end;
xx1 := 0; xx2 := 0; xx3 :=0;
for i := 1 to 7 do
begin
xx1 := xx1 + x1 [ i ];
xx2 := xx2 + x2 [ i ];
xx3 := xx3 + x3 [ i ]
end;
if (xx1 > 1) and (xx2 <=1) then
b := N_cvsg1
else
a := N_cvsg1;
until abs (xx1-xx3) < Eps;
N_cvsg1 := b;
If (N_cvsg1 < 0.9*N_cvsg) or (N_cvsg1 > 1.1*N_cvsg) then
begin
WriteLn ( ' Измените условия!!!!!!!!! ');
Halt
end;
xx1 := 0; y1 := 0;
for i := 1 to 7 do
begin
x [ i ] := N [ i ] / (nn+N_cvsg1*(K [ i ] - 1)); xx1 :=xx1+x [ i ];
y [ i ] :=K [ i ]*x [ i ];
y1 :=y1+y [ i ]
end;
WriteLn ('Состав равновесной паровой смеси: ':55, CRLF);
TabLine;
WriteLn ( 'N': 12, 'Hазвание' :12, 'M' :7, 'K' :8, 'N':9, ' x'' ' :9, ' y '' ' :8;
TabLine;
for i := 1 to 7 do
WriteLn (i : 12, ' ', L1 [ i ], ' ' : MaxStrLen-Length (L1 [ i ] ),
M [ i ] : 6 : 2, K [ i ] : 9 : 4, N [ i ] : 8 : 2, x [ i ] : 8 : 4, y [ i ] : 8 :4);
TabLine;
WriteLn ( ' Итого: ----------- ----------- ' : 42, nn : 8 : 2, xx1 : 8 : 4, y1 : 8 : 4);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.