Example 13.1-1 Heat Transfer Coefficients from Experimental Data

See Figure 13.1-2 in BS&L

>  restart;
>  Q:=w*Cp*(Tb2-Tb1); Eq. 13.1-10 from an overall energy balance 
on the heated section of a pipe.
>  A:=Pi*Dia*L; The contact area for heat transfer at the inside 
of the pipe.
>  Q1:= h1*A*(T0-Tb1); Defining the heat transfer coefficient based 
on the temperature difference at the entrance to the heated section 
of the pipe.
>  h1:=solve(Q1=Q,h1):h1:=unapply(h1,Tb2,L); This agrees with 
eq. 13.1-12. Note that h1 is a function of the outlet fluid 
temperature and the length of the heated section of the pipe. 
These are the variables in the table at the top of page 395.
>  Qa:=ha*A*(T0-(Tb1+Tb2)/2); Defining the heat transfer 
coefficient based on the average temperature difference at the 
two ends of the heated section.
>  ha:=solve(Qa=Q,ha):ha:=unapply(ha,Tb2,L); This agrees with 
eq. 13.1-13
>  Qln:=hln*A*((T0-Tb1)-(T0-Tb2))/log((T0-Tb1)/(T0-Tb2)); 
Defining the heat transfer coefficient based on the log mean 
temperature difference at the two ends of the heated section.
>  hln:=solve(Qln=Q,hln):hln:=unapply(hln,Tb2,L); This agrees 
with eq. 13.1-14, but only after using the definition of log mean.
>  T0:=212*F;Cp:=0.237*Btu/(lbm*F);Tb1:=200*F;Dia:=0.5/12*ft;
w:=3*lbm/hr; Data that is fixed in all the experiments.
>  Lin := vector([1.5,3,6,12,24,48,96]);  define L in inches
>  Lft:=map(x->x*ft/12,Lin); The lengths in ft with units
>  LD := map(x->x/Dia,Lft);  define L/D
>  Tbs:=vector([201.4, 202.2, 203.1, 204.6, 206.6, 209.0, 211]):
 Tbs:=map(x->x*F,Tbs); define Tbs in F
>  h1s :=array(1..7): havs := array(1..7): hlns:=array(1..7):

>  for i to 7 do h1s[i]:=evalf(h1(Tbs[i],Lft[i]));
havs[i]:=evalf(ha(Tbs[i],Lft[i])):hlns[i]:=evalf(hln(Tbs[i],
Lft[i])):od:
h1s, havs and hlns are vectors that contain the values for h1, 
ha and hln from the seven experiments.

>  print(h1s); These agree with the values shown in Figure 13.1-3 
for the units used there.
>  print(havs);
>  print(hlns); Note that hav and hln are very close for L/D less 
than 24, but vary considerably when L/D becomes greater than that.
Now we will look at finding the local heat transfer coefficients.
>  Q:=z->w*Cp*(Tb(z)-Tb1); Heat absorbed by fluid from the 
entrance of the heated region to an arbitrary point z.
>  de:=diff(Q(z),z)=hloc(z)*Pi*Dia*(T0-Tb(z)); Energy balance 
leading to eq. 13.1-16.
>  wCetc:=w*Cp/(Pi*Dia);
>  hloc:=z->-wCetc*diff(log(T0-Tb(z)),z); Inspection of 
eq. 13.1-16 shows this should satisfiy the DE.
>  de; It does. Now we need a function that approximates Tb(z) 
based on the experimental data giving Tb vs z.
>  lndTs:=map(x->log((T0-x)/F),Tbs); A vector of values of 
log(T0-Tb(z)). Now we need a function that agrees with the values 
in this vector.
Maple is a very powerful tool to perform a least-square fit on the data. 
You can specify the equation in any form (the power does not have to be integer)
This makes Maple much more powerful than polyfit in Matlab

>  lndTl := convert(lndTs,list); Ll := convert(Lft,list);
Before we can proceed, it should be noted that fit[leastsquare] 
only accepts variables which have the data type "list." Both v1 
and L were arrays and had to be converted to lists

>  with(stats):  include the proper package
>  s:=fit[leastsquare[[z,y],y=m*z+b,{m,b}]]([Ll,lndTl]); 
We could try a linear fit of log(dT) vs z.
>  assign(s);ylin:=unapply(y,z);
>  -evalf(wCetc*diff(ylin(z),z)); That would give a constant 
value for hloc.
>  y:='y';s:=fit[leastsquare[[z,y],y=a*z^2+b*z+c,
{a,b,c}]]([Ll,lndTl]); Trying a quadratic fit.
>  assign(s);yquad:=unapply(y,z);hlocq:=-evalf(wCetc*
diff(yquad(z),z));
>  hlocq:=unapply(hlocq,z);
>  hlocq(ft/8.);hlocq(8.*ft); Values at L = 3" and 96"
>  y:='y';s:=fit[leastsquare[[z,y],y=a*z^3+b*z^2+c*z+d,
{a,b,c,d}]]([Ll,lndTl]); Finally, we will try a cubic.
>  assign(s);ycubic:=unapply(y,z);hlocc:=
-evalf(wCetc*diff(ycubic(z),z));hlocc:=unapply(hlocc,z);
>  hlocc(ft/8.); hlocc(ft); hlocc(8*ft); The cubic approximation 
gives reasonably close answers to those found graphically 
in Fig. 13.1-3
>  Tab:=array(1...7,1...5);
>  for i to 7 do
>  Tab[i,1]:=evalf(Lft[i]):Tab[i,2]:=ylin(Lft[i]):
Tab[i,3]:=yquad(Lft[i]):Tab[i,4]:=ycubic(Lft[i]):
Tab[i,5]:=lndTs[i]:od:
>  print(Tab);  Predicted and Experimental values of log(T0-Tb(L))
L Linear Quadratic Cubic Experimental
[Maple Math]