|
|
CoDeSys V2.3(蒸汽流量补偿)功能块 |
|
|
FUNCTION_BLOCK LLBC (*过热蒸汽流量补偿使用差压计算*)
VAR_INPUT
PT:REAL;(*主汽压力变送器差压值,单位KPa*)
T:REAL;(*主汽温度,单位℃*)
P:REAL;(*主汽压力,单位MPa*)
F0:REAL;(*主汽最大流量孔板设计值,单位t/h*)
T0:REAL;(*主汽温度孔板设计值,单位℃*)
P0:REAL;(*主汽压力孔板设计值,单位MPa*)
P10:REAL;(*主汽最大流量差压孔板设计值,单位KPa*)
KX:INT:=0;(*公式选择*)
END_VAR
VAR_OUTPUT
FS:REAL;(*主汽流量,单位t/h*)
END_VAR
VAR
TM:REAL;(*主汽温度中间值*)
PM:REAL;(*主汽压力中间值*)
K: ARRAY [0..5] OF REAL;(*孔板系数*)
FSX: ARRAY [0..5] OF REAL;(*主汽流量,单位t/h*)
END_VAR
------------------------------------------------------------------------------
IF P>0.2 AND P<24 THEN PM:=P;
ELSE PM:=P0;
END_IF
IF T>100 AND T<900 THEN TM:=T;
ELSE TM:=T0;
END_IF
K[0]:=F0/(SQRT(ABS(18.5582*P0*P10/(T0*0.01+1.48-P0*0.01*4.5172)))); (*适用范围比较广*)
IF (18.5582*P*PT/(T*0.01+1.48-P*0.01*4.5172))>0 THEN FSX[0]:=K[0]*(SQRT(ABS(18.5582*P*PT/(T*0.01+1.48-P*0.01*4.5172))));
ELSE FSX[0]:=K[0]*(SQRT(ABS(18.5582*P0*PT/(T0*0.01+1.48-P0*0.01*4.5172))));
END_IF
K[1]:=F0/(SQRT(ABS(18.56*P0*P10/(T0*0.01-1.66-P0*5.608E-2)))); (*适用范围1~14.7MPa 且400~500℃*)
IF (18.56*P*PT/(T*0.01-1.66-P*5.608E-2))>0 THEN FSX[1]:=K[1]*(SQRT(ABS(18.56*P*PT/(T*0.01-1.66-P*5.608E-2))));
ELSE FSX[1]:=K[1]*(SQRT(ABS(18.56*P0*PT/(T0*0.01-1.66-P0*5.608E-2))));
END_IF
K[2]:=F0/(SQRT(ABS(19.44*P0*P10/(T0*0.01+2.1627-P0*0.151)))); (*适用范围0.6~2MPa 且250~400℃*)
IF (19.44*P*PT/(T*0.01+2.1627-P*0.151))>0 THEN FSX[2]:=K[2]*(SQRT(ABS(19.44*P*PT/(T*0.01+2.1627-P*0.151))));
ELSE FSX[2]:=K[2]*(SQRT(ABS(19.44*P0*PT/(T0*0.01+2.1627-P0*0.151))));
END_IF
K[3]:=F0/(SQRT(ABS(18.88*P0*P10/(T0*0.01+2.10977-P0*0.122045)))); (*适用范围0.6~1.5MPa 且160~250℃*)
IF (18.88*P*PT/(T*0.01+2.10977-P*0.122045))>0 THEN FSX[3]:=K[3]*(SQRT(ABS(18.88*P*PT/(T*0.01+2.10977-P*0.122045))));
ELSE FSX[3]:=K[3]*(SQRT(ABS(18.88*P0*P10/(T0*0.01+2.10977-P0*0.122045))));
END_IF
K[4]:=F0/(SQRT(ABS(P10/((T0*0.462+126.1)/P0*1E-3-9.7E-3+T0*1.32E-5)))); (*适用范围0.1~24MPa 且120~600℃*)
IF (PT/((T*0.462+126.1)/P*1E-3-9.7E-3+T*1.32E-5))>0 THEN FSX[4]:=K[4]*(SQRT(ABS(PT/((T*0.462+126.1)/P*1E-3-9.7E-3+T*1.32E-5))));
ELSE FSX[4]:=K[4]*(SQRT(ABS(PT/((T0*0.462+126.1)/P0*1E-3-9.7E-3+T0*1.32E-5))));
END_IF
K[5]:=F0/(SQRT(ABS(P10/((T0*0.4621+125.82)/P0*1E-3-1/(0.9*T0-110))))); (*适用范围1~17MPa 且320~540℃*)
IF (PT/((T*0.4621+125.82)/P*1E-3-1/(0.9*T-110)))>0 THEN FSX[5]:=K[5]*(SQRT(ABS(PT/((T*0.4621+125.82)/P*1E-3-1/(0.9*T-110)))));
ELSE FSX[5]:=K[5]*(SQRT(ABS(PT/((T0*0.4621+125.82)/P0*1E-3-1/(0.9*T0-110)))));
END_IF
IF FSX[KX]<=0 THEN FS:=0 ;
ELSE FS:=FSX[KX];
END_IF
|
|
|
|
相关博客新闻: |
|
相关技术论文: |
|
|