source: trunk/eml/heat_exchangers/PHE.mso @ 659

Last change on this file since 659 was 523, checked in by gerson bicca, 15 years ago

improved the plate heat exchanger model

File size: 30.9 KB
Line 
1#*-------------------------------------------------------------------
2* EMSO Model Library (EML) Copyright (C) 2004 - 2007 ALSOC.
3*
4* This LIBRARY is free software; you can distribute it and/or modify
5* it under the therms of the ALSOC FREE LICENSE as available at
6* http://www.enq.ufrgs.br/alsoc.
7*
8* EMSO Copyright (C) 2004 - 2007 ALSOC, original code
9* from http://www.rps.eng.br Copyright (C) 2002-2004.
10* All rights reserved.
11*
12* EMSO is distributed under the therms of the ALSOC LICENSE as
13* available at http://www.enq.ufrgs.br/alsoc.
14*--------------------------------------------------------------------
15* Author: Gerson Balbueno Bicca
16* $Id: PHE.mso 250 2007-04-27 16:32:02Z bicca $
17*------------------------------------------------------------------*#
18using "HEX_Engine";
19
20Model PHE_PressureDrop
21       
22ATTRIBUTES
23        Pallete = false;
24        Brief = "to be documented";
25        Info =
26        "to be documented";
27       
28VARIABLES
29
30DPchannel               as press_delta  (Brief="Channel Pressure Drop",Default=0.01, Lower=1E10,DisplayUnit='kPa', Symbol ="\Delta P^{channel}");
31DPports                 as press_delta  (Brief="Ports Pressure Drop",Default=0.01, Lower=1E-10,DisplayUnit='kPa', Symbol ="\Delta P^{ports}");
32Pdrop                           as press_delta  (Brief="Total Pressure Drop",Default=0.01, Lower=1E-10,DisplayUnit='kPa', Symbol ="\Delta P");
33fi                                      as fricfactor           (Brief="Friction Factor", Default=0.05, Lower=1E-10, Upper=2000);
34Vchannel                        as velocity             (Brief="Stream Velocity in Channel",Lower=1E-8, Symbol ="V^{channel}");
35Vports                          as velocity             (Brief="Stream Velocity in Ports",Lower=1E-8, Symbol ="V^{ports}");
36Npassage                        as positive             (Brief="Number of  Channels per Pass", Symbol ="N^{passage}");
37
38end
39
40Model PHE_HeatTransfer
41       
42ATTRIBUTES
43        Pallete = false;
44        Brief = "to be documented";
45        Info =
46        "to be documented";
47       
48VARIABLES
49
50Re                              as positive                                     (Brief="Reynolds Number",Default=100,Lower=1);
51PR                              as positive                                     (Brief="Prandtl Number",Default=0.5,Lower=1e-8);
52NTU                             as positive                                     (Brief="Number of Units Transference",Default=0.05,Lower=1E-10);
53WCp                     as positive                                     (Brief="Stream Heat Capacity",Lower=1E-3,Default=1E3,Unit='W/K');
54hcoeff                  as heat_trans_coeff             (Brief="Film Coefficient",Default=1,Lower=1E-12, Upper=1E6);
55Gchannel                as flux_mass                            (Brief ="Channel Mass Flux", Default=1, Lower=1E-6, Symbol ="G^{channel}");
56Gports                  as flux_mass                            (Brief ="Ports Mass Flux", Default=1, Lower=1E-6, Symbol ="G^{ports}");
57Phi                     as positive                                     (Brief="Viscosity Correction",Default=1,Lower=1E-6, Symbol="\phi");
58
59end
60
61Model Main_PHE
62       
63ATTRIBUTES
64        Pallete = false;
65        Brief = "to be documented";
66        Info =
67        "to be documented";
68       
69VARIABLES
70
71HeatTransfer    as PHE_HeatTransfer             (Brief="PHE Heat Transfer", Symbol = " ");
72PressureDrop    as PHE_PressureDrop     (Brief="PHE Pressure Drop", Symbol = " ");
73Properties              as Physical_Properties          (Brief="PHE Properties", Symbol = " ");
74
75end
76
77Model Thermal_PHE
78
79ATTRIBUTES
80        Pallete = false;
81        Brief = "to be documented";
82        Info =
83        "to be documented";
84       
85VARIABLES
86Cr      as positive                             (Brief="Heat Capacity Ratio",Default=0.5,Lower=1E-6);
87Cmin    as positive                             (Brief="Minimum Heat Capacity",Lower=1E-10,Default=1E3,Unit='W/K');
88Cmax    as positive                             (Brief="Maximum Heat Capacity",Lower=1E-10,Default=1E3,Unit='W/K');
89NTU             as positive                             (Brief="Number of Units Transference",Default=0.05,Lower=1E-10);
90Eft             as positive                             (Brief="Effectiveness",Default=0.5,Lower=0.1,Upper=1.1, Symbol = "\varepsilon");
91Q                       as power                                        (Brief="Heat Transfer", Default=7000, Lower=1E-6, Upper=1E10);
92Uc              as heat_trans_coeff     (Brief="Overall Heat Transfer Coefficient Clean",Default=1,Lower=1E-6,Upper=1E10);
93Ud              as heat_trans_coeff     (Brief="Overall Heat Transfer Coefficient Dirty",Default=1,Lower=1E-6,Upper=1E10);
94
95end
96
97Model PHE_Geometry
98
99 ATTRIBUTES
100        Pallete         = false;
101        Brief           = "Parameters for a gasketed plate heat exchanger.";
102
103 PARAMETERS
104
105outer PP                as Plugin               (Brief="External Physical Properties", Type="PP");
106outer NComp   as Integer        (Brief="Number of Chemical Components",Hidden=true);
107       
108        Pi                                              as constant             (Brief="Pi Number",Default=3.14159265, Hidden=true,Symbol = "\pi");
109        N1                                      as Integer              (Brief="Auxiliar Constant", Hidden=true,Default = 15);
110        N2                                      as Integer              (Brief="Auxiliar Constant",Hidden=true,Default = 14);
111        Kp1(N1)                 as constant             (Brief="First constant in Kumar calculation for Pressure Drop", Hidden=true);
112        Kp2(N1)                 as constant             (Brief="Second constant in Kumar calculation for Pressure Drop", Hidden=true);
113        Kc1(N2)                 as constant             (Brief="First constant in Kumar calculation for Heat Transfer", Hidden=true);
114        Kc2(N2)                 as constant             (Brief="Second constant Kumar calculation for Heat Transfer", Hidden=true);
115        M(NComp)        as molweight    (Brief="Component Mol Weight", Hidden=true);
116       
117       
118        Lv                                      as length                               (Brief="Vertical Ports Distance",Lower=0.1);
119        Nplates                 as Integer                      (Brief="Total Number of Plates in The Whole Heat Exchanger",Default=25, Symbol ="N_{plates}");
120        NpassHot                as Integer                      (Brief="Number of Passes for Hot Side", Symbol ="Npasshot");
121        NpassCold               as Integer                      (Brief="Number of Passes for Cold Side", Symbol ="Npasscold");
122        Dports                          as length                               (Brief="Ports Diameter",Lower=1e-6, Symbol ="D_{ports}");
123        Lw                                      as length                               (Brief="Plate Width",Lower=0.1);
124        pitch                           as length                               (Brief="Plate Pitch",Lower=0.1);
125        pt                                              as length                               (Brief="Plate Thickness",Lower=0.1);
126        Kwall                           as conductivity         (Brief="Plate Thermal Conductivity",Default=1.0, Symbol ="K_{wall}");
127        Rfh                                     as positive                     (Brief="Hot Side Fouling Resistance",Unit='m^2*K/kW',Default=1e-6,Lower=0);
128        Rfc                                     as positive                     (Brief="Cold Side Fouling Resistance",Unit='m^2*K/kW',Default=1e-6,Lower=0);
129        PhiFactor                       as Real                                 (Brief="Enlargement Factor",Lower=1e-6, Symbol ="\phi");
130       
131        Atotal                                  as area                                 (Brief="Total Effective  Area",Lower=1e-6, Symbol ="A_{total}", Protected=true);
132        Aports                          as area                                 (Brief="Port Opening  Area of Plate",Lower=1e-6, Symbol ="A_{ports}", Protected=true);
133        Achannel                as area                                 (Brief="Cross-Sectional Area for Channel Flow",Lower=1e-6, Symbol ="A_{channel}", Protected=true);
134        Dh                                      as length                               (Brief="Equivalent Diameter of Channel",Lower=1e-6, Protected=true);
135        Depth                   as length                               (Brief="Corrugation Depth",Lower=1e-6, Protected=true);
136        Nchannels               as Integer                      (Brief="Total Number of Channels in The Whole Heat Exchanger", Protected=true);
137        Lp                                      as length                               (Brief="Plate Vertical Distance between Port Centers",Lower=0.1, Protected=true);
138        Lpack                           as length                               (Brief="Compact Plate Pack Length",Lower=0.1, Protected=true);
139        Lh                                      as length                               (Brief="Plate Horizontal Distance between Port Centers",Lower=0.1, Protected=true);
140
141SET
142
143#"Vector Length of constants for Kumar's calculating Pressure Drop"
144        N1 = 15;
145
146#"Vector Length of constants for Kumar's calculating Heat Transfer"
147        N2 = 14;
148
149#"First constant for Kumar's calculating Pressure Drop"
150        Kp1 = [50,19.40,2.990,47,18.290,1.441,34,11.250,0.772,24,3.240,0.760,24,2.80,0.639];
151
152#"Second constant for Kumar's calculating Pressure Drop"
153        Kp2 = [1,0.589,0.183,1,0.652,0.206,1,0.631,0.161,1,0.457,0.215,1,0.451,0.213];
154
155#"First constant for Kumar's calculating Heat Transfer"
156        Kc1 = [0.718,0.348,0.718,0.400,0.300,0.630,0.291,0.130,0.562,0.306,0.108,0.562,0.331,0.087];
157
158#"Second constant for Kumar's calculating Heat Transfer"
159        Kc2 = [0.349,0.663,0.349,0.598,0.663,0.333,0.591,0.732,0.326,0.529,0.703,0.326,0.503,0.718];
160       
161#"Component Molecular Weight"
162        M  = PP.MolecularWeight();
163       
164#"Pi Number"
165        Pi      = 3.14159265;
166       
167#"Plate Vertical Distance between Port Centers"
168        Lp = Lv - Dports;
169       
170#"Corrugation Depth"
171        Depth=pitch-pt;
172       
173#"Plate Horizontal Distance between Port Centers"
174        Lh=Lw-Dports;
175       
176#"Hydraulic Diameter"
177        Dh=2*Depth/PhiFactor;
178
179#"Ports Area"
180        Aports=0.25*Pi*Dports*Dports;
181       
182#"Channel Area"
183        Achannel=Depth*Lw;
184       
185#"Pack Length"
186        Lpack=Depth*(Nplates-1)+Nplates*pt;
187       
188#"Total Number of  Channels"
189        Nchannels = Nplates -1;
190       
191#"Exchange Surface Area"
192        Atotal =(Nplates-2)*Lw*Lp*PhiFactor;
193
194end
195
196Model PHE
197
198 ATTRIBUTES
199        Icon            = "icon/phe";
200        Pallete         = true;
201        Brief           = "Shortcut model  for Plate and Frame heat exchanger.";
202        Info            =
203"Model of a gasketed plate heat exchanger.
204The heat transfer and pressure loss calculations are based on Kumar [1] work.
205The following assumptions are considered in order to derive the mathematical model [2]:
206
207== Assumptions ==
208* Steady-State operation;
209* No phase changes;
210* No heat loss to the surroundings.
211* Uniform distribution of flow through the channels of a pass.
212
213== Specify ==
214* The Inlet streams: Hot and Cold;
215
216== Setting The PHE Parameters ==
217*ChevronAngle
218*Nplates
219*NpassHot
220*NpassCold
221*Dports
222*PhiFactor
223*Lv
224*Lw
225*pitch
226*pt
227*Kwall
228*Rfc
229*Rfh
230
231== Setting The PHE Option Parameters ==
232*SideOne: cold or hot
233
234== References ==
235
236[1] E.A.D. Saunders, Heat Exchangers: Selection, Design and
237 Construction, Longman, Harlow, 1988.
238
239[2] J.A.W. Gut, J.M. Pinto, Modeling of plate heat exchangers
240 with generalized configurations, Int. J. Heat Mass Transfer
241 46 (14) (2003) 2571\2585.
242";
243
244 PARAMETERS
245
246outer PP                as Plugin               (Brief="External Physical Properties", Type="PP");
247outer NComp   as Integer        (Brief="Number of Chemical Components");
248       
249        ChevronAngle    as Switcher                     (Brief="Chevron Corrugation Inclination Angle in Degrees ",Valid=["A30_Deg","A45_Deg","A50_Deg","A60_Deg","A65_Deg"],Default="A30_Deg");
250        SideOne                         as Switcher                     (Brief="Fluid Alocation in the Side I - (The odd channels)",Valid=["hot","cold"],Default="hot");
251
252 VARIABLES
253
254Geometry                        as PHE_Geometry         (Brief="Plate Heat Exchanger Geometrical Parameters", Symbol=" ");
255in  InletHot            as stream                                       (Brief="Inlet Hot Stream", PosX=0, PosY=0.75, Symbol="^{inHot}");       
256in  InletCold           as stream                                       (Brief="Inlet Cold Stream", PosX=0, PosY=0.25, Symbol="^{inCold}");
257out OutletHot           as streamPH                             (Brief="Outlet Hot Stream", PosX=1, PosY=0.25, Symbol="^{outHot}");
258out OutletCold          as streamPH                             (Brief="Outlet Cold Stream", PosX=1, PosY=0.75, Symbol="^{outCold}");
259
260       
261        HotSide                 as Main_PHE                             (Brief="Plate Heat Exchanger Hot Side", Symbol="_{hot}");
262        ColdSide        as Main_PHE                             (Brief="Plate Heat Exchanger Cold Side", Symbol="_{cold}");
263        Thermal                 as Thermal_PHE                  (Brief="Thermal Results", Symbol = " ");
264
265 EQUATIONS
266
267"Hot    Stream Average Temperature"
268        HotSide.Properties.Average.T = 0.5*InletHot.T + 0.5*OutletHot.T;
269
270"Cold Stream Average Temperature"
271        ColdSide.Properties.Average.T = 0.5*InletCold.T + 0.5*OutletCold.T;
272       
273"Hot Stream Average Pressure"
274        HotSide.Properties.Average.P = 0.5*InletHot.P+0.5*OutletHot.P;
275       
276"Cold Stream Average Pressure"
277        ColdSide.Properties.Average.P = 0.5*InletCold.P+0.5*OutletCold.P;
278
279"Cold Stream Wall Temperature"
280        ColdSide.Properties.Wall.Twall =   0.5*HotSide.Properties.Average.T + 0.5*ColdSide.Properties.Average.T;
281
282"Hot Stream Wall Temperature"
283        HotSide.Properties.Wall.Twall =   0.5*HotSide.Properties.Average.T + 0.5*ColdSide.Properties.Average.T;
284
285"Hot Stream Average Molecular Weight"
286        HotSide.Properties.Average.Mw = sum(Geometry.M*InletHot.z);
287
288"Cold Stream Average Molecular Weight"
289        ColdSide.Properties.Average.Mw = sum(Geometry.M*InletCold.z);
290
291 if InletCold.v equal 0
292       
293        then   
294
295"Average Heat Capacity Cold Stream"
296        ColdSide.Properties.Average.Cp          =       PP.LiquidCp(ColdSide.Properties.Average.T,ColdSide.Properties.Average.P,InletCold.z);
297
298"Average Mass Density Cold Stream"
299        ColdSide.Properties.Average.rho         =       PP.LiquidDensity(ColdSide.Properties.Average.T,ColdSide.Properties.Average.P,InletCold.z);
300
301"Inlet Mass Density Cold Stream"
302        ColdSide.Properties.Inlet.rho           =       PP.LiquidDensity(InletCold.T,InletCold.P,InletCold.z);
303
304"Outlet Mass Density Cold Stream"
305        ColdSide.Properties.Outlet.rho  =       PP.LiquidDensity(OutletCold.T,OutletCold.P,OutletCold.z);
306
307"Average Viscosity Cold Stream"
308        ColdSide.Properties.Average.Mu  =       PP.LiquidViscosity(ColdSide.Properties.Average.T,ColdSide.Properties.Average.P,InletCold.z);
309
310"Average        Conductivity Cold Stream"
311        ColdSide.Properties.Average.K           =       PP.LiquidThermalConductivity(ColdSide.Properties.Average.T,ColdSide.Properties.Average.P,InletCold.z);
312
313"Viscosity Cold Stream at wall temperature"
314        ColdSide.Properties.Wall.Mu             =       PP.LiquidViscosity(ColdSide.Properties.Wall.Twall,ColdSide.Properties.Average.P,InletCold.z);
315
316        else
317
318"Average Heat Capacity ColdStream"
319        ColdSide.Properties.Average.Cp  =       PP.VapourCp(ColdSide.Properties.Average.T,ColdSide.Properties.Average.P,InletCold.z);
320
321"Average Mass Density Cold Stream"
322        ColdSide.Properties.Average.rho         =       PP.VapourDensity(ColdSide.Properties.Average.T,ColdSide.Properties.Average.P,InletCold.z);
323
324"Inlet Mass Density Cold Stream"
325        ColdSide.Properties.Inlet.rho           =       PP.VapourDensity(InletCold.T,InletCold.P,InletCold.z);
326       
327"Outlet Mass Density Cold Stream"
328        ColdSide.Properties.Outlet.rho  =       PP.VapourDensity(OutletCold.T,OutletCold.P,OutletCold.z);
329
330"Average Viscosity Cold Stream"
331        ColdSide.Properties.Average.Mu  =       PP.VapourViscosity(ColdSide.Properties.Average.T,ColdSide.Properties.Average.P,InletCold.z);
332
333"Average Conductivity Cold Stream"
334        ColdSide.Properties.Average.K           =       PP.VapourThermalConductivity(ColdSide.Properties.Average.T,ColdSide.Properties.Average.P,InletCold.z);
335
336"Viscosity Cold Stream at wall temperature"
337        ColdSide.Properties.Wall.Mu             =       PP.VapourViscosity(ColdSide.Properties.Wall.Twall,ColdSide.Properties.Average.P,InletCold.z);
338
339 end
340
341 if InletHot.v equal 0
342
343        then
344
345"Average Heat Capacity Hot Stream"
346        HotSide.Properties.Average.Cp   =               PP.LiquidCp(HotSide.Properties.Average.T,HotSide.Properties.Average.P,InletHot.z);
347
348"Average Mass Density Hot Stream"
349        HotSide.Properties.Average.rho =                PP.LiquidDensity(HotSide.Properties.Average.T,HotSide.Properties.Average.P,InletHot.z);
350
351"Inlet Mass Density Hot Stream"
352        HotSide.Properties.Inlet.rho            =               PP.LiquidDensity(InletHot.T,InletHot.P,InletHot.z);
353
354"Outlet Mass Density Hot Stream"
355        HotSide.Properties.Outlet.rho   =               PP.LiquidDensity(OutletHot.T,OutletHot.P,OutletHot.z);
356
357"Average Viscosity Hot Stream"
358        HotSide.Properties.Average.Mu   =               PP.LiquidViscosity(HotSide.Properties.Average.T,HotSide.Properties.Average.P,InletHot.z);       
359
360"Average Conductivity Hot Stream"
361        HotSide.Properties.Average.K    =               PP.LiquidThermalConductivity(HotSide.Properties.Average.T,HotSide.Properties.Average.P,InletHot.z);     
362
363"Viscosity Hot Stream at wall temperature"
364        HotSide.Properties.Wall.Mu              =               PP.LiquidViscosity(HotSide.Properties.Wall.Twall,HotSide.Properties.Average.P,InletHot.z);     
365
366
367        else
368
369"Average Heat Capacity Hot Stream"
370        HotSide.Properties.Average.Cp   =               PP.VapourCp(HotSide.Properties.Average.T,HotSide.Properties.Average.P,InletHot.z);
371
372"Average Mass Density Hot Stream"
373        HotSide.Properties.Average.rho =                PP.VapourDensity(HotSide.Properties.Average.T,HotSide.Properties.Average.P,InletHot.z);
374
375"Inlet Mass Density Hot Stream"
376        HotSide.Properties.Inlet.rho            =               PP.VapourDensity(InletHot.T,InletHot.P,InletHot.z);
377       
378"Outlet Mass Density Hot Stream"
379        HotSide.Properties.Outlet.rho   =               PP.VapourDensity(OutletHot.T,OutletHot.P,OutletHot.z);
380
381"Average Viscosity Hot Stream"
382        HotSide.Properties.Average.Mu   =               PP.VapourViscosity(HotSide.Properties.Average.T,HotSide.Properties.Average.P,InletHot.z);
383
384"Average Conductivity Hot Stream"
385        HotSide.Properties.Average.K    =               PP.VapourThermalConductivity(HotSide.Properties.Average.T,HotSide.Properties.Average.P,InletHot.z);     
386
387"Viscosity Hot Stream at wall temperature"
388        HotSide.Properties.Wall.Mu              =               PP.VapourViscosity(HotSide.Properties.Wall.Twall,HotSide.Properties.Average.P,InletHot.z);
389
390 end
391
392"Energy Balance Hot Stream"
393        Thermal.Q = InletHot.F*(InletHot.h-OutletHot.h);
394
395"Energy Balance Cold Stream"
396        Thermal.Q = InletCold.F*(OutletCold.h - InletCold.h);
397
398"Flow Mass Inlet Cold Stream"
399        ColdSide.Properties.Inlet.Fw    =  sum(Geometry.M*InletCold.z)*InletCold.F;
400
401"Flow Mass Outlet Cold Stream"
402        ColdSide.Properties.Outlet.Fw   =  sum(Geometry.M*OutletCold.z)*OutletCold.F;
403
404"Flow Mass Inlet Hot Stream"
405        HotSide.Properties.Inlet.Fw             =  sum(Geometry.M*InletHot.z)*InletHot.F;
406
407"Flow Mass Outlet Hot Stream"   
408        HotSide.Properties.Outlet.Fw    =  sum(Geometry.M*OutletHot.z)*OutletHot.F;
409
410"Molar Balance Hot Stream"
411        OutletHot.F = InletHot.F;
412       
413"Molar Balance Cold Stream"
414        OutletCold.F = InletCold.F;
415
416"Hot Stream Molar Fraction Constraint"
417        OutletHot.z=InletHot.z;
418       
419"Cold Stream Molar Fraction Constraint"
420        OutletCold.z=InletCold.z;
421
422 switch SideOne
423       
424        case "cold":
425       
426"Total Number of  Passages Cold Side"
427        ColdSide.PressureDrop.Npassage = (2*Geometry.Nchannels+1+(-1)^(Geometry.Nchannels+1))/(4*Geometry.NpassCold);
428
429"Total Number of  Passages Hot Side"
430        HotSide.PressureDrop.Npassage = (2*Geometry.Nchannels-1+(-1)^(Geometry.Nchannels))/(4*Geometry.NpassHot);
431       
432        case "hot":
433       
434"Total Number of  Passages Cold Side"
435        HotSide.PressureDrop.Npassage = (2*Geometry.Nchannels+1+(-1)^(Geometry.Nchannels+1))/(4*Geometry.NpassHot);
436
437"Total Number of  Passages Hot Side"
438        ColdSide.PressureDrop.Npassage = (2*Geometry.Nchannels-1+(-1)^(Geometry.Nchannels))/(4*Geometry.NpassCold);
439
440 end
441
442"Hot Stream Mass Flux in the Channel"
443        HotSide.HeatTransfer.Gchannel=HotSide.Properties.Inlet.Fw/(HotSide.PressureDrop.Npassage*Geometry.Achannel);
444
445"Hot Stream Mass Flux in the Ports"
446        HotSide.HeatTransfer.Gports=HotSide.Properties.Inlet.Fw/Geometry.Aports;
447
448"Cold Stream Mass Flux in the Ports"
449        ColdSide.HeatTransfer.Gports=ColdSide.Properties.Inlet.Fw/Geometry.Aports;
450
451"Cold Stream Mass Flux in the Channel"
452        ColdSide.HeatTransfer.Gchannel=ColdSide.Properties.Inlet.Fw/(ColdSide.PressureDrop.Npassage*Geometry.Achannel);
453
454"Hot Stream Pressure Drop in Ports"
455        HotSide.PressureDrop.DPports =1.5*Geometry.NpassHot*HotSide.HeatTransfer.Gports^2/(2*HotSide.Properties.Average.rho);
456
457"Cold Stream Pressure Drop in Ports"
458        ColdSide.PressureDrop.DPports =1.5*Geometry.NpassCold*ColdSide.HeatTransfer.Gports^2/(2*ColdSide.Properties.Average.rho);
459
460"Hot Stream Pressure Drop in Channels"
461        HotSide.PressureDrop.DPchannel =2*HotSide.PressureDrop.fi*Geometry.NpassHot*Geometry.Lv*HotSide.HeatTransfer.Gchannel^2/(HotSide.Properties.Average.rho*Geometry.Dh*HotSide.HeatTransfer.Phi^0.17);
462
463"Cold Stream Pressure Drop in Channels"
464        ColdSide.PressureDrop.DPchannel =2*ColdSide.PressureDrop.fi*Geometry.NpassCold*Geometry.Lv*ColdSide.HeatTransfer.Gchannel^2/(ColdSide.Properties.Average.rho*Geometry.Dh*ColdSide.HeatTransfer.Phi^0.17);
465
466"Hot Stream Total Pressure Drop"
467        HotSide.PressureDrop.Pdrop =HotSide.PressureDrop.DPchannel+HotSide.PressureDrop.DPports;
468
469"Cold Stream Total Pressure Drop"
470        ColdSide.PressureDrop.Pdrop =ColdSide.PressureDrop.DPchannel+ColdSide.PressureDrop.DPports;
471
472 switch ChevronAngle #Pressure Drop Friction Factor According to kumar's (1984)
473       
474        case "A30_Deg": #       ChevronAngle <= 30
475       
476        if      HotSide.HeatTransfer.Re < 10
477                then
478                                HotSide.PressureDrop.fi                 = Geometry.Kp1(1)/HotSide.HeatTransfer.Re^Geometry.Kp2(1);
479                                ColdSide.PressureDrop.fi        =       Geometry.Kp1(1)/ColdSide.HeatTransfer.Re^Geometry.Kp2(1);
480                else
481                                if      HotSide.HeatTransfer.Re < 100
482                                        then
483                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(2)/HotSide.HeatTransfer.Re^Geometry.Kp2(2);
484                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(2)/ColdSide.HeatTransfer.Re^Geometry.Kp2(2);
485                                        else
486                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(3)/HotSide.HeatTransfer.Re^Geometry.Kp2(3);
487                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(3)/ColdSide.HeatTransfer.Re^Geometry.Kp2(3);
488                                end
489                       
490        end     
491
492        case "A45_Deg":
493       
494        if      HotSide.HeatTransfer.Re < 15
495                then
496                                HotSide.PressureDrop.fi                 = Geometry.Kp1(4)/HotSide.HeatTransfer.Re^Geometry.Kp2(4);
497                                ColdSide.PressureDrop.fi        =       Geometry.Kp1(4)/ColdSide.HeatTransfer.Re^Geometry.Kp2(4);
498                else
499                                if      HotSide.HeatTransfer.Re < 300
500                                        then
501                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(5)/HotSide.HeatTransfer.Re^Geometry.Kp2(5);
502                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(5)/ColdSide.HeatTransfer.Re^Geometry.Kp2(5);
503                                        else
504                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(6)/HotSide.HeatTransfer.Re^Geometry.Kp2(6);
505                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(6)/ColdSide.HeatTransfer.Re^Geometry.Kp2(6);
506                                end
507                       
508        end     
509
510        case "A50_Deg":
511       
512        if      HotSide.HeatTransfer.Re < 20
513                then
514                                HotSide.PressureDrop.fi                 = Geometry.Kp1(7)/HotSide.HeatTransfer.Re^Geometry.Kp2(7);
515                                ColdSide.PressureDrop.fi        =       Geometry.Kp1(7)/ColdSide.HeatTransfer.Re^Geometry.Kp2(7);
516                else
517                                if      HotSide.HeatTransfer.Re < 300
518                                        then
519                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(8)/HotSide.HeatTransfer.Re^Geometry.Kp2(8);
520                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(8)/ColdSide.HeatTransfer.Re^Geometry.Kp2(8);
521                                        else
522                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(9)/HotSide.HeatTransfer.Re^Geometry.Kp2(9);
523                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(9)/ColdSide.HeatTransfer.Re^Geometry.Kp2(9);
524                                end
525                       
526        end
527       
528        case "A60_Deg":
529       
530        if      HotSide.HeatTransfer.Re < 40
531                then
532                                HotSide.PressureDrop.fi                 = Geometry.Kp1(10)/HotSide.HeatTransfer.Re^Geometry.Kp2(10);
533                                ColdSide.PressureDrop.fi        =       Geometry.Kp1(10)/ColdSide.HeatTransfer.Re^Geometry.Kp2(10);
534                else
535                                if      HotSide.HeatTransfer.Re < 400
536                                        then
537                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(11)/HotSide.HeatTransfer.Re^Geometry.Kp2(11);
538                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(11)/ColdSide.HeatTransfer.Re^Geometry.Kp2(11);
539                                        else
540                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(12)/HotSide.HeatTransfer.Re^Geometry.Kp2(12);
541                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(12)/ColdSide.HeatTransfer.Re^Geometry.Kp2(12);
542                                end
543                       
544        end
545       
546        case "A65_Deg": #       ChevronAngle >= 65
547       
548        if      HotSide.HeatTransfer.Re < 50
549                then
550                                HotSide.PressureDrop.fi                 = Geometry.Kp1(13)/HotSide.HeatTransfer.Re^Geometry.Kp2(13);
551                                ColdSide.PressureDrop.fi        =       Geometry.Kp1(13)/ColdSide.HeatTransfer.Re^Geometry.Kp2(13);
552                else
553                                if      HotSide.HeatTransfer.Re < 500
554                                        then
555                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(14)/HotSide.HeatTransfer.Re^Geometry.Kp2(14);
556                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(14)/ColdSide.HeatTransfer.Re^Geometry.Kp2(14);
557                                        else
558                                                        HotSide.PressureDrop.fi                 = Geometry.Kp1(15)/HotSide.HeatTransfer.Re^Geometry.Kp2(15);
559                                                        ColdSide.PressureDrop.fi        =       Geometry.Kp1(15)/ColdSide.HeatTransfer.Re^Geometry.Kp2(15);
560                                end
561                       
562        end
563
564 end
565
566 switch ChevronAngle # Heat Transfer Coefficient According to kumar's (1984)
567
568        case "A30_Deg": #       ChevronAngle <= 30
569       
570        if      HotSide.HeatTransfer.Re < 10
571                then
572                                HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(1)*HotSide.HeatTransfer.Re^Geometry.Kc2(1))/Geometry.Dh;
573                                ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(1)*ColdSide.HeatTransfer.Re^Geometry.Kc2(1))/Geometry.Dh;
574                else
575                                HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(2)*HotSide.HeatTransfer.Re^Geometry.Kc2(2))/Geometry.Dh;
576                                ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(2)*ColdSide.HeatTransfer.Re^Geometry.Kc2(2))/Geometry.Dh;
577        end     
578       
579        case "A45_Deg":
580       
581        if      HotSide.HeatTransfer.Re < 10
582                then
583                                HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(3)*HotSide.HeatTransfer.Re^Geometry.Kc2(3))/Geometry.Dh;
584                                ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(3)*ColdSide.HeatTransfer.Re^Geometry.Kc2(3))/Geometry.Dh;
585                else
586                                if      HotSide.HeatTransfer.Re < 100
587                                        then
588                                                        HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(4)*HotSide.HeatTransfer.Re^Geometry.Kc2(4))/Geometry.Dh;
589                                                        ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(4)*ColdSide.HeatTransfer.Re^Geometry.Kc2(4))/Geometry.Dh;
590                                        else
591                                                        HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(5)*HotSide.HeatTransfer.Re^Geometry.Kc2(5))/Geometry.Dh;
592                                                        ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(5)*ColdSide.HeatTransfer.Re^Geometry.Kc2(5))/Geometry.Dh;
593                                end
594        end
595
596        case "A50_Deg":
597       
598        if      HotSide.HeatTransfer.Re < 20
599                then
600                                HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(6)*HotSide.HeatTransfer.Re^Geometry.Kc2(6))/Geometry.Dh;
601                                ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(6)*ColdSide.HeatTransfer.Re^Geometry.Kc2(6))/Geometry.Dh;
602                else
603                                if      HotSide.HeatTransfer.Re < 300
604                                        then
605                                                        HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(7)*HotSide.HeatTransfer.Re^Geometry.Kc2(7))/Geometry.Dh;
606                                                        ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(7)*ColdSide.HeatTransfer.Re^Geometry.Kc2(7))/Geometry.Dh;
607                                        else
608                                                        HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(8)*HotSide.HeatTransfer.Re^Geometry.Kc2(8))/Geometry.Dh;
609                                                        ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(8)*ColdSide.HeatTransfer.Re^Geometry.Kc2(8))/Geometry.Dh;
610                                end
611        end
612
613        case "A60_Deg":
614       
615        if      HotSide.HeatTransfer.Re < 20
616                then
617                                HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(9)*HotSide.HeatTransfer.Re^Geometry.Kc2(9))/Geometry.Dh;
618                                ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(9)*ColdSide.HeatTransfer.Re^Geometry.Kc2(9))/Geometry.Dh;
619                else
620                                if      HotSide.HeatTransfer.Re < 400
621                                        then
622                                                        HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(10)*HotSide.HeatTransfer.Re^Geometry.Kc2(10))/Geometry.Dh;
623                                                        ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(10)*ColdSide.HeatTransfer.Re^Geometry.Kc2(10))/Geometry.Dh;
624                                        else
625                                                        HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(11)*HotSide.HeatTransfer.Re^Geometry.Kc2(11))/Geometry.Dh;
626                                                        ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(11)*ColdSide.HeatTransfer.Re^Geometry.Kc2(11))/Geometry.Dh;
627                                end
628        end
629       
630        case "A65_Deg": #       ChevronAngle >= 65
631       
632        if      HotSide.HeatTransfer.Re < 20
633                then
634                                HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(12)*HotSide.HeatTransfer.Re^Geometry.Kc2(12))/Geometry.Dh;
635                                ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(12)*ColdSide.HeatTransfer.Re^Geometry.Kc2(12))/Geometry.Dh;
636                else
637                                if      HotSide.HeatTransfer.Re < 500
638                                        then
639                                                        HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(13)*HotSide.HeatTransfer.Re^Geometry.Kc2(13))/Geometry.Dh;
640                                                        ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(13)*ColdSide.HeatTransfer.Re^Geometry.Kc2(13))/Geometry.Dh;
641                                        else
642                                                        HotSide.HeatTransfer.hcoeff=(HotSide.Properties.Average.K*HotSide.HeatTransfer.PR^(1/3)*HotSide.HeatTransfer.Phi^0.17*Geometry.Kc1(14)*HotSide.HeatTransfer.Re^Geometry.Kc2(14))/Geometry.Dh;
643                                                        ColdSide.HeatTransfer.hcoeff =(ColdSide.Properties.Average.K*ColdSide.HeatTransfer.PR^(1/3)*ColdSide.HeatTransfer.Phi^0.17*Geometry.Kc1(14)*ColdSide.HeatTransfer.Re^Geometry.Kc2(14))/Geometry.Dh;
644                                end
645        end
646
647 end
648
649"Hot Stream Velocity in Channels"
650        HotSide.PressureDrop.Vchannel =HotSide.HeatTransfer.Gchannel/HotSide.Properties.Average.rho;
651
652"Cold Stream Velocity in Channels"
653        ColdSide.PressureDrop.Vchannel =ColdSide.HeatTransfer.Gchannel/ColdSide.Properties.Average.rho;
654
655"Hot Stream Velocity in Ports"
656        HotSide.PressureDrop.Vports =HotSide.Properties.Inlet.Fw/(Geometry.Aports*HotSide.Properties.Inlet.rho);
657
658"Cold Stream Velocity in Ports"
659        ColdSide.PressureDrop.Vports =ColdSide.Properties.Inlet.Fw/(Geometry.Aports*ColdSide.Properties.Inlet.rho);
660
661"Hot Stream Reynolds Number"
662        HotSide.HeatTransfer.Re =Geometry.Dh*HotSide.HeatTransfer.Gchannel/HotSide.Properties.Average.Mu;
663
664"Cold Stream Reynolds Number"
665        ColdSide.HeatTransfer.Re =Geometry.Dh*ColdSide.HeatTransfer.Gchannel/ColdSide.Properties.Average.Mu;
666
667"Hot Stream Prandtl Number"
668        HotSide.HeatTransfer.PR= ((HotSide.Properties.Average.Cp/HotSide.Properties.Average.Mw)*HotSide.Properties.Average.Mu)/HotSide.Properties.Average.K;
669
670"Cold Stream Prandtl Number"
671        ColdSide.HeatTransfer.PR = ((ColdSide.Properties.Average.Cp/ColdSide.Properties.Average.Mw)*ColdSide.Properties.Average.Mu)/ColdSide.Properties.Average.K;
672
673"Hot Stream Viscosity Correction"
674        HotSide.HeatTransfer.Phi= HotSide.Properties.Average.Mu/HotSide.Properties.Wall.Mu;
675
676"Cold Stream Viscosity Correction"
677        ColdSide.HeatTransfer.Phi= ColdSide.Properties.Average.Mu/ColdSide.Properties.Wall.Mu;
678
679"Hot Stream Outlet Pressure"
680        OutletHot.P  = InletHot.P - HotSide.PressureDrop.Pdrop;
681       
682"Cold Stream Outlet Pressure"
683        OutletCold.P  = InletCold.P - ColdSide.PressureDrop.Pdrop;
684       
685"Overall Heat Transfer Coefficient Clean"
686        Thermal.Uc/HotSide.HeatTransfer.hcoeff +Thermal.Uc*Geometry.pt/Geometry.Kwall+Thermal.Uc/ColdSide.HeatTransfer.hcoeff=1;
687
688"Overall Heat Transfer Coefficient Dirty"
689        Thermal.Ud*(1/HotSide.HeatTransfer.hcoeff +Geometry.pt/Geometry.Kwall+1/ColdSide.HeatTransfer.hcoeff + Geometry.Rfc + Geometry.Rfh)=1;
690
691 "Duty"
692        Thermal.Q = Thermal.Eft*Thermal.Cmin*(InletHot.T-InletCold.T);
693
694 "Heat Capacity Ratio"
695        Thermal.Cr =Thermal.Cmin/Thermal.Cmax;
696
697"Minimum Heat Capacity"
698        Thermal.Cmin  = min([HotSide.HeatTransfer.WCp,ColdSide.HeatTransfer.WCp]);
699
700"Maximum Heat Capacity"
701        Thermal.Cmax  = max([HotSide.HeatTransfer.WCp,ColdSide.HeatTransfer.WCp]);
702
703"Hot Stream Heat Capacity"
704        HotSide.HeatTransfer.WCp  = InletHot.F*HotSide.Properties.Average.Cp;
705
706"Cold Stream Heat Capacity"
707        ColdSide.HeatTransfer.WCp = InletCold.F*ColdSide.Properties.Average.Cp;
708
709"Number of Units Transference for the Whole Heat Exchanger"
710        Thermal.NTU = max([HotSide.HeatTransfer.NTU,ColdSide.HeatTransfer.NTU]);
711
712"Number of Units Transference for Hot Side"
713        HotSide.HeatTransfer.NTU*HotSide.HeatTransfer.WCp = Thermal.Ud*Geometry.Atotal;
714
715"Number of Units Transference for Cold Side"
716        ColdSide.HeatTransfer.NTU*ColdSide.HeatTransfer.WCp = Thermal.Ud*Geometry.Atotal;
717
718if  Thermal.Eft >= 1  #To be Fixed: Effectiveness in true counter flow !
719       
720        then
721"Effectiveness in Counter Flow"
722        Thermal.Eft = 1;
723        else
724"Effectiveness in Counter Flow"
725        Thermal.NTU*(Thermal.Cr-1.00001) = ln(abs((Thermal.Eft-1.00001))) - ln(abs((Thermal.Cr*Thermal.Eft-1.00001)));
726
727end
728
729end
Note: See TracBrowser for help on using the repository browser.