- Timestamp:
- Jan 8, 2008, 1:55:28 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/eml/heat_exchangers/DoublePipe.mso
r420 r441 719 719 720 720 end 721 722 # Testing Hairpin Heat Exchanger (U tube)723 724 Model Hairpin_Basic725 726 ATTRIBUTES727 Pallete = false;728 Brief = "Basic Equations for hairpin heat exchanger model.";729 Info =730 "to be documented.";731 732 PARAMETERS733 734 outer PP as Plugin (Brief="External Physical Properties", Type="PP");735 outer NComp as Integer (Brief="Number of Components");736 737 M(NComp) as molweight (Brief="Component Mol Weight");738 739 HotSide as Switcher (Brief="Flag for Fluid Alocation ",Valid=["outer","inner"],Default="outer");740 innerFlowRegime as Switcher (Brief="Inner Flow Regime ",Valid=["laminar","transition","turbulent"],Default="laminar");741 outerFlowRegime as Switcher (Brief="Outer Flow Regime ",Valid=["laminar","transition","turbulent"],Default="laminar");742 743 InnerLaminarCorrelation as Switcher (Brief="Heat Transfer Correlation in Laminar Flow for the Inner Side",Valid=["Hausen","Schlunder"],Default="Hausen");744 InnerTransitionCorrelation as Switcher (Brief="Heat Transfer Correlation in Transition Flow for the Inner Side",Valid=["Gnielinski","Hausen"],Default="Gnielinski");745 InnerTurbulentCorrelation as Switcher (Brief="Heat Transfer Correlation in Turbulent Flow for the Inner Side",Valid=["Petukhov","SiederTate"],Default="Petukhov");746 747 OuterLaminarCorrelation as Switcher (Brief="Heat Transfer Correlation in Laminar Flow for the Outer Side",Valid=["Hausen","Schlunder"],Default="Hausen");748 OuterTransitionCorrelation as Switcher (Brief="Heat Transfer Correlation in Transition Flow for the OuterSide",Valid=["Gnielinski","Hausen"],Default="Gnielinski");749 OuterTurbulentCorrelation as Switcher (Brief="Heat Transfer Correlation in Turbulent Flow for the Outer Side",Valid=["Petukhov","SiederTate"],Default="Petukhov");750 751 Pi as constant (Brief="Pi Number",Default=3.14159265, Symbol = "\pi");752 DoInner as length (Brief="Outside Diameter of Inner Pipe",Lower=1e-6);753 DiInner as length (Brief="Inside Diameter of Inner Pipe",Lower=1e-10);754 DiOuter as length (Brief="Inside Diameter of Outer pipe",Lower=1e-10);755 Lpipe as length (Brief="Effective Tube Length of one segment of Pipe",Lower=0.1, Symbol = "L_{pipe}");756 Kwall as conductivity (Brief="Tube Wall Material Thermal Conductivity",Default=1.0, Symbol = "K_{wall}");757 Rfi as positive (Brief="Inside Fouling Resistance",Unit='m^2*K/kW',Default=1e-6,Lower=0);758 Rfo as positive (Brief="Outside Fouling Resistance",Unit='m^2*K/kW',Default=1e-6,Lower=0);759 760 VARIABLES761 762 in InletInner as stream (Brief="Inlet Inner Stream", PosX=1, PosY=0.7, Symbol="_{inInner}");763 in InletOuter as stream (Brief="Inlet Outer Stream", PosX=0.8, PosY=0, Symbol="_{inOuter}");764 out OutletInner as streamPH (Brief="Outlet Inner Stream", PosX=1, PosY=0.3, Symbol="_{outInner}");765 out OutletOuter as streamPH (Brief="Outlet Outer Stream", PosX=0.8, PosY=1, Symbol="_{outOuter}");766 767 Details as Details_Main (Brief="Some Details in the Heat Exchanger", Symbol=" ");768 Inner as Main_DoublePipe (Brief="Inner Side of the Heat Exchanger", Symbol="_{Inner}");769 Outer as Main_DoublePipe (Brief="Outer Side of the Heat Exchanger", Symbol="_{Outer}");770 771 SET772 773 #"Component Molecular Weight"774 M = PP.MolecularWeight();775 776 #"Pi Number"777 Pi = 3.14159265;778 779 #"Inner Pipe Cross Sectional Area for Flow"780 Inner.HeatTransfer.As=Pi*DiInner*DiInner/4;781 782 #"Outer Pipe Cross Sectional Area for Flow"783 Outer.HeatTransfer.As=Pi*(DiOuter*DiOuter - DoInner*DoInner)/4;784 785 #"Inner Pipe Hydraulic Diameter for Heat Transfer"786 Inner.HeatTransfer.Dh=DiInner;787 788 #"Outer Pipe Hydraulic Diameter for Heat Transfer"789 Outer.HeatTransfer.Dh=(DiOuter*DiOuter-DoInner*DoInner)/DoInner;790 791 #"Inner Pipe Hydraulic Diameter for Pressure Drop"792 Inner.PressureDrop.Dh=DiInner;793 794 #"Outer Pipe Hydraulic Diameter for Pressure Drop"795 Outer.PressureDrop.Dh=DiOuter-DoInner;796 797 EQUATIONS798 799 "Outer Stream Average Temperature"800 Outer.Properties.Average.T = 0.5*InletOuter.T + 0.5*OutletOuter.T;801 802 "Inner Stream Average Temperature"803 Inner.Properties.Average.T = 0.5*InletInner.T + 0.5*OutletInner.T;804 805 "Outer Stream Average Pressure"806 Outer.Properties.Average.P = 0.5*InletOuter.P+0.5*OutletOuter.P;807 808 "Inner Stream Average Pressure"809 Inner.Properties.Average.P = 0.5*InletInner.P+0.5*OutletInner.P;810 811 "Inner Stream Wall Temperature"812 Inner.Properties.Wall.Twall = 0.5*Outer.Properties.Average.T + 0.5*Inner.Properties.Average.T;813 814 "Outer Stream Wall Temperature"815 Outer.Properties.Wall.Twall = 0.5*Outer.Properties.Average.T + 0.5*Inner.Properties.Average.T;816 817 "Outer Stream Average Molecular Weight"818 Outer.Properties.Average.Mw = sum(M*InletOuter.z);819 820 "Inner Stream Average Molecular Weight"821 Inner.Properties.Average.Mw = sum(M*InletInner.z);822 823 if InletInner.v equal 0824 825 then826 827 "Average Heat Capacity Inner Stream"828 Inner.Properties.Average.Cp = PP.LiquidCp(Inner.Properties.Average.T,Inner.Properties.Average.P,InletInner.z);829 830 "Average Mass Density Inner Stream"831 Inner.Properties.Average.rho = PP.LiquidDensity(Inner.Properties.Average.T,Inner.Properties.Average.P,InletInner.z);832 833 "Inlet Mass Density Inner Stream"834 Inner.Properties.Inlet.rho = PP.LiquidDensity(InletInner.T,InletInner.P,InletInner.z);835 836 "Outlet Mass Density Inner Stream"837 Inner.Properties.Outlet.rho = PP.LiquidDensity(OutletInner.T,OutletInner.P,OutletInner.z);838 839 "Average Viscosity Inner Stream"840 Inner.Properties.Average.Mu = PP.LiquidViscosity(Inner.Properties.Average.T,Inner.Properties.Average.P,InletInner.z);841 842 "Average Conductivity Inner Stream"843 Inner.Properties.Average.K = PP.LiquidThermalConductivity(Inner.Properties.Average.T,Inner.Properties.Average.P,InletInner.z);844 845 "Viscosity Inner Stream at wall temperature"846 Inner.Properties.Wall.Mu = PP.LiquidViscosity(Inner.Properties.Wall.Twall,Inner.Properties.Average.P,InletInner.z);847 848 else849 850 "Average Heat Capacity InnerStream"851 Inner.Properties.Average.Cp = PP.VapourCp(Inner.Properties.Average.T,Inner.Properties.Average.P,InletInner.z);852 853 "Average Mass Density Inner Stream"854 Inner.Properties.Average.rho = PP.VapourDensity(Inner.Properties.Average.T,Inner.Properties.Average.P,InletInner.z);855 856 "Inlet Mass Density Inner Stream"857 Inner.Properties.Inlet.rho = PP.VapourDensity(InletInner.T,InletInner.P,InletInner.z);858 859 "Outlet Mass Density Inner Stream"860 Inner.Properties.Outlet.rho = PP.VapourDensity(OutletInner.T,OutletInner.P,OutletInner.z);861 862 "Average Viscosity Inner Stream"863 Inner.Properties.Average.Mu = PP.VapourViscosity(Inner.Properties.Average.T,Inner.Properties.Average.P,InletInner.z);864 865 "Average Conductivity Inner Stream"866 Inner.Properties.Average.K = PP.VapourThermalConductivity(Inner.Properties.Average.T,Inner.Properties.Average.P,InletInner.z);867 868 "Viscosity Inner Stream at wall temperature"869 Inner.Properties.Wall.Mu = PP.VapourViscosity(Inner.Properties.Wall.Twall,Inner.Properties.Average.P,InletInner.z);870 871 end872 873 if InletOuter.v equal 0874 875 then876 877 "Average Heat Capacity Outer Stream"878 Outer.Properties.Average.Cp = PP.LiquidCp(Outer.Properties.Average.T,Outer.Properties.Average.P,InletOuter.z);879 880 "Average Mass Density Outer Stream"881 Outer.Properties.Average.rho = PP.LiquidDensity(Outer.Properties.Average.T,Outer.Properties.Average.P,InletOuter.z);882 883 "Inlet Mass Density Outer Stream"884 Outer.Properties.Inlet.rho = PP.LiquidDensity(InletOuter.T,InletOuter.P,InletOuter.z);885 886 "Outlet Mass Density Outer Stream"887 Outer.Properties.Outlet.rho = PP.LiquidDensity(OutletOuter.T,OutletOuter.P,OutletOuter.z);888 889 "Average Viscosity Outer Stream"890 Outer.Properties.Average.Mu = PP.LiquidViscosity(Outer.Properties.Average.T,Outer.Properties.Average.P,InletOuter.z);891 892 "Average Conductivity Outer Stream"893 Outer.Properties.Average.K = PP.LiquidThermalConductivity(Outer.Properties.Average.T,Outer.Properties.Average.P,InletOuter.z);894 895 "Viscosity Outer Stream at wall temperature"896 Outer.Properties.Wall.Mu = PP.LiquidViscosity(Outer.Properties.Wall.Twall,Outer.Properties.Average.P,InletOuter.z);897 898 899 else900 901 "Average Heat Capacity Outer Stream"902 Outer.Properties.Average.Cp = PP.VapourCp(Outer.Properties.Average.T,Outer.Properties.Average.P,InletOuter.z);903 904 "Average Mass Density Outer Stream"905 Outer.Properties.Average.rho = PP.VapourDensity(Outer.Properties.Average.T,Outer.Properties.Average.P,InletOuter.z);906 907 "Inlet Mass Density Outer Stream"908 Outer.Properties.Inlet.rho = PP.VapourDensity(InletOuter.T,InletOuter.P,InletOuter.z);909 910 "Outlet Mass Density Outer Stream"911 Outer.Properties.Outlet.rho = PP.VapourDensity(OutletOuter.T,OutletOuter.P,OutletOuter.z);912 913 "Average Viscosity Outer Stream"914 Outer.Properties.Average.Mu = PP.VapourViscosity(Outer.Properties.Average.T,Outer.Properties.Average.P,InletOuter.z);915 916 "Average Conductivity Outer Stream"917 Outer.Properties.Average.K = PP.VapourThermalConductivity(Outer.Properties.Average.T,Outer.Properties.Average.P,InletOuter.z);918 919 "Viscosity Outer Stream at wall temperature"920 Outer.Properties.Wall.Mu = PP.VapourViscosity(Outer.Properties.Wall.Twall,Outer.Properties.Average.P,InletOuter.z);921 922 end923 924 switch HotSide925 926 case "outer":927 928 "Energy Balance Outer Stream"929 Details.Q = InletOuter.F*(InletOuter.h-OutletOuter.h);930 931 "Energy Balance Inner Stream"932 Details.Q = InletInner.F*(OutletInner.h-InletInner.h);933 934 when InletInner.T > InletOuter.T switchto "inner";935 936 case "inner":937 938 "Energy Balance Hot Stream"939 Details.Q = InletInner.F*(InletInner.h-OutletInner.h);940 941 "Energy Balance Cold Stream"942 Details.Q = InletOuter.F*(OutletOuter.h - InletOuter.h);943 944 when InletInner.T < InletOuter.T switchto "outer";945 946 end947 948 "Flow Mass Inlet Inner Stream"949 Inner.Properties.Inlet.Fw = sum(M*InletInner.z)*InletInner.F;950 951 "Flow Mass Outlet Inner Stream"952 Inner.Properties.Outlet.Fw = sum(M*OutletInner.z)*OutletInner.F;953 954 "Flow Mass Inlet Outer Stream"955 Outer.Properties.Inlet.Fw = sum(M*InletOuter.z)*InletOuter.F;956 957 "Flow Mass Outlet Outer Stream"958 Outer.Properties.Outlet.Fw = sum(M*OutletOuter.z)*OutletOuter.F;959 960 "Molar Balance Outer Stream"961 OutletOuter.F = InletOuter.F;962 963 "Molar Balance Inner Stream"964 OutletInner.F = InletInner.F;965 966 "Outer Stream Molar Fraction Constraint"967 OutletOuter.z=InletOuter.z;968 969 "InnerStream Molar Fraction Constraint"970 OutletInner.z=InletInner.z;971 972 "Exchange Surface Area for one segment of pipe"973 Details.A=Pi*DoInner*(2*Lpipe);974 975 switch innerFlowRegime976 977 case "laminar":978 979 "Inner Side Friction Factor for Pressure Drop - laminar Flow"980 Inner.PressureDrop.fi*Inner.PressureDrop.Re = 16;981 982 when Inner.PressureDrop.Re > 2300 switchto "transition";983 984 case "transition":985 986 "using Turbulent Flow - to be implemented"987 (Inner.PressureDrop.fi-0.0035)*(Inner.PressureDrop.Re^0.42) = 0.264;988 989 when Inner.PressureDrop.Re < 2300 switchto "laminar";990 when Inner.PressureDrop.Re > 10000 switchto "turbulent";991 992 case "turbulent":993 994 "Inner Side Friction Factor - Turbulent Flow"995 (Inner.PressureDrop.fi-0.0035)*(Inner.PressureDrop.Re^0.42) = 0.264;996 997 when Inner.PressureDrop.Re < 10000 switchto "transition";998 999 end1000 1001 switch outerFlowRegime1002 1003 case "laminar":1004 1005 "Outer Side Friction Factor - laminar Flow"1006 Outer.PressureDrop.fi*Outer.PressureDrop.Re = 16;1007 1008 when Outer.PressureDrop.Re > 2300 switchto "transition";1009 1010 case "transition":1011 1012 "using Turbulent Flow - Transition Flow must be implemented"1013 (Outer.PressureDrop.fi-0.0035)*(Outer.PressureDrop.Re^0.42) = 0.264;1014 1015 when Outer.PressureDrop.Re < 2300 switchto "laminar";1016 when Outer.PressureDrop.Re > 10000 switchto "turbulent";1017 1018 case "turbulent":1019 1020 "Outer Side Friction Factor - Turbulent Flow"1021 (Outer.PressureDrop.fi-0.0035)*(Outer.PressureDrop.Re^0.42) = 0.264;1022 1023 when Outer.PressureDrop.Re < 10000 switchto "transition";1024 1025 end1026 1027 switch innerFlowRegime1028 1029 case "laminar":1030 1031 "Inner Side Friction Factor for Heat Transfer - laminar Flow"1032 Inner.HeatTransfer.fi = 1/(0.79*ln(Inner.HeatTransfer.Re)-1.64)^2;1033 1034 switch InnerLaminarCorrelation1035 1036 case "Hausen":1037 1038 "Nusselt Number"1039 Inner.HeatTransfer.Nu = 3.665 + ((0.19*((DiInner/Lpipe)*Inner.HeatTransfer.Re*Inner.HeatTransfer.PR)^0.8)/(1+0.117*((DiInner/Lpipe)*Inner.HeatTransfer.Re*Inner.HeatTransfer.PR)^0.467));1040 1041 case "Schlunder":1042 1043 "Nusselt Number"1044 Inner.HeatTransfer.Nu = (49.027896+4.173281*Inner.HeatTransfer.Re*Inner.HeatTransfer.PR*(DiInner/Lpipe))^(1/3);1045 1046 end1047 1048 when Inner.HeatTransfer.Re > 2300 switchto "transition";1049 1050 case "transition":1051 1052 "Inner Side Friction Factor for Heat Transfer - transition Flow"1053 Inner.HeatTransfer.fi = 1/(0.79*ln(Inner.HeatTransfer.Re)-1.64)^2;1054 1055 switch InnerTransitionCorrelation1056 1057 case "Gnielinski":1058 1059 "Nusselt Number"1060 Inner.HeatTransfer.Nu*(1+(12.7*sqrt(0.125*Inner.HeatTransfer.fi)*((Inner.HeatTransfer.PR)^(2/3) -1))) = 0.125*Inner.HeatTransfer.fi*(Inner.HeatTransfer.Re-1000)*Inner.HeatTransfer.PR;1061 1062 case "Hausen":1063 1064 "Nusselt Number"1065 Inner.HeatTransfer.Nu =0.116*(Inner.HeatTransfer.Re^(0.667)-125)*Inner.HeatTransfer.PR^(0.333)*(1+(DiInner/Lpipe)^0.667);1066 1067 end1068 1069 when Inner.HeatTransfer.Re < 2300 switchto "laminar";1070 when Inner.HeatTransfer.Re > 10000 switchto "turbulent";1071 1072 case "turbulent":1073 1074 switch InnerTurbulentCorrelation1075 1076 case "Petukhov":1077 1078 "Inner Side Friction Factor for Heat Transfer - turbulent Flow"1079 Inner.HeatTransfer.fi = 1/(1.82*log(Inner.HeatTransfer.Re)-1.64)^2;1080 1081 "Nusselt Number"1082 Inner.HeatTransfer.Nu*(1.07+(12.7*sqrt(0.125*Inner.HeatTransfer.fi)*((Inner.HeatTransfer.PR)^(2/3) -1))) = 0.125*Inner.HeatTransfer.fi*Inner.HeatTransfer.Re*Inner.HeatTransfer.PR;1083 1084 case "SiederTate":1085 1086 "Nusselt Number"1087 Inner.HeatTransfer.Nu = 0.027*(Inner.HeatTransfer.PR)^(1/3)*(Inner.HeatTransfer.Re)^(4/5);1088 1089 "Inner Side Friction Factor for Heat Transfer - turbulent Flow"1090 Inner.HeatTransfer.fi = 1/(1.82*log(Inner.HeatTransfer.Re)-1.64)^2;1091 1092 end1093 1094 when Inner.HeatTransfer.Re < 10000 switchto "transition";1095 1096 end1097 1098 switch outerFlowRegime1099 1100 case "laminar":1101 1102 "Outer Side Friction Factor for Heat Transfer - laminar Flow"1103 Outer.HeatTransfer.fi = 1/(0.79*ln(Outer.HeatTransfer.Re)-1.64)^2;1104 1105 switch OuterLaminarCorrelation1106 1107 case "Hausen":1108 1109 "Nusselt Number"1110 Outer.HeatTransfer.Nu = 3.665 + ((0.19*((Outer.HeatTransfer.Dh/Lpipe)*Outer.HeatTransfer.Re*Outer.HeatTransfer.PR)^0.8)/(1+0.117*((Outer.HeatTransfer.Dh/Lpipe)*Outer.HeatTransfer.Re*Outer.HeatTransfer.PR)^0.467));1111 1112 case "Schlunder":1113 1114 "Nusselt Number"1115 Outer.HeatTransfer.Nu = (49.027896+4.173281*Outer.HeatTransfer.Re*Outer.HeatTransfer.PR*(Outer.HeatTransfer.Dh/Lpipe))^(1/3);1116 1117 end1118 1119 when Outer.HeatTransfer.Re > 2300 switchto "transition";1120 1121 case "transition":1122 1123 switch OuterTransitionCorrelation1124 1125 case "Gnielinski":1126 1127 "Outer Side Friction Factor for Heat Transfer - transition Flow"1128 Outer.HeatTransfer.fi = 1/(0.79*ln(Outer.HeatTransfer.Re)-1.64)^2;1129 1130 "Nusselt Number"1131 Outer.HeatTransfer.Nu*(1+(12.7*sqrt(0.125*Outer.HeatTransfer.fi)*((Outer.HeatTransfer.PR)^(2/3) -1))) = 0.125*Outer.HeatTransfer.fi*(Outer.HeatTransfer.Re-1000)*Outer.HeatTransfer.PR;1132 1133 case "Hausen":1134 1135 "Nusselt Number"1136 Outer.HeatTransfer.Nu = 0.116*(Outer.HeatTransfer.Re^(0.667)-125)*Outer.HeatTransfer.PR^(0.333)*(1+(Outer.HeatTransfer.Dh/Lpipe)^0.667);1137 1138 1139 "Outer Side Friction Factor for Heat Transfer - transition Flow"1140 Outer.HeatTransfer.fi = 1/(0.79*ln(Outer.HeatTransfer.Re)-1.64)^2;1141 1142 end1143 1144 when Outer.HeatTransfer.Re < 2300 switchto "laminar";1145 when Outer.HeatTransfer.Re > 10000 switchto "turbulent";1146 1147 case "turbulent":1148 1149 switch OuterTurbulentCorrelation1150 1151 case "Petukhov":1152 1153 "Outer Side Friction Factor for Heat Transfer - turbulent Flow"1154 Outer.HeatTransfer.fi = 1/(1.82*log(Outer.HeatTransfer.Re)-1.64)^2;1155 1156 "Nusselt Number"1157 Outer.HeatTransfer.Nu*(1.07+(12.7*sqrt(0.125*Outer.HeatTransfer.fi)*((Outer.HeatTransfer.PR)^(2/3) -1))) = 0.125*Outer.HeatTransfer.fi*Outer.HeatTransfer.Re*Outer.HeatTransfer.PR;1158 1159 case "SiederTate":1160 1161 "Nusselt Number"1162 Outer.HeatTransfer.Nu = 0.027*(Outer.HeatTransfer.PR)^(1/3)*(Outer.HeatTransfer.Re)^(4/5);1163 1164 "Outer Side Friction Factor for Heat Transfer - turbulent Flow"1165 Outer.HeatTransfer.fi = 1/(1.82*log(Outer.HeatTransfer.Re)-1.64)^2;1166 1167 end1168 1169 when Outer.HeatTransfer.Re < 10000 switchto "transition";1170 1171 end1172 1173 "Inner Pipe Film Coefficient"1174 Inner.HeatTransfer.hcoeff = (Inner.HeatTransfer.Nu*Inner.Properties.Average.K/DiInner)*Inner.HeatTransfer.Phi;1175 1176 "Outer Pipe Film Coefficient"1177 Outer.HeatTransfer.hcoeff= (Outer.HeatTransfer.Nu*Outer.Properties.Average.K/Outer.HeatTransfer.Dh)*Outer.HeatTransfer.Phi;1178 1179 "Total Pressure Drop Outer Stream"1180 Outer.PressureDrop.Pdrop = Outer.PressureDrop.Pd_fric+Outer.PressureDrop.Pd_ret;1181 1182 "Total Pressure Drop Inner Stream"1183 Inner.PressureDrop.Pdrop = Inner.PressureDrop.Pd_fric+Inner.PressureDrop.Pd_ret;1184 1185 "Pressure Drop Outer Stream"1186 OutletOuter.P = InletOuter.P - Outer.PressureDrop.Pdrop;1187 1188 "Pressure Drop Inner Stream"1189 OutletInner.P = InletInner.P - Inner.PressureDrop.Pdrop;1190 1191 "Outer Pipe Pressure Drop for friction"1192 Outer.PressureDrop.Pd_fric = (2*Outer.PressureDrop.fi*(2*Lpipe)*Outer.Properties.Average.rho*Outer.HeatTransfer.Vmean^2)/(Outer.PressureDrop.Dh*Outer.HeatTransfer.Phi);1193 1194 "Inner Pipe Pressure Drop for friction"1195 Inner.PressureDrop.Pd_fric = (2*Inner.PressureDrop.fi*(2*Lpipe)*Inner.Properties.Average.rho*Inner.HeatTransfer.Vmean^2)/(DiInner*Inner.HeatTransfer.Phi);1196 1197 "Outer Pipe Pressure Drop due to return"1198 Outer.PressureDrop.Pd_ret = 1.5*Outer.Properties.Average.rho*Outer.HeatTransfer.Vmean^2;1199 1200 "Inner Pipe Pressure Drop due to return"1201 Inner.PressureDrop.Pd_ret = 1.5*Inner.Properties.Average.rho*Inner.HeatTransfer.Vmean^2;1202 1203 "Outer Pipe Phi correction"1204 Outer.HeatTransfer.Phi = (Outer.Properties.Average.Mu/Outer.Properties.Wall.Mu)^0.14;1205 1206 "Inner Pipe Phi correction"1207 Inner.HeatTransfer.Phi = (Inner.Properties.Average.Mu/Inner.Properties.Wall.Mu)^0.14;1208 1209 "Outer Pipe Prandtl Number"1210 Outer.HeatTransfer.PR = ((Outer.Properties.Average.Cp/Outer.Properties.Average.Mw)*Outer.Properties.Average.Mu)/Outer.Properties.Average.K;1211 1212 "Inner Pipe Prandtl Number"1213 Inner.HeatTransfer.PR = ((Inner.Properties.Average.Cp/Inner.Properties.Average.Mw)*Inner.Properties.Average.Mu)/Inner.Properties.Average.K;1214 1215 "Outer Pipe Reynolds Number for Heat Transfer"1216 Outer.HeatTransfer.Re = (Outer.Properties.Average.rho*Outer.HeatTransfer.Vmean*Outer.HeatTransfer.Dh)/Outer.Properties.Average.Mu;1217 1218 "Outer Pipe Reynolds Number for Pressure Drop"1219 Outer.PressureDrop.Re = (Outer.Properties.Average.rho*Outer.HeatTransfer.Vmean*Outer.PressureDrop.Dh)/Outer.Properties.Average.Mu;1220 1221 "Inner Pipe Reynolds Number for Heat Transfer"1222 Inner.HeatTransfer.Re = (Inner.Properties.Average.rho*Inner.HeatTransfer.Vmean*Inner.HeatTransfer.Dh)/Inner.Properties.Average.Mu;1223 1224 "Inner Pipe Reynolds Number for Pressure Drop"1225 Inner.PressureDrop.Re = Inner.HeatTransfer.Re;1226 1227 "Outer Pipe Velocity"1228 Outer.HeatTransfer.Vmean*(Outer.HeatTransfer.As*Outer.Properties.Average.rho) = Outer.Properties.Inlet.Fw;1229 1230 "Inner Pipe Velocity"1231 Inner.HeatTransfer.Vmean*(Inner.HeatTransfer.As*Inner.Properties.Average.rho) = Inner.Properties.Inlet.Fw;1232 1233 "Overall Heat Transfer Coefficient Clean"1234 Details.Uc*((DoInner/(Inner.HeatTransfer.hcoeff*DiInner) )+(DoInner*ln(DoInner/DiInner)/(2*Kwall))+(1/(Outer.HeatTransfer.hcoeff)))=1;1235 1236 "Overall Heat Transfer Coefficient Dirty"1237 Details.Ud*(Rfi*(DoInner/DiInner) + Rfo + (DoInner/(Inner.HeatTransfer.hcoeff*DiInner) )+(DoInner*ln(DoInner/DiInner)/(2*Kwall))+(1/(Outer.HeatTransfer.hcoeff)))=1;1238 1239 end1240 1241 Model Hairpin_NTU as Hairpin_Basic1242 1243 ATTRIBUTES1244 1245 Icon = "icon/hairpin";1246 Pallete = true;1247 Brief = "Hairpin Heat Exchanger - NTU Method";1248 Info =1249 "to be documented.";1250 1251 PARAMETERS1252 1253 FlowDirection as Switcher (Brief="Flow Direction",Valid=["counter","cocurrent"],Default="cocurrent");1254 1255 VARIABLES1256 1257 Method as NTU_Basic (Brief="NTU Method of Calculation", Symbol=" ");1258 1259 EQUATIONS1260 1261 "Number of Units Transference"1262 Method.NTU*Method.Cmin = Details.Ud*Pi*DoInner*(2*Lpipe);1263 1264 "Minimum Heat Capacity"1265 Method.Cmin = min([Method.Ch,Method.Cc]);1266 1267 "Maximum Heat Capacity"1268 Method.Cmax = max([Method.Ch,Method.Cc]);1269 1270 "Thermal Capacity Ratio"1271 Method.Cr = Method.Cmin/Method.Cmax;1272 1273 "Effectiveness Correction"1274 Method.Eft1 = 1;1275 1276 if Method.Cr equal 01277 1278 then1279 "Effectiveness"1280 Method.Eft = 1-exp(-Method.NTU);1281 1282 else1283 1284 switch FlowDirection1285 1286 case "cocurrent":1287 1288 "Effectiveness in Cocurrent Flow"1289 Method.Eft = (1-exp(-Method.NTU*(1+Method.Cr)))/(1+Method.Cr);1290 1291 case "counter":1292 1293 if Method.Eft >= 11294 1295 then1296 1297 "Effectiveness in Counter Flow"1298 Method.Eft = 1;1299 1300 else1301 1302 "Effectiveness in Counter Flow"1303 Method.NTU*(Method.Cr-1.00001) = ln(abs((Method.Eft-1.00001))) - ln(abs((Method.Cr*Method.Eft-1.00001)));1304 end1305 1306 end1307 1308 end1309 1310 switch HotSide1311 1312 case "outer":1313 1314 "Duty"1315 Details.Q = Method.Eft*Method.Cmin*(InletOuter.T-InletInner.T);1316 1317 "Hot Stream Heat Capacity"1318 Method.Ch = InletOuter.F*Outer.Properties.Average.Cp;1319 1320 "Cold Stream Heat Capacity"1321 Method.Cc = InletInner.F*Inner.Properties.Average.Cp;1322 1323 when InletInner.T > InletOuter.T switchto "inner";1324 1325 case "inner":1326 1327 "Duty"1328 Details.Q = Method.Eft*Method.Cmin*(InletInner.T-InletOuter.T);1329 1330 "Cold Stream Heat Capacity"1331 Method.Cc = InletOuter.F*Outer.Properties.Average.Cp;1332 1333 "Hot Stream Heat Capacity"1334 Method.Ch = InletInner.F*Inner.Properties.Average.Cp;1335 1336 when InletInner.T < InletOuter.T switchto "outer";1337 1338 end1339 1340 end1341 1342 Model Hairpin_LMTD as Hairpin_Basic1343 1344 ATTRIBUTES1345 1346 Icon = "icon/hairpin";1347 Pallete = true;1348 Brief = "Hairpin Heat Exchanger - LMTD Method";1349 Info =1350 "to be documented.";1351 1352 PARAMETERS1353 1354 FlowDirection as Switcher (Brief="Flow Direction",Valid=["counter","cocurrent"],Default="cocurrent");1355 1356 VARIABLES1357 1358 Method as LMTD_Basic (Brief="LMTD Method of Calculation", Symbol=" ");1359 1360 EQUATIONS1361 1362 "Exchange Surface Area"1363 Details.Q = Details.Ud*Pi*DoInner*(2*Lpipe)*Method.LMTD;1364 1365 "LMTD Correction Factor - True counter ou cocurrent flow"1366 Method.Fc = 1;1367 1368 switch HotSide1369 1370 case "outer":1371 1372 switch FlowDirection1373 1374 case "cocurrent":1375 1376 "Temperature Difference at Inlet - Cocurrent Flow"1377 Method.DT0 = InletOuter.T - InletInner.T;1378 1379 "Temperature Difference at Outlet - Cocurrent Flow"1380 Method.DTL = OutletOuter.T - OutletInner.T;1381 1382 case "counter":1383 1384 "Temperature Difference at Inlet - Counter Flow"1385 Method.DT0 = InletOuter.T - OutletInner.T;1386 1387 "Temperature Difference at Outlet - Counter Flow"1388 Method.DTL = OutletOuter.T - InletInner.T;1389 1390 1391 end1392 1393 when InletInner.T > InletOuter.T switchto "inner";1394 1395 case "inner":1396 1397 switch FlowDirection1398 1399 case "cocurrent":1400 1401 "Temperature Difference at Inlet - Cocurrent Flow"1402 Method.DT0 = InletInner.T - InletOuter.T;1403 1404 "Temperature Difference at Outlet - Cocurrent Flow"1405 Method.DTL = OutletInner.T - OutletOuter.T;1406 1407 case "counter":1408 1409 "Temperature Difference at Inlet - Counter Flow"1410 Method.DT0 = InletInner.T - OutletOuter.T;1411 1412 "Temperature Difference at Outlet - Counter Flow"1413 Method.DTL = OutletInner.T - InletOuter.T;1414 1415 end1416 1417 when InletInner.T < InletOuter.T switchto "outer";1418 1419 end1420 1421 end -
trunk/sample/heat_exchangers/Sample_hairpin.mso
r405 r441 24 24 *--------------------------------------------------------------------*# 25 25 26 using "heat_exchangers/ DoublePipe.mso";26 using "heat_exchangers/Hairpin.mso"; 27 27 28 28 FlowSheet LMTD_Method
Note: See TracChangeset
for help on using the changeset viewer.