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