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