Модуль ввода исходных данных и пересчета на влажный газ

 

unit U_ish_dan;

 

interface

 

uses

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

StdCtrls, Buttons, ExtCtrls;

 

type

TForm_ish_dan = class(TForm)

Edit_dsg: TEdit;

Label14: TLabel;

Edit_alfa: TEdit;

Label25: TLabel;

Edit_t: TEdit;

Label63: TLabel;

Label64: TLabel;

Edit_dsv: TEdit;

BitBtn_vg: TBitBtn;

GroupBox1: TGroupBox;

. . . . . . . . . . . . . .

BitBtn_clear_ish: TBitBtn;

BitBtn_close_ish: TBitBtn;

Label68: TLabel;

procedure BitBtn_close_ishClick(Sender: TObject);

procedure BitBtn_clear_ishClick(Sender: TObject);

procedure BitBtn_vgClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_ish_dan: TForm_ish_dan;

implementation

uses u_main, u_rez;

 

{$R *.DFM}

//============================================================

// закрытие формы

//============================================================

procedure TForm_ish_dan.BitBtn_close_ishClick(Sender: TObject);

begin

close

end;

 

//============================================================

// очистка полей

//============================================================

procedure TForm_ish_dan.BitBtn_clear_ishClick(Sender: TObject);

begin

Edit_CO.Text:='0';

Edit_H2.Text:='0';

Edit_CH4.Text:='0';

Edit_C2H4.Text:='0';

Edit_C2H2.Text:='0';

. . . . . . . . . . . . . .

//===============

Edit_COv.Text:='0';

Edit_H2v.Text:='0';

Edit_CH4v.Text:='0';

Edit_C2H4v.Text:='0';

Edit_C2H2v.Text:='0';

. . . . . . . . . . . . . .

//=================

Edit_dsg.Text:='0';

Edit_dsv.Text:='0';

Edit_t.Text:='0';

Edit_alfa.Text:='0';

Edit_Ssg.Text:='0';

Edit_Svg.Text:='0';

end; // clear


//============================================================

// пересчет на влажный газ

//============================================================

procedure TForm_ish_dan.BitBtn_vgClick(Sender: TObject);

var

koef:real; // коэф-т пересчета сухого состава на влажный

i:integer;

begin

ssg:=0; //сумма процентов для сухого газа

svg:=0; //сумма процентов для влажного газа

//===== ввод исходных данных============

CO:=strtofloat(Edit_CO.Text); Ssg:=ssg+CO;

H2:=strtofloat(Edit_H2.Text); Ssg:=ssg+H2;

CH4:=strtofloat(Edit_CH4.Text); Ssg:=ssg+CH4;

C2H2:=strtofloat(Edit_C2H2.Text); Ssg:=ssg+C2H2;

C2H4:=strtofloat(Edit_C2H4.Text); Ssg:=ssg+C2H4;

C2H6:=strtofloat(Edit_C2H6.Text); Ssg:=ssg+C2H6;

C3H8:=strtofloat(Edit_C3H8.Text); Ssg:=ssg+C3H8;

C4H10:=strtofloat(Edit_C4H10.Text); Ssg:=ssg+C4H10;

C5H12:=strtofloat(Edit_C5H12.Text); Ssg:=ssg+C5H12;

CO2:=strtofloat(Edit_CO2.Text); Ssg:=ssg+CO2;

N2:=strtofloat(Edit_N2.Text); Ssg:=ssg+N2;

O2:=strtofloat(Edit_O2.Text); Ssg:=ssg+O2;

SO2:=strtofloat(Edit_SO2.Text); Ssg:=ssg+SO2;

H2S:=strtofloat(Edit_H2S.Text); Ssg:=ssg+H2S;

dsg:=strtofloat(Edit_dsg.Text);

t:=strtofloat(Edit_t.Text);

alfa:=strtofloat(Edit_alfa.Text);

Edit_Ssg.Text:=formatfloat('##0',Ssg);

If (abs(Ssg-100)>1E-6) then begin

ShowMessage('Сухой состав не равен 100%. Исправьте!');

Exit

end;

 

//======== пересчет на влажный газ =========

H2Ov:=100*dsg/(803.6+dsg);

koef:=(100-H2Ov)/100;

COv:=koef*CO; SG[1]:=CO; VG[1]:=COv;

H2v:=koef*H2; SG[2]:=H2; VG[2]:=H2v;

CH4v:=koef*CH4; SG[3]:=CH4; VG[3]:=CH4v;

C2H2v:=koef*C2H2; SG[4]:=C2H2; VG[4]:=C2H2v;

C2H4v:=koef*C2H4; SG[5]:=C2H4; VG[5]:=C2H4v;

C2H6v:=koef*C2H6; SG[6]:=C2H6; VG[6]:=C2H6v;

C3H8v:=koef*C3H8; SG[7]:=C3H8; VG[7]:=C3H8v;

C4H10v:=koef*C4H10; SG[8]:=C4H10; VG[8]:=C4H10v;

C5H12v:=koef*C5H12; SG[9]:=C5H12; VG[9]:=C5H12v;

CO2v:=koef*CO2; SG[10]:=CO2; VG[10]:=CO2v;

N2v:=koef*N2; SG[11]:=N2; VG[11]:=N2v;

O2v:=koef*O2; SG[12]:=O2; VG[12]:=O2v;

SO2v:=koef*SO2; SG[13]:=SO2; VG[13]:=SO2v;

H2Sv:=koef*H2S; SG[14]:=H2S; VG[14]:=H2Sv;

VG[15]:=H2Ov;

//=== вывод влажного состава =================

Edit_COv.Text:=formatfloat('##0.00',COv); svg:=svg+COv;

Edit_H2v.Text:=formatfloat('##0.00',H2v); svg:=svg+H2v;

Edit_CH4v.Text:=formatfloat('##0.00',CH4v); svg:=svg+CH4v;

Edit_C2H2v.Text:=formatfloat('##0.00',C2H2v); svg:=svg+C2H2v;

Edit_C2H4v.Text:=formatfloat('##0.00',C2H4v); svg:=svg+C2H4v;

Edit_C2H6v.Text:=formatfloat('##0.00',C2H6v); svg:=svg+C2H6v;

Edit_C3H8v.Text:=formatfloat('##0.00',C3H8v); svg:=svg+C3H8v;

Edit_C4H10v.Text:=formatfloat('##0.00',C4H10v); svg:=svg+C4H10v;

Edit_C5H12v.Text:=formatfloat('##0.00',C5H12v); svg:=svg+C5H12v;

Edit_CO2v.Text:=formatfloat('##0.00',CO2v); svg:=svg+CO2v;

Edit_N2v.Text:=formatfloat('##0.00',N2v); svg:=svg+N2v;

Edit_O2v.Text:=formatfloat('##0.00',O2v); svg:=svg+O2v;

Edit_SO2v.Text:=formatfloat('##0.00',SO2v); svg:=svg+SO2v;

Edit_H2Sv.Text:=formatfloat('##0.00',H2Sv); svg:=svg+H2Sv;

Edit_H2Ov.Text:=formatfloat('##0.000',H2Ov); svg:=svg+H2Ov;;

Edit_Svg.Text:=formatfloat('##0',Svg);

If (abs(Svg-100)>1E-6) then begin

ShowMessage('Влажный состав не равен 100%. Ошибка в выч-ях!');

Exit

end;

//============================================================

// Выч-ние по табл. D.5 влагосодержания сухого воздуха

//============================================================

i:=1;

while (i<9) and (D5t[i]<>t) do inc(i);

if i=9 then

begin

showmessage ('Температуры нет в таблице. Уточните темпер-ру');

exit

end;

dsv:=D5d[i];

Edit_dsv.Text:=formatfloat('##0.00',dsv);

//включение кнопок

Form_rez.BitBtn_calc.Enabled:=True;

 

end;

 

end.