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 }
Ключевые слова: расход, количество, жидкость, газ, среда, перепад давлений, расчет, погрешность