Changeset 26
- Timestamp:
- Sep 19, 2006, 5:23:27 PM (16 years ago)
- Location:
- mso
- Files:
-
- 10 added
- 4 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
mso/eml/heat_exchangers/HEX_Engine.mso
r1 r26 1 1 #*--------------------------------------------------------------------* 2 * 2 * Heat Exchangers Abstract Models 3 *-------------------------------------------------------------------- 4 * - Inlet_Main_Stream : Inlet Streams 5 *-------------------------------------------------------------------- 6 * - Hot : Inlet Hot Stream 7 * - Cold : Inlet Cold Stream 8 *-------------------------------------------------------------------- 9 * - Outlet_Main_Stream : Outlet Streams 10 *-------------------------------------------------------------------- 11 * - Hot : Outlet Hot Stream 12 * - Cold : Outlet Cold Stream 13 *-------------------------------------------------------------------- 14 * - Main_Properties : Physical Properties for Hot and Cold Side 15 *-------------------------------------------------------------------- 16 * Physical_Properties 17 * Properties_In_Out : Inlet/Outlet Physical Properties 18 * Properties_Average : Average Physical Properties 19 * Properties_Wall : Physical Properties at Wall Temperature 20 *-------------------------------------------------------------------- 21 * - Tube_Side_Main : Tube Side Main Variables 22 *---------------------------------------------------------------------- 23 * Tube_Pdrop : Tube Side Pressure Drop 24 * Tube_Heat_Transfer : Tube Side Heat Transfer 25 *---------------------------------------------------------------------- 26 * - Shell_Side_Main : Shell Side Main Variables 27 *---------------------------------------------------------------------- 28 * Shell_Pdrop : Shell Side Pressure Drop 29 * Shell_Heat_Transfer : Shell Side Heat Transfer 30 *---------------------------------------------------------------------- 31 * - Baffles_Main : Baffles Spacing 32 *---------------------------------------------------------------------- 33 * - Main_Resistances : Thermal Resistances 34 *---------------------------------------------------------------------- 35 * - Details_Main : Heat Exchanger Thermal Details 36 *---------------------------------------------------------------------- 37 * - Main_Pdrop : Heat Exchanger Pressure Drop (Simplified) 38 * Basic_Pdrop : Hot and Cold Side Pressure Drop 3 39 *---------------------------------------------------------------------- 4 40 * Author: Gerson Balbueno Bicca … … 6 42 *--------------------------------------------------------------------*# 7 43 8 #using "streamspetroil";9 44 using "streams"; 10 #=====================================================================11 # Hot and Cold Streams12 #=====================================================================13 45 14 46 Model Inlet_Main_Stream … … 17 49 #===================================================================== 18 50 VARIABLES 19 Hot as stream;# Inlet Hot Stream 20 Cold as stream;# Inlet Cold Stream 21 51 Hot as stream; # Inlet Hot Stream 52 Cold as stream; # Inlet Cold Stream 22 53 end 23 54 … … 27 58 #===================================================================== 28 59 VARIABLES 29 Hot as stream_therm;# Outlet Hot Stream 30 Cold as stream_therm;# Outlet Cold Stream 31 60 Hot as stream_therm; # Outlet Hot Stream 61 Cold as stream_therm; # Outlet Cold Stream 32 62 end 33 63 … … 41 71 #===================================================================== 42 72 VARIABLES 43 44 Mw as molweight (Brief="Average Mol Weight",Default=75, Lower=1, Upper=1e8); 45 T as temperature (Brief="Average Temperature",Lower=50); 46 P as pressure (Brief="Average Pressure",Default=1, Lower=1e-10, Upper=30); 47 rho as dens_mass (Brief="Stream Density" ,Default=1000, Lower=1e-3, Upper=5e5); 48 Mu as viscosity (Brief="Stream Viscosity",Lower=0.0001); 49 Cp as cp_mol (Brief="Stream Molar Heat Capacity", Upper=10e10); 50 K as conductivity (Brief="Stream Thermal Conductivity", Default=1.0, Lower=1e-5, Upper=500); 51 73 Mw as molweight (Brief="Average Mol Weight",Default=75, Lower=1, Upper=1e8); 74 T as temperature (Brief="Average Temperature",Lower=50); 75 P as pressure (Brief="Average Pressure",Default=1, Lower=1e-10, Upper=30); 76 rho as dens_mass (Brief="Stream Density" ,Default=1000, Lower=1e-3, Upper=5e5); 77 Mu as viscosity (Brief="Stream Viscosity",Lower=0.0001); 78 Cp as cp_mol (Brief="Stream Molar Heat Capacity", Upper=10e10); 79 K as conductivity (Brief="Stream Thermal Conductivity", Default=1.0, Lower=1e-5, Upper=500); 52 80 end 53 81 … … 57 85 #===================================================================== 58 86 VARIABLES 59 60 Fw as flow_mass (Brief="Inlet Stream Mass Flow"); 87 Fw as flow_mass (Brief="Stream Mass Flow"); 61 88 rho as dens_mass (Brief="Stream Density" ,Default=1000, Lower=1e-3, Upper=5e5); 62 89 Mu as viscosity (Brief="Stream Viscosity",Default=1, Lower=1e-5, Upper=1e5); 63 90 Cp as cp_mol (Brief="Stream Molar Heat Capacity", Upper=10e10); 64 91 K as conductivity (Brief="Stream Thermal Conductivity", Default=1.0, Lower=1e-5, Upper=500); 65 66 92 end 67 93 … … 71 97 #===================================================================== 72 98 VARIABLES 73 74 99 Mu as viscosity (Brief="Stream Viscosity",Default=1, Lower=1e-5, Upper=1e5); 75 100 Cp as cp_mol (Brief="Stream Molar Heat Capacity", Upper=10e10); 76 101 K as conductivity (Brief="Stream Thermal Conductivity", Default=1.0, Lower=1e-5, Upper=500); 77 Twall as temperature (Brief="Tube Wall Temperature",Lower=50); 78 102 Twall as temperature (Brief="Wall Temperature",Lower=50); 79 103 end 80 104 … … 84 108 #===================================================================== 85 109 VARIABLES 86 87 Inlet as Properties_In_Out; # Properties at Inlet Stream 88 Average as Properties_Average; # Properties at Average Temperature 89 Outlet as Properties_In_Out; # Properties at Outlet Stream 90 Wall as Properties_Wall; # Properties at Wall Temperature 91 110 Inlet as Properties_In_Out; # Properties at Inlet Stream 111 Average as Properties_Average; # Properties at Average Temperature 112 Outlet as Properties_In_Out; # Properties at Outlet Stream 113 Wall as Properties_Wall; # Properties at Wall Temperature 92 114 end 93 115 … … 97 119 #===================================================================== 98 120 VARIABLES 99 100 Hot as Physical_Properties;# Hot Stream 101 Cold as Physical_Properties;# Cold Stream 102 121 Hot as Physical_Properties; # Hot Stream 122 Cold as Physical_Properties; # Cold Stream 103 123 end 104 124 105 125 Model Tube_Pdrop 106 126 #===================================================================== 107 # Pressure Drop block108 #===================================================================== 109 VARIABLES 110 111 PdTube as press_delta (Default=0.01, Lower=1e-10);112 Pdtotal as press_delta (Default=0.01, Lower=1e-10);113 Pdnozzle_in as press_delta (Default=0.01, Lower=1e-10);114 Pdnozzle_out as press_delta (Default=0.01, Lower=1e-10);115 Vnozzle_in as velocity (Default=1, Upper=1e5, Lower=1e-10);116 Vnozzle_out as velocity (Default=1, Upper=1e5, Lower=1e-10);127 # Tube Side Pressure Drop block 128 #===================================================================== 129 VARIABLES 130 131 PdTube as press_delta (Brief="Tube Pressure Drop",Default=0.01, Lower=1e-10); 132 Pdtotal as press_delta (Brief="Total Pressure Drop",Default=0.01, Lower=1e-10); 133 Pdnozzle_in as press_delta (Brief="Inlet Nozzle Pressure Drop",Default=0.01, Lower=0); 134 Pdnozzle_out as press_delta (Brief="Outlet Nozzle Pressure Drop",Default=0.01, Lower=0); 135 Vnozzle_in as velocity (Brief="Inlet Nozzle Velocity",Default=1, Upper=1e5, Lower=0); 136 Vnozzle_out as velocity (Brief="Outlet Nozzle Velocity",Default=1, Upper=1e5, Lower=0); 117 137 118 138 EQUATIONS 119 120 Pdtotal = PdTube + Pdnozzle_in + Pdnozzle_out; 121 122 end 123 124 Model Tube_Pdrop_Nozzles 125 #===================================================================== 126 # Pressure Drop block 127 #===================================================================== 128 VARIABLES 129 130 Pdnozzle_in as press_delta(Default=0.01, Lower=1e-10); 131 Pdnozzle_out as press_delta(Default=0.01, Lower=1e-10); 132 Vnozzle_in as velocity (Default=1, Upper=1e5, Lower=1e-10); 133 Vnozzle_out as velocity (Default=1, Upper=1e5, Lower=1e-10); 134 135 end 136 137 Model Tube_Pdrop_Disc 138 #===================================================================== 139 # Pressure Drop block 140 #===================================================================== 141 VARIABLES 142 143 PdTube as press_delta(Default=0.01, Lower=1e-10); 144 Pdtotal as press_delta(Default=0.01, Lower=1e-10); 145 146 EQUATIONS 147 148 Pdtotal = PdTube; 139 "Total Pressure Drop" 140 Pdtotal = PdTube + Pdnozzle_in + Pdnozzle_out; 149 141 150 142 end … … 152 144 Model Tube_Heat_Transfer 153 145 #===================================================================== 154 # Pressure Drop block146 # Tube Side Heat Transfer Block 155 147 #===================================================================== 156 148 VARIABLES … … 158 150 htube as heat_trans_coeff (Brief="Tube Side Film Coefficient",Default=1,Lower=1e-12, Upper=1e6); 159 151 PR as positive (Brief="Tube Side Prandtl Number",Default=0.5,Lower=1e-8); 160 PRw as positive (Brief="Tube Side Prandtl Number ",Default=0.5,Lower=1e-8);152 PRw as positive (Brief="Tube Side Prandtl Number at Wall Temperature",Default=0.5,Lower=1e-8); 161 153 Phi as positive (Brief="Phi Correction",Default=1,Lower=1e-3); 162 154 Vtube as velocity (Brief="Tube Side Velocity",Lower=1e-8); 163 164 165 155 end 166 156 167 157 Model Shell_Pdrop 168 158 #===================================================================== 169 # Pressure Drop block 170 #===================================================================== 171 VARIABLES 172 173 PdCross as press_delta(Default=0.01, Lower=1e-10); 174 PdEndZones as press_delta(Default=0.01, Lower=1e-10); 175 Pdwindow as press_delta(Default=0.01, Lower=1e-10); 176 Pdtotal as press_delta(Default=0.01, Lower=1e-10); 177 Pdnozzle_in as press_delta(Default=0.01, Lower=1e-10); 178 Pdnozzle_out as press_delta(Default=0.01, Lower=1e-10); 179 Vnozzle_in as velocity(Default=1, Upper=1e5, Lower=1e-10); 180 Vnozzle_out as velocity(Default=1, Upper=1e5, Lower=1e-10); 159 # Shell Side Pressure Drop block 160 #===================================================================== 161 VARIABLES 162 PdCross as press_delta (Brief="Cross Flow Pressure Drop",Default=0.01, Lower=0); 163 PdEndZones as press_delta (Brief="End Zones Pressure Drop",Default=0.01, Lower=0); 164 Pdwindow as press_delta (Brief="Window Pressure Drop",Default=0.01, Lower=1e-10); 165 Pdtotal as press_delta (Brief="Total Pressure Drop",Default=0.01, Lower=0); 166 Pdnozzle_in as press_delta (Brief="Inlet Nozzle Pressure Drop",Default=0.01, Lower=0); 167 Pdnozzle_out as press_delta (Brief="Outlet Nozzle Pressure Drop",Default=0.01, Lower=0); 168 Vnozzle_in as velocity (Brief="Inlet Nozzle Velocity",Default=1, Upper=1e5, Lower=0); 169 Vnozzle_out as velocity (Brief="Outlet Nozzle Velocity",Default=1, Upper=1e5, Lower=0); 170 RVsquare_in as flux_mass (Brief="Inlet Nozzle rho-V^2"); 171 RVsquare_out as flux_mass (Brief="Outlet Nozzle rho-V^2"); 181 172 182 173 EQUATIONS 183 174 184 Pdtotal = PdCross + PdEndZones + Pdnozzle_in + Pdnozzle_out + Pdwindow; 185 186 end 187 188 Model Shell_Pdrop_Nozzles 189 #===================================================================== 190 # Pressure Drop block 191 #===================================================================== 192 VARIABLES 193 194 Pdnozzle_in as press_delta(Default=0.01, Lower=1e-10); 195 Pdnozzle_out as press_delta(Default=0.01, Lower=1e-10); 196 Vnozzle_in as velocity(Default=1, Upper=1e5, Lower=1e-10); 197 Vnozzle_out as velocity(Default=1, Upper=1e5, Lower=1e-10); 198 199 end 200 201 Model Shell_Pdrop_Disc 202 #===================================================================== 203 # Pressure Drop block 204 #===================================================================== 205 VARIABLES 206 207 PdCross as press_delta(Default=0.01, Lower=1e-10); 208 PdEndZones as press_delta(Default=0.01, Lower=1e-10); 209 Pdwindow as press_delta(Default=0.01, Lower=1e-10); 210 Pdtotal as press_delta(Default=0.01, Lower=1e-10); 211 212 EQUATIONS 213 214 Pdtotal = PdCross + PdEndZones + Pdwindow; 175 "Shell Side Total Pressure Drop" 176 Pdtotal = PdCross + PdEndZones + Pdnozzle_in + Pdnozzle_out + Pdwindow; 215 177 216 178 end … … 218 180 Model Shell_Heat_Transfer 219 181 #===================================================================== 220 # 182 # Shell Side Heat Transfer Block 221 183 #===================================================================== 222 184 VARIABLES 223 185 Re as positive (Brief="Shell Side Reynolds Number",Default=100,Lower=1); 224 186 PR as positive (Brief="Shell Side Prandtl Number",Default=0.7,Lower=1e-6); 225 PRw 187 PRw as positive (Brief="Shell Side Prandtl Number",Default=0.5,Lower=1e-8); 226 188 hshell as heat_trans_coeff (Brief="Shell Side Film Coefficient",Default=1,Lower=1e-12, Upper=1e6); 227 189 Phi as positive (Brief="Phi Correction",Default=1,Lower=1e-3); … … 237 199 end 238 200 239 Model Tube_Side_Main240 #=====================================================================241 # Tube Side Main Variables242 #=====================================================================243 VARIABLES244 PressureDrop as Tube_Pdrop;245 HeatTransfer as Tube_Heat_Transfer;246 end247 248 Model Tube_Side_Main_Disc249 #=====================================================================250 # Tube Side Main Variables251 #=====================================================================252 VARIABLES253 PressureDrop as Tube_Pdrop_Disc;254 HeatTransfer as Tube_Heat_Transfer;255 end256 257 Model Shell_Side_Main258 #=====================================================================259 # Shell Side Main Variables260 #=====================================================================261 VARIABLES262 PressureDrop as Shell_Pdrop;263 HeatTransfer as Shell_Heat_Transfer;264 end265 266 Model Shell_Side_Main_Disc267 #=====================================================================268 # Shell Side Main Variables269 #=====================================================================270 VARIABLES271 PressureDrop as Shell_Pdrop_Disc;272 HeatTransfer as Shell_Heat_Transfer;273 end274 275 Model Pdrop_Nozzles_Main276 #=====================================================================277 # Tube Side Main Variables278 #=====================================================================279 VARIABLES280 281 Tubes as Tube_Pdrop_Nozzles;282 Shell as Shell_Pdrop_Nozzles;283 284 end285 286 201 Model Baffles_Main 287 202 #===================================================================== 288 # Baffles Main Variables203 # Baffles Spacing 289 204 #===================================================================== 290 205 VARIABLES … … 301 216 VARIABLES 302 217 303 Rtube as positive(Unit="m^2*K/kW",Lower=1e-6); 304 Rwall as positive(Unit="m^2*K/kW",Lower=1e-6); 305 Rshell as positive(Unit="m^2*K/kW",Lower=1e-6); 306 #pctRtube as percent(Lower=1e-6); 307 #pctRwall as percent(Lower=1e-6); 308 #pctRshell as percent(Lower=1e-6); 309 310 #EQUATIONS 311 312 #pctRtube = 100*Rtube/(Rtube+Rwall+Rshell); 313 #pctRwall = 100*Rwall/(Rtube+Rwall+Rshell); 314 #pctRshell = 100*Rshell/(Rtube+Rwall+Rshell); 218 Rtube as positive (Brief="Tube Resistance",Unit="m^2*K/kW",Lower=1e-6); 219 Rwall as positive (Brief="Wall Resistance",Unit="m^2*K/kW",Lower=1e-6); 220 Rshell as positive (Brief="Shell Resistance",Unit="m^2*K/kW",Lower=1e-6); 315 221 316 222 end … … 326 232 Ch as positive (Brief="Hot Stream Heat Capacity",Lower=1e-3,Default=1e3,Unit="W/K"); 327 233 Cc as positive (Brief="Cold Stream Heat Capacity",Lower=1e-3,Default=1e3,Unit="W/K"); 328 Cr as positive ( Default=0.5,Lower=1e-6);234 Cr as positive (Brief="Heat Capacity Ratio",Default=0.5,Lower=1e-6); 329 235 Cmin as positive (Brief="Minimum Heat Capacity",Lower=1e-10,Default=1e3,Unit="W/K"); 330 236 Cmax as positive (Brief="Maximum Heat Capacity",Lower=1e-10,Default=1e3,Unit="W/K"); 331 NTU as positive (Brief="Number of Units Transference",Default=0.05,Lower=1e-10); 332 237 NTU as positive (Brief="Number of Units Transference",Default=0.05,Lower=1e-10); 333 238 334 239 EQUATIONS 335 336 240 "Number of Units Transference" 337 241 NTU*Cmin = U*A; 338 242 end 243 244 Model Tube_Side_Main 245 #===================================================================== 246 # Tube Side Main Variables 247 #===================================================================== 248 VARIABLES 249 PressureDrop as Tube_Pdrop; #Tube Side Pressure Drop 250 HeatTransfer as Tube_Heat_Transfer; #Tube Side Heat Transfer 251 end 252 253 Model Shell_Side_Main 254 #===================================================================== 255 # Shell Side Main Variables 256 #===================================================================== 257 VARIABLES 258 PressureDrop as Shell_Pdrop; # Shell Side Pressure Drop 259 HeatTransfer as Shell_Heat_Transfer; # Shell Side Heat Transfer 339 260 end 340 261 … … 344 265 #===================================================================== 345 266 VARIABLES 346 347 Pdrop as press_delta (Brief="Pressure Drop",Default=0.01, Lower=0); 348 FPdrop as Real (Brief="Pressure Drop : Fraction of Inlet",Lower=0,Upper=0.8); 349 267 Pdrop as press_delta (Brief="Pressure Drop",Default=0.01, Lower=0); 268 FPdrop as Real (Brief="Pressure Drop : Fraction of Inlet",Lower=0,Upper=0.8); 350 269 end 351 270 … … 355 274 #===================================================================== 356 275 VARIABLES 357 Hot as Basic_Pdrop;# Hot Stream 358 Cold as Basic_Pdrop;# Cold Stream 359 276 Hot as Basic_Pdrop;# Hot Stream 277 Cold as Basic_Pdrop;# Cold Stream 360 278 end 361 -
mso/eml/heat_exchangers/HeatExchangerDetailed.mso
r1 r26 1 #*--------------------------------------------------------------------* 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 *---------------------------------------------------------------------- 13 * Author: Gerson Balbueno Bicca 14 * $Id$ 15 *--------------------------------------------------------------------*# 1 2 #-------------------------------------------------------------------- 3 # Author: Gerson Balbueno Bicca 4 # $Id$ 5 #-------------------------------------------------------------------- 16 6 17 7 using "HEX_Engine"; 18 8 19 # =====================================================================9 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 20 10 # Basic Model for Detailed Heat Exchangers 21 # =====================================================================11 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 22 12 23 13 Model HeatExchangerDetailed_Basic 24 14 25 15 PARAMETERS 26 16 27 ext PP as CalcObject(Brief="External Physical Properties");28 ext HE as CalcObject(Brief="STHE Calculations",File="heatex.dll");29 ext NComp as Integer(Brief="Number of Components");30 M(NComp) as molweight(Brief="Component Mol Weight");17 ext PP as CalcObject (Brief="External Physical Properties"); 18 ext HE as CalcObject (Brief="STHE Calculations", File="heatex"); 19 ext NComp as Integer (Brief="Number of Components"); 20 M(NComp) as molweight (Brief="Component Mol Weight"); 31 21 32 22 VARIABLES 33 34 in Inlet as Inlet_Main_Stream; # Hot and Cold Inlets 35 out Outlet as Outlet_Main_Stream; # Hot and Cold Outlets 36 Properties as Main_Properties; # Hot and Cold Properties 37 Details as Details_Main; 38 Tubes as Tube_Side_Main; 39 Shell as Shell_Side_Main; 40 Resistances as Main_Resistances; 41 Baffles as Baffles_Main; 23 in Inlet as Inlet_Main_Stream; 24 out Outlet as Outlet_Main_Stream; 25 Properties as Main_Properties; 26 Details as Details_Main; 27 Tubes as Tube_Side_Main; 28 Shell as Shell_Side_Main; 29 Resistances as Main_Resistances; 30 Baffles as Baffles_Main; 42 31 43 32 SET 44 45 M = PP.MolecularWeight(); 33 M = PP.MolecularWeight(); 46 34 47 35 EQUATIONS 48 36 49 "Hot Stream Average Temperature" 37 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 38 # Properties # 39 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 40 41 "HotStream Stream Average Temperature" 50 42 Properties.Hot.Average.T = 0.5*Inlet.Hot.T + 0.5*Outlet.Hot.T; 51 43 … … 53 45 Properties.Cold.Average.T = 0.5*Inlet.Cold.T + 0.5*Outlet.Cold.T; 54 46 55 "Hot Stream Average Pressure"47 "HotStream Stream Average Pressure" 56 48 Properties.Hot.Average.P = 0.5*Inlet.Hot.P+0.5*Outlet.Hot.P; 57 49 … … 76 68 77 69 "Mass Density Cold Stream" 78 Properties.Cold.Average.rho 70 Properties.Cold.Average.rho = PP.LiquidDensity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 79 71 Properties.Cold.Inlet.rho = PP.LiquidDensity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 80 72 Properties.Cold.Outlet.rho = PP.LiquidDensity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 81 73 82 74 "Viscosity Cold Stream" 83 Properties.Cold.Average.Mu = PP.LiquidViscosity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);84 Properties.Cold.Inlet.Mu =PP.LiquidViscosity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);85 Properties.Cold.Outlet.Mu = PP.LiquidViscosity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);75 Properties.Cold.Average.Mu = PP.LiquidViscosity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 76 Properties.Cold.Inlet.Mu = PP.LiquidViscosity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 77 Properties.Cold.Outlet.Mu = PP.LiquidViscosity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 86 78 87 79 "Conductivity Cold Stream" 88 Properties.Cold.Average.K = PP.LiquidThermalConductivity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);89 Properties.Cold.Inlet.K =PP.LiquidThermalConductivity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);90 Properties.Cold.Outlet.K =PP.LiquidThermalConductivity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);80 Properties.Cold.Average.K = PP.LiquidThermalConductivity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 81 Properties.Cold.Inlet.K = PP.LiquidThermalConductivity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 82 Properties.Cold.Outlet.K = PP.LiquidThermalConductivity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 91 83 92 84 "Heat Capacity Cold Stream" … … 94 86 95 87 "Viscosity Cold Stream" 96 Properties.Cold.Wall.Mu = PP.LiquidViscosity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);88 Properties.Cold.Wall.Mu = PP.LiquidViscosity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z); 97 89 98 90 "Conductivity Cold Stream" 99 Properties.Cold.Wall.K = PP.LiquidThermalConductivity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);91 Properties.Cold.Wall.K = PP.LiquidThermalConductivity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z); 100 92 101 93 … … 108 100 109 101 "Mass Density Cold Stream" 110 Properties.Cold.Average.rho 102 Properties.Cold.Average.rho = PP.VapourDensity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 111 103 Properties.Cold.Inlet.rho = PP.VapourDensity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 112 104 Properties.Cold.Outlet.rho = PP.VapourDensity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 113 105 114 106 "Viscosity Cold Stream" 115 Properties.Cold.Average.Mu = PP.VapourViscosity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);116 Properties.Cold.Inlet.Mu =PP.VapourViscosity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);117 Properties.Cold.Outlet.Mu =PP.VapourViscosity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);107 Properties.Cold.Average.Mu = PP.VapourViscosity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 108 Properties.Cold.Inlet.Mu = PP.VapourViscosity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 109 Properties.Cold.Outlet.Mu = PP.VapourViscosity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 118 110 119 111 "Conductivity Cold Stream" 120 Properties.Cold.Average.K = PP.VapourThermalConductivity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);121 Properties.Cold.Inlet.K =PP.VapourThermalConductivity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);122 Properties.Cold.Outlet.K =PP.VapourThermalConductivity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);112 Properties.Cold.Average.K = PP.VapourThermalConductivity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 113 Properties.Cold.Inlet.K = PP.VapourThermalConductivity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 114 Properties.Cold.Outlet.K = PP.VapourThermalConductivity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 123 115 124 116 "Heat Capacity Cold Stream" … … 127 119 128 120 "Viscosity Cold Stream" 129 Properties.Cold.Wall.Mu = PP.VapourViscosity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);121 Properties.Cold.Wall.Mu = PP.VapourViscosity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z); 130 122 131 123 "Conductivity Cold Stream" 132 Properties.Cold.Wall.K = PP.VapourThermalConductivity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);124 Properties.Cold.Wall.K = PP.VapourThermalConductivity(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z); 133 125 134 126 … … 156 148 157 149 "Conductivity Hot Stream" 158 Properties.Hot.Average.K = 150 Properties.Hot.Average.K = PP.LiquidThermalConductivity(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z); 159 151 Properties.Hot.Inlet.K = PP.LiquidThermalConductivity(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z); 160 Properties.Hot.Outlet.K = 152 Properties.Hot.Outlet.K = PP.LiquidThermalConductivity(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z); 161 153 162 154 "Heat Capacity Hot Stream" 163 Properties.Hot.Wall.Cp =PP.LiquidCp(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);155 Properties.Hot.Wall.Cp = PP.LiquidCp(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z); 164 156 165 157 "Viscosity Hot Stream" 166 Properties.Hot.Wall.Mu =PP.LiquidViscosity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);158 Properties.Hot.Wall.Mu = PP.LiquidViscosity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z); 167 159 168 160 "Conductivity Hot Stream" 169 Properties.Hot.Wall.K =PP.LiquidThermalConductivity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z);161 Properties.Hot.Wall.K = PP.LiquidThermalConductivity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z); 170 162 171 163 … … 188 180 189 181 "Conductivity Hot Stream" 190 Properties.Hot.Average.K = 182 Properties.Hot.Average.K = PP.VapourThermalConductivity(Properties.Hot.Average.T,Properties.Hot.Average.P,Inlet.Hot.z); 191 183 Properties.Hot.Inlet.K = PP.VapourThermalConductivity(Inlet.Hot.T,Inlet.Hot.P,Inlet.Hot.z); 192 Properties.Hot.Outlet.K = 184 Properties.Hot.Outlet.K = PP.VapourThermalConductivity(Outlet.Hot.T,Outlet.Hot.P,Outlet.Hot.z); 193 185 194 186 "Heat Capacity Hot Stream" 195 Properties.Hot.Wall.Cp = 187 Properties.Hot.Wall.Cp = PP.VapourCp(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z); 196 188 197 189 "Viscosity Hot Stream" 198 Properties.Hot.Wall.Mu = 190 Properties.Hot.Wall.Mu = PP.VapourViscosity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z); 199 191 200 192 "Conductivity Hot Stream" 201 Properties.Hot.Wall.K = PP.VapourThermalConductivity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z); 202 203 204 end 205 206 #===================================================================== 207 # Thermal Details 208 #===================================================================== 193 Properties.Hot.Wall.K = PP.VapourThermalConductivity(Properties.Hot.Wall.Twall,Properties.Hot.Average.P,Inlet.Hot.z); 194 195 196 end 197 198 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 199 # Thermal Details # 200 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 201 209 202 "Hot Stream Heat Capacity" 210 203 Details.Ch =Inlet.Hot.F*Properties.Hot.Average.Cp; … … 213 206 Details.Cc =Inlet.Cold.F*Properties.Cold.Average.Cp; 214 207 208 "Minimum Heat Capacity" 209 Details.Cmin = min([Details.Ch,Details.Cc]); 210 211 "Maximum Heat Capacity" 212 Details.Cmax = max([Details.Ch,Details.Cc]); 213 215 214 "Heat Capacity Ratio" 216 [Details.Cmin,Details.Cmax,Details.Cr] = HE.HeatCapacityRatio(Details.Ch,Details.Cc); 217 218 #===================================================================== 219 # Energy Balance 220 #===================================================================== 215 Details.Cr = Details.Cmin/Details.Cmax; 216 217 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 218 # Energy Balance 219 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 220 221 221 "Energy Balance Hot Stream" 222 222 Details.Q = Inlet.Hot.F*(Inlet.Hot.h-Outlet.Hot.h); … … 225 225 Details.Q =-Inlet.Cold.F*(Inlet.Cold.h-Outlet.Cold.h); 226 226 227 # =====================================================================228 # Material Balance229 # =====================================================================227 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 228 # Material Balance 229 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 230 230 "Flow Mass Inlet Cold Stream" 231 231 Properties.Cold.Inlet.Fw = sum(M*Inlet.Cold.z)*Inlet.Cold.F; … … 246 246 Inlet.Cold.F = Outlet.Cold.F; 247 247 248 # ======================================249 # Constraints250 # ======================================248 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 249 # Constraints 250 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 251 251 "Hot Stream Molar Fraction Constraint" 252 252 Outlet.Hot.z=Inlet.Hot.z; … … 260 260 "No Phase Change In Hot Stream" 261 261 Inlet.Hot.v=Outlet.Hot.v; 262 263 262 264 263 end … … 268 267 PARAMETERS 269 268 270 ext PP as CalcObject; 271 ext HE as CalcObject (Brief="STHE Calculations",File="heatex.dll"); 272 side as Integer (Brief="Fluid Alocation",Lower=0,Upper=1); 269 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 270 # Basic Parameters # 271 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 272 ext PP as CalcObject (Brief="External Physical Properties"); 273 ext HE as CalcObject (Brief="STHE Calculations",File="heatex"); 274 side as Integer (Brief="Fluid Alocation Flag",Lower=0,Upper=1); 273 275 Pi as constant (Brief="Pi Number",Default=3.14159265); 274 276 275 # =====================================================================276 # Shell Geometrical Parameters277 # =====================================================================277 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 278 # Shell Geometrical Parameters # 279 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 278 280 Tpass as Integer (Brief="Number of Tube Passes",Lower=1); 279 281 Nss as Integer (Brief="Number of Sealing Strips pairs",Lower=1); … … 284 286 Honozzle_Shell as length (Brief="Height Under Shell Outlet Nozzle",Lower=10e-6); 285 287 Lcf as length (Brief="Bundle-to-Shell Clearance",Lower=10e-8); 286 #===================================================================== 287 # Tubes Geometrical Parameters 288 #===================================================================== 289 Ntt as Integer (Brief="Total Number of Tubes in Shell",Default=100,Lower=1); 290 Pattern as Integer (Brief="Tube Layout Characteristic Angle",Lower=30); 291 Ltube as length (Brief="Effective Tube Length",Lower=0.1); 292 pitch as length (Brief="Tube Pitch",Lower=1e-8); 293 Kwall as conductivity (Brief="Tube Wall Material Thermal Conductivity"); 294 Dotube as length (Brief="Tube Outside Diameter",Lower=10e-6); 295 Ditube as length (Brief="Tube Inside Diameter",Lower=10e-6); 296 Donozzle_Tube as length (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6); 297 Dinozzle_Tube as length (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6); 298 #===================================================================== 299 # Baffles Geometrical Parameters 300 #===================================================================== 301 Bc as Integer (Brief="Baffle Cut",Default=25,Lower=25); 302 Nb as Real (Brief="Number of Baffles",Lower=1); 303 Lcd as length (Brief="Baffle-to-Shell Clearance",Lower=10e-8); 304 Ltd as length (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8); 305 #===================================================================== 306 #===================================================================== 307 EQUATIONS 308 #===================================================================== 309 310 "Shell Side Cross Flow Area" 311 Shell.HeatTransfer.Sm = HE.CrossFlowArea(Baffles.Ls); 312 313 "Ji Factor" 314 Shell.HeatTransfer.Ji = HE.JiFactor(Shell.HeatTransfer.Re); 315 316 "Jc Factor" 317 Shell.HeatTransfer.Jc = HE.JcFactor(); 318 319 "Jl Factor" 320 Shell.HeatTransfer.Jl = HE.JlFactor(Shell.HeatTransfer.Sm); 321 322 "Jb Factor" 323 Shell.HeatTransfer.Jb = HE.JbFactor(Shell.HeatTransfer.Re,Baffles.Ls,Shell.HeatTransfer.Sm); 324 325 "Jr Factor" 326 Shell.HeatTransfer.Jr = HE.JrFactor(Shell.HeatTransfer.Re); 327 328 "Total J Factor" 329 Shell.HeatTransfer.Jtotal=Shell.HeatTransfer.Jc*Shell.HeatTransfer.Jl*Shell.HeatTransfer.Jb*Shell.HeatTransfer.Jr*Shell.HeatTransfer.Js; 330 331 #===================================================================== 332 # Fluid Alocation 333 #===================================================================== 334 335 if side equal 1 then 336 337 338 "Shell Side Phi correction" 339 Shell.HeatTransfer.Phi = HE.PhiCorrection(Properties.Hot.Average.Mu,Properties.Hot.Wall.Mu); 340 341 "Tube Side Phi correction" 342 Tubes.HeatTransfer.Phi = HE.PhiCorrection(Properties.Cold.Average.Mu,Properties.Cold.Wall.Mu); 343 344 else 345 346 347 "Shell Side Phi correction" 348 Shell.HeatTransfer.Phi = HE.PhiCorrection(Properties.Cold.Average.Mu,Properties.Cold.Wall.Mu); 349 350 "Tube Side Phi correction" 351 Tubes.HeatTransfer.Phi = HE.PhiCorrection(Properties.Hot.Average.Mu,Properties.Hot.Wall.Mu); 352 353 end 354 355 356 if side equal 1 357 358 then 359 360 "Wall Temperature" 361 # Properties.Hot.Wall.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 362 363 # Properties.Cold.Wall.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 364 365 Properties.Hot.Wall.Twall = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2; 366 367 Properties.Cold.Wall.Twall = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2; 368 369 "Tube Side Velocity" 370 Tubes.HeatTransfer.Vtube = HE.TubeVelocity(Properties.Cold.Inlet.Fw,Properties.Cold.Average.rho); 371 372 "Tube Side Reynolds Number" 373 Tubes.HeatTransfer.Re = HE.TubeReynoldsNumber(Properties.Cold.Average.rho,Tubes.HeatTransfer.Vtube,Properties.Cold.Average.Mu); 374 375 "Tube Side Prandtl Number" 376 Tubes.HeatTransfer.PR = HE.PrandtlNumber(Properties.Cold.Average.K,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Average.Mu); 377 378 "Tube Side Prandtl Number at Wall Temperature" 379 Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Properties.Cold.Wall.K,Properties.Cold.Wall.Cp,Properties.Cold.Average.Mw,Properties.Cold.Wall.Mu); 380 381 "Tube Side Film Coefficient" 382 Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Tubes.HeatTransfer.Re,Tubes.HeatTransfer.PR,Properties.Cold.Average.K,Tubes.HeatTransfer.Phi); 383 384 "Shell Side Prandtl Number" 385 Shell.HeatTransfer.PR=HE.PrandtlNumber(Properties.Hot.Average.K,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Average.Mu); 386 387 "Shell Side Prandtl Number at Wall Temperature" 388 Shell.HeatTransfer.PRw = HE.PrandtlNumber(Properties.Hot.Wall.K,Properties.Hot.Wall.Cp,Properties.Hot.Average.Mw,Properties.Hot.Wall.Mu); 389 390 "Tube Side Pressure Drop" 391 Tubes.PressureDrop.PdTube = HE.DeltaPtube(Tubes.HeatTransfer.Re,Properties.Cold.Average.rho,Tubes.HeatTransfer.Vtube,Tubes.HeatTransfer.Phi); 392 393 "Pressure Drop Tube Side Inlet Nozzle" 394 Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw); 395 396 "Velocity Tube Side Inlet Nozzle" 397 Tubes.PressureDrop.Vnozzle_in = HE.TubeVelocityNozzlein(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw); 398 399 "Pressure Drop Tube Side Outlet Nozzle" 400 Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw); 401 402 "Velocity Tube Side Outlet Nozzle" 403 Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw); 404 405 "Shell Pressure Drop Inlet Nozzle" 406 Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw); 407 408 "Velocity Shell Side Inlet Nozzle" 409 Shell.PressureDrop.Vnozzle_in = HE.ShellVelocityNozzleIn(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw); 410 411 "Shell Pressure Drop Outlet Nozzle" 412 Shell.PressureDrop.Pdnozzle_out =HE.DeltaPshellNozzleOut(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 413 414 "Velocity Shell Side Outlet Nozzle" 415 Shell.PressureDrop.Vnozzle_out =HE.ShellVelocityNozzleOut(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 416 417 "Pressure Drop Hot Stream" 418 Outlet.Hot.P = Inlet.Hot.P- Shell.PressureDrop.Pdtotal; 419 420 "Pressure Drop Cold Stream" 421 Outlet.Cold.P = Inlet.Cold.P - Tubes.PressureDrop.Pdtotal; 422 423 424 else 425 426 "Wall Temperature" 427 # Properties.Cold.Wall.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 428 429 # Properties.Hot.Wall.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 430 431 432 Properties.Hot.Wall.Twall = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2; 433 434 Properties.Cold.Wall.Twall = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2; 435 436 "Tube Side Velocity" 437 Tubes.HeatTransfer.Vtube=HE.TubeVelocity(Properties.Hot.Inlet.Fw,Properties.Hot.Average.rho); 438 439 "Tube Side Reynolds Number" 440 Tubes.HeatTransfer.Re=HE.TubeReynoldsNumber(Properties.Hot.Average.rho,Tubes.HeatTransfer.Vtube,Properties.Hot.Average.Mu); 441 442 "Tube Side Prandtl Number" 443 Tubes.HeatTransfer.PR=HE.PrandtlNumber(Properties.Hot.Average.K,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Average.Mu); 444 445 "Tube Side Prandtl Number at Wall" 446 Tubes.HeatTransfer.PRw=HE.PrandtlNumber(Properties.Hot.Wall.K,Properties.Hot.Wall.Cp,Properties.Hot.Average.Mw,Properties.Hot.Wall.Mu); 447 448 "Tube Side Film Coefficient" 449 Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Tubes.HeatTransfer.Re,Tubes.HeatTransfer.PR,Properties.Hot.Average.K,Tubes.HeatTransfer.Phi); 450 451 "Shell Side Prandtl Number" 452 Shell.HeatTransfer.PR=HE.PrandtlNumber(Properties.Cold.Average.K,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Average.Mu); 453 454 "Shell Side Prandtl Number at Wall" 455 Shell.HeatTransfer.PRw=HE.PrandtlNumber(Properties.Cold.Wall.K,Properties.Cold.Wall.Cp,Properties.Cold.Average.Mw,Properties.Cold.Wall.Mu); 456 457 "Tube Side Pressure Drop" 458 Tubes.PressureDrop.PdTube = HE.DeltaPtube(Tubes.HeatTransfer.Re,Properties.Hot.Average.rho,Tubes.HeatTransfer.Vtube,Tubes.HeatTransfer.Phi); 459 460 "Pressure Drop Tube Side Inlet Nozzle" 461 Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw); 462 463 "Velocity Tube Side Inlet Nozzle" 464 Tubes.PressureDrop.Vnozzle_in = HE.TubeVelocityNozzlein(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw); 465 466 "Pressure Drop Tube Side Outlet Nozzle" 467 Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 468 469 "Velocity Tube Side Outlet Nozzle" 470 Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 471 472 "Shell Pressure Drop Inlet Nozzle" 473 Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw); 474 475 "Velocity Shell Side Inlet Nozzle" 476 Shell.PressureDrop.Vnozzle_in = HE.ShellVelocityNozzleIn(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw); 477 478 "Shell Pressure Drop Outlet Nozzle" 479 Shell.PressureDrop.Pdnozzle_out = HE.DeltaPshellNozzleOut(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw); 480 481 "Velocity Shell Side Outlet Nozzle" 482 Shell.PressureDrop.Vnozzle_out = HE.ShellVelocityNozzleOut(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw); 483 484 "Pressure Drop Hot Stream" 485 Outlet.Hot.P = Inlet.Hot.P- Tubes.PressureDrop.Pdtotal; 486 487 "Pressure Drop Cold Stream" 488 Outlet.Cold.P = Inlet.Cold.P - Shell.PressureDrop.Pdtotal; 489 490 491 end 492 493 #===================================================================== 494 495 "Tube Resistance" 496 Resistances.Rtube*(Tubes.HeatTransfer.htube*Ditube) = Dotube; 497 498 "Wall Resistance" 499 Resistances.Rwall=Dotube*ln(Dotube/Ditube)/(2*Kwall); 500 501 "Shell Resistance" 502 Resistances.Rshell*(Shell.HeatTransfer.hshell)=1; 503 504 "Overall Heat Transfer Coefficient" 505 Details.U=1/(Dotube/(Tubes.HeatTransfer.htube*Ditube)+(Dotube*ln(Dotube/Ditube)/(2*Kwall))+(1/(Shell.HeatTransfer.hshell))); 506 507 "Exchange Surface Area" 508 Details.A=Pi*Dotube*Ntt*Ltube; 509 510 "Baffles Spacing" 511 Ltube = Baffles.Lsi+Baffles.Lso+Baffles.Ls*(Nb-1); 512 513 514 515 SET 516 #===================================================================== 517 # Set Parameters for heatex Calculation 518 #===================================================================== 288 289 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 290 # Tubes Geometrical Parameters # 291 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 292 Ntt as Integer (Brief="Total Number of Tubes in Shell",Default=100,Lower=1); 293 Pattern as Integer (Brief="Tube Layout Characteristic Angle",Lower=30); 294 Ltube as length (Brief="Effective Tube Length",Lower=0.1); 295 pitch as length (Brief="Tube Pitch",Lower=1e-8); 296 Kwall as conductivity (Brief="Tube Wall Material Thermal Conductivity"); 297 Dotube as length (Brief="Tube Outside Diameter",Lower=10e-6); 298 Ditube as length (Brief="Tube Inside Diameter",Lower=10e-6); 299 Donozzle_Tube as length (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6); 300 Dinozzle_Tube as length (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6); 301 302 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 303 # Baffles Geometrical Parameters # 304 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 305 Bc as Integer (Brief="Baffle Cut",Default=25,Lower=25); 306 Nb as Real (Brief="Number of Baffles",Lower=1); 307 Lcd as length (Brief="Baffle-to-Shell Clearance",Lower=10e-8); 308 Ltd as length (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8); 309 310 SET 311 312 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 313 # Set Parameters for heatex Calculation # 314 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 519 315 Pi = 3.14159265; 520 316 HE.Tpass = Tpass; … … 540 336 side = HE.FluidAlocation(); 541 337 338 EQUATIONS 339 340 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 341 # Heat Transfer Correction Factors # 342 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 343 "Ji Factor" 344 Shell.HeatTransfer.Ji = HE.JiFactor(Shell.HeatTransfer.Re); 345 346 "Jc Factor" 347 Shell.HeatTransfer.Jc = HE.JcFactor(); 348 349 "Jl Factor" 350 Shell.HeatTransfer.Jl = HE.JlFactor(Shell.HeatTransfer.Sm); 351 352 "Jb Factor" 353 Shell.HeatTransfer.Jb = HE.JbFactor(Shell.HeatTransfer.Re,Baffles.Ls,Shell.HeatTransfer.Sm); 354 355 "Jr Factor" 356 Shell.HeatTransfer.Jr = HE.JrFactor(Shell.HeatTransfer.Re); 357 358 "Total J Factor" 359 Shell.HeatTransfer.Jtotal = Shell.HeatTransfer.Jc*Shell.HeatTransfer.Jl*Shell.HeatTransfer.Jb*Shell.HeatTransfer.Jr*Shell.HeatTransfer.Js; 360 361 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 362 # Nozzles rho-V^2 # 363 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 364 365 if side equal 1 366 367 then 368 369 "Shell Side inlet Nozzle rho-V^2" 370 Shell.PressureDrop.RVsquare_in = Properties.Hot.Inlet.rho*(Shell.PressureDrop.Vnozzle_in)^2; 371 372 "Shell Side Outlet Nozzle rho-V^2" 373 Shell.PressureDrop.RVsquare_out = Properties.Hot.Outlet.rho*(Shell.PressureDrop.Vnozzle_out)^2; 374 375 else 376 377 "Shell Side inlet Nozzle rho-V^2" 378 Shell.PressureDrop.RVsquare_in = Properties.Cold.Inlet.rho*(Shell.PressureDrop.Vnozzle_in)^2; 379 380 "Shell Side Outlet Nozzle rho-V^2" 381 Shell.PressureDrop.RVsquare_out = Properties.Cold.Outlet.rho*(Shell.PressureDrop.Vnozzle_out)^2; 382 383 end 384 385 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 386 # Phi correction # 387 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 388 389 if side equal 1 390 391 then 392 393 "Shell Side Phi correction" 394 Shell.HeatTransfer.Phi = HE.PhiCorrection(Properties.Hot.Average.Mu,Properties.Hot.Wall.Mu); 395 396 "Tube Side Phi correction" 397 Tubes.HeatTransfer.Phi = HE.PhiCorrection(Properties.Cold.Average.Mu,Properties.Cold.Wall.Mu); 398 399 else 400 401 "Shell Side Phi correction" 402 Shell.HeatTransfer.Phi = HE.PhiCorrection(Properties.Cold.Average.Mu,Properties.Cold.Wall.Mu); 403 404 "Tube Side Phi correction" 405 Tubes.HeatTransfer.Phi = HE.PhiCorrection(Properties.Hot.Average.Mu,Properties.Hot.Wall.Mu); 406 407 end 408 409 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 410 # # 411 # # 412 # # 413 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 414 415 if side equal 1 416 417 then 418 419 "Wall Temperature" 420 # Properties.Hot.Wall.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 421 422 # Properties.Cold.Wall.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 423 424 Properties.Hot.Wall.Twall = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2; 425 426 Properties.Cold.Wall.Twall = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2; 427 428 "Tube Side Velocity" 429 Tubes.HeatTransfer.Vtube = HE.TubeVelocity(Properties.Cold.Inlet.Fw,Properties.Cold.Average.rho); 430 431 "Tube Side Reynolds Number" 432 Tubes.HeatTransfer.Re = HE.TubeReynoldsNumber(Properties.Cold.Average.rho,Tubes.HeatTransfer.Vtube,Properties.Cold.Average.Mu); 433 434 "Tube Side Prandtl Number" 435 Tubes.HeatTransfer.PR = HE.PrandtlNumber(Properties.Cold.Average.K,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Average.Mu); 436 437 "Tube Side Prandtl Number at Wall Temperature" 438 Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Properties.Cold.Wall.K,Properties.Cold.Wall.Cp,Properties.Cold.Average.Mw,Properties.Cold.Wall.Mu); 439 440 "Tube Side Film Coefficient" 441 Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Tubes.HeatTransfer.Re,Tubes.HeatTransfer.PR,Properties.Cold.Average.K,Tubes.HeatTransfer.Phi); 442 443 "Shell Side Prandtl Number" 444 Shell.HeatTransfer.PR=HE.PrandtlNumber(Properties.Hot.Average.K,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Average.Mu); 445 446 "Shell Side Prandtl Number at Wall Temperature" 447 Shell.HeatTransfer.PRw = HE.PrandtlNumber(Properties.Hot.Wall.K,Properties.Hot.Wall.Cp,Properties.Hot.Average.Mw,Properties.Hot.Wall.Mu); 448 449 "Tube Side Pressure Drop" 450 Tubes.PressureDrop.PdTube = HE.DeltaPtube(Tubes.HeatTransfer.Re,Properties.Cold.Average.rho,Tubes.HeatTransfer.Vtube,Tubes.HeatTransfer.Phi); 451 452 "Pressure Drop Tube Side Inlet Nozzle" 453 Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw); 454 455 "Velocity Tube Side Inlet Nozzle" 456 Tubes.PressureDrop.Vnozzle_in = HE.TubeVelocityNozzlein(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw); 457 458 "Pressure Drop Tube Side Outlet Nozzle" 459 Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw); 460 461 "Velocity Tube Side Outlet Nozzle" 462 Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw); 463 464 "Shell Pressure Drop Inlet Nozzle" 465 Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw); 466 467 "Velocity Shell Side Inlet Nozzle" 468 Shell.PressureDrop.Vnozzle_in = HE.ShellVelocityNozzleIn(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw); 469 470 "Shell Pressure Drop Outlet Nozzle" 471 Shell.PressureDrop.Pdnozzle_out =HE.DeltaPshellNozzleOut(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 472 473 "Velocity Shell Side Outlet Nozzle" 474 Shell.PressureDrop.Vnozzle_out =HE.ShellVelocityNozzleOut(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 475 476 "Pressure Drop Hot Stream" 477 Outlet.Hot.P = Inlet.Hot.P- Shell.PressureDrop.Pdtotal; 478 479 "Pressure Drop Cold Stream" 480 Outlet.Cold.P = Inlet.Cold.P - Tubes.PressureDrop.Pdtotal; 481 482 483 else 484 485 "Wall Temperature" 486 # Properties.Cold.Wall.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 487 488 # Properties.Hot.Wall.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 489 490 491 Properties.Hot.Wall.Twall = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2; 492 493 Properties.Cold.Wall.Twall = (Properties.Hot.Average.T+Properties.Cold.Average.T)/2; 494 495 "Tube Side Velocity" 496 Tubes.HeatTransfer.Vtube=HE.TubeVelocity(Properties.Hot.Inlet.Fw,Properties.Hot.Average.rho); 497 498 "Tube Side Reynolds Number" 499 Tubes.HeatTransfer.Re=HE.TubeReynoldsNumber(Properties.Hot.Average.rho,Tubes.HeatTransfer.Vtube,Properties.Hot.Average.Mu); 500 501 "Tube Side Prandtl Number" 502 Tubes.HeatTransfer.PR=HE.PrandtlNumber(Properties.Hot.Average.K,Properties.Hot.Average.Cp,Properties.Hot.Average.Mw,Properties.Hot.Average.Mu); 503 504 "Tube Side Prandtl Number at Wall" 505 Tubes.HeatTransfer.PRw=HE.PrandtlNumber(Properties.Hot.Wall.K,Properties.Hot.Wall.Cp,Properties.Hot.Average.Mw,Properties.Hot.Wall.Mu); 506 507 "Tube Side Film Coefficient" 508 Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Tubes.HeatTransfer.Re,Tubes.HeatTransfer.PR,Properties.Hot.Average.K,Tubes.HeatTransfer.Phi); 509 510 "Shell Side Prandtl Number" 511 Shell.HeatTransfer.PR=HE.PrandtlNumber(Properties.Cold.Average.K,Properties.Cold.Average.Cp,Properties.Cold.Average.Mw,Properties.Cold.Average.Mu); 512 513 "Shell Side Prandtl Number at Wall" 514 Shell.HeatTransfer.PRw=HE.PrandtlNumber(Properties.Cold.Wall.K,Properties.Cold.Wall.Cp,Properties.Cold.Average.Mw,Properties.Cold.Wall.Mu); 515 516 "Tube Side Pressure Drop" 517 Tubes.PressureDrop.PdTube = HE.DeltaPtube(Tubes.HeatTransfer.Re,Properties.Hot.Average.rho,Tubes.HeatTransfer.Vtube,Tubes.HeatTransfer.Phi); 518 519 "Pressure Drop Tube Side Inlet Nozzle" 520 Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw); 521 522 "Velocity Tube Side Inlet Nozzle" 523 Tubes.PressureDrop.Vnozzle_in = HE.TubeVelocityNozzlein(Properties.Hot.Inlet.rho,Properties.Hot.Inlet.Fw); 524 525 "Pressure Drop Tube Side Outlet Nozzle" 526 Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 527 528 "Velocity Tube Side Outlet Nozzle" 529 Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Properties.Hot.Outlet.rho,Properties.Hot.Inlet.Fw); 530 531 "Shell Pressure Drop Inlet Nozzle" 532 Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw); 533 534 "Velocity Shell Side Inlet Nozzle" 535 Shell.PressureDrop.Vnozzle_in = HE.ShellVelocityNozzleIn(Properties.Cold.Inlet.rho,Properties.Cold.Inlet.Fw); 536 537 "Shell Pressure Drop Outlet Nozzle" 538 Shell.PressureDrop.Pdnozzle_out = HE.DeltaPshellNozzleOut(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw); 539 540 "Velocity Shell Side Outlet Nozzle" 541 Shell.PressureDrop.Vnozzle_out = HE.ShellVelocityNozzleOut(Properties.Cold.Outlet.rho,Properties.Cold.Inlet.Fw); 542 543 "Pressure Drop Hot Stream" 544 Outlet.Hot.P = Inlet.Hot.P- Tubes.PressureDrop.Pdtotal; 545 546 "Pressure Drop Cold Stream" 547 Outlet.Cold.P = Inlet.Cold.P - Shell.PressureDrop.Pdtotal; 548 549 550 end 551 552 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 553 # Resistances # 554 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 555 556 "Tube Resistance" 557 Resistances.Rtube*(Tubes.HeatTransfer.htube*Ditube) = Dotube; 558 559 "Wall Resistance" 560 Resistances.Rwall=Dotube*ln(Dotube/Ditube)/(2*Kwall); 561 562 "Shell Resistance" 563 Resistances.Rshell*(Shell.HeatTransfer.hshell)=1; 564 565 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 566 # # 567 # # 568 # # 569 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 570 571 "Shell Side Cross Flow Area" 572 Shell.HeatTransfer.Sm = HE.CrossFlowArea(Baffles.Ls); 573 574 "Overall Heat Transfer Coefficient" 575 Details.U=1/(Dotube/(Tubes.HeatTransfer.htube*Ditube)+(Dotube*ln(Dotube/Ditube)/(2*Kwall))+(1/(Shell.HeatTransfer.hshell))); 576 577 "Exchange Surface Area" 578 Details.A=Pi*Dotube*Ntt*Ltube; 579 580 "Baffles Spacing" 581 Ltube = Baffles.Lsi+Baffles.Lso+Baffles.Ls*(Nb-1); 582 542 583 end 543 584 … … 546 587 VARIABLES 547 588 548 Eft as positive (Brief="Effectiveness",Default=0.05,Lower=1e-8); 549 550 EQUATIONS 551 Details.Q = Eft*Details.Cmin*(Inlet.Hot.T-Inlet.Cold.T); 589 Eft as positive (Brief="Effectiveness",Default=0.05,Lower=1e-8); 590 591 EQUATIONS 592 "Duty" 593 Details.Q = Eft*Details.Cmin*(Inlet.Hot.T-Inlet.Cold.T); 552 594 553 595 end … … 557 599 VARIABLES 558 600 LMTD as temp_delta (Brief="Logarithmic Mean Temperature Difference",Lower=5); 559 Fc as positive (Brief="LMTD Correction Factor",Lower=0. 7);601 Fc as positive (Brief="LMTD Correction Factor",Lower=0.4); 560 602 MTD as temp_delta (Brief="Mean Temperature Difference",Lower=5); 561 603 … … 570 612 end 571 613 572 573 614 Model E_Shell_NTU_Det as Heatex_Detailed_NTU 574 # =====================================================================615 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 575 616 # Shell and Tubes Heat Exchanger with 1 shell pass - LMTD Method 576 # =====================================================================617 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 577 618 EQUATIONS 578 619 579 620 "TEMA E Shell Effectiveness" 580 Eft = 2*(1+Details.Cr+sqrt(1+Details.Cr^2)*((1+exp(-Details.NTU*sqrt(1+Details.Cr^2)))/(1-exp(-Details.NTU*sqrt(1+Details.Cr^2)))) )^-1; 621 # Eft = 2*(1+Details.Cr+sqrt(1+Details.Cr^2)*((1+exp(-Details.NTU*sqrt(1+Details.Cr^2)))/(1-exp(-Details.NTU*sqrt(1+Details.Cr^2)))) )^-1; 622 Eft = HE.EshellEffectiveness(Details.Cr,Details.NTU); 581 623 582 624 "Js Factor" … … 623 665 end 624 666 625 626 667 end 627 668 628 669 Model F_Shell_NTU_Det as Heatex_Detailed_NTU 629 # =====================================================================670 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 630 671 # Shell and Tubes Heat Exchanger with 1 shell pass - LMTD Method 631 # =====================================================================672 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 632 673 VARIABLES 633 674 … … 689 730 690 731 Model Multipass_NTU_Det 691 # ============================================================================732 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 692 733 # Shell and Tubes Heat Exchanger In Series with 1 shell pass - LMTD Method 693 # ============================================================================734 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 694 735 PARAMETERS 695 736 696 737 Nshell as Integer (Brief="N Shell in Series",Default=2); 697 738 ext HE as CalcObject (Brief="STHE Calculations",File="heatex.dll"); 698 ext PP as CalcObject ;739 ext PP as CalcObject (Brief="External Physical Properties"); 699 740 side as Integer (Brief="Fluid Alocation",Lower=0,Upper=1); 700 741 Pi as constant (Brief="Pi Number",Default=3.14159265); 701 742 702 # =====================================================================743 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 703 744 # Shell Geometrical Parameters 704 # =====================================================================745 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 705 746 Tpass as Integer (Brief="Number of Tube Passes",Lower=1); 706 747 Nss as Integer (Brief="Number of Sealing Strips pairs",Lower=1); … … 711 752 Honozzle_Shell as length (Brief="Height Under Shell Outlet Nozzle",Lower=10e-6); 712 753 Lcf as length (Brief="Bundle-to-Shell Clearance",Lower=10e-8); 713 # =====================================================================754 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 714 755 # Tubes Geometrical Parameters 715 # =====================================================================756 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 716 757 Ntt as Integer (Brief="Total Number of Tubes in Shell",Default=100,Lower=1); 717 758 Pattern as Integer (Brief="Tube Layout Characteristic Angle",Lower=30); … … 723 764 Donozzle_Tube as length (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6); 724 765 Dinozzle_Tube as length (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6); 725 # =====================================================================766 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 726 767 # Baffles Geometrical Parameters 727 # =====================================================================768 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 728 769 Bc as Integer (Brief="Baffle Cut",Default=25,Lower=25); 729 770 Nb as Real (Brief="Number of Baffles",Lower=1); 730 771 Lcd as length (Brief="Baffle-to-Shell Clearance",Lower=10e-8); 731 772 Ltd as length (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8); 732 # =====================================================================773 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 733 774 VARIABLES 734 775 … … 766 807 Unity(i).Shell.HeatTransfer.Jtotal=Unity(i).Shell.HeatTransfer.Jc*Unity(i).Shell.HeatTransfer.Jl*Unity(i).Shell.HeatTransfer.Jb*Unity(i).Shell.HeatTransfer.Jr*Unity(i).Shell.HeatTransfer.Js; 767 808 768 769 770 #===================================================================== 809 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 771 810 # Fluid Alocation 772 # =====================================================================811 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 773 812 774 813 if side equal 1 then … … 795 834 then 796 835 797 "Wall Temperature" 798 # Unity(i).Tubes.HeatTransfer.Twall = HE.WallTemperature(Unity(i).Properties.Hot.Average.T,Unity(i).Properties.Cold.Average.T,Unity(i).Tubes.HeatTransfer.htube,Unity(i).Shell.HeatTransfer.hshell); 836 "Hot Wall Temperature" 799 837 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 838 839 "Cold Wall Temperature" 800 840 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 801 841 … … 812 852 Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu); 813 853 814 815 854 "Tube Side Film Coefficient" 816 855 Unity(i).Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Cold.Average.K,Unity(i).Tubes.HeatTransfer.Phi); … … 858 897 else 859 898 860 "Wall Temperature" 861 # Unity(i).Tubes.HeatTransfer.Twall = HE.WallTemperature(Unity(i).Properties.Cold.Average.T,Unity(i).Properties.Hot.Average.T,Unity(i).Tubes.HeatTransfer.htube,Unity(i).Shell.HeatTransfer.hshell); 899 "Hot Wall Temperature" 862 900 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 901 902 "Cold Wall Temperature" 863 903 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 864 904 … … 875 915 Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu); 876 916 877 878 917 "Tube Side Film Coefficient" 879 918 Unity(i).Tubes.HeatTransfer.htube = HE.TubeFilmCoeff(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Hot.Average.K,Unity(i).Tubes.HeatTransfer.Phi); … … 885 924 Unity(i).Shell.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu); 886 925 887 888 926 "Tube Side Pressure Drop" 889 927 Unity(i).Tubes.PressureDrop.PdTube = HE.DeltaPtube(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Tubes.HeatTransfer.Phi); … … 922 960 end 923 961 962 if side equal 1 963 964 then 965 966 "Shell Side inlet Nozzle rho-V^2" 967 Unity(i).Shell.PressureDrop.RVsquare_in = Unity(i).Properties.Hot.Inlet.rho*(Unity(i).Shell.PressureDrop.Vnozzle_in)^2; 968 969 "Shell Side Outlet Nozzle rho-V^2" 970 Unity(i).Shell.PressureDrop.RVsquare_out = Unity(i).Properties.Hot.Outlet.rho*(Unity(i).Shell.PressureDrop.Vnozzle_out)^2; 971 972 else 973 974 "Shell Side inlet Nozzle rho-V^2" 975 Unity(i).Shell.PressureDrop.RVsquare_in = Unity(i).Properties.Cold.Inlet.rho*(Unity(i).Shell.PressureDrop.Vnozzle_in)^2; 976 977 "Shell Side Outlet Nozzle rho-V^2" 978 Unity(i).Shell.PressureDrop.RVsquare_out = Unity(i).Properties.Cold.Outlet.rho*(Unity(i).Shell.PressureDrop.Vnozzle_out)^2; 979 980 end 981 924 982 "Tube Resistance" 925 983 Unity(i).Resistances.Rtube*(Unity(i).Tubes.HeatTransfer.htube*Ditube) = Dotube; … … 939 997 "Baffles Spacing" 940 998 Ltube = Unity(i).Baffles.Lsi+Unity(i).Baffles.Lso+Unity(i).Baffles.Ls*(Nb-1); 941 942 999 943 1000 "TEMA E Shell Effectiveness" … … 987 1044 end 988 1045 1046 "Duty" 989 1047 Unity(i).Details.Q = Eft(i)*Unity(i).Details.Cmin*(Unity(i).Inlet.Hot.T-Unity(i).Inlet.Cold.T); 990 1048 … … 992 1050 993 1051 SET 994 # =====================================================================1052 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 995 1053 # Set Parameters for heatex Calculation 996 # =====================================================================1054 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 997 1055 Pi = 3.14159265; 998 1056 HE.Tpass = Tpass; … … 1021 1079 1022 1080 Model E_Shell_LMTD_Det as Heatex_Detailed_LMTD 1023 # =====================================================================1081 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1024 1082 # Shell and Tubes Heat Exchanger with 1 shell pass - LMTD Method 1025 # =====================================================================1083 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1026 1084 EQUATIONS 1027 1085 … … 1080 1138 1081 1139 Model F_Shell_LMTD_Det as Heatex_Detailed_LMTD 1082 # =====================================================================1140 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1083 1141 # Shell and Tubes Heat Exchanger with 2 shell pass - LMTD Method 1084 # =====================================================================1142 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1085 1143 1086 1144 EQUATIONS … … 1140 1198 1141 1199 Model Multipass_LMTD_Det 1142 # ============================================================================1200 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1143 1201 # Shell and Tubes Heat Exchanger In Series with 1 shell pass - LMTD Method 1144 # ============================================================================1202 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1145 1203 PARAMETERS 1146 1204 1147 Nshell as Integer (Brief="N Shell in Series",Default=2);1205 Nshell as Integer (Brief="N Shell in Series",Default=2); 1148 1206 ext HE as CalcObject (Brief="STHE Calculations",File="heatex.dll"); 1149 ext PP as CalcObject ;1207 ext PP as CalcObject (Brief="External Physical Properties"); 1150 1208 side as Integer (Brief="Fluid Alocation",Lower=0,Upper=1); 1151 1209 Pi as constant (Brief="Pi Number",Default=3.14159265); 1152 1210 1153 # =====================================================================1211 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1154 1212 # Shell Geometrical Parameters 1155 # =====================================================================1213 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1156 1214 Tpass as Integer (Brief="Number of Tube Passes",Lower=1); 1157 1215 Nss as Integer (Brief="Number of Sealing Strips pairs",Lower=1); … … 1162 1220 Honozzle_Shell as length (Brief="Height Under Shell Outlet Nozzle",Lower=10e-6); 1163 1221 Lcf as length (Brief="Bundle-to-Shell Clearance",Lower=10e-8); 1164 # =====================================================================1222 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1165 1223 # Tubes Geometrical Parameters 1166 # =====================================================================1224 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1167 1225 Ntt as Integer (Brief="Total Number of Tubes in Shell",Default=100,Lower=1); 1168 1226 Pattern as Integer (Brief="Tube Layout Characteristic Angle",Lower=30); … … 1174 1232 Donozzle_Tube as length (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6); 1175 1233 Dinozzle_Tube as length (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6); 1176 # =====================================================================1234 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1177 1235 # Baffles Geometrical Parameters 1178 # =====================================================================1236 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1179 1237 Bc as Integer (Brief="Baffle Cut",Default=25,Lower=25); 1180 1238 Nb as Real (Brief="Number of Baffles",Lower=1); 1181 1239 Lcd as length (Brief="Baffle-to-Shell Clearance",Lower=10e-8); 1182 1240 Ltd as length (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8); 1183 # =====================================================================1241 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1184 1242 VARIABLES 1185 1243 … … 1187 1245 Fc(Nshell) as positive (Brief="LMTD Correction Factor",Lower=0.75); 1188 1246 MTD(Nshell) as temp_delta (Brief="Mean Temperature Difference"); 1189 1190 Unity(Nshell) as HeatExchangerDetailed_Basic; 1247 Unity(Nshell) as HeatExchangerDetailed_Basic; 1191 1248 1192 1249 CONNECTIONS … … 1220 1277 Unity(i).Shell.HeatTransfer.Jtotal=Unity(i).Shell.HeatTransfer.Jc*Unity(i).Shell.HeatTransfer.Jl*Unity(i).Shell.HeatTransfer.Jb*Unity(i).Shell.HeatTransfer.Jr*Unity(i).Shell.HeatTransfer.Js; 1221 1278 1222 1223 1224 #===================================================================== 1279 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1225 1280 # Fluid Alocation 1226 # =====================================================================1281 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1227 1282 1228 1283 if side equal 1 then … … 1251 1306 then 1252 1307 1253 "Wall Temperature" 1254 # Tubes.HeatTransfer.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 1255 1256 # Tubes.HeatTransfer.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 1257 1258 1308 "Cold Wall Temperature" 1259 1309 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 1260 1310 1311 "Hot Wall Temperature" 1261 1312 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 1262 1313 … … 1273 1324 Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu); 1274 1325 1275 1276 1326 "Tube Side Film Coefficient" 1277 1327 Unity(i).Tubes.HeatTransfer.htube= HE.TubeFilmCoeff(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Cold.Average.K,Unity(i).Tubes.HeatTransfer.Phi); … … 1319 1369 else 1320 1370 1321 "Wall Temperature" 1322 # Tubes.HeatTransfer.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 1323 1324 # Tubes.HeatTransfer.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 1325 1371 "Cold Wall Temperature" 1326 1372 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 1327 1373 1374 "Hot Wall Temperature" 1328 1375 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 1329 1330 1331 1376 1332 1377 "Tube Side Velocity" … … 1463 1508 1464 1509 SET 1465 # =====================================================================1510 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1466 1511 # Set Parameters for heatex Calculation 1467 # =====================================================================1512 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1468 1513 Pi = 3.14159265; 1469 1514 HE.Tpass = Tpass; -
mso/eml/heat_exchangers/HeatExchangerDiscretized.mso
r1 r26 1 #*--------------------------------------------------------------------* 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 *---------------------------------------------------------------------- 13 * Author: Gerson Balbueno Bicca 14 * $Id$ 15 *--------------------------------------------------------------------*# 1 2 #-------------------------------------------------------------------- 3 # Author: Gerson Balbueno Bicca 4 # $Id$ 5 #-------------------------------------------------------------------- 16 6 17 7 using "HEX_Engine"; 18 8 19 # =====================================================================9 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 20 10 # Basic Model for Discretized Heat Exchangers 21 # =====================================================================11 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 22 12 23 13 Model HeatExchangerDiscretized_Basic … … 26 16 27 17 ext PP as CalcObject(Brief="External Physical Properties"); 28 ext HE as CalcObject(Brief="STHE Calculations",File="heatex .dll");18 ext HE as CalcObject(Brief="STHE Calculations",File="heatex"); 29 19 ext NComp as Integer (Brief="Number of Components"); 30 20 M(NComp) as molweight (Brief="Component Mol Weight"); … … 36 26 Properties as Main_Properties; # Hot and Cold Properties 37 27 Details as Details_Main; 38 Tubes as Tube_Side_Main _Disc;39 Shell as Shell_Side_Main _Disc;28 Tubes as Tube_Side_Main; 29 Shell as Shell_Side_Main; 40 30 Resistances as Main_Resistances; 41 31 Baffles as Baffles_Main; … … 204 194 end 205 195 206 # =====================================================================196 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 207 197 # Thermal Details 208 # =====================================================================198 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 209 199 "Hot Stream Heat Capacity" 210 200 Details.Ch =Inlet.Hot.F*Properties.Hot.Average.Cp; … … 213 203 Details.Cc =Inlet.Cold.F*Properties.Cold.Average.Cp; 214 204 205 "Minimum Heat Capacity" 206 Details.Cmin = min([Details.Ch,Details.Cc]); 207 208 "Maximum Heat Capacity" 209 Details.Cmax = max([Details.Ch,Details.Cc]); 210 215 211 "Heat Capacity Ratio" 216 [Details.Cmin,Details.Cmax,Details.Cr] = HE.HeatCapacityRatio(Details.Ch,Details.Cc);217 218 # =====================================================================212 Details.Cr = Details.Cmin/Details.Cmax; 213 214 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 219 215 # Energy Balance 220 # =====================================================================216 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 221 217 "Energy Balance Hot Stream" 222 218 Details.Q = Inlet.Hot.F*(Inlet.Hot.h-Outlet.Hot.h); … … 225 221 Details.Q =-Inlet.Cold.F*(Inlet.Cold.h-Outlet.Cold.h); 226 222 227 # =====================================================================223 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 228 224 # Material Balance 229 # =====================================================================225 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 230 226 "Flow Mass Inlet Cold Stream" 231 227 Properties.Cold.Inlet.Fw = sum(M*Inlet.Cold.z)*Inlet.Cold.F; … … 246 242 Inlet.Cold.F = Outlet.Cold.F; 247 243 248 # ======================================244 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 249 245 # Constraints 250 # ======================================246 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 251 247 "Hot Stream Molar Fraction Constraint" 252 248 Outlet.Hot.z=Inlet.Hot.z; … … 264 260 end 265 261 262 Model Heatex_Discretized_NTU as HeatExchangerDiscretized_Basic 263 264 VARIABLES 265 266 Eft as positive (Brief="Effectiveness",Default=0.05,Lower=1e-8); 267 268 EQUATIONS 269 270 "Exchange Surface Area" 271 Details.Q = Eft*Details.Cmin*(Inlet.Hot.T-Inlet.Cold.T); 272 273 "TEMA E Shell Effectiveness" 274 Eft = HE.EshellEffectiveness(Details.Cr,Details.NTU); 275 276 end 277 266 278 Model Heatex_Discretized_LMTD as HeatExchangerDiscretized_Basic 267 279 268 280 VARIABLES 269 281 LMTD as temp_delta (Brief="Logarithmic Mean Temperature Difference",Lower=5); 270 Fc as positive (Brief="LMTD Correction Factor",Lower=0. 1);271 MTD as temp_delta (Brief="Mean Temperature Difference",Lower= 5);282 Fc as positive (Brief="LMTD Correction Factor",Lower=0.5); 283 MTD as temp_delta (Brief="Mean Temperature Difference",Lower=1); 272 284 273 285 EQUATIONS 274 275 286 "Exchange Surface Area" 276 287 Details.Q = Details.U*Details.A*MTD; … … 287 298 end 288 299 289 Model Heatex_Discretized_NTU as HeatExchangerDiscretized_Basic 290 300 Model Profiles 301 302 PARAMETERS 303 304 Zones as Integer(Brief="Number of Zones"); 305 291 306 VARIABLES 292 307 293 Eft as positive (Brief="Effectiveness",Default=0.05,Lower=1e-8); 294 295 EQUATIONS 296 297 "Exchange Surface Area" 298 Details.Q = Eft*Details.Cmin*(Inlet.Hot.T-Inlet.Cold.T); 299 300 "TEMA E Shell Effectiveness" 301 # Eft = HE.EshellEffectiveness(Details.Cr,Details.NTU); 302 303 Eft = 0.10; 304 305 end 306 307 Model Profiles 308 308 Lz(Zones) as length (Brief="Zone Tube Length"); 309 Area as area (Brief="Area Total"); 310 Q as power (Brief="Total Duty"); 311 PdropTubesNozzle as pressure (Brief="Total Tube Nozzles Pressure Drop"); 312 PdropTubes as pressure (Brief="Total Tube Pressure Drop"); 313 PdropWin as pressure (Brief="Total Shell Side Window Pressure Drop"); 314 PdropCross as pressure (Brief="Total Shell Side Cross Flow Pressure Drop"); 315 PdropEnds as pressure (Brief="Total Shell Side Ends Pressure Drop"); 316 PdropShellNozzle as pressure (Brief="Total Shell Side Nozzles Pressure Drop"); 317 PdropShell as pressure (Brief="Total Shell Side Pressure Drop"); 318 Uaverage as heat_trans_coeff (Brief="Average Overall Heat Transfer Coefficient",Default=1,Lower=1e-6,Upper=1e10); 319 hshellaverage as heat_trans_coeff (Brief="Average Shell Side Film Coefficient",Default=1,Lower=1e-12, Upper=1e6); 320 htubeaverage as heat_trans_coeff (Brief="Average Tube Side Film Coefficient",Default=1,Lower=1e-12, Upper=1e6); 321 Thot(Zones) as temperature (Brief="Hot Temperature",Lower = 300, Upper = 500); 322 Tcold(Zones) as temperature (Brief="Cold Temperature",Lower = 300, Upper = 500); 323 Phot(Zones) as pressure (Brief="Hot Pressure",Lower = 0.8, Upper = 30); 324 Pcold(Zones) as pressure (Brief="Cold Pressure",Lower = 0.8, Upper = 30); 325 326 end 327 328 Model E_Shell_NTU_Disc 329 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 330 # Shell and Tubes Heat Exchanger with 1 shell pass - NTU Method 331 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 309 332 PARAMETERS 310 333 311 Zones as Integer; 312 313 VARIABLES 314 315 Lz(Zones) as length; 316 Lpos(Zones) as length; 317 Area as area; 318 Q as power; 319 PdropShellTotal as pressure; 320 PdropTubesTotal as pressure; 321 PdropWinTotal as pressure; 322 PdropCrossTotal as pressure; 323 PdropEndsTotal as pressure; 324 Uaverage as heat_trans_coeff (Brief="Overall Heat Transfer Coefficient",Default=1,Lower=1e-6,Upper=1e10); 325 hshellaverage as heat_trans_coeff (Brief="Shell Side Film Coefficient",Default=1,Lower=1e-12, Upper=1e6); 326 htubeaverage as heat_trans_coeff (Brief="Shell Side Film Coefficient",Default=1,Lower=1e-12, Upper=1e6); 327 Thot(Zones) as temperature(Lower = 70, Upper = 500); 328 Tcold(Zones) as temperature(Lower = 70, Upper = 500); 329 Phot(Zones) as pressure(Lower = 0.8, Upper = 30); 330 Pcold(Zones) as pressure(Lower = 0.8, Upper = 30); 331 332 end 333 334 335 Model E_Shell_LMTD_Disc 336 #============================================================================ 337 # Shell and Tubes Heat Exchanger In Series with 1 shell pass - LMTD Method 338 #============================================================================ 339 PARAMETERS 340 341 ext HE as CalcObject (Brief="STHE Calculations",File="heatex.dll"); 342 ext PP as CalcObject; 343 side as Integer (Brief="Fluid Alocation",Lower=0,Upper=1); 344 Pi as constant (Brief="Pi Number",Default=3.14159265); 345 346 #===================================================================== 334 ext HE as CalcObject (Brief="STHE Calculations",File="heatex.dll"); 335 ext PP as CalcObject (Brief="External Physical Properties"); 336 side as Integer (Brief="Fluid Alocation",Lower=0,Upper=1); 337 Pi as constant (Brief="Pi Number",Default=3.14159265); 338 339 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 347 340 # Shell Geometrical Parameters 348 # =====================================================================341 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 349 342 Tpass as Integer (Brief="Number of Tube Passes",Lower=1); 350 343 Nss as Integer (Brief="Number of Sealing Strips pairs",Lower=1); … … 355 348 Honozzle_Shell as length (Brief="Height Under Shell Outlet Nozzle",Lower=10e-6); 356 349 Lcf as length (Brief="Bundle-to-Shell Clearance",Lower=10e-8); 357 # =====================================================================350 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 358 351 # Tubes Geometrical Parameters 359 # =====================================================================352 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 360 353 Ntt as Integer (Brief="Total Number of Tubes in Shell",Default=100,Lower=1); 361 354 Pattern as Integer (Brief="Tube Layout Characteristic Angle",Lower=30); … … 367 360 Donozzle_Tube as length (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6); 368 361 Dinozzle_Tube as length (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6); 369 # =====================================================================362 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 370 363 # Baffles Geometrical Parameters 371 # =====================================================================364 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 372 365 Bc as Integer (Brief="Baffle Cut",Default=25,Lower=25); 373 366 Nb as Integer (Brief="Number of Baffles",Default=4); 374 367 Lcd as length (Brief="Baffle-to-Shell Clearance",Lower=10e-8); 375 368 Ltd as length (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8); 376 # =====================================================================369 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 377 370 VARIABLES 378 371 379 PdropNozzles as Pdrop_Nozzles_Main; 380 Unity(Nb+1) as Heatex_Discretized_LMTD; 372 Unity(Nb+1) as Heatex_Discretized_NTU; 381 373 Sumary as Profiles; 382 374 … … 388 380 EQUATIONS 389 381 390 "Outlet Hot Temperature" 391 Sumary.Thot = Unity.Outlet.Hot.T ; 392 393 "Outlet Cold Temperature" 394 Sumary.Tcold = Unity.Outlet.Cold.T ; 395 Sumary.Phot = Unity.Outlet.Hot.P ; 396 Sumary.Pcold = Unity.Outlet.Cold.P ; 397 398 Sumary.hshellaverage = sum(Unity.Shell.HeatTransfer.hshell)/Sumary.Zones; 399 Sumary.htubeaverage = sum(Unity.Tubes.HeatTransfer.htube)/Sumary.Zones; 400 Sumary.Uaverage = sum(Unity.Details.U)/Sumary.Zones; 401 Sumary.Area = sum(Unity.Details.A); 402 Sumary.Q = sum(Unity.Details.Q); 403 404 Sumary.PdropShellTotal = sum(Unity.Shell.PressureDrop.Pdtotal)+PdropNozzles.Shell.Pdnozzle_in + PdropNozzles.Shell.Pdnozzle_out; 405 Sumary.PdropTubesTotal = sum(Unity.Tubes.PressureDrop.Pdtotal)+PdropNozzles.Tubes.Pdnozzle_in + PdropNozzles.Tubes.Pdnozzle_out; 406 Sumary.PdropWinTotal = sum(Unity.Shell.PressureDrop.Pdwindow); 407 Sumary.PdropCrossTotal = sum(Unity.Shell.PressureDrop.PdCross); 408 Sumary.PdropEndsTotal = sum(Unity.Shell.PressureDrop.PdEndZones); 409 410 Sumary.Lz(1) = Unity(1).Baffles.Lsi; 382 "Hot Temperatures" 383 Sumary.Thot = Unity.Outlet.Hot.T; 384 385 "Cold Temperatures" 386 Sumary.Tcold = Unity.Outlet.Cold.T ; 387 388 "Hot Pressures" 389 Sumary.Phot = Unity.Outlet.Hot.P ; 390 391 "Cold Pressures" 392 Sumary.Pcold = Unity.Outlet.Cold.P ; 393 394 "Average Shell Side Film Coefficient" 395 Sumary.hshellaverage = sum(Unity.Shell.HeatTransfer.hshell)/Sumary.Zones; 396 397 "Average Tube Side Film Coefficient" 398 Sumary.htubeaverage = sum(Unity.Tubes.HeatTransfer.htube)/Sumary.Zones; 399 400 "Average Overall Heat Transfer Coefficient" 401 Sumary.Uaverage = sum(Unity.Details.U)/Sumary.Zones; 402 403 "Area Total" 404 Sumary.Area = sum(Unity.Details.A); 405 406 "Duty Total" 407 Sumary.Q = sum(Unity.Details.Q); 408 409 "Length Inlet zone" 410 Sumary.Lz(1) = Unity(1).Baffles.Lsi; 411 412 "Length Outlet zone" 413 Sumary.Lz(Nb+1) = Unity(1).Baffles.Lso; 414 415 "Total Shell Side Pressure Drop" 416 Sumary.PdropShell = sum(Unity.Shell.PressureDrop.Pdtotal); 417 418 "Total Tube Side Pressure Drop" 419 Sumary.PdropTubes = sum(Unity.Tubes.PressureDrop.Pdtotal); 420 421 "Total Tube Side Nozzles Pressure Drop" 422 Sumary.PdropTubesNozzle = sum(Unity.Tubes.PressureDrop.Pdnozzle_in + Unity.Tubes.PressureDrop.Pdnozzle_out); 423 424 "Total Shell Side Nozzles Pressure Drop" 425 Sumary.PdropShellNozzle = sum(Unity.Shell.PressureDrop.Pdnozzle_in + Unity.Shell.PressureDrop.Pdnozzle_out); 426 427 "Total Shell Side Window Pressure Drop" 428 Sumary.PdropWin = sum(Unity.Shell.PressureDrop.Pdwindow); 429 430 "Total Shell Side Cross Flow Pressure Drop" 431 Sumary.PdropCross = sum(Unity.Shell.PressureDrop.PdCross); 432 433 "Total Shell Side Ends Pressure Drop" 434 Sumary.PdropEnds = sum(Unity.Shell.PressureDrop.PdEndZones); 411 435 412 436 "Shell Side Cross Flow Area" … … 415 439 "Shell Side Cross Flow Area" 416 440 Unity(Nb+1).Shell.HeatTransfer.Sm = HE.CrossFlowArea(Unity(Nb+1).Baffles.Lso); 417 418 Sumary.Lz(Nb+1) = Unity(1).Baffles.Lso; 441 419 442 420 443 if side equal 1 421 444 422 445 then 423 424 "Pressure Drop Hot Stream" 425 Unity(1).Outlet.Hot.P = Unity(1).Inlet.Hot.P - Unity(1).Shell.PressureDrop.Pdtotal - PdropNozzles.Shell.Pdnozzle_in; 426 Unity(Nb+1).Outlet.Hot.P = Unity(Nb+1).Inlet.Hot.P - Unity(Nb+1).Shell.PressureDrop.Pdtotal - PdropNozzles.Shell.Pdnozzle_out; 427 428 "Pressure Drop Cold Stream" 429 Unity(1).Outlet.Cold.P = Unity(1).Inlet.Cold.P - Unity(1).Tubes.PressureDrop.Pdtotal - PdropNozzles.Tubes.Pdnozzle_in; 430 Unity(Nb+1).Outlet.Cold.P = Unity(Nb+1).Inlet.Cold.P - Unity(Nb+1).Tubes.PressureDrop.Pdtotal - PdropNozzles.Tubes.Pdnozzle_out; 446 447 "Shell Side inlet Nozzle rho-V^2" 448 Unity(1).Shell.PressureDrop.RVsquare_in = Unity(1).Properties.Hot.Inlet.rho*(Unity(1).Shell.PressureDrop.Vnozzle_in)^2; 449 450 "Shell Side Outlet Nozzle rho-V^2" 451 Unity(Nb+1).Shell.PressureDrop.RVsquare_out = Unity(Nb+1).Properties.Hot.Outlet.rho*(Unity(Nb+1).Shell.PressureDrop.Vnozzle_out)^2; 452 453 "Shell Pressure End Zones" 454 Unity(1).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(1).Shell.HeatTransfer.Re,Unity(1).Baffles.Ls,Unity(1).Baffles.Lso, 455 Unity(1).Baffles.Lsi,Unity(1).Properties.Hot.Inlet.Fw,Unity(1).Shell.HeatTransfer.Phi,Unity(1).Properties.Hot.Average.rho); 456 457 "Shell Pressure End Zones" 458 Unity(Nb+1).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(Nb+1).Shell.HeatTransfer.Re,Unity(Nb+1).Baffles.Ls,Unity(Nb+1).Baffles.Lso, 459 Unity(Nb+1).Baffles.Lsi,Unity(Nb+1).Properties.Hot.Inlet.Fw,Unity(Nb+1).Shell.HeatTransfer.Phi,Unity(Nb+1).Properties.Hot.Average.rho); 431 460 432 461 "Pressure Drop Tube Side Inlet Nozzle" 433 PdropNozzles.Tubes.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw);462 Unity(1).Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw); 434 463 435 464 "Velocity Tube Side Inlet Nozzle" 436 PdropNozzles.Tubes.Vnozzle_in = HE.TubeVelocityNozzlein(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw);465 Unity(1).Tubes.PressureDrop.Vnozzle_in = HE.TubeVelocityNozzlein(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw); 437 466 438 467 "Pressure Drop Tube Side Outlet Nozzle" 439 PdropNozzles.Tubes.Pdnozzle_out = HE.DeltaPtubeNozzleout(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw);468 Unity(Nb+1).Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 440 469 441 470 "Velocity Tube Side Outlet Nozzle" 442 PdropNozzles.Tubes.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw);471 Unity(Nb+1).Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 443 472 444 473 "Shell Pressure Drop Inlet Nozzle" 445 PdropNozzles.Shell.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw);474 Unity(1).Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw); 446 475 447 476 "Velocity Shell Side Inlet Nozzle" 448 PdropNozzles.Shell.Vnozzle_in = HE.ShellVelocityNozzleIn(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw);477 Unity(1).Shell.PressureDrop.Vnozzle_in = HE.ShellVelocityNozzleIn(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw); 449 478 450 479 "Shell Pressure Drop Outlet Nozzle" 451 PdropNozzles.Shell.Pdnozzle_out =HE.DeltaPshellNozzleOut(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw);480 Unity(Nb+1).Shell.PressureDrop.Pdnozzle_out =HE.DeltaPshellNozzleOut(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 452 481 453 482 "Velocity Shell Side Outlet Nozzle" 454 PdropNozzles.Shell.Vnozzle_out =HE.ShellVelocityNozzleOut(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw);455 483 Unity(Nb+1).Shell.PressureDrop.Vnozzle_out =HE.ShellVelocityNozzleOut(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 484 456 485 457 486 else 458 487 459 "Pressure Drop Hot Stream" 460 Unity(1).Outlet.Hot.P = Unity(1).Inlet.Hot.P- Unity(1).Tubes.PressureDrop.Pdtotal - PdropNozzles.Tubes.Pdnozzle_in; 461 Unity(Nb+1).Outlet.Hot.P = Unity(Nb+1).Inlet.Hot.P- Unity(Nb+1).Tubes.PressureDrop.Pdtotal - PdropNozzles.Tubes.Pdnozzle_out; 462 463 "Pressure Drop Cold Stream" 464 Unity(1).Outlet.Cold.P = Unity(1).Inlet.Cold.P - Unity(1).Shell.PressureDrop.Pdtotal- PdropNozzles.Shell.Pdnozzle_in; 465 Unity(Nb+1).Outlet.Cold.P = Unity(Nb+1).Inlet.Cold.P - Unity(Nb+1).Shell.PressureDrop.Pdtotal- PdropNozzles.Shell.Pdnozzle_out; 488 "Shell Side inlet Nozzle rho-V^2" 489 Unity(1).Shell.PressureDrop.RVsquare_in = Unity(1).Properties.Cold.Inlet.rho*(Unity(1).Shell.PressureDrop.Vnozzle_in)^2; 490 491 "Shell Side Outlet Nozzle rho-V^2" 492 Unity(Nb+1).Shell.PressureDrop.RVsquare_out = Unity(Nb+1).Properties.Cold.Outlet.rho*(Unity(Nb+1).Shell.PressureDrop.Vnozzle_out)^2; 493 494 "Shell Pressure End Zones" 495 Unity(1).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(1).Shell.HeatTransfer.Re,Unity(1).Baffles.Ls,Unity(1).Baffles.Lso, 496 Unity(1).Baffles.Lsi,Unity(1).Properties.Cold.Inlet.Fw,Unity(1).Shell.HeatTransfer.Phi,Unity(1).Properties.Cold.Average.rho); 497 498 "Shell Pressure End Zones" 499 Unity(Nb+1).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(Nb+1).Shell.HeatTransfer.Re,Unity(Nb+1).Baffles.Ls,Unity(Nb+1).Baffles.Lso, 500 Unity(Nb+1).Baffles.Lsi,Unity(Nb+1).Properties.Cold.Inlet.Fw,Unity(Nb+1).Shell.HeatTransfer.Phi,Unity(Nb+1).Properties.Cold.Average.rho); 501 466 502 467 503 "Pressure Drop Tube Side Inlet Nozzle" 468 PdropNozzles.Tubes.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw);504 Unity(1).Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw); 469 505 470 506 "Velocity Tube Side Inlet Nozzle" 471 PdropNozzles.Tubes.Vnozzle_in = HE.TubeVelocityNozzlein(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw);507 Unity(1).Tubes.PressureDrop.Vnozzle_in = HE.TubeVelocityNozzlein(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw); 472 508 473 509 "Pressure Drop Tube Side Outlet Nozzle" 474 PdropNozzles.Tubes.Pdnozzle_out = HE.DeltaPtubeNozzleout(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw);510 Unity(Nb+1).Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 475 511 476 512 "Velocity Tube Side Outlet Nozzle" 477 PdropNozzles.Tubes.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw);513 Unity(Nb+1).Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 478 514 479 515 "Shell Pressure Drop Inlet Nozzle" 480 PdropNozzles.Shell.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw);516 Unity(1).Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw); 481 517 482 518 "Velocity Shell Side Inlet Nozzle" 483 PdropNozzles.Shell.Vnozzle_in = HE.ShellVelocityNozzleIn(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw);519 Unity(1).Shell.PressureDrop.Vnozzle_in = HE.ShellVelocityNozzleIn(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw); 484 520 485 521 "Shell Pressure Drop Outlet Nozzle" 486 PdropNozzles.Shell.Pdnozzle_out = HE.DeltaPshellNozzleOut(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw);522 Unity(Nb+1).Shell.PressureDrop.Pdnozzle_out = HE.DeltaPshellNozzleOut(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 487 523 488 524 "Velocity Shell Side Outlet Nozzle" 489 PdropNozzles.Shell.Vnozzle_out = HE.ShellVelocityNozzleOut(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 525 Unity(Nb+1).Shell.PressureDrop.Vnozzle_out = HE.ShellVelocityNozzleOut(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 526 490 527 491 528 end … … 494 531 for i in [2:Nb] 495 532 533 "Pressure Drop Tube Side Inlet Nozzle" 534 Unity(i).Tubes.PressureDrop.Pdnozzle_in = 0; 535 536 "Velocity Tube Side Inlet Nozzle" 537 Unity(i).Tubes.PressureDrop.Vnozzle_in = 0; 538 539 "Pressure Drop Tube Side Outlet Nozzle" 540 Unity(i).Tubes.PressureDrop.Pdnozzle_out = 0; 541 542 "Velocity Tube Side Outlet Nozzle" 543 Unity(i).Tubes.PressureDrop.Vnozzle_out = 0; 544 545 "Shell Pressure Drop Inlet Nozzle" 546 Unity(i).Shell.PressureDrop.Pdnozzle_in = 0; 547 548 "Velocity Shell Side Inlet Nozzle" 549 Unity(i).Shell.PressureDrop.Vnozzle_in = 0; 550 551 "Shell Pressure Drop Outlet Nozzle" 552 Unity(i).Shell.PressureDrop.Pdnozzle_out = 0; 553 554 "Velocity Shell Side Outlet Nozzle" 555 Unity(i).Shell.PressureDrop.Vnozzle_out = 0; 556 557 "Shell Pressure End Zones" 558 Unity(i).Shell.PressureDrop.PdEndZones = 0; 559 560 "Shell Side Outlet Nozzle rho-V^2" 561 Unity(i).Shell.PressureDrop.RVsquare_out = 0; 562 563 "Shell Side inlet Nozzle rho-V^2" 564 Unity(i).Shell.PressureDrop.RVsquare_in = 0; 565 496 566 if side equal 1 497 567 498 568 then 499 569 570 "Shell Pressure Drop Cross Flow" 571 Unity(i).Shell.PressureDrop.PdCross = HE.DeltaPcrossIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho); 572 573 574 else 575 576 "Shell Pressure Drop Cross Flow" 577 Unity(i).Shell.PressureDrop.PdCross = HE.DeltaPcrossIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho); 578 579 580 end 581 582 "Zone Length" 583 Sumary.Lz(i) = Unity(1).Baffles.Ls; 584 585 "Shell Side Cross Flow Area" 586 Unity(i).Shell.HeatTransfer.Sm = HE.CrossFlowArea(Unity(i).Baffles.Ls); 587 588 end 589 590 591 for i in [1:Nb+1] 592 593 if side equal 1 594 595 then 500 596 "Pressure Drop Hot Stream" 501 597 Unity(i).Outlet.Hot.P = Unity(i).Inlet.Hot.P - Unity(i).Shell.PressureDrop.Pdtotal; … … 503 599 "Pressure Drop Cold Stream" 504 600 Unity(i).Outlet.Cold.P = Unity(i).Inlet.Cold.P - Unity(i).Tubes.PressureDrop.Pdtotal; 505 506 601 602 "Shell Side Reynolds Number" 603 Unity(i).Shell.HeatTransfer.Re = HE.ShellReynoldsNumber(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.Mu); 604 605 "Shell Heat Transfer Coefficient" 606 Unity(i).Shell.HeatTransfer.hshell = HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi); 607 608 609 "Shell Pressure Baffle Window" 610 Unity(i).Shell.PressureDrop.Pdwindow = HE.DeltaPwindowIncremental(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.rho,Unity(i).Properties.Hot.Average.Mu,Unity(i).Baffles.Ls); 611 612 "Hot Wall Temperature" 613 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 614 615 "Cold Wall Temperature" 616 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 617 618 "Tube Side Velocity" 619 Unity(i).Tubes.HeatTransfer.Vtube = HE.TubeVelocity(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Properties.Cold.Average.rho); 620 621 "Tube Side Reynolds Number" 622 Unity(i).Tubes.HeatTransfer.Re = HE.TubeReynoldsNumber(Unity(i).Properties.Cold.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Properties.Cold.Average.Mu); 623 624 "Tube Side Prandtl Number" 625 Unity(i).Tubes.HeatTransfer.PR = HE.PrandtlNumber(Unity(i).Properties.Cold.Average.K,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Average.Mu); 626 627 "Tube Side Prandtl Number at Wall" 628 Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu); 629 630 "Tube Side Film Coefficient" 631 Unity(i).Tubes.HeatTransfer.htube = HE.TubeFilmCoeffIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Cold.Average.K, 632 Unity(i).Tubes.HeatTransfer.Phi,Sumary.Lz(i)); 633 634 "Shell Side Prandtl Number" 635 Unity(i).Shell.HeatTransfer.PR = HE.PrandtlNumber(Unity(i).Properties.Hot.Average.K,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Average.Mu); 636 637 "Shell Side Prandtl Number at Wall" 638 Unity(i).Shell.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu); 639 640 "Tube Side Pressure Drop" 641 Unity(i).Tubes.PressureDrop.PdTube = HE.DeltaPtubeIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Cold.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube, 642 Unity(i).Tubes.HeatTransfer.Phi,Sumary.Lz(i)); 643 644 "Shell Side Phi correction for viscosity" 645 Unity(i).Shell.HeatTransfer.Phi = HE.PhiCorrection(Unity(i).Properties.Hot.Average.Mu,Unity(i).Properties.Hot.Wall.Mu); 646 647 "Tube Side Phi correction for viscosity" 648 Unity(i).Tubes.HeatTransfer.Phi = HE.PhiCorrection(Unity(i).Properties.Cold.Average.Mu,Unity(i).Properties.Cold.Wall.Mu); 649 507 650 else 508 651 … … 512 655 "Pressure Drop Cold Stream" 513 656 Unity(i).Outlet.Cold.P = Unity(i).Inlet.Cold.P - Unity(i).Shell.PressureDrop.Pdtotal; 514 515 516 end517 518 "Position for discretization"519 Sumary.Lz(i) = Unity(1).Baffles.Ls;520 521 "Shell Side Cross Flow Area"522 Unity(i).Shell.HeatTransfer.Sm = HE.CrossFlowArea(Unity(i).Baffles.Ls);523 524 end525 526 527 for i in [1:Nb+1]528 529 "Js Factor"530 Unity(i).Shell.HeatTransfer.Js = HE.JsFactor(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Lsi,Unity(i).Baffles.Lso,Unity(i).Baffles.Ls);531 532 "Position for discretization"533 Sumary.Lpos(i) = sum(Sumary.Lz([1:i]));534 535 "Ji Factor"536 Unity(i).Shell.HeatTransfer.Ji = HE.JiFactor(Unity(i).Shell.HeatTransfer.Re);537 538 "Jc Factor"539 Unity(i).Shell.HeatTransfer.Jc = HE.JcFactor();540 541 "Jl Factor"542 Unity(i).Shell.HeatTransfer.Jl = HE.JlFactor(Unity(i).Shell.HeatTransfer.Sm);543 544 "Jb Factor"545 Unity(i).Shell.HeatTransfer.Jb = HE.JbFactor(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Shell.HeatTransfer.Sm);546 547 "Jr Factor"548 Unity(i).Shell.HeatTransfer.Jr = HE.JrFactor(Unity(i).Shell.HeatTransfer.Re);549 550 "Total J Factor"551 Unity(i).Shell.HeatTransfer.Jtotal = Unity(i).Shell.HeatTransfer.Jc*Unity(i).Shell.HeatTransfer.Jl*Unity(i).Shell.HeatTransfer.Jb*Unity(i).Shell.HeatTransfer.Jr*Unity(i).Shell.HeatTransfer.Js;552 553 if side equal 1554 555 then556 557 "Shell Side Reynolds Number"558 Unity(i).Shell.HeatTransfer.Re = HE.ShellReynoldsNumber(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.Mu);559 560 "Shell Heat Transfer Coefficient"561 Unity(i).Shell.HeatTransfer.hshell = HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi);562 563 "Shell Pressure Drop Cross Flow"564 Unity(i).Shell.PressureDrop.PdCross = HE.DeltaPcrossIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho);565 566 "Shell Pressure Baffle Window"567 Unity(i).Shell.PressureDrop.Pdwindow = HE.DeltaPwindowIncremental(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.rho,Unity(i).Properties.Hot.Average.Mu,Unity(i).Baffles.Ls);568 569 "Shell Pressure End Zones"570 Unity(i).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho);571 572 # Tubes.HeatTransfer.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell);573 574 "Wall Temperature for Cold Side"575 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;576 577 "Wall Temperature for Hot Side"578 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2;579 580 "Tube Side Velocity"581 Unity(i).Tubes.HeatTransfer.Vtube = HE.TubeVelocity(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Properties.Cold.Average.rho);582 583 "Tube Side Reynolds Number"584 Unity(i).Tubes.HeatTransfer.Re = HE.TubeReynoldsNumber(Unity(i).Properties.Cold.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Properties.Cold.Average.Mu);585 586 "Tube Side Prandtl Number"587 Unity(i).Tubes.HeatTransfer.PR = HE.PrandtlNumber(Unity(i).Properties.Cold.Average.K,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Average.Mu);588 589 "Tube Side Prandtl Number at Wall"590 Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu);591 592 "Tube Side Film Coefficient"593 Unity(i).Tubes.HeatTransfer.htube = HE.TubeFilmCoeffIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Cold.Average.K,594 Unity(i).Tubes.HeatTransfer.Phi,Sumary.Lpos(i));595 596 "Shell Side Prandtl Number"597 Unity(i).Shell.HeatTransfer.PR = HE.PrandtlNumber(Unity(i).Properties.Hot.Average.K,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Average.Mu);598 599 "Shell Side Prandtl Number at Wall"600 Unity(i).Shell.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu);601 602 "Tube Side Pressure Drop"603 Unity(i).Tubes.PressureDrop.PdTube = HE.DeltaPtubeIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Cold.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,604 Unity(i).Tubes.HeatTransfer.Phi,Sumary.Lz(i));605 606 "Shell Side Phi correction for viscosity"607 Unity(i).Shell.HeatTransfer.Phi = HE.PhiCorrection(Unity(i).Properties.Hot.Average.Mu,Unity(i).Properties.Hot.Wall.Mu);608 609 "Tube Side Phi correction for viscosity"610 Unity(i).Tubes.HeatTransfer.Phi = HE.PhiCorrection(Unity(i).Properties.Cold.Average.Mu,Unity(i).Properties.Cold.Wall.Mu);611 612 else613 657 614 658 "Shell Side Reynolds Number" … … 616 660 617 661 "Shell Heat Transfer Coefficient" 618 Unity(i).Shell.HeatTransfer.hshell = HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi); 619 620 "Shell Pressure Drop Cross Flow" 621 Unity(i).Shell.PressureDrop.PdCross = HE.DeltaPcrossIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho); 662 Unity(i).Shell.HeatTransfer.hshell = HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw, 663 Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi); 664 622 665 623 666 "Shell Pressure Baffle Window" 624 Unity(i).Shell.PressureDrop.Pdwindow = HE.DeltaPwindowIncremental(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Cold.Average.rho,Unity(i).Properties.Cold.Average.Mu,Unity(i).Baffles.Ls); 625 626 "Shell Pressure End Zones" 627 Unity(i).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho); 628 629 # Tubes.HeatTransfer.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 630 631 "Wall Temperature for Cold Side" 632 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 633 634 "Wall Temperature for Hot Side" 635 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 667 Unity(i).Shell.PressureDrop.Pdwindow = HE.DeltaPwindowIncremental(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Cold.Average.rho,Unity(i).Properties.Cold.Average.Mu,Unity(i).Baffles.Ls); 668 669 670 "Hot Wall Temperature" 671 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 672 673 "Cold Wall Temperature" 674 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 636 675 637 676 "Tube Side Velocity" 638 Unity(i).Tubes.HeatTransfer.Vtube =HE.TubeVelocity(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Properties.Hot.Average.rho);677 Unity(i).Tubes.HeatTransfer.Vtube = HE.TubeVelocity(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Properties.Hot.Average.rho); 639 678 640 679 "Tube Side Reynolds Number" 641 Unity(i).Tubes.HeatTransfer.Re =HE.TubeReynoldsNumber(Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Properties.Hot.Average.Mu);680 Unity(i).Tubes.HeatTransfer.Re = HE.TubeReynoldsNumber(Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,Unity(i).Properties.Hot.Average.Mu); 642 681 643 682 "Tube Side Prandtl Number" 644 Unity(i).Tubes.HeatTransfer.PR =HE.PrandtlNumber(Unity(i).Properties.Hot.Average.K,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Average.Mu);645 683 Unity(i).Tubes.HeatTransfer.PR = HE.PrandtlNumber(Unity(i).Properties.Hot.Average.K,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Average.Mu); 684 646 685 "Tube Side Prandtl Number at Wall" 647 Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu); 648 686 Unity(i).Tubes.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Hot.Wall.K,Unity(i).Properties.Hot.Wall.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Wall.Mu); 687 688 649 689 "Tube Side Film Coefficient" 650 690 Unity(i).Tubes.HeatTransfer.htube = HE.TubeFilmCoeffIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Hot.Average.K, 651 Unity(i).Tubes.HeatTransfer.Phi,Sumary.L pos(i));691 Unity(i).Tubes.HeatTransfer.Phi,Sumary.Lz(i)); 652 692 653 693 "Shell Side Prandtl Number" … … 657 697 Unity(i).Shell.HeatTransfer.PRw = HE.PrandtlNumber(Unity(i).Properties.Cold.Wall.K,Unity(i).Properties.Cold.Wall.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Wall.Mu); 658 698 659 660 699 "Tube Side Pressure Drop" 661 Unity(i).Tubes.PressureDrop.PdTube = HE.DeltaPtubeIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube,700 Unity(i).Tubes.PressureDrop.PdTube = HE.DeltaPtubeIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Properties.Hot.Average.rho,Unity(i).Tubes.HeatTransfer.Vtube, 662 701 Unity(i).Tubes.HeatTransfer.Phi,Sumary.Lz(i)); 663 702 … … 689 728 690 729 691 end 730 "Js Factor" 731 Unity(i).Shell.HeatTransfer.Js = 1; 732 733 "Ji Factor" 734 Unity(i).Shell.HeatTransfer.Ji = HE.JiFactor(Unity(i).Shell.HeatTransfer.Re); 735 736 "Jc Factor" 737 Unity(i).Shell.HeatTransfer.Jc = HE.JcFactor(); 738 739 "Jl Factor" 740 Unity(i).Shell.HeatTransfer.Jl = HE.JlFactor(Unity(i).Shell.HeatTransfer.Sm); 741 742 "Jb Factor" 743 Unity(i).Shell.HeatTransfer.Jb = HE.JbFactor(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Shell.HeatTransfer.Sm); 744 745 "Jr Factor" 746 Unity(i).Shell.HeatTransfer.Jr = HE.JrFactor(Unity(i).Shell.HeatTransfer.Re); 747 748 "Total J Factor" 749 Unity(i).Shell.HeatTransfer.Jtotal = Unity(i).Shell.HeatTransfer.Jc*Unity(i).Shell.HeatTransfer.Jl*Unity(i).Shell.HeatTransfer.Jb*Unity(i).Shell.HeatTransfer.Jr*Unity(i).Shell.HeatTransfer.Js; 750 end 751 752 753 "Velocity Tube Side Inlet Nozzle" 754 Unity(Nb+1).Tubes.PressureDrop.Vnozzle_in = 0; 755 756 "Velocity Tube Side Outlet Nozzle" 757 Unity(1).Tubes.PressureDrop.Vnozzle_out = 0; 758 759 "Tube Pressure Drop Inlet Nozzle" 760 Unity(Nb+1).Tubes.PressureDrop.Pdnozzle_in = 0; 761 762 "Tube Pressure Drop Outlet Nozzle" 763 Unity(1).Tubes.PressureDrop.Pdnozzle_out = 0; 764 765 "Velocity Shell Side Inlet Nozzle" 766 Unity(Nb+1).Shell.PressureDrop.Vnozzle_in = 0; 767 768 "Velocity Shell Side Outlet Nozzle" 769 Unity(1).Shell.PressureDrop.Vnozzle_out = 0; 770 771 "Shell Pressure Drop Inlet Nozzle" 772 Unity(Nb+1).Shell.PressureDrop.Pdnozzle_in = 0; 773 774 "Shell Pressure Drop Outlet Nozzle" 775 Unity(1).Shell.PressureDrop.Pdnozzle_out = 0; 776 777 "Shell Cross Flow Pressure Drop" 778 Unity(1).Shell.PressureDrop.PdCross = 0; 779 780 "Shell Cross Flow Pressure Drop" 781 Unity(Nb+1).Shell.PressureDrop.PdCross = 0; 782 783 "Shell Side Outlet Nozzle rho-V^2" 784 Unity(1).Shell.PressureDrop.RVsquare_out = 0; 785 786 "Shell Side inlet Nozzle rho-V^2" 787 Unity(Nb+1).Shell.PressureDrop.RVsquare_in = 0; 692 788 693 789 SET 694 # =====================================================================695 # Set Parameters for External Object Calculation - HE696 # =====================================================================790 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 791 # Set Parameters for heatex Calculation 792 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 697 793 Sumary.Zones = Nb+1; 698 794 Pi = 3.14159265; … … 719 815 end 720 816 721 Model E_Shell_ NTU_Disc722 # ============================================================================723 # Shell and Tubes Heat Exchanger In Serieswith 1 shell pass - LMTD Method724 # ============================================================================817 Model E_Shell_LMTD_Disc 818 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 819 # Shell and Tubes Heat Exchanger with 1 shell pass - LMTD Method 820 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 725 821 PARAMETERS 726 822 727 ext HE 728 ext PP as CalcObject;823 ext HE as CalcObject (Brief="STHE Calculations",File="heatex.dll"); 824 ext PP as CalcObject (Brief="External Physical Properties"); 729 825 side as Integer (Brief="Fluid Alocation",Lower=0,Upper=1); 730 Pi 731 732 # =====================================================================826 Pi as constant (Brief="Pi Number",Default=3.14159265); 827 828 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 733 829 # Shell Geometrical Parameters 734 # =====================================================================830 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 735 831 Tpass as Integer (Brief="Number of Tube Passes",Lower=1); 736 832 Nss as Integer (Brief="Number of Sealing Strips pairs",Lower=1); … … 741 837 Honozzle_Shell as length (Brief="Height Under Shell Outlet Nozzle",Lower=10e-6); 742 838 Lcf as length (Brief="Bundle-to-Shell Clearance",Lower=10e-8); 743 # =====================================================================839 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 744 840 # Tubes Geometrical Parameters 745 # =====================================================================841 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 746 842 Ntt as Integer (Brief="Total Number of Tubes in Shell",Default=100,Lower=1); 747 843 Pattern as Integer (Brief="Tube Layout Characteristic Angle",Lower=30); … … 753 849 Donozzle_Tube as length (Brief="Tube Outlet Nozzle Diameter",Lower=10e-6); 754 850 Dinozzle_Tube as length (Brief="Tube Inlett Nozzle Diameter",Lower=10e-6); 755 # =====================================================================851 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 756 852 # Baffles Geometrical Parameters 757 # =====================================================================853 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 758 854 Bc as Integer (Brief="Baffle Cut",Default=25,Lower=25); 759 855 Nb as Integer (Brief="Number of Baffles",Default=4); 760 856 Lcd as length (Brief="Baffle-to-Shell Clearance",Lower=10e-8); 761 857 Ltd as length (Brief="Tube-to-Bafflehole Clearance",Lower=10e-8); 762 # =====================================================================858 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 763 859 VARIABLES 764 860 765 PdropNozzles as Pdrop_Nozzles_Main; 766 Unity(Nb+1) as Heatex_Discretized_NTU; 861 Unity(Nb+1) as Heatex_Discretized_LMTD; 767 862 Sumary as Profiles; 768 863 769 864 CONNECTIONS 770 865 771 Unity([1:Nb]).Outlet.Hot to Unity([2:Nb+1]).Inlet.Hot;866 Unity([1:Nb]).Outlet.Hot to Unity([2:Nb+1]).Inlet.Hot; 772 867 Unity([2:Nb+1]).Outlet.Cold to Unity([1:Nb]).Inlet.Cold; 773 868 774 869 EQUATIONS 775 870 776 Sumary.Thot = Unity.Outlet.Hot.T ; 777 Sumary.Tcold = Unity.Outlet.Cold.T ; 778 Sumary.Phot = Unity.Outlet.Hot.P ; 779 Sumary.Pcold = Unity.Outlet.Cold.P ; 780 781 Sumary.hshellaverage = sum(Unity.Shell.HeatTransfer.hshell)/Sumary.Zones; 782 Sumary.htubeaverage = sum(Unity.Tubes.HeatTransfer.htube)/Sumary.Zones; 783 Sumary.Uaverage = sum(Unity.Details.U)/Sumary.Zones; 784 Sumary.Area = sum(Unity.Details.A); 785 Sumary.Q = sum(Unity.Details.Q); 786 Sumary.Lz(1) = Unity(1).Baffles.Lsi; 787 Sumary.Lz(Nb+1) = Unity(1).Baffles.Lso; 788 Sumary.PdropShellTotal = sum(Unity.Shell.PressureDrop.Pdtotal)+PdropNozzles.Shell.Pdnozzle_in + PdropNozzles.Shell.Pdnozzle_out; 789 Sumary.PdropTubesTotal = sum(Unity.Tubes.PressureDrop.Pdtotal)+PdropNozzles.Tubes.Pdnozzle_in + PdropNozzles.Tubes.Pdnozzle_out; 790 Sumary.PdropWinTotal = sum(Unity.Shell.PressureDrop.Pdwindow); 791 Sumary.PdropCrossTotal = sum(Unity.Shell.PressureDrop.PdCross); 792 Sumary.PdropEndsTotal = sum(Unity.Shell.PressureDrop.PdEndZones); 871 "Hot Temperatures" 872 Sumary.Thot = Unity.Outlet.Hot.T; 873 874 "Cold Temperatures" 875 Sumary.Tcold = Unity.Outlet.Cold.T ; 876 877 "Hot Pressures" 878 Sumary.Phot = Unity.Outlet.Hot.P ; 879 880 "Cold Pressures" 881 Sumary.Pcold = Unity.Outlet.Cold.P ; 882 883 "Average Shell Side Film Coefficient" 884 Sumary.hshellaverage = sum(Unity.Shell.HeatTransfer.hshell)/Sumary.Zones; 885 886 "Average Tube Side Film Coefficient" 887 Sumary.htubeaverage = sum(Unity.Tubes.HeatTransfer.htube)/Sumary.Zones; 888 889 "Average Overall Heat Transfer Coefficient" 890 Sumary.Uaverage = sum(Unity.Details.U)/Sumary.Zones; 891 892 "Area Total" 893 Sumary.Area = sum(Unity.Details.A); 894 895 "Duty Total" 896 Sumary.Q = sum(Unity.Details.Q); 897 898 "Length Inlet zone" 899 Sumary.Lz(1) = Unity(1).Baffles.Lsi; 900 901 "Length Outlet zone" 902 Sumary.Lz(Nb+1) = Unity(1).Baffles.Lso; 903 904 "Total Shell Side Pressure Drop" 905 Sumary.PdropShell = sum(Unity.Shell.PressureDrop.Pdtotal); 906 907 "Total Tube Side Pressure Drop" 908 Sumary.PdropTubes = sum(Unity.Tubes.PressureDrop.Pdtotal); 909 910 "Total Tube Side Nozzles Pressure Drop" 911 Sumary.PdropTubesNozzle = sum(Unity.Tubes.PressureDrop.Pdnozzle_in + Unity.Tubes.PressureDrop.Pdnozzle_out); 912 913 "Total Shell Side Nozzles Pressure Drop" 914 Sumary.PdropShellNozzle = sum(Unity.Shell.PressureDrop.Pdnozzle_in + Unity.Shell.PressureDrop.Pdnozzle_out); 915 916 "Total Shell Side Window Pressure Drop" 917 Sumary.PdropWin = sum(Unity.Shell.PressureDrop.Pdwindow); 918 919 "Total Shell Side Cross Flow Pressure Drop" 920 Sumary.PdropCross = sum(Unity.Shell.PressureDrop.PdCross); 921 922 "Total Shell Side Ends Pressure Drop" 923 Sumary.PdropEnds = sum(Unity.Shell.PressureDrop.PdEndZones); 793 924 794 925 "Shell Side Cross Flow Area" … … 802 933 803 934 then 804 935 936 "Shell Side inlet Nozzle rho-V^2" 937 Unity(1).Shell.PressureDrop.RVsquare_in = Unity(1).Properties.Hot.Inlet.rho*(Unity(1).Shell.PressureDrop.Vnozzle_in)^2; 938 939 "Shell Side Outlet Nozzle rho-V^2" 940 Unity(Nb+1).Shell.PressureDrop.RVsquare_out = Unity(Nb+1).Properties.Hot.Outlet.rho*(Unity(Nb+1).Shell.PressureDrop.Vnozzle_out)^2; 941 942 "Shell Pressure End Zones" 943 Unity(1).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(1).Shell.HeatTransfer.Re,Unity(1).Baffles.Ls,Unity(1).Baffles.Lso, 944 Unity(1).Baffles.Lsi,Unity(1).Properties.Hot.Inlet.Fw,Unity(1).Shell.HeatTransfer.Phi,Unity(1).Properties.Hot.Average.rho); 945 946 "Shell Pressure End Zones" 947 Unity(Nb+1).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(Nb+1).Shell.HeatTransfer.Re,Unity(Nb+1).Baffles.Ls,Unity(Nb+1).Baffles.Lso, 948 Unity(Nb+1).Baffles.Lsi,Unity(Nb+1).Properties.Hot.Inlet.Fw,Unity(Nb+1).Shell.HeatTransfer.Phi,Unity(Nb+1).Properties.Hot.Average.rho); 949 805 950 "Pressure Drop Tube Side Inlet Nozzle" 806 PdropNozzles.Tubes.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw);951 Unity(1).Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw); 807 952 808 953 "Velocity Tube Side Inlet Nozzle" 809 PdropNozzles.Tubes.Vnozzle_in = HE.TubeVelocityNozzlein(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw);954 Unity(1).Tubes.PressureDrop.Vnozzle_in = HE.TubeVelocityNozzlein(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw); 810 955 811 956 "Pressure Drop Tube Side Outlet Nozzle" 812 PdropNozzles.Tubes.Pdnozzle_out = HE.DeltaPtubeNozzleout(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw);957 Unity(Nb+1).Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 813 958 814 959 "Velocity Tube Side Outlet Nozzle" 815 PdropNozzles.Tubes.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw);960 Unity(Nb+1).Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 816 961 817 962 "Shell Pressure Drop Inlet Nozzle" 818 PdropNozzles.Shell.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw);963 Unity(1).Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw); 819 964 820 965 "Velocity Shell Side Inlet Nozzle" 821 PdropNozzles.Shell.Vnozzle_in = HE.ShellVelocityNozzleIn(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw);966 Unity(1).Shell.PressureDrop.Vnozzle_in = HE.ShellVelocityNozzleIn(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw); 822 967 823 968 "Shell Pressure Drop Outlet Nozzle" 824 PdropNozzles.Shell.Pdnozzle_out =HE.DeltaPshellNozzleOut(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw);969 Unity(Nb+1).Shell.PressureDrop.Pdnozzle_out =HE.DeltaPshellNozzleOut(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 825 970 826 971 "Velocity Shell Side Outlet Nozzle" 827 PdropNozzles.Shell.Vnozzle_out =HE.ShellVelocityNozzleOut(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 828 829 "Pressure Drop Hot Stream" 830 Unity(1).Outlet.Hot.P = Unity(1).Inlet.Hot.P - Unity(1).Shell.PressureDrop.Pdtotal - PdropNozzles.Shell.Pdnozzle_in; 831 Unity(Nb+1).Outlet.Hot.P = Unity(Nb+1).Inlet.Hot.P - Unity(Nb+1).Shell.PressureDrop.Pdtotal - PdropNozzles.Shell.Pdnozzle_out; 832 833 "Pressure Drop Cold Stream" 834 Unity(1).Outlet.Cold.P = Unity(1).Inlet.Cold.P - Unity(1).Tubes.PressureDrop.Pdtotal - PdropNozzles.Tubes.Pdnozzle_in; 835 Unity(Nb+1).Outlet.Cold.P = Unity(Nb+1).Inlet.Cold.P - Unity(Nb+1).Tubes.PressureDrop.Pdtotal - PdropNozzles.Tubes.Pdnozzle_out; 836 972 Unity(Nb+1).Shell.PressureDrop.Vnozzle_out =HE.ShellVelocityNozzleOut(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 973 837 974 838 975 else 839 976 977 "Shell Side inlet Nozzle rho-V^2" 978 Unity(1).Shell.PressureDrop.RVsquare_in = Unity(1).Properties.Cold.Inlet.rho*(Unity(1).Shell.PressureDrop.Vnozzle_in)^2; 979 980 "Shell Side Outlet Nozzle rho-V^2" 981 Unity(Nb+1).Shell.PressureDrop.RVsquare_out = Unity(Nb+1).Properties.Cold.Outlet.rho*(Unity(Nb+1).Shell.PressureDrop.Vnozzle_out)^2; 982 983 "Shell Pressure End Zones" 984 Unity(1).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(1).Shell.HeatTransfer.Re,Unity(1).Baffles.Ls,Unity(1).Baffles.Lso, 985 Unity(1).Baffles.Lsi,Unity(1).Properties.Cold.Inlet.Fw,Unity(1).Shell.HeatTransfer.Phi,Unity(1).Properties.Cold.Average.rho); 986 987 "Shell Pressure End Zones" 988 Unity(Nb+1).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(Nb+1).Shell.HeatTransfer.Re,Unity(Nb+1).Baffles.Ls,Unity(Nb+1).Baffles.Lso, 989 Unity(Nb+1).Baffles.Lsi,Unity(Nb+1).Properties.Cold.Inlet.Fw,Unity(Nb+1).Shell.HeatTransfer.Phi,Unity(Nb+1).Properties.Cold.Average.rho); 990 991 840 992 "Pressure Drop Tube Side Inlet Nozzle" 841 PdropNozzles.Tubes.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw);993 Unity(1).Tubes.PressureDrop.Pdnozzle_in = HE.DeltaPtubeNozzlein(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw); 842 994 843 995 "Velocity Tube Side Inlet Nozzle" 844 PdropNozzles.Tubes.Vnozzle_in = HE.TubeVelocityNozzlein(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw);996 Unity(1).Tubes.PressureDrop.Vnozzle_in = HE.TubeVelocityNozzlein(Unity(1).Properties.Hot.Inlet.rho,Unity(1).Properties.Hot.Inlet.Fw); 845 997 846 998 "Pressure Drop Tube Side Outlet Nozzle" 847 PdropNozzles.Tubes.Pdnozzle_out = HE.DeltaPtubeNozzleout(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw);999 Unity(Nb+1).Tubes.PressureDrop.Pdnozzle_out = HE.DeltaPtubeNozzleout(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 848 1000 849 1001 "Velocity Tube Side Outlet Nozzle" 850 PdropNozzles.Tubes.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw);1002 Unity(Nb+1).Tubes.PressureDrop.Vnozzle_out = HE.TubeVelocityNozzleout(Unity(Nb+1).Properties.Hot.Outlet.rho,Unity(Nb+1).Properties.Hot.Inlet.Fw); 851 1003 852 1004 "Shell Pressure Drop Inlet Nozzle" 853 PdropNozzles.Shell.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw);1005 Unity(1).Shell.PressureDrop.Pdnozzle_in = HE.DeltaPshellNozzleIn(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw); 854 1006 855 1007 "Velocity Shell Side Inlet Nozzle" 856 PdropNozzles.Shell.Vnozzle_in = HE.ShellVelocityNozzleIn(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw);1008 Unity(1).Shell.PressureDrop.Vnozzle_in = HE.ShellVelocityNozzleIn(Unity(1).Properties.Cold.Inlet.rho,Unity(1).Properties.Cold.Inlet.Fw); 857 1009 858 1010 "Shell Pressure Drop Outlet Nozzle" 859 PdropNozzles.Shell.Pdnozzle_out = HE.DeltaPshellNozzleOut(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw);1011 Unity(Nb+1).Shell.PressureDrop.Pdnozzle_out = HE.DeltaPshellNozzleOut(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 860 1012 861 1013 "Velocity Shell Side Outlet Nozzle" 862 PdropNozzles.Shell.Vnozzle_out = HE.ShellVelocityNozzleOut(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 863 864 "Pressure Drop Hot Stream" 865 Unity(1).Outlet.Hot.P = Unity(1).Inlet.Hot.P- Unity(1).Tubes.PressureDrop.Pdtotal - PdropNozzles.Tubes.Pdnozzle_in; 866 Unity(Nb+1).Outlet.Hot.P = Unity(Nb+1).Inlet.Hot.P- Unity(Nb+1).Tubes.PressureDrop.Pdtotal - PdropNozzles.Tubes.Pdnozzle_out; 867 868 "Pressure Drop Cold Stream" 869 Unity(1).Outlet.Cold.P = Unity(1).Inlet.Cold.P - Unity(1).Shell.PressureDrop.Pdtotal- PdropNozzles.Shell.Pdnozzle_in; 870 Unity(Nb+1).Outlet.Cold.P = Unity(Nb+1).Inlet.Cold.P - Unity(Nb+1).Shell.PressureDrop.Pdtotal- PdropNozzles.Shell.Pdnozzle_out; 1014 Unity(Nb+1).Shell.PressureDrop.Vnozzle_out = HE.ShellVelocityNozzleOut(Unity(Nb+1).Properties.Cold.Outlet.rho,Unity(Nb+1).Properties.Cold.Inlet.Fw); 871 1015 872 1016 … … 876 1020 for i in [2:Nb] 877 1021 878 1022 "Pressure Drop Tube Side Inlet Nozzle" 1023 Unity(i).Tubes.PressureDrop.Pdnozzle_in = 0; 1024 1025 "Velocity Tube Side Inlet Nozzle" 1026 Unity(i).Tubes.PressureDrop.Vnozzle_in = 0; 1027 1028 "Pressure Drop Tube Side Outlet Nozzle" 1029 Unity(i).Tubes.PressureDrop.Pdnozzle_out = 0; 1030 1031 "Velocity Tube Side Outlet Nozzle" 1032 Unity(i).Tubes.PressureDrop.Vnozzle_out = 0; 1033 1034 "Shell Pressure Drop Inlet Nozzle" 1035 Unity(i).Shell.PressureDrop.Pdnozzle_in = 0; 1036 1037 "Velocity Shell Side Inlet Nozzle" 1038 Unity(i).Shell.PressureDrop.Vnozzle_in = 0; 1039 1040 "Shell Pressure Drop Outlet Nozzle" 1041 Unity(i).Shell.PressureDrop.Pdnozzle_out = 0; 1042 1043 "Velocity Shell Side Outlet Nozzle" 1044 Unity(i).Shell.PressureDrop.Vnozzle_out = 0; 1045 1046 "Shell Pressure End Zones" 1047 Unity(i).Shell.PressureDrop.PdEndZones = 0; 1048 1049 "Shell Side Outlet Nozzle rho-V^2" 1050 Unity(i).Shell.PressureDrop.RVsquare_out = 0; 1051 1052 "Shell Side inlet Nozzle rho-V^2" 1053 Unity(i).Shell.PressureDrop.RVsquare_in = 0; 1054 879 1055 if side equal 1 880 1056 881 1057 then 882 1058 1059 "Shell Pressure Drop Cross Flow" 1060 Unity(i).Shell.PressureDrop.PdCross = HE.DeltaPcrossIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho); 1061 1062 1063 else 1064 1065 "Shell Pressure Drop Cross Flow" 1066 Unity(i).Shell.PressureDrop.PdCross = HE.DeltaPcrossIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho); 1067 1068 1069 end 1070 1071 "Zone Length" 1072 Sumary.Lz(i) = Unity(1).Baffles.Ls; 1073 1074 "Shell Side Cross Flow Area" 1075 Unity(i).Shell.HeatTransfer.Sm = HE.CrossFlowArea(Unity(i).Baffles.Ls); 1076 1077 end 1078 1079 1080 for i in [1:Nb+1] 1081 1082 if side equal 1 1083 1084 then 883 1085 "Pressure Drop Hot Stream" 884 1086 Unity(i).Outlet.Hot.P = Unity(i).Inlet.Hot.P - Unity(i).Shell.PressureDrop.Pdtotal; … … 886 1088 "Pressure Drop Cold Stream" 887 1089 Unity(i).Outlet.Cold.P = Unity(i).Inlet.Cold.P - Unity(i).Tubes.PressureDrop.Pdtotal; 888 889 890 else 891 892 "Pressure Drop Hot Stream" 893 Unity(i).Outlet.Hot.P = Unity(i).Inlet.Hot.P- Unity(i).Tubes.PressureDrop.Pdtotal; 894 895 "Pressure Drop Cold Stream" 896 Unity(i).Outlet.Cold.P = Unity(i).Inlet.Cold.P - Unity(i).Shell.PressureDrop.Pdtotal; 897 898 899 end 900 901 Sumary.Lz(i) = Unity(1).Baffles.Ls; 902 903 "Shell Side Cross Flow Area" 904 Unity(i).Shell.HeatTransfer.Sm = HE.CrossFlowArea(Unity(i).Baffles.Ls); 905 906 end 907 908 909 for i in [1:Nb+1] 910 911 if side equal 1 912 913 then 914 1090 915 1091 "Shell Side Reynolds Number" 916 1092 Unity(i).Shell.HeatTransfer.Re = HE.ShellReynoldsNumber(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.Mu); … … 919 1095 Unity(i).Shell.HeatTransfer.hshell = HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Hot.Average.Cp,Unity(i).Properties.Hot.Average.Mw,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi); 920 1096 921 "Shell Pressure Drop Cross Flow"922 Unity(i).Shell.PressureDrop.PdCross = HE.DeltaPcrossIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho);923 1097 924 1098 "Shell Pressure Baffle Window" 925 1099 Unity(i).Shell.PressureDrop.Pdwindow = HE.DeltaPwindowIncremental(Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Hot.Average.rho,Unity(i).Properties.Hot.Average.Mu,Unity(i).Baffles.Ls); 926 1100 927 "Shell Pressure End Zones" 928 Unity(i).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Hot.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Hot.Average.rho); 929 930 "Wall Temperature" 931 # Tubes.HeatTransfer.Twall = HE.WallTemperature(Properties.Hot.Average.T,Properties.Cold.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 932 1101 "Hot Wall Temperature" 933 1102 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 934 1103 1104 "Cold Wall Temperature" 935 1105 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 936 1106 … … 949 1119 "Tube Side Film Coefficient" 950 1120 Unity(i).Tubes.HeatTransfer.htube = HE.TubeFilmCoeffIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Cold.Average.K, 951 Unity(i).Tubes.HeatTransfer.Phi,Sumary.L pos(i));1121 Unity(i).Tubes.HeatTransfer.Phi,Sumary.Lz(i)); 952 1122 953 1123 "Shell Side Prandtl Number" … … 969 1139 else 970 1140 1141 "Pressure Drop Hot Stream" 1142 Unity(i).Outlet.Hot.P = Unity(i).Inlet.Hot.P- Unity(i).Tubes.PressureDrop.Pdtotal; 1143 1144 "Pressure Drop Cold Stream" 1145 Unity(i).Outlet.Cold.P = Unity(i).Inlet.Cold.P - Unity(i).Shell.PressureDrop.Pdtotal; 1146 971 1147 "Shell Side Reynolds Number" 972 1148 Unity(i).Shell.HeatTransfer.Re = HE.ShellReynoldsNumber(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Cold.Average.Mu); 973 1149 974 1150 "Shell Heat Transfer Coefficient" 975 Unity(i).Shell.HeatTransfer.hshell = HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi); 976 977 "Shell Pressure Drop Cross Flow" 978 Unity(i).Shell.PressureDrop.PdCross = HE.DeltaPcrossIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho); 1151 Unity(i).Shell.HeatTransfer.hshell = HE.ShellFilmCoeff(Unity(i).Shell.HeatTransfer.Ji,Unity(i).Properties.Cold.Average.Cp,Unity(i).Properties.Cold.Average.Mw, 1152 Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Shell.HeatTransfer.PR,Unity(i).Shell.HeatTransfer.Jtotal,Unity(i).Shell.HeatTransfer.Phi); 1153 979 1154 980 1155 "Shell Pressure Baffle Window" 981 1156 Unity(i).Shell.PressureDrop.Pdwindow = HE.DeltaPwindowIncremental(Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Sm,Unity(i).Properties.Cold.Average.rho,Unity(i).Properties.Cold.Average.Mu,Unity(i).Baffles.Ls); 982 1157 983 "Shell Pressure End Zones" 984 Unity(i).Shell.PressureDrop.PdEndZones = HE.DeltaPendZonesIncremental(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Ls,Unity(i).Baffles.Lso,Unity(i).Baffles.Lsi,Unity(i).Properties.Cold.Inlet.Fw,Unity(i).Shell.HeatTransfer.Phi,Unity(i).Properties.Cold.Average.rho); 985 986 "Wall Temperature" 987 # Tubes.HeatTransfer.Twall = HE.WallTemperature(Properties.Cold.Average.T,Properties.Hot.Average.T,Tubes.HeatTransfer.htube,Shell.HeatTransfer.hshell); 988 1158 1159 "Hot Wall Temperature" 989 1160 Unity(i).Properties.Hot.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 990 1161 1162 "Cold Wall Temperature" 991 1163 Unity(i).Properties.Cold.Wall.Twall = (Unity(i).Properties.Hot.Average.T+Unity(i).Properties.Cold.Average.T)/2; 992 1164 … … 1006 1178 "Tube Side Film Coefficient" 1007 1179 Unity(i).Tubes.HeatTransfer.htube = HE.TubeFilmCoeffIncremental(Unity(i).Tubes.HeatTransfer.Re,Unity(i).Tubes.HeatTransfer.PR,Unity(i).Properties.Hot.Average.K, 1008 Unity(i).Tubes.HeatTransfer.Phi,Sumary.L pos(i));1180 Unity(i).Tubes.HeatTransfer.Phi,Sumary.Lz(i)); 1009 1181 1010 1182 "Shell Side Prandtl Number" … … 1026 1198 end 1027 1199 1028 "Position for discretization"1029 Sumary.Lpos(i) = sum(Sumary.Lz([1:i]));1030 1031 1200 "Tube Resistance" 1032 1201 Unity(i).Resistances.Rtube*(Unity(i).Tubes.HeatTransfer.htube*Ditube) = Dotube; … … 1046 1215 "Baffles Spacing" 1047 1216 Ltube = Unity(i).Baffles.Lsi+Unity(i).Baffles.Lso+Unity(i).Baffles.Ls*(Nb-1); 1048 1049 1217 1050 1218 "Js Factor" 1051 Unity(i).Shell.HeatTransfer.Js = HE.JsFactor(Unity(i).Shell.HeatTransfer.Re,Unity(i).Baffles.Lsi,Unity(i).Baffles.Lso,Unity(i).Baffles.Ls);1219 Unity(i).Shell.HeatTransfer.Js = 1; 1052 1220 1053 1221 "Ji Factor" … … 1068 1236 "Total J Factor" 1069 1237 Unity(i).Shell.HeatTransfer.Jtotal = Unity(i).Shell.HeatTransfer.Jc*Unity(i).Shell.HeatTransfer.Jl*Unity(i).Shell.HeatTransfer.Jb*Unity(i).Shell.HeatTransfer.Jr*Unity(i).Shell.HeatTransfer.Js; 1070 1071 end 1072 1238 end 1239 1240 "Velocity Tube Side Inlet Nozzle" 1241 Unity(Nb+1).Tubes.PressureDrop.Vnozzle_in = 0; 1242 1243 "Velocity Tube Side Outlet Nozzle" 1244 Unity(1).Tubes.PressureDrop.Vnozzle_out = 0; 1245 1246 "Tube Pressure Drop Inlet Nozzle" 1247 Unity(Nb+1).Tubes.PressureDrop.Pdnozzle_in = 0; 1248 1249 "Tube Pressure Drop Outlet Nozzle" 1250 Unity(1).Tubes.PressureDrop.Pdnozzle_out = 0; 1251 1252 "Velocity Shell Side Inlet Nozzle" 1253 Unity(Nb+1).Shell.PressureDrop.Vnozzle_in = 0; 1254 1255 "Velocity Shell Side Outlet Nozzle" 1256 Unity(1).Shell.PressureDrop.Vnozzle_out = 0; 1257 1258 "Shell Pressure Drop Inlet Nozzle" 1259 Unity(Nb+1).Shell.PressureDrop.Pdnozzle_in = 0; 1260 1261 "Shell Pressure Drop Outlet Nozzle" 1262 Unity(1).Shell.PressureDrop.Pdnozzle_out = 0; 1263 1264 "Shell Cross Flow Pressure Drop" 1265 Unity(1).Shell.PressureDrop.PdCross = 0; 1266 1267 "Shell Cross Flow Pressure Drop" 1268 Unity(Nb+1).Shell.PressureDrop.PdCross = 0; 1269 1270 "Shell Side Outlet Nozzle rho-V^2" 1271 Unity(1).Shell.PressureDrop.RVsquare_out = 0; 1272 1273 "Shell Side inlet Nozzle rho-V^2" 1274 Unity(Nb+1).Shell.PressureDrop.RVsquare_in = 0; 1073 1275 1074 1276 SET 1075 # =====================================================================1277 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1076 1278 # Set Parameters for heatex Calculation 1077 # =====================================================================1279 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 1078 1280 Sumary.Zones = Nb+1; 1079 1281 Pi = 3.14159265; -
mso/eml/heat_exchangers/HeatExchangerSimplified.mso
r1 r26 1 #*--------------------------------------------------------------------* 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 *---------------------------------------------------------------------- 13 * Author: Gerson Balbueno Bicca 14 * $Id$ 15 *--------------------------------------------------------------------*# 16 1 17 2 using "HEX_Engine"; 18 19 3 #===================================================================== 20 4 # Basic Models for Simplified Heat Exchangers 21 5 #===================================================================== 22 23 6 Model HeatExchangerSimplified_Basic 24 25 7 PARAMETERS 26 27 ext PP as CalcObject(Brief="External Physical Properties"); 28 ext HE as CalcObject(Brief="STHE Calculations",File="heatex.dll"); 29 ext NComp as Integer (Brief="Number of Components"); 30 M(NComp) as molweight (Brief="Component Mol Weight"); 8 ext PP as CalcObject (Brief="External Physical Properties"); 9 ext HE as CalcObject (Brief="STHE Calculations",File="heatex.dll"); 10 ext NComp as Integer (Brief="Number of Components"); 11 M(NComp) as molweight (Brief="Component Mol Weight"); 31 12 32 13 VARIABLES … … 71 52 72 53 if Inlet.Cold.v equal 0 73 74 54 then 75 76 55 "Heat Capacity Cold Stream" 77 56 Properties.Cold.Average.Cp = PP.LiquidCp(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 78 Properties.Cold.Inlet.Cp = PP.LiquidCp(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);79 Properties.Cold.Outlet.Cp = PP.LiquidCp(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);57 Properties.Cold.Inlet.Cp = PP.LiquidCp(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 58 Properties.Cold.Outlet.Cp = PP.LiquidCp(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 80 59 81 60 "Mass Density Cold Stream" 82 61 Properties.Cold.Average.rho = PP.LiquidDensity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 83 Properties.Cold.Inlet.rho = PP.LiquidDensity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);62 Properties.Cold.Inlet.rho = PP.LiquidDensity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 84 63 Properties.Cold.Outlet.rho = PP.LiquidDensity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 85 64 86 65 "Viscosity Cold Stream" 87 66 Properties.Cold.Average.Mu = PP.LiquidViscosity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 88 Properties.Cold.Inlet.Mu = PP.LiquidViscosity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);89 Properties.Cold.Outlet.Mu = PP.LiquidViscosity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);67 Properties.Cold.Inlet.Mu = PP.LiquidViscosity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 68 Properties.Cold.Outlet.Mu = PP.LiquidViscosity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 90 69 91 70 "Conductivity Cold Stream" 92 Properties.Cold.Average.K = PP.LiquidThermalConductivity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z);93 Properties.Cold.Inlet.K = PP.LiquidThermalConductivity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z);94 Properties.Cold.Outlet.K = PP.LiquidThermalConductivity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z);71 Properties.Cold.Average.K = PP.LiquidThermalConductivity(Properties.Cold.Average.T,Properties.Cold.Average.P,Inlet.Cold.z); 72 Properties.Cold.Inlet.K = PP.LiquidThermalConductivity(Inlet.Cold.T,Inlet.Cold.P,Inlet.Cold.z); 73 Properties.Cold.Outlet.K = PP.LiquidThermalConductivity(Outlet.Cold.T,Outlet.Cold.P,Outlet.Cold.z); 95 74 96 75 "Heat Capacity Cold Stream" 97 Properties.Cold.Wall.Cp = PP.LiquidCp(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z);76 Properties.Cold.Wall.Cp = PP.LiquidCp(Properties.Cold.Wall.Twall,Properties.Cold.Average.P,Inlet.Cold.z); 98 77 99 78 "Viscosity Cold Stream" … … 218 197 219 198 "Heat Capacity Ratio" 220 [Details.Cmin,Details.Cmax,Details.Cr] = HE.HeatCapacityRatio(Details.Ch,Details.Cc); 221 199 200 Details.Cmin = min([Details.Ch,Details.Cc]); 201 Details.Cmax = max([Details.Ch,Details.Cc]); 202 Details.Cr = Details.Cmin/Details.Cmax; 222 203 #===================================================================== 223 204 # Energy Balance … … 307 288 VARIABLES 308 289 309 LMTD as temp_delta (Brief="Logarithmic Mean Temperature Difference");310 Fc as positive (Brief="LMTD Correction Factor",Lower=0.75);311 MTD 290 LMTD as temp_delta (Brief="Logarithmic Mean Temperature Difference",Lower=1); 291 Fc as positive (Brief="LMTD Correction Factor",Lower=0.5); 292 MTD as temp_delta (Brief="Mean Temperature Difference"); 312 293 313 294 EQUATIONS 314 295 315 296 "Exchange Surface Area" 316 Details.Q = Details.U*Details.A* Fc*LMTD;297 Details.Q = Details.U*Details.A*MTD; 317 298 318 299 "Mean Temperature Difference" … … 367 348 end 368 349 369 Model Multipass_LMTD as Heatex_Basic_LMTD370 #============================================================================371 # Shell and Tubes Heat Exchanger In Series with 1 shell pass - LMTD Method372 #============================================================================373 PARAMETERS374 375 Nshell as Integer (Brief="N Shell in Series",Lower=2);376 377 EQUATIONS378 379 "Counter Flow LMTD"380 LMTD = HE.CounterLMTD(Inlet.Hot.T,Outlet.Hot.T,Inlet.Cold.T,Outlet.Cold.T);381 382 "LMTD Correction Factor"383 Fc = HE.MpassCorrectionFactor(Inlet.Hot.T,Outlet.Hot.T,Inlet.Cold.T,Outlet.Cold.T,Nshell);384 385 end386 387 388 350 #===================================================================== 389 351 # NTU Method … … 393 355 394 356 EQUATIONS 395 396 357 "Effectiveness" 397 358 Eft=HE.Effectiveness(Details.Cr,Details.NTU); … … 404 365 #===================================================================== 405 366 EQUATIONS 406 407 367 "TEMA E Shell Effectiveness" 408 368 Eft = 2*(1+Details.Cr+sqrt(1+Details.Cr^2)*((1+exp(-Details.NTU*sqrt(1+Details.Cr^2)))/(1-exp(-Details.NTU*sqrt(1+Details.Cr^2)))) )^-1; -
mso/eml/heat_exchangers/Mheatex.mso
r1 r26 1 1 #*--------------------------------------------------------------------- 2 * This file is property of the author and cannot be used, copyed 3 * or modified without permission. 2 * Model of a Multistream Heat Exchanger 4 3 * 5 * Copyright (C) 2004-2006 the author 4 * Streams: 5 * * Inlet(Ninlet) streams .... at least one material stream 6 * * Outlet stream .... one material stream 6 7 * 8 * Purpose: 9 * * Determines thermal and phase conditions of outlet stream 7 10 * 8 * Multistream Heat Exchanger9 * Cocurrent and Counter Flow10 *11 11 *---------------------------------------------------------------------- 12 12 * Author: Gerson Balbueno Bicca 13 13 * $Id$ 14 14 *--------------------------------------------------------------------*# 15 16 15 using "streams.mso"; 17 16 18 17 Model Parameters 19 # =====================================================================20 # Heat Exchanger Parameters21 # =====================================================================18 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 19 # Heat Exchanger External Parameters 20 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 22 21 PARAMETERS 23 22 24 ext PP as CalcObject ;23 ext PP as CalcObject (Brief="Physical Properties"); 25 24 ext NComp as Integer (Brief="Number of Components"); 26 ext Ncold as Integer (Brief="Number of Inlet Cold Streams",Lower=1 ,Default=1);27 ext Nhot as Integer (Brief="Number of Inlet Hot Streams",Lower=1 ,Default=1);25 ext Ncold as Integer (Brief="Number of Inlet Cold Streams",Lower=1); 26 ext Nhot as Integer (Brief="Number of Inlet Hot Streams",Lower=1); 28 27 29 28 end 30 29 31 30 Model Inlet_Main_Stream as Parameters 32 # =====================================================================31 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 33 32 # Inlet Streams 34 #===================================================================== 35 33 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 36 34 VARIABLES 37 35 … … 42 40 43 41 Model Outlet_Main_Stream as Parameters 44 # =====================================================================42 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 45 43 # Outlet Streams 46 #===================================================================== 47 44 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 48 45 VARIABLES 49 46 … … 54 51 55 52 Model Mheatex 56 # =====================================================================53 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 57 54 # Multistream Heat Exchanger Basic Calculation 58 # =====================================================================55 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 59 56 PARAMETERS 60 57 … … 64 61 SET 65 62 66 Side = HE.FlowDir ection();63 Side = HE.FlowDir(); 67 64 68 65 VARIABLES … … 104 101 Q=UA*LMTD; 105 102 106 # ===================================================================103 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 107 104 # Flow Direction 108 #=================================================================== 105 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 106 109 107 if Side equal 0 110 108 111 109 then 112 #=====================================================================113 # Cocurrent Flow Multistream Heat Exchanger114 #===================================================================115 110 "Cocurrent Flow LMTD" 116 111 LMTD = HE.CocurrentLMTD(max(Inlet.Hot.T),min(Outlet.Hot.T),min(Inlet.Cold.T),max(Outlet.Cold.T)); 117 112 118 113 else 119 #=====================================================================120 # Counter Flow Multistream Heat Exchanger121 #=====================================================================122 114 "Counter Flow LMTD" 123 115 LMTD = HE.CounterLMTD(max(Inlet.Hot.T),min(Outlet.Hot.T),max(Inlet.Cold.T),min(Outlet.Cold.T)); -
mso/eml/heat_exchangers/heater.mso
r1 r26 1 1 #*--------------------------------------------------------------------- 2 * This file is property of the author and cannot be used, copyed 3 * or modified without permission. 2 * Model of a Heater and Cooler 4 3 * 5 * Copyright (C) 2004-2005 the author 4 * Streams: 5 * * Inlet(Ninlet) streams .... at least one material stream 6 * * Outlet stream .... one material stream 6 7 * 7 * 8 * Heater and Cooler 9 * 8 * Purpose: 9 * * Determines thermal and phase conditions of outlet stream 10 10 * 11 11 *---------------------------------------------------------------------- … … 14 14 *--------------------------------------------------------------------*# 15 15 16 17 16 using "streams.mso"; 18 17 19 18 Model Heater_Cooler_Basic 20 #===================================================================== 19 20 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 21 21 # Heater or Cooler Basic Equations 22 # =====================================================================22 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++# 23 23 PARAMETERS 24 24 ext PP as CalcObject (Brief="Physical Properties"); … … 30 30 out Outlet as stream_therm;#(Brief="Outlet Stream") 31 31 Q as power (Brief="Heat Transfer"); 32 Vfrac as fraction (Brief = "Vapor fraction Outlet Stream"); 33 Lfrac as fraction (Brief = "Liquid fraction Outlet Stream"); 32 34 33 35 EQUATIONS … … 45 47 46 48 "Outlet Vapourisation Fraction" 47 Outlet.v = PP.VapourFraction(Outlet.T,Outlet.P,Outlet.z); 49 Outlet.v = PP.VapourFraction(Outlet.T,Outlet.P,Outlet.z); 50 51 "Vapor fraction Outlet Stream" 52 Vfrac = Outlet.v; 53 54 "Liquid fraction Outlet Stream" 55 Lfrac = 1-Vfrac; 48 56 49 57 end 50 58 51 59 Model Heater as Heater_Cooler_Basic 52 #===================================================================== 53 # Heater 54 #===================================================================== 60 55 61 EQUATIONS 56 62 … … 61 67 62 68 Model Cooler as Heater_Cooler_Basic 63 #===================================================================== 64 # Cooler 65 #===================================================================== 69 66 70 EQUATIONS 67 71 -
mso/sample/heat_exchangers/sample_cooler.mso
r1 r26 54 54 cooler.Outlet.T = 70*"K"; 55 55 cooler.Outlet.P = 1 * "atm"; 56 56 57 57 58 … … 59 60 60 61 mode = "steady"; 61 outputLevel = "all";62 62 relativeAccuracy = 1e-8; 63 64 63 65 64 end -
mso/sample/heat_exchangers/samples2.mso
r1 r26 2 2 using "heat_exchangers/HeatExchangerSimplified"; 3 3 4 FlowSheet HeatExchanger_Multipass4 FlowSheet E_Shell 5 5 6 6 DEVICES 7 7 #=============================================================== 8 # Heat Exchanger Multipasses -LMTD Method8 # TEMA E Shell Heat Exchanger - Shortcut LMTD Method 9 9 #=============================================================== 10 10 11 exchanger as Multipass_LMTD;11 exchanger as E_Shell_LMTD; 12 12 streamhot as stream_therm; 13 13 streamcold as stream_therm; … … 21 21 22 22 PP as CalcObject (File="vrpp.dll"); 23 HE as CalcObject (File="heatex.dll"); 23 24 NComp as Integer; 24 HE as CalcObject (File="Heatex.dll");25 25 26 SET 26 27 #=============================================================== 27 # Components - State Equation - Nshell in series28 # Components - State Equation 28 29 #=============================================================== 29 30 … … 32 33 PP.Components = ["water"]; 33 34 NComp = PP.NumberOfComponents; 34 exchanger.Nshell = 2;35 35 36 36 SPECIFY … … 58 58 exchanger.Details.A = 65 *"m^2"; 59 59 exchanger.Details.U = 0.74 *"W/m^2/K"; 60 exchanger.PressureDrop.Hot.Pdrop = 0 *"atm";61 exchanger.PressureDrop.Cold.Pdrop = 0*"atm";60 exchanger.PressureDrop.Hot.Pdrop = 0 * "atm"; 61 exchanger.PressureDrop.Cold.Pdrop = 0 * "atm"; 62 62 OPTIONS 63 63 #============================================
Note: See TracChangeset
for help on using the changeset viewer.