Wednesday, June 6, 2018

Properties of Water and Steam

VB 3.0 Properties of Water and Steam, developed 2004 to 2010, Version 1.1, 01/29/04: mistake in calculation of partial derivatives for thermal conductivity corrected

CONST rgaswater = 461.526 'gas constant in J/(kg K)
CONST tcwater = 647.096 'critical temperature in K
CONST pcwater = 220.64 'critical pressure in bar
CONST dcwater = 322# 'critical density in kg/m**3


start:
CLS
COLOR 2, 0
PRINT "Gross Plant Heat Rate and Net Plant Heat Rate"
PRINT "---------------------------------------------"

DIM m.dot
DIM genout
DIM delta.h
DIM eff
DIM aux.power

steam0:
INPUT "Steam Flow to Turbine (tph): "; m.dot
IF m.dot = 0 THEN
m.dot = 47.86945
LOCATE CSRLIN - 1: PRINT "Steam Flow to Turbine set to:"; m.dot; "tph"
END IF
IF m.dot < 0 THEN
LOCATE CSRLIN - 1: PRINT "Steam Flow to Turbine shall > 0, please input again"
PRINT
GOTO steam0
END IF
LOCATE CSRLIN - 1: PRINT "Steam Flow To Turbine set to:"; m.dot; "tph"

genout0:
INPUT "Generator Output (MW): "; genout
IF genout = 0 THEN
genout = 11.31
LOCATE CSRLIN - 1: PRINT "Generator Output set to: "; genout; "MW"
END IF
IF genout < 0 THEN
PRINT "genout shall > 0, please input again"
PRINT
GOTO genout0
END IF
LOCATE CSRLIN - 1: PRINT "Generator Output set to: "; genout; "MW"

inletTemperatureTurbine0:
INPUT "Temperature Inlet Turbine: (øC)"; TemperatureInletTurbine
IF TemperatureInletTurbine = 0 THEN
TemperatureInletTurbine = 470
LOCATE CSRLIN - 1: PRINT "Temperature Inlet Turbine set to: "; TemperatureInletTurbine; "øC"
END IF
IF TemperatureInletTurbine < 0 THEN
PRINT "Temperature Inlet Turbine shall > 0, please input again"
PRINT
GOTO inletTemperatureTurbine0
END IF
LOCATE CSRLIN - 1: PRINT "Temperature Inlet Turbine set to: "; TemperatureInletTurbine; "øC"

inletPressureTurbine0:
INPUT "Pressure Inlet Turbine: (bar)"; PressureInletTurbine
IF PressureInletTurbine = 0 THEN
PressureInletTurbine = 49
LOCATE CSRLIN - 1: PRINT "Pressure Inlet Turbine set to: "; PressureInletTurbine; "bar"
END IF
IF PressureInletTurbine < 0 THEN
PRINT "Pressure Inlet Turbine shall > 0, please input again"
PRINT
GOTO inletPressureTurbine0
END IF
LOCATE CSRLIN - 1: PRINT "Pressure Inlet Turbine set to: "; PressureInletTurbine; "bar"

inletTemperatureBoiler0:
INPUT "Temperature Inlet Boiler: (øC)"; TemperatureInletBoiler
IF TemperatureInletBoiler = 0 THEN
TemperatureInletBoiler = 150
LOCATE CSRLIN - 1: PRINT "Temperature Inlet Boiler set to: "; TemperatureInletBoiler; "øC"
END IF
IF TemperatureInletBoiler < 0 THEN
PRINT "Temperature Inlet Boiler shall > 0, please input again"
PRINT
GOTO inletTemperatureBoiler0
END IF
LOCATE CSRLIN - 1: PRINT "Temperature Inlet Boiler set to: "; TemperatureInletBoiler; "øC"

inletPressureBoiler0:
INPUT "Pressure Inlet Boiler: (bar)"; PressureInletBoiler
IF PressureInletBoiler = 0 THEN
PressureInletBoiler = 72
LOCATE CSRLIN - 1: PRINT "Pressure Inlet Boiler set to: "; PressureInletBoiler; "bar"
END IF
IF PressureInletBoiler < 0 THEN
PRINT "Pressure Inlet Boiler shall > 0, please input again"
PRINT
GOTO inletPressureBoiler0
END IF
LOCATE CSRLIN - 1: PRINT "Pressure Inlet Boiler set to: "; PressureInletBoiler; "bar"

delta0:
' INPUT "Delta H (kJ/kg): "; delta.h
' IF delta.h = 0 THEN
' delta.h = 2733
' LOCATE CSRLIN - 1: PRINT "Delta H set to: "; delta.h; "kJ/kg"
' END IF
' IF delta.h < 0 THEN
' PRINT "Delta H shall > 0, please input again"
' PRINT
' GOTO delta0
' END IF
' LOCATE CSRLIN - 1: PRINT "Delta H set to: "; delta.h; "kJ/kg"

hit = enthalpyW(TemperatureInletTurbine + 273.15, PressureInletTurbine)
hib = enthalpyW(TemperatureInletBoiler + 273.15, PressureInletBoiler)
delta.h = hit - hib

eff0:
INPUT "Efficiency Pipe(%): "; eff
IF eff = 0 THEN
eff = 99.5 '76.615
LOCATE CSRLIN - 1: PRINT "Efficiency Pipe set to: "; eff; "%"
END IF
IF eff < 0 THEN
PRINT "Efficiency Pipe shall > 0, please input again"
PRINT
GOTO eff0
END IF
LOCATE CSRLIN - 1: PRINT "Efficiency Pipe set to: "; eff; "%"

aux0:
INPUT "Auxiliary Power (%): "; aux.power
IF aux.power = 0 THEN
aux.power = 10.4832
LOCATE CSRLIN - 1: PRINT "Auxiliary Power set to: "; aux.power; "%"
END IF
IF aux.power < 0 THEN
PRINT "Auxiliary Power shall > 0, please input again"
PRINT
GOTO aux0
END IF
LOCATE CSRLIN - 1: PRINT "Auxiliary Power set to: "; aux.power; "%"

HHV0:
INPUT "HHV (kCal/kg): "; HHV
IF HHV = 0 THEN
HHV = 3909
LOCATE CSRLIN - 1: PRINT "HHV set to: "; HHV; "kCal/kg"
END IF
IF HHV < 0 THEN
PRINT "HHV shall > 0, please input again"
PRINT
GOTO HHV0
END IF
LOCATE CSRLIN - 1: PRINT "HHV set to: "; HHV; "kCal/kg"

eff1:
INPUT "Efficiency Boiler (%): "; eff1
IF eff1 = 0 THEN
eff1 = 77
LOCATE CSRLIN - 1: PRINT "Efficiency Boiler set to: "; eff1; "%"
END IF
IF eff1 < 0 THEN
PRINT "Efficiency Boiler shall > 0, please input again"
PRINT
GOTO eff1
END IF
LOCATE CSRLIN - 1: PRINT "Efficiency Boiler set to: "; eff1; "%"

qvap0:
INPUT "Pressure Outlet Turbine (bar): "; poutlet1
IF poutlet1 = 0 THEN
poutlet1 = .09
LOCATE CSRLIN - 1: PRINT "Pressure Outlet Turbine set to: "; poutlet1; "bar"
END IF
IF poutlet1 < 0 THEN
PRINT "Pressure Outlet Turbine shall > 0, please input again"
PRINT
GOTO qvap0
END IF
LOCATE CSRLIN - 1: PRINT "Pressure Outlet Turbine set to: "; poutlet1; "bar"

enthalpyOutletTurbine0:
INPUT "Enthalpy Outlet Turbine (kJ/kg): "; houtlet1
IF houtlet1 = 0 THEN
houtlet1 = 2384
LOCATE CSRLIN - 1: PRINT "Enthalpy Outlet Turbine set to: "; houtlet1; "kJ/kg"
END IF
IF poutlet1 < 0 THEN
PRINT "Enthalpy Outlet Turbine shall > 0, please input again"
PRINT
GOTO enthalpyOutletTurbine0
END IF
LOCATE CSRLIN - 1: PRINT "Enthalpy Outlet Turbine set to: "; houtlet1; "kJ/kg"