IERR:=2; goto 1

end;

MR:=NRA[1];

L1:=AK[MR]+BK[MR]*r(BET,CK[MR]);

MR:=NRA[2];

L2:=0.5*(AK[MR]+BK[MR]*r_(0.7,CK[MR]));

if NSUZA[NNit] > 2 then

case NRA[2] of

10: L2: = 2.75;

4: L2: = 5.25;

5: L2: = 2.75;

6: L2: = 2.0;

11: L2: = 2.25;

end;

L21: =LRA [2]-LPA [1],

if (LRA[1] < LI) and (L21 < L2) then begin

LRA [1]: =LRA [2]-L2; ifLRA[1] < 0.0 then LRA[1]:=abs(LRA[1])

end;

EL:=0.0;

if NSUZA[NNit] <= 2 then

for I := 1 to NR do begin

if (NRA[I] = 13) and (LRA[I] < 5.0) then begin

DL:=0.5; goto 5

end;

MR:=NRA[I]; DL:=0.0; L1:=AK[MR]+BK[MR]*r_(BET,CK[MR]);

if LRA[I] < L1 then DL:=1.0/(0.8+19.2/r_(L1/LRA[I],4.0));

5: if DL> EL then EL:=DL

end

else

for I := 1 to NR do begin

if (NRA[I] = 10) or (NRA[I] = 4) or (NRA[I] = 5) or

(NRA[I] = 6) or (NRA[I] = 11) then begin

LinVent2; goto 7

end;

if (NRA[I] = 13) and (LRA[I] < 5.0) then begin

DL:=0.5; goto 7

end;

MR:=NRA[I]; DL:=0.0; L1:=AK[MR]+BK[MR]*r_(BET,CK[MR]);

if LRA[I] < L1 then DL:=1.0/(0.8+19.2/r_(L1/LRA[I],4.0));

7: if DL>ELhenEL::=DL end;

L1:=AK[16]+BK[16]*r_(BET,CK[16]);

if LRA[NR+1] < L1 then EL:=EL+0.5;

if EL > 1.0 then begin I ERR := 3; goto 1 end;

EE:=0.0;

if NSUZA[NNit] = 0 then begin

EDM:=DT*sqrt(0.1*DP*(0.681-0.651*BET)/DAC[2]);

if DAC[1] < EDM then begin

A:=BET*(13.5-15.5*BET); B:=117.0-106.0*r_(BET,1.9);

EE:=0.1*DP*sqr(DT)*(A*DT/DAC[1]-B)/DAC[3]/sqr(DAC[1])

end; {endif}

end; {endif}

EX:=0.0;

EXMIN:==0.0025*DT/(0.1+2.3*sqr(BET)*sqr(BET));

EXMAX:=2.0*EXMIN;

if TAC[1] > EXMAX then begin IERR := 4; goto 1 end;

if TAC[1] > EXMIN then EX:=0.3;

EH:=0.0; HD:=TAC[3]/DT;

if HD > 0.003 then begin

HDC:=0.002*(TAC[2]/DT+0.4)/(0.1+2.3*sqr(BET)*sqr(BET));

if (HD<=HDC) and (HD<=0.05) then EH:=0.2

else begin

IERE.:=5; goto 1

end; {endif}

end; {endif}

ESH:=100.0*(KSH-1.0); EK:=100.0*(KK-1.0);

ERC:=sqrt(sqr(EC0+EL+EE+EH+EX)+sqr(ESH)+sqr(EK));

1:

end;{ С }

{---------------------------------------------------------------------------------------------}

{ Расчет методической составляющей погрешности определения коэффициента расширения }

Procedure EPSI;

begin { EPSI }

EEPS:=0.0;

if NSUBA[NNIT]<>23 then begin

case NSUZA[NNIT] of

0: if BET <= 0.75 then EEPS := 4.0-DP/P

else EEPS := 8.0-DP/P;

1: EEPS := 2.0*DP/P;

else

EEPS := DP*(4.0+100.0*r_(BET, 8.0))/P;

end;

end; {endif}

end; { EPSI }

{----------------------------------------------------------------------------------}

{Расчет методических погрешностей определения плотности, показателя

адиабаты и динамической вязкости}

Procedure EPH;

var

N:byte;

const

EPH3:array (1..2,1..3,1..3) ofreal=(((0.3,0.4,0.2),

(0.9,1 -0,0.6),(2.0,3.0,2.0)),((0.6,1.3,0.4),(0.6,1.1,0.6),

(2.0,3.0,2.0)));

begin ( EPH }

if NSUBA(NNIT) = 0 then begin

case NMETHKA[NNIT] of

0: begin

if ROS<=0.70 then ERO:=0.2

else begin

if ROS <= 0.76 then ERO:=0.5

else ERO:= 1.7;

end; {endif}

end;

1: ERO:=0.2;

2: ERO:=0.2;

3: begin

if YR[13] = 0.0 then begin

if T>-3.0 then begin

ERO:=EPH3[1,1,3]; EKAP:=EPH3[1,2,3];

EVIS:=EPH3[ 1,3,3]

end else begin

if P>60.0 then begin

ERO:=EPH3[1,1,2]; EKAP:=EPH3[ 1,2,2];

EVIS:=EPH3[ 1,3,2]

end else begin

ERO:=EPH3[1,1,1]; EKAP:=EPH3[1,2,1];

EVIS:=EPH3[1,3,1]

end; {endif}

end; {endif}

end else begin

if T>-3.0 then begin

ERO:=EPH3[2,1,3]; EKAP:=EPH3(2,2,3];

EVIS:=EPH3[2,3,3]

end else begin

if P>60.0 then begin

ERO:=EPH3[2.1,2]; EKAP:=EPH3[2,2,2];

EVIS:=EPH3[2,3,2]

end else begin

ERO:=EPH3[2,1,1]; EKAP:=EPH3[2,2,1];

EVIS:=EPH3(2,3,1]

end; {endif}

end; {endif}

end; {endif}

end;

end; { endcase }

if NMETHKA[NNIT]<>3 then begin

if T>-3.0 then begin

EKAP:=EPH3[ 1,2,3]; EVIS:=EPH3[1,3.3]

end else begin

if P>60.0 then begin ,

EKAP:=EPH3[ 1,2.2]; EVIS:=EPH3[1,3,2]

end else begin

EKAP:=EPH3[1,2,1]; EVIS:=EPH3(1,3,1]

end; {endif}

end; {endif}

EKAP:=EKAP+2.0;

if P<=5.0 then EVIS:=EVIS+3.0

else EVIS:=EVIS+6.0

end; {endif}

end else begin

N:=NSUBA[NNIT];

EPHP(N, T, P, ERO,EKAP,EVIS);

end; {endif}

end; { EPH }

{---------------------------------------------------------------------------------}

{Методические погрешности определения плотности, показателя адиабаты и вязкости чистых веществ}

Procedure EPHP;

const

TC:array [1..31] of real=(-82.0,32.0,96.0,134.0,152.0,187.0,

196.0,234.0,300.0,326.0,77.0.9.0.92.0,327.0,357.0,307.0,227.0,

-140.0,31.0.100.0,187.0,374.0,374.0,-119.0.-132.0,-268.0,

-173.0,-73.0,-240.0,132.0,-147.0);

PC:array [1..31,1..2] of real=((45.0,45.0),(48.0,48.0),

(41.0,41.0),(36.0,36.0),(37.5,37.5),(33.0,33.0),(33.0,33.0),

(29.0,29.0),(26.0,40.0),(25.0,25.0),(50.0,50.0),(50.0,50.0),

(46.0,46.0),(50.0,40.0),(50.0,40.0),(50.0.30.0),(50.0,5Э.О),

(35.0,30.0),(73.0,73.0),(90.0,90.0),(50.0,30.0),(217.0,217.0),

(217.0,217.0),(50.0,50.0),(35.0,35.0),(2.3,2.3),(27.0,27.0),

(49.0,49.0),(13.0,13.0),(113.0,113.0),(34.0,33.0));

ER:array [1..31.1..3] of real=((0.06,0.09,0.09),

(0.04,0.29,0.29),(0.03,0.21,0.21),(0.07,0.1,0.1),

(0.4,0.6,0.6),(0.2,0.3,0.3),(0.2,0.3,0.3),(0.4,0.5,0.5),

(0.3,0.5,0.2),(0.2,0.4,0.4),(0.5,1.3,1.0),(0.08,0.48,0.48),

(0.1,1.0,1.0),(0.1,0.5,0.1),(0.1,0.5,0.1),(0.4,0.8,0.5),

(1.0,3.0,1.5), (0.3,0.2,0.2),(0.1,0.4,0.4), (0.25,0.25,0.25),

(0.4,1.0.0.5),(0.1,0.2,0.2),(0.03,0.03,0.03),(0.12,0.4,0.4),

(0.02,0.05,0.05),(0.2,0.2,0.2),(0.25,0.3,0.15),

(0.25,0.3.0.15),(0.25,0.2,0.2),(0.05,0.1,0.1),

(0.03,0.04,0.04));

EK:array [1..31,1..3] of real=((0.7,1.7,1.7),(0.2,2.4,2.4),

(0.14,0.69,0.69),(4.0,4.0,4.0),(4.0,4.0,4.0),(1.5,1.5,1.5),

(1.2.1.2,1.2),(0.8,0.8,0.8),(3.0,4.0,2.0),(3.0,2.0.2.0),

(3.0,6.0,5.0),(0.4,1.4,1.4),(0.15.1.2,1.2),(2.0,4.0,1.5),

(2.0,4.0,1.5),(5.0,10.0,6.0),(6.0,10.0,8.0),(0.5.2.0,2.0),

(0.6,0.6,0.6),(1.5,1.5,1.5),(2.0,6.0,3.0),(2.5,2.5,2.5),

(2.0,2.0,2.0),(3.0,1.8,1.8),(0.5,0.7,0.7),(3.4,3.4,3.4),

(1.5,2.0,1.0),(1.5,2.0,1.0),(2.0,2.0,2.0),(4.0,4.0,4.0),

(1.6,1.6,1.6));

EV:array [1..31,1..2] ofreal=((4.7,1.5),(2.0,2.0),(3.0,2.0),

(2.0,2.0),(3.0,2.0),(4.0,4.0),(4.0,3.0),(5.0,4.0),(1.0,4.5),

(2.0,2.0),(2.0,5.0),(2.0,2.0),(5.0,3.0),(1.0,4.5),(1.0,4.5),

(1.5,3.0),(6.0,6.0),(1.0,3.0),(0.7,1.4),(2.3,2.3),(1.0,5.0),

(0.47,1.1),(2.0,2.0),(1.8,1.3),(4.7,4.0),(2.6,2.6),(2.0,2.0),

(2.0,2.0),(3.0,5.0),(2.0,2.0),(1.1,4.0));

begin ( EPHP }

if ((9<=N) and (N<=11)) or((14<=N) and (N<=17)) or (N=21) or

((27<=N) and (N<=28)) then begin

if P<=PC[N,1] then begin

ERO:=ER[N,1]; EKAP:=EK[N,1]

end else begin

if T<=TC[N] then begin

ERO:=ER[N,2]; EKAP-EK[N,2]

end else begin

ERO-=ER[N,3]; EKAP:=EK[N,3]

end; {endif}

end; {endif}

end else begin

if T<=TC[N] then begin

ERO:=ER[N,1]; EKAP:=EK[N,1]

end else begin

ERO:=ER[N,2]; EKAP:=EK[N,2]

end; {endif}

end; (endif}

if P<=PC[N,2] then EVIS:=EV[N,1]

else EVIS:=EV[N,2];

end; { EPHP }

{--------------------------------------------------------------}

Procedure ROW;

var

E1ROSC,E1RORC,

E2ROS,E3ROS,EDROS,

ERO1SC,ERO1RC,

ER02S,EVROS: real;

YRO : array [1..2] of real;

begin { ROW }

if (E[1]<>0)or(E[2]<>0)then

begin

E1ROSC := E[1];

E1RORC := Е[2]

end

else begin

if [E13]<>0 then

begin

E1ROSC := E[3];

E1RORC := 0.0

end

else begin

E1ROSC := sqrt(sqr(E[4]) + sqr(E[5]));

E1RORC := sqrt(sqr(E[6]) + sqr(E[7]))

end;

end; {endif}

E2ROS := E[8]*(T1HO-T1LO);

E3ROS := E[9]*(UH-UL);

EDROS := sqrt(sqr(ElROSC)+sqr(E2ROS)+sqr(E3ROS)+sqr(E[10]));

if (E[11]<>0)or(E[12]<>0)then

begin

ERO1SC := E[11];

ERO1RC := E[12];

end

else begin

if E[13]<>0 then

begin

ERO1SC:= E[13];

ERO1RC := 0.0

end

else begin

ERO1SC := sqn(sqr(E[14] + sqr(E[15]));

ERO1RC := sqn(sqr(E[16]) + sqr(E[17]));

end;

end; {endif}

ERO2S := E[18]-(T2HO-T2LO);

EVROS := sqrt(sqr(ERO1SC)+sqr(ERO2S)+sqr(E(191)+sqr(E[20]));

YRO[11:=(E[21]-E[22])/RoM;YRO[2]:=(sqrt(E[21]-sqrt(E[22]))/

sqn(RoM),

EROWS := sqrt(sqr(YRO[1]*EDROS)+sqr(YRO[2] EVROS));

EROWR := sqrt(sqr(YRO[1]*ElRORC)+sqr(YRO[2]*ERO1RC));

EROW := sqrt(sqr(EROWS)+sqr(EROWR))

end; { ROW }

{---------------------------------------------------------------------------- }

{Расчет расхода и количества среды}

Procedure QCalc;

var

I, IBeg, IFin: byte;

Bet4, ec, Eps, Rd, Psi, Rk, Cb, LI, L2, Alfa,

Qcb, ARe, RO, KRe, KCb, Log : real;

HsS: string[10]; Code: integer;

label

1,3;

const

HsSubsl: array [1..31] ofreal= (37.12,65.43,93.85,122.8,123.6,0.0,

0.0,0.0,0.0,0.0,54.47,59.04,86.88,

0.0,0.0,0.0,52.70,11.77,0.0,23.61,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,

11.88,16.11,0.0);

HsSubs2: array [1..31] ofreal= (33.43,59.87,86.37,113.4,114.1,0.0,

0.0,0.0,0.0,0.0,52.62,55.34,81.29,

0.0,0.0,0.0,48.94,11.77,0.0,21.75,

0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,

10.04,13.32,0.0);

RocSubs: array [1..31] of real = (0.6682,1.2601,1.8641,2.488,

2.4956,3.147,3.174,3.898,4.755,

5.812,1.09,1.1733,1.776,3.469,

4.294,1.587,2.045,1.1649,1.8393,

1.4311,2.718,0.787,998.23,

1.33116,1.20445,0.16631,0.8385,

1.6618,0.08375,0.716,1.1649);

Rocii: array [1..16] of real=(0.66692,1.25004,1.83315,2.41623,

2.41623,2.99934,2.99934,3.58246,

4.16558, 4.74869,1.16455,1.82954,

1.41682,0.16639,1.1644,0.0838);

CalcTpNg = TpNg.exe; CalcTpSubs = TpSubs.exe;

begin { QCalc }

ifNRQOO then begin

{Расчет физических свойств среды}

assign(Fl, IRD); rewrite(Fl);

if NsubA[NNIT] = 0 then begin

writeln(Fl, NMethKA[NNIT]);

if NMETHKA[NNIT] >= 2 then begin

IBeg .= 1,

repeat

I Fin .= IBeg + 3;

for I .= IBeg to IFin do write(Fl, YR[I]:14,BL);

writeln(Fl);IBeg :== IFin + 1

until IBeg > 16;

end

else begin

if NVARYA[NNIT] = 0 then begin

Roc := 0.0; for I := 1 to 16 do Roc := Roc + YR[I]* Rocii[I];

Zc := 0.0; for I := 1 to 16 do Zc := Zc + YR[I] * Bi[I];

Roc :== Roc/(1.0 - sqr(Zc));

Ya:=YR[11]; Yy:=YR[12];

end; {endif}

writeln(Fl. Roc:14, Bl, Ya:14, Bl, Yy:14)

end

end

else

writeln(Fl, NSubA[NNIT]);

writeln(Fl, P:l4, Bl, T:14);

close(Fl);

TextColor(7);

gotoxy( 19.9);

writeln(`|-------------------------------------------------------------------------------------------------------------------------------------------|`)

gotoxy(19,10);

writeln(`| |`);

gotoxy(19,11);

write(`| `);

TextColor(135);

Write (`Ж Д И Т Е`);

TextColor(7);

writeln(` |`);

gotoxy(19,12);

writeln(`| |`);

gotoxy(19,13);

writeln(`|ВЫПОЛНЯЕТСЯ РАСЧЕТ|`);

gotoxy(19,14);

writeIn(`| |`);

gotoxy(19,15);

writeln(`|____________________________________________________________|`);

if NSubA[NNIT] = 0 then begin

gotoxy(21,12);

swapvectors; exec(CalcTpNg, CalcTpNg); swapvectors;

TextColor(7);

gotoxy( 19.9);

writeln(`|--------------------------------------------------------------------------------------------------------------------------------------|`)

gotoxy(19,10);

writeln(`| |`);

gotoxy(19,11);

write (`| `);

TextColor(135);

Write(`ЖДИТЕ`);

TextColor(7);

writeIn(` |`);

gotoxy(19,12);

writeln(`| |`);

gotoxy(19,13);

writeln(`|ВЫПОЛНЯЕТСЯ РАСЧЕТ|`);

gotoxy(19,14);

writeIn(`| |`);

gotoxy(19,15);

writeln (`|____________________________________________________________|`);

end

else begin

swapvectors; exec(CalcTpSubs, CalcTpSubs); swapvectors;

Roc := RocSubs[NsubA[NNIT]]

end;

assign(Fl, IRD); reset(Fl);

if (NsubA[NNIT] = 0) and (NmethKA[NNIT] >= 2) then

readln(Fl, Roc);

if NsubA[NNIT] = 0 then begin

readln(Fl, Hs[1], Hs[2]);

for I := 1 to 2 do begin

Str(Hs[1]:10,HsS);Val(HsS,Hs[1],Code)

end;

end

else begin

Hs[1] := HsSubsl[NSubA[NNIT]];

Hs[2] := HsSubs2[NSubA[NNIT]]

end;

readln(Fl, ROX, KAPPAX, MUX);

close(Fl); erase(Fl);

if NsubA[NNIT] = 0 then str(Roc;6:4, RocStr);

end; {endif}

if (NSubA[NNit] = 0) and (VarRoA[NNit] = 1) and

(NRQ <> 0) then ROX:=RoM;

{ Расчет: 1) диаметров сужающего устройства и измерительного трубопровода при рабочей температуре; 2) коэффициента скорости входа }

Dd := (1.0 + AlfaSU * (Т - 20.0)) * Dd0;

Dt := (1.0 + AlfaT (Т - 20.0)) * Dt0;

Bet := Dd / Dt; Bet4 := sqr(Bet) * sqr(Bet);

ec := 1.0/sqrt(1.0 - Bet4);

{ Расчет коэффициента расширения }

Eps := 1.0;

if NSubA[NNIT] 0 23 then begin

if NSuzA[NNIT] = 0 then

Eps := 1.0 - (0.41 + 0.35 * Bet4) * Dp / P / KAPPAX;

ifNSuzA[NNIT] <> 0 then begin

Psi := 1.0 - Dp / P;

Eps := KAPPAX * r_(Psi, 2.0 / KAPPAX) / (KAPPAX - 1.0) *

(1.0 - Bet4) / (1.0 - Bet4 r_(Psi, 2.0 / KAPPAX))*

(1.0 - r_(Psi, (KAPPAX - 1.0) / KAPPAX)) /

(1.0 - Psi);

Eps := sqrt(Eps)

end;

end;

{Расчет поправочного коэффициента на шероховатость внутренней поверхности

измерительного трубопровода без учета числа Рейнольдса}

KSh .= 1.0;

if (NSuzA[NNit] <= 2) and (RSh <> 0.0) then begin

ARe := 0.5; Rd := RSh / Dt; Log := Ln(Rd * 1.e4) / 2.3026;

if NSuzA(NNit) = 0 then begin

if Log <= (1.0 / 10.0 / Bet4 + 8.0) / 14.0 then begin

R0 := 0.0; goto 1;

end;

R0 := 0.07 * Log - 0.04

end

else begin

if Log <= (1.0 / 10.0 / Bet4 + 5.0) / 9.0 then begin

R0 := 0.0; goto 1;

end;

R0 := 0.045 Log - 0.025

end;

KSh :== 1.0 + Bet4 * R0 ARe

end;

1:;

{Расчет поправочного коэффициента на притупление входной кромки отверстия диафрагмы}

Kk := 1.0;

if (NSuzA[NNIT] = 0) and (DdO < 125.0) then begin

if TauP = 0.0 then Rk := Rn;

if TauP = 1.0 then Rk := 0.0292 + 0.85 * Rn;

if (TauP <> 0.0) and (TauP 0 1.0) then

Rk := 0.195 - (0.195 - Rn) * (1.0 - Exp(-TauP / 3.0)) *

3.0 / TauP;

Kk := 1.0547 - 0.0575 * Exp(-149.0 * Rk / Dd)

end;

{Расчет коэффициента истечения при числе Рейнольдса, стремящемся к бесконечности}

if NSuzA[NNit] = 0 then begin

L1 := 0.0; L2 := 0.0;

if SodSuA[NNit] = 1 then begin

L1 := 25.4 / Dt; L2 := L1;

if L1 >= 0.4333 then L1 := 0.039 else L1 := 0.09 * LI

end;

if SodSuA[NNit] = 2 then begin L1 := 0.039; L2 := 0.47 end;

Cb := 0.5959 + 0.0312 * r_(Bet, 2.1) - 0.184 * sqr(Bet4) +

L1 * Bet4 / (1.0 - Bet4) - 0.0337 * L2 * r_(Bet, 3)

end;

if NsuzA[NNIT] = 1 then Cb := 0.99 - 0.2262 * rJBet, 4.1);

{Для сопла Вентури Cb = С, так как KRe = 1}

if NSuzA[NNIT] = 2 then Cb := 0.9858 - 0.196 * r_(Bet, 4.5);

{Для труб Вентури Cb = С = const, так как KRe = 1 и Re > 2.е5}

case NSuzA[NNIT] of

3: Cb = 0.984;

4: Cb = 0.995;

5: Cb = 0.985

end;

{Расчет коэффициента расхода сужающего устройства и расхода при числе Рейнольдса, стремящемся к бесконечности}

Alfa := Cb * Ее;

Qcb := 0.039986 Alfa * KSh * Kk * Eps * sqr(Dd) *

sqrt(1.e3 * Dp * ROX) / Roc;

Re := 4.e6 * Qcb * Roc / 3.6 / 3.141592653 / MUX / Dt;

{Расчет поправочного коэффициента на число Рейнольдса}

case NSuzA[NNIT] of

0: KRe = 1.0 + 1.426 / (1.0 + Cb * r_(Re, 0.75) / 64.28 /

r_Bet. 2.5));

1: KRe .= 1.0 - 0.86 / (1.0 + Cb * r_(Re, 1.15) / 923.9 /

sqr(Bet) / (33.0 * r_(Bet, 2.15) - 17.5));

2: KRe := 1.0;

3: KRe := 1.0;

4: KRe := 1.0;

5: KRe := 1.0;

end;

{Определение действительного значения числа Рейнольдса}

Re := Re * KRe;

{Расчет поправочного коэффициента на шероховатость внутренней поверхности

измерительного трубопровода с учетом числа Рейнольдса для всех сужающих

устройств, кроме труб Вентури}

if (NSuzA[NNit] <= 2) and (RSh <> 0.0) then begin

Qcb := Qcb / KSh;

if Re > 1 .e4 then begin

if Re < 1.e6 then ARe := 1.0 - sqr(Ln(Re) / 2.3026 - 6.0) / 4.0

else ARe := 1.0;

KSh := 1.0 + Bet4* R0 * ARe

end;

if (Re <= 1.e4) or (KSh <= 1.0005) then KSh := 1.0;

Qcb := Qcb KSh

end;

{Определение коэффициента истечения для труб Вентури в зависимости от числа

Рейнольдса}

if (Re < 2.e5) and (NSuzA[NNIT] > 2) then

case NSuzA[NNIT] of

3: begin

if Re <= 6.e4 then Cb := 0.957;

if (Re > 6.e4) and (Re <= 1.e5) then Cb := 0.966;

if (Re > 1.e5) and (Re <= 1.5e5) then Cb := 0.976;

if Re > 1.5e5 then Cb := 0.982

end;

4: begin

if Re <= 4.e4 then Cb := 0.970;

if (Re > 4.e4) and (Re <= 8.e4) then Cb := 0.977;

if (Re > 8.e4) and (Re <= 1.2e5) then Cb := 0.992;

if Re > 1.2e5 then Cb := 0.998

end;

5: begin

if Re <= 6.e4 then Cb := 0.960;

if (Re > 6.e4) and (Re <= 1.e5) then Cb := 0.970;

if Re > 1.e5 then Cb := 0.980

end;

end;

KCb := 1.0;

{Определение поправки на коэффициент истечения для труб Вентури, в

зависимости от числа Рейнольдса}

if (Re < 2.e5) and (NSuzA[NNIT] > 2) then

case NSuzA[NNIT] of

3: KCb = Cb/0.984;

4: KCb = Cb/0.995;

5: KCb = Cb/0.985;

end;

(Расчет расхода и количества среды при действительном значении числа Рейнольдса}

Qc := Qcb * KRe * KCb; Vcv := Qc * TauAv; Vc := Vcv;

if (NSubA[Nnit] = 22) or (NSubA[NNit] = 23) then begin

Vm := Vcv * Roc / 1000.0; Qc := Qc*Roc/1000.0 end;

end; { QCalc }

{-----------------------------------------------------------------------------------------------------}

{Расчет погрешностей определения теплоты сгорания}

Procedure HSP;

const

DHS: array[1..31] of real = (0.11.0.11,0.28,0.42,0.42,0.0,0.0,0.0,

0.0,0.0,0.14.0.22.0.28,0.0,0.0,0.0,

0.41,0.14,0.0.0.41,0.0,0.0,0.0,0.0,

0.0,0.0,0.0,0.0,0.11,0.5,0.0);

HsNgI: array[1..16] of real = (37.04,64.91,92.29,119.7,119.3,

147.0,146.8,174.5,201.8,229.2,0.0,

0.0,23.37,0.0,11.76.11.89);

HsNg2: array[1..16] of real = (33.37,59.39,84.94,110.5,110.1,

/136.0,135.7,161.6,187.1,212.7,0.0,

0.0,21.53,0.0,11.76,10.05);

var

H1,H2,SH1,SH2 : real; I : byte;

begin { HSP }

if NSUBA[NNIT] = 0 then begin

if (NMETHKA[NNIT] = 0) or (NMETHKA[NNIT] = 1) then begin

H1:=(0.51447*ROSC+0.05603-0.65689*YA-YY);

H2:=(0.52190*ROSC+0.04242-0.65197*YA-YY);

ERRH1:=sqrt(sqr(0.51447*ROSC*EROS)+sqr(YY*EROSA[18])+

sqr(0.65689*YA*EROSA[17]))/Hl;

ERRH2:=sqrt(sqr(0.52190*ROSC*EROS)+sqr(YY*EROSA[18])+

sqr(0.65197*YA*EROSA[17]))/H2

end else begin

SH1:=0.0; SH2:=0.0; ERRH1:=0.0; ERRH2:=0.0; Zc:=0.0;

for I :=- 1 to 16 do begin

Zc := Zc + RIM[I] * Bi[I]; SH1:=SH1+RIM[I]*HSNG1[I];

SH2:=SH2+RIM[I]*HSNG2[I];

ERRH1:=:ERRH1+sqr(RIM[I]*HSNGl[I]*EROSA[I+6]);

ERRH2:=ERRH2+sqr(RIM[I]*HSNG2[I]*EROSA[I+6])

end; {endfor}

Zc := 1.0 - sqr(Zc); ERRH1:=Zc*sqrt(ERRH1)/SHl;

ERRH2:=Zc*sqrt(ERRH2)/SH2

end; {endif}

end else begin

ERRH1:=DHS[NSUBA[NNIT]]; ERRH2:=ERRH1

end; {endif}

end; { HSP }

{---------------------------------------------------}

function r_; begin r_:=exp(R*ln(A)) end;

END. { ERRQSNX }

Ключевые слова: расход, количество, жидкость, газ, среда, перепад давлений, расчет, погрешность