QC2,VCV2,VC2,VM2,RO,KAPPA,MU,HS);
TETDT:=DT20*(QC1-QC2)/(2.0*DDT)/QC;
DKAP:=0.001*EKAP* KAPPA; KAP1:=KAPPA+DKAP; KAP2:=KAPPA-DKAP;
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC1,VCV1,VC1,VM1,RO,KAP1,MU,HS);
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC2,VCV2,VC2,VM2,RO,KAP2,MU,HS);
TETKAP:=KAPPA*(QC1-QC2)/(2.0*DKAP)/QC;
DMU:=0.001*EVIS*MU; MU1:=MU+DMU; MU2:=MU-DMU;
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC1,VCV1,VC1,VM1,RO,KAPPA,MU1,HS);
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC2,VCV2,VC2,VM2,RO,KAPPA,MU2,HS);
TETMU:=MU*(QC1-QC2)/(2.0*DMU)/QC;
TETC:=1.0; TETEPS:=1.0; TETRO:=0.5;
if (NSubA[NNit]=0) and (VarRoA[NNit]=l) then begin
TETRO:=0.0;
if EROW <> 0.0 then begin
DROS:=0.001*EROW*RoM; R01:==RoM+DROS;R02:=RoM-DROS;
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC1,VCV1,VC1,VM1,R01,KAPPA, MU,HS);
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC2,VCV2,VC2,VM2,R02,KAPPA,MU,HS);
TETRO:=RoM*(QCl-QC2)/(2.0*DROS)/QC
end;
end;
NRQ:=1;
TETYA:=0.0; TETYY:=0.0; for I:= 1 to 16 do TETYI[I]:=0.0;
if (NSUBA[NNIT]<>0) or (NVARYA[NNIT]=0) then TETROS:=1.0
else begin
TETROS:=0.0;
if EROS <> 0.0 then begin
DROS:=O.OOrEROS*ROSC; ROS1:=ROSC+DROS;ROS2:=ROSC-DROS;
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSl,
QC1,VCV1,VC1,VM1,R01,KAP1,MU1,HSX);
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROS2,
QC2,VCV2,VC2,VM2,R02,KAP2,MU2,HSX);
TETROS:=ROSC*(QCl-QC2)/(2.0*DROS)/QC;
end;
if(YA <> 0.0) and (EROSA[17] <> 0.0) then begin
DYA:=O.OOPEROSA[17]*YA; YA1:=YA+DYA; YA2:=YA-DYA;
QCalc(NRQ,TMG,PMG,DPM,YAl,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC1,VCV1,VC1,VM1,R01,KAP1,MU1,HSX);
QCalc(NRQ,TMG,PMG,DPM,YA2,YY,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC2,VCV2,VC2,VM2,R02,KAP2,MU2,HSX);
TETYA:=YA*(QC1-QC2)/(2.0*DYA)/QC
end;
if (YY <> 0.0) and (EROSA[18] <> 0.0) then begin
DYY:=0.001*EROSA[18]*YY; YY1:=YY+DYY; YY2:=YY-DYY;
QCalc(NRQ,TMG,PMG,DPM,YA,Yyl,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC1,VCV1,VC1,VM1,R01,KAP1,MU1,HSX);
QCalc(NRQ,TMG,PMG,DPM,YA,YY2,DD20,DT20,RIM,BET,RE,KSH,KK,ROSC,
QC2,VCV2,VC2,VM2,R02,KAP2,MU2,HSX);
TETYY:=YY* (QC 1 -QC2)/(2.0* DYY)/QC
end;
end; {endif}
TETT:==0.0;
if ET <> 0.0 then begin
DTMG:=0.001*ET*(TMG+273.15);
QCalc(NRQ,TMG+DTMG,PMG.DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,
ROSC,QC1,VCV1,VC1,VM1,R01,KAP1,MU1,HSX);
QCalc(NRQ,TMG-DTMG,PMG,DPM,YA.YY,DD20,DT20,RIM,BET,RE,ICSH,KK,
ROSC,QC2,VCV2,VC2,VM2,R02,KAP2,MU2,HSX);
TETT:=(TMG+273.15)*(QC1-QC2)/(2.0*DTMG)/QC
end;
TETP:=0.0;
if EP <> 0.0 then begin
DPMG:=0.001*EP*PMG;
QCalc(NRQ,TMG,PMG+DPMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,-
ROSC,QC1,VCV1,VC1,VM1,R01,KAP1,MU1,HSX);
QCalc(NRQ,TMG,PMG-DPMG,DPM,YA,YY,DD20,DT20,RIM,BET,RE,KSH,KK,
ROSC,QC2,VCV2,VC2,VM2,R02,KAP2,MU2,HSX);
TETP:=PMG*(QC1-QC2)/(2.0*DPMG)/QC
end;
EYR:=0.0;
if (NSUBA[NNIT]=0) and (NVARYA[NNIT]=0) then
for I := 1 to 16 do
if(RIM[I] <> 0.0) and (EROSA[I+6] <> 0.0) then begin
DRIM:=0.001*EROSA[I+6]*RIM[I];
RIMX[I]:=RIM[I]+DRIM;
for J := 1 to 16 do
if (J<>I) and (RIM[J]<>0.0) then
RIMX[J]-RIM[J]1.0-DRIM/1.0-RIM[I]));
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RIMX,BET,RE,KSH,KK,ROSl,
QC1,VCV1,VC1,VM1,R01,KAP1,MU1,HSX);
RIMX[I]:=RIM[I]-DRIM;
for J := 1 to 16 do
if (J<>I) and (RJM[J]<>0.0) then
RIMX[J]:=RIM[J]*(1.0+DRIM/(1.0-RIM[I]));
QCalc(NRQ,TMG,PMG,DPM,YA,YY,DD20,DT20,RJMX,BET,RE,KSH,KK,ROS2,
QC2,VCV2,VC2,VM2,R02,KAP2,MU2,HSX);
TETYI[I]:=500.0*(QCl-QC2)/QC/EROSA[I+6];
EYR:=EY.+sqr(TETYI[I])*(sqr(EROSA[6+I])+sqr(DVY[I]))
end; {endif}
EQR:=sqrt(sqr(TETDP)*(sqr(EDPR)+sqr(DVDP))+sqr(TETP)*
(sqr(EPR)+sqr(DVPG))+sqr(TETT)*(sqr(ETR)+sqr(DVTG))+
sqr(TETROS)*(sqr(EROSR)+sqr(DVR))+sqr(TETYA)*
(sqr(EROSA[17])+sqr(DVAY[1]))+sqr(TETYY)*
(sqr(EROSA[18])+sqr(DVAY[2]))+EYR+sqr(TETRO*EROWR));
EQS:=sqrt(sqr(TETDP*EDPS)+sqr(TETP*EPS)+
sqr(TETT*ETS)+sqr(TETROS*EROSS)+sqr(TETC*ERC)+.
sqr(TETEPS*EEPS)+sqr(TETDD*EDD)+sqr(TETDTEDT)+
sqr(TETRO* ERO)+sqr(TETKAP* EKAP)+sqr(TETMU* EVIS));
EQ1 := sqrt(sqr(EQS)+sqr(EQR));
ifERRTAU = 0.0 then ERRTAU:=100.0*DHD/(60*TAUAV);
EVC := sqrt(sqr(EQS)+sqr(EQR)+sqr(ERRTAU));
HSP(RIM, YA, YY, ERRH1, ERRH2);
if ERRH1 = 0.0 then begin
EH[1]:=0.0; EH[2]:=0.0
end else begin
EH[1]:=sqrt(sqr(ERRH1)+sqr(EVC));
EH [2] :=sqrt(sqr(ERRH2)+sqr(EVC))
end; {endif}
HSV[1]:=Hs[1]*VCV;HSV[2]:=Hs[2]*VCV
end else begin
case IERR of
1: begin
writeln(Fl,
расстояние между первым перед сужающим устройством гидравлическим сопротивлением');
writeln(Fl,
и сужающим устройством меньше допустимой величины (7.2.4, 7.3.1 ГОСТ 8.563.1).);
end;
2: begin
writeln(Fl,
расстояние между сужающим устройством и гидравлическим сопротивлением за сужающим устройством');
writeln(Fl,
меньше допустимой величины (7.2.4 ГОСТ 8.563.1).);
end;
3: begin
writeln(Fl,
дополнительная погрешность коэффициента истечения, обусловленная сокращением');
writeln(Fl,
длин прямых участков между сужающим устройством и гидравлическими сопротивлениями,');
writeln(Fl,
превышает 1 % (7.2.4 ГОСТ 8.563.1).);
end;
4: begin
writeln(Fl,
эксцентриситет между осями измерительного трубопровода и сужающего устройства превышает допустимую');
writeln(Fl,
величину (7.5.2.3 ГОСТ 8.563.1).);
end;
5: begin
writeln(Fl,
высота уступа между двумя секциями измерительного трубопровода превышает допусти-');
writeln(Fl,
мую величину (7.5.1.4 ГОСТ 8.563.1).);
end;
end; { endcase }
end; (endif}
end; {QS}
{-----------------------------------------------------------------------------------------}
{Расчет погрешностей измерения перепада давления на сужающем устройстве} Procedure DP;
var
E1DPSC.E1DPRC,EDP1SC.EDP1RC,E2DPS,E3DPS,E6DPS,EDDPS,
EDP2S,EVDPS,EDP5S,EDPRSC,EDPRRC,EDPRS,ERDPS : real;
YDP :array[1..2] of real;
begin { DP }
if(E[1]<>0)or(E[2] <>0)then
begin
E1DPSC := E[1];
E1DPRC := E[2]
end
else begin
if E[3]<>0 then
begin
E1DPSC := E[3];
E1DPRC := 0.0
end
else begin
E1DPSC := sqrt(sqr(E[4]) + sqr(E[5]));
E1DPRC := sqrt(sqr(E[6]) + sqr(E[7]))
end;
end; {endif}
E2DPS := E[8]*(T1HO-T1LO);
E3DPS := E[9]*(UH-UL);
E6DPS := E[12]*(PHG-PLG);
EDDPS := sqrt(sqr(ElDPSC)+sqr(E2DPS)+sqr(E3DPS)+sqr(E[10])+
sqr(E[11])+sqr(E6DPS));
if SIZMDPD > 1 then begin
if (E[13]<>0) or (E[14]<>0) then
begin
EDP1SC := E[13];
EDP1RC := E[14];
end
else begin
if E[15]<>0 then
begin
EDP1SC := E[15];
EDP1RC := 0.0
end
else begin
EDP1SC := sqrt(sqr(E[16]) + sqr(E[17]));
EDP1RC := sqrt(sqr(E[18]) + sqr(E[19]));
end;
end; {endif}
EDP2S := E[20]*(T2HO-T2LO);
EVDPS := sqn(sqr(EDPlSC)+sqr(EDP2S)+sqr(E[21])+sqr(E[22]));
ifSIZMDPD = 7 then begin
if (E[23]<>0) or (E[24]<>0) then
begin
EDPRSC := E[23];
EDPRRC := E[24]
end
else begin
if E[25]<>0 then
begin
EDPRSC:= E[15];
EDPRRC := 0.0
end
else begin
EDPRSC := sqrt(sqr(E[26]) + sqr(E[27]));
EDPRRC := sqrt(sqr(E[281) + sqr(2[29]))
end;
end; {endif}
EDPRS := E[30]*(T2HO-T2LO);
ERDPS := sqrt(sqr(EDPRSC)+sqr(EDPRS)+sqr(E[31])+sqr(E[32]));
end;
end; {endif}
YDP[1]:=E[35]/DPC;YDP[2]:=2.0*sqrt(E[35]/DPC);
case SIZMDPD of
0: begin
EDPSY := YDP[1]*EDDPS;
EDPRA := YDP[1]*E1DPRC
end;
1: begin
EDPSY := YDP[2]*EDDPS;
EDPRA := YDP[2]*E1DPRC
end;
2: begin
EDPSY := sqrt(sqr(YDP[1]*EDDPS)+sqr(YDP[1]*EVDPS));
EDPRA := sqrtCsqrODPlirElDPRQ+sqrCYDPtirEDPlRC))
end;
3: begin
EDPSY := sqrt(sqr(YDP[1]*EDDPS)+sqr(YDP[2]*EVDPS));
EDPRA := sqrt(sqr(YDP[1]*ElDPRC)+sqr(YDP[2]*EDPlRC))
end;
4: begin
EDPSY := sqit(sqr(YDP[1]*EDDPS)+sqr(YDP[1]*EVDPS)+sqr(YDP[1]* E[33]));
EDPRA := sqrt(sqr(YDP[1]*ElDPRC)+sqr(YDP[1]*EDPlRC)+
sqr(YDP[1]*E[34]))
end;
5: begin
EDPSY := sqrt(sqr(YDP[1]*EDDPS)+sqr(YDP[1]*EVDPS)+sqr(YDP[2]*
E[33]));
EDPRA := sqrt(sqr(YDP[1]*ElDPRC)+sqr(YDP[1]*EDPlRC)+
sqr(YDP[21*E[34]))
end;
6: begin
EDPSY := sqrt(sqr(YDP[1]*EDDPS)+sqr(YDP[2]*EVDPS)+sqr(YDP[2]*
E[33D);
EDPRA := sqrt(sqr(YDP[irElDPRC)+sqr(YDP[2]*EDPlRC)+
sqr(YDP[2]*E[34]))
end;
7: begin
EDPSY := sqn(sqr(YDP[1]*EDDPS)+sqr(YDP[2]*ERDPS)+
sqr(YDP[2]*EVDPS)+sqr(YDP(21E[33]));
EDPRA := sqrt(sqr(YDP[1]*E1DPRC)+sqr(YDP[2]*EDPRRC)+
sqr(YDP[2]*EDP1RC)+sqr(YDP[2]*E[34]))
end;
end; { endcase }
EDP := sqn(sqr(EDPSY)+sqr(EDPRA));
end; { DP }
{------------------------------------------------------------------------}
{Расчет погрешностей определения давления среды}
Procedure P;
var
E1PSC,E1PRC,EP1SC,EP1RC,E2PS,E3PS,EDPS,EP2S,EVPS,EBP : real;
YP: array [1..2] of real;
begin { P }
if (E[1]<>0)or(E[2]<>0)then
begin
E1PSC:= E[1];
E1PRC := E[2]
end
else begin
if E[3]<>0then
begin
E1PSC:= E[3];
E1PRC := 0
end
else begin
E1PSC := sqit(sqr(E[4]) + sqr(E[5]));
E1PRC := sqrt(sqr(E[6]) + sqr(E[7]))
end;
end; {endif}
E2PS := E[8]*(T1HO-T1LO);
E3PS := E[9]*(UH-UL);
EDPS := sqn(sqr(ElPSC)+sqr(E2PS)+sqr(E3PS)+sqr(E[10])+
sqr(E[11]));
if SIZMPD > 1 then begin
if (E[12]<>0) or (E[13]<>0) then
begin
EP1SC := E[12];
EP1RC := E[13]
end
else begin
If E[14]<>0 then
begin
EP1SC := E[14];
EP1RC := 0
end
else begin
EP1SC := sqrt(sqr(E[15]) + sqr(E[16]));
EP1RC = sqrt(sqr(E[17]) + sqr(E[18]))
end;
end; {endif}
EP2S := E[19]*(T2HO-T2LO);
EVPS := sqrt(sqr(EPlSC)+sqr(EP2S)+sqr(E[20])+sqr(E[21]));
end;
YP[11:=E[26]/PM; YP[2]:=2.0*sqrt(E[26]/PM); EBP:=0.0;
If VARPA[NNIT] = 0 then EBP:=sqr(E[24]*E[25]/PM);
case SIZMPD of
0: begin
EPSY := sqrt(sqr(YP[1]*EDPS)+EBP);
EPRA:=YP[1]*E1PRC
end;
1: begin
EPSY := sqrt(sqr(YP[2]*EDPS)+EBP);
EPRA := YP[2]*E1PRC
end;
2: begin
EPSY := sqrt(sqr(YP[1]*EDPS)+sqr(YP[1]*EVPS)+EBP);
EPRA = sqrt(sqr(YP[1]*ElPRC)+sqr(YP[1]*EPlRC))
end;
3: begin
EPSY := sqrt(sqr(YP[1]*EDPS)+sqr(YP[2]*EVPS)+EBP);
EPRA := sqrt(sqr(YP[1]*ElPRC)+sqr(YP[2]*EPlRC))
end;
4: begin
EPSY := sqrt(sqr(YP[1]*EDPS)+sqr(YP[1]*EVPS)+sqr(YP[1]*E[23])+ EBP);
EPRA := sqrt(sqr(YP[1]*ElPRC)+sqr(YP[1]*EPlRC)+sqr(YP[1]* E[24]))
end;
5: begin
EPSY := sqrt(sqr(YP[1]*EDPS)+sqr(YP[1]*EVPS)+sqr(YP[2]*E[23])+ EBP);
EPRA := sqrt(sqr(YP[1]*ElPRC)+sqr(YP[1]*EPlRC)+sqr(YP[2]* E[24]))
end;
6: begin
EPSY := sqrt(sqr(YP[1]*EDPS)+sqr(YP[2]*EVPS)+sqr(YP[2]*E[23])+ EBP);
EPRA := sqn(sqr(YP[1]*ElPRC)+sqr(YP[2]*EPlRC)+sqr(YP[2]* E[24]))
end;
end; { endcase }
EP := sqrt(sqr(EPSY)+sqr(EPRA));
end; {P}
{--------------------------------------------------------------------------------}
{Расчет погрешностей определения температуры среды}
Procedure T;
var
E1TSC.E1TRC,ET1SC,ET1RC,ET2S,EVTS,DET,E2TS,E3TS,EDTS,
ET2SC,ET2RC,ETXS,EXTS : real;
YT: array [1..2] of real;
begin { T }
if SIZMTD = 0 then begin
E1TSC := 100.0*E[0]/(TA+273.15);
E1TRC := 0.0
end else begin
if(E[1]<>0) or(E[2]<>0) then
begin
E1TSC := E[1];
E1TRC := E[2]
end
else begin
if E[3]<>0 then
begin
E1TSC := E[3];
E1TRC := 0.0
end
else begin
E1TSC := sqrt(sqr(E[4]) + sqr(E[5]));
E1TRC := sqrt(sqr(E[6]) + sqr(E[7]))
end;
end; {endif}
E2TS := E[8]*(T1HO-T1LO);
E3TS := Е[9]*(иН-ии;
EDTS := sqrt(sqr(E1TSC)+sqr(E2TS)+sqr(E3TS)+sqr(E[10])+ sqr(E[11]));
If (E[12]<>0) or (E[13]<>0) then
begin
ET1SC := E[12];
ET1RC := E[13]
end
else begin
if E[14]<>0 then
begin
ET1SC := E[14];
ET1RC :=0
end
else begin
ET1SC := sqrt(sqr(E[15]) + sqr(E[16]));
ET1RC := sqrt(sqr(E[17]) + sqr(E[18]))
end;
end; (endif)
ET2S := E[19]*(T2HO-T2LO);
EVTS :- sqn(sqr(ET1SC)+sqr(ET2S)+sqr(E[20])+sqr(E[21]));
If SIZMTD = 6 then begin
If (E[22]<>0) or (E[23]<>0) then
begin
ET2SC := E[22];
ET2RC := E[23]
end
else begin
if E[24]<>0 then
begin
ET2SC := E[24];
ET2RC := 0.0
end
else begin
ET2SC := sqrt(sqr(E[25]) + sqr(E[26]));
ET2RC := sqn(sqr(E[27]) + sqr(E[28]))
end;
end; {endif}
ETXS := E[29]*(T2HO-T2LO);
EXTS := sqrt(sqr(ET2SC)+sqr(ETXS)+sqr(E[30])+sqr(E[31]));
end; {endif}
end; {endif}
DET := (E[34]-E[35])/(TA+273.15);
YT[1]:=DET; YT[2]:=2.0*sqrt(DET);
case SIZMTD of
0: begin
ETSY := YT[1]*E1TSC;
ETRA:=YT[1]*E1TRC
end;
1: begin
ETSY := sqrt(sqr(YT[1]*EDTS)+sqr(YT[1]*EVTS));
ETRA := sqrt(sqr(YT[1]*E1TRC)+sqr(YT[1]*ET1RC))
end;
2: begin
ETSY := sqrt(sqr(YT[1]*EDTS)+sqr(YT[2]*EVTS));
ETRA := sqrt(sqr(YT[1]*E1TRC)+sqr(YT[2]*ET1RC))
end;
3: begin
ETSY := sqrt(sqr(YT[1]*EDTS)+sqr(YT[1]*EVTS)+sqr(YT[1]*
E[32]));
ETRA := sqrt(sqr(YT[1]*E1TRC)+sqr(YT[1]*ET1RC)+sqг(YT[1]*
E[33]))
end;
4: begin
ETSY := sqrt(sqr(YT[1]*EDTS)+sqr(YT[1]*EVTS)+sqr(YT[2]*
E[32]));
ETRA := sqrt(sqr(YT[1]*E1TRC)+sqr(YT[1]*ET1RC)+sqr(YT[2]*
E[33]))
end;
5: begin
ETSY := sqrt(sqr(YT[l]*EDTS)+sqr(YT[2]*EVTS)+sqr(YT[2]*
E[32]));
ETRA := sqrt(sqr(YT[1]E1TRC)+sqr(YT[2]*ET1RC)+sqr(YT[2]*
E[33]))
end;
6: begin
ETSY := sqrt(sqr(YT[1]*EDTS)+sqr(YT[1]*EXTS)+sqr(YT[1]*EVTS)+
sqr(YT[1]*E[32]));
ETRA := sqrt(sqr(YT[1]*E1TRC)+sqr(YT[1]*ET2RC)+sqr(YT[1]*
ET1RC)+sqr(YT[1]*E[33]))
end;
end; { endcase }
ET := sqit(sqr(ETSY)+sqr(ETRA));
end;{Т}
{----------------------------------------------------------------}
{Расчет погрешностей определения плотности среды при стандартных
условиях}
Procedure ROS;
const
EROS1:array( 1 ..31 ] of real=(0.05,0.05,0.2,0.3,0.3,0.0,0.0,0.0,0.0,0.0,
0.1,0.1,0.2,0.0,0.0,0.0,0.1,0.1,0.05,0.1,
0.3,0.0,0.1,0.05,0.05,0.05,0.05,0.3,0.05,0.3,0.05);
var
E1RSC, E1RRC, E2RSC, EDRSC : real;
I : integer;
begin { ROS }
if NSUBA[NNIT]<>0 then begin
EROSS:=EROSI[NSUBA[NNIT]]; EROS:=EROSS; EROSR:=0.0
end else begin
if NVARYA[NNIT] = 1 then begin
if (E[1]<>0)or(E[2]<>0) then
begin
E1RSC := E[1];
E1RRC := E[2];
E2RSC :- E[5]*(T1HO-T1LO)
end
else begin
if (E[3]<>0) or (E[4]<>0) then
begin
E1RSC := E[3];
E1RRC:= E[4];
E2RSC := E[5]*(T1HO-T1LO)
end
else begin
E1RSC := 0.0;
E1RRC := 0.0;
E2RSC := 0.0
end
end
end
else begin
E1RRC:=0.0;
E2RSQ=0.0; E[6]:=0.0;
case NMETHKA[NNIT] of
0: E1RSC:=0.1;
1: E1RSC:=0.1;
2: E1RSC:=0.1;
3: ifRIM[13] <> 0 then E1RSC:=0.15
else E1RSC:=0.1;
end; {endcase}
end; {endif}
EDRSC := sqrt(sqr(ElRSC)+sqr(E2RSC));
EROSS := sqrt(sqr(EDRSC)+sqr(E[6D]; EROSR := E1RRC;
EROS := sqrt(sqr(EROSS)+sqr(EROSR))
end; {endif}
end; { ROS }
{-----------------------------------------------------------------------------}
{ Расчет погрешности определения коэффициента истечения }
Procedure С;
var
EC0,EL,EE,EH,EX,ESH,EK,EDM,A,B,EXMIN,EXMAX,HD,HDC : real;
L1,L2,L21,DL: real;
Lvent: array [1.. 10] of real;
NR,I,MR : byte;
const
AK : array [1..16] of real = (14.5,17.5,21.0,5.0,16.0,10.0,
22.0,12.5,47.5,11.5,13.5,33.5.5.0,12.0,54.5,0.0);
BK : array [1..16] of real = (30.5,64.5.38.5,114.0,185.0,
113.0,0.0,26.5,54.5,82.0,82.5,115.0,0.0,9.5,65.0,8.55);
CK : array [1..16] of real = (2.0,4.1,1.4,6.8,7.2,5.2,0.0,
1.9,1.8,6.7,3.7,4.0,0.0,1.0,1.6,0.55);
BETI: array [1..10] of real =(
0.3,0.35.0.4,0.45,0.5,0,55,0.6,0.65,0.7,0.75);
label
1,3,5,7;
Procedure LinVent1;
var
I: byte;
const
Lvent11: array [1..10] of real = (
0.5,0.5,1.5,1.5,1.5,1.5,2.5,2.5,3.5,3.5);
Lvent21: array [1.. 10] of real = (
0.0,0.5,0.5,0.5,0.5,0.5,0.5,1.5,2.5,3.5);
Lvent31: array [1..10] of real = (
0.5,0.5,0.5,1.0,1.5,1.5,1.5,2.5,3.5,4.5);
Lvent41: array [1..10] of real = (
0.0,0.0,0.0,0.5,0.5,0.5,1.0,1.5,2.0,3.0);
Lvent51: array [1..10] of real = (
0.5,0.5,0.5,0.5,1.5,1.5,2.5,2.5,2.5,3.5);
Lvent6l: array [1..10] of real = (
0.5,0.5.0.5,0.5,8.5,12.5,17.5,23.5,27.5,29.9);
label
1;
begin { LinVent1 }
case NRA[1] of
10: for I: = 1 to 10 do Lvent[I] := Lvent11[I];
4: for I: =1 to 10 do Lvent[I] := Lvent21 [I];
5: for I:=1 to 10 do Lvent[I] := Lvent31[I];
6: for I =1 to 10 do Lvent[I] = Lvent41[I];
11: for I := 1 to 10 do Lvent[I] := Lvent51[I];
12: for I := 1 to 10 do Lvent[I] := Lvent61 [I];
end;
L1:=0.0;
if BET < ВЕТI[1] then begin L1:=Lvent[1]; goto 1 end;
if BET > BETI[10] then begin L1:=Lvent[10]; goto 1 end;
for I := 1 to 9 do
if (BET >= ВЕТI[I]) and (BET <= ВЕТI[I+1) then begin
if(Lvent[I] = 0.0) or (Lvent[I+1] = 0.0) then goto 1;
L1:=Lvent[I]+(Lvent[I+1]-Lvent[I])*(BET-BETI[I])/0.05; goto 1
end;
1: if L1 = 0.0 then exit; if LRA[1] < L1 then ierr:= 1
end; { LinVent1 }
Procedure LinVent2;
var
J: byte;
const
Lventl2: array [1.. 10] of real = (
1.5,2.5,2.5,3.5,3.5,4.5,4.5,4.5,5.5,5.5);
Lvent22: array [1..10] of real = (
0.5,1.5,2.5,4.5,5.5,6.5,8.5,9.5,10.5,11.5);
Lvent32: array [1..10] of real = (
1.5,1.5,1.5.2.5,2.5,3.5,3.5,4.5,5.5,6.5);
Lvent42: array [1..10] of real = (
0.5,0.5,0.5.1.0,1.5,2.5,3.0,4.0,4.0,4.5);
Lvent52: array [1..10] of real = (
1.5,1.5,1.5,1.5,2.5,2.5,3.5,4.5,4.5,4.5);
label
1;
begin { LinVent2 }
DL:=0.0;
case NRA[I] of
10: forJ := 1 to 10 do Lvent[J] := Lvent12[J];
4: forJ := 1 to 10 do Lvent[J] = Lvent22[J];
5: forJ := 1 to 10 do Lvent[J] = Lvent32[J];
6: forJ := 1 to 10 do Lvent[J] = Lvent42[J];
11: forJ := 1 to 10 do Lvent[J] := Lvent52[J];
end;
if BET < ВЕТI[1] then begin L1:=Lvent[1]; goto 1 end;
if BET > BETI[10] then begin L1:=Lvent[10]; goto 1 end;
for J := 1 to 9 do
if (BET >= BETI[J]) and (BET <= ВЕТ[J+1]) then begin
L1:=Lvent[J]+(Lvent[J+1]-Lvent[J])*(BET-BETI[J])/0.05; goto 1
end;
1: if LRA[I] < L1 then DL:=0.5
end; { LinVent2 }
begin { С }
IERR:=0;
case NSUZA[NNIT] of
0: if BET <= 0.6 then EC0 := 0.6 else EC0:= BET;
1: if BET <= 0.6 then EC0 := 0.8 else EC0:= 2*BET-0.4;
2: EC0:= 1.2+1.5*r_(BET,4.0);
3: begin
EC0:=0.7;
if Re <= 6.e4 then EC0 := 2.5;
if (Re > 6.e4) and (Re <= 1.e5) then EC0 := 2.0;
if (Re > 1.e5) and (Re <= 1.5e5) then EC0 := 1.5;
if (Re > 1.5e5) and (Re <= 2.0e5) then EC0 := 1.0
end;
4: begin
EC0:=1.0;
if Re <= 4.e4 then EC0 := 3.0;
if (Re > 4.e4) and (Re <= 1.2e5) then EC0 := 2.5;
if (Re > 1.2e5) and (Re <= 2.0e5) then EC0 := 1.5
end;
5: begin
EC0:=1,5;
if Re <= 6.e4 then EC0 := 3.0;
if (Re > 6.e4) and (Re <= 2.e5) then EC0 := 2.5
end;
end;
if NSUZA[NNit] <= 2 then begin
if (NRA[1] = 7) and (LRA[1] < 22.0) then begin IERR:=1; goto 1 end;
if (NRA[1] = 13) and (LRA[1] < 3.0) then begin IERR:=1; goto 1 end;
if LRA[1] < 5.0 then begin IERR:=1; goto 1 end;
end
else begin
if (NRA[1] = 10) or (NRA[1] = 4) or (NRA[1] = 5) or
(NRA[1] = 6) or (NRA[1] = 11) or (NRA[1] = 12) then begin
LinVent1; if IERR <> 0 then goto 1; if L1 <> 0.0 then goto 3
end;
if (NRA[1] = 7) and (LRA[1] < 22.0) then begin IERR:=1; goto 1 end;
if (NRA[1] = 13) and (LRA[1] < 3.0) then begin IERR:=1; goto 1 end;
if LRA[1] < 5.0 then begin IERR:=1; goto 1 end;
end;
3: NR:=AMOUNTR;
L1:AK[16]+BK[16]r_*(BET,CK[16]);
if (LRA[NR+1]/L1 < 0.5) or (LRA[NR+1] < 0.5) then begin