# The Drinking Bird Problem # # # A familiar object of amusement is a glass "bird" which apparently # drinks from a glass of water. # # Picture of the bird # # # Something about how the bird works # # The bird is basically a baromometer. It contains a liquid (freon-11) # which has a very low boiling point. At a fixed temperature at which # there are both liquid and gassous freon present the pressure of the # gas phase, the vapor pressure, is proportional to the temperature. # Heat entering the bird increases the temperature of the liquid, # raising the vapor pressure of the gas. This exerts a downward force # on the liquid in the body which attempts to force the liquid up the # "neck." However if the bird is at a uniform temperature throughout, # the vapor pressure above the liquid in the neck is the same as that # in the body so nothing happens. On the other hand, if the bird has # "been drinking" its head is wet with water which cools the top of # the bird, lowering the pressure of the vapor in the upper chamber # (recall the gas law, PV=kT which says that at constant volume the # pressure of a gas is proportional to temperature). This imbalance # forces the liquid up the bird's "neck" to a height required for # weight of the liquid in the column to exactly offset the difference # in pressure. If that equilibrium point is sufficient for the center # of gravity of the bird to be above its "perch" then the bird tips over # and "takes a drink". If the level of inclination of the drinking bird # is such that the bottom of the "neck" is no longer beneath the # surface of the liquid then the higher pressure gas on the bottom # forces its way up the tube in the form of bubbles, causing pressure to # rise in the upper chamber, forcing liquid back down the neck and # raising the temperature of the head. If this is sufficient to lower # the center of gravity below the "perch" then the bird's head rises # from the liquid it moves to minimize the height of the center of # gravity, and the cycle starts again. # # General Question: If all of the fluid is in the body the bird "sits" # on its perch. However when the fluid rises to a certain level the bird # tips over and "drinks". How far up the "neck" is the fluid when the # bird tips over? # # Specific Problem: Suppose the bird's neck is a a cylinder .8 cm in # diameter and 8 cm long and that the head and body are spheres 2 cm in # diameter. It initially has all of the liquid in the lower body which # is completely full and the perch is 3.5 cm above the top of the lower # body. How high is the liquid when the center of gravity is at the # perch? # # Starting the model - simplifying assumptions. # # As stated there is insufficient information to solve the problem since # the answer clearly depends on the weight of the liquid, the density # and thickness of the glass and the density of the liquid vapor. If # we assume that the liquid is weightless then the center of gravity # will already be above the perch, thus we must have a non-negative # weight for the liquid in order to have an interesting problem. The # vapor consists of such a small amount of the liquid that it can # reasonably be assumed to be weightless in a first attempt. If the # glass is sufficiently thin its contribution is small compared to that # of the liquid so that the limiting case we can assume that the glass # is weighless and of zero thickness. Solve the problem under the # assumption that the liquid has positive weight and the glass is # weightless and dimensionless. # # Some Maple-generated pictures. These graphics are an introduction to # things that can be done and may run slowly on some machines. They are # not necessary and may be bypassed. # body:=x^2+y^2+z^2=1: > BODY:=plots[implicitplot3d](body,x=-1..1,y=-1..1,z=-1..1): > REDBODY:=plots[implicitplot3d](body,x=-1..1,y=-1..1,z=-1..1,style=wire > frame,color=red): > head:=x^2+y^2+(z-8)^2=(1/2)^2: > HEAD:=plots[implicitplot3d](head,x=-1/2..1,y=-1/2..1,z= 7.5 ..8.5): > perch:=y^2+(z-2.5)^2=.1: > neck:=x^2+y^2=.1^2: > NECK:=plots[implicitplot3d](neck,x=-.1.. .1,y=-.1.. .1,z=-.8 .. 8): > PERCH:=plots[implicitplot3d](perch,x=-1..1,y=-.1...1,z=2.4..2.6): > plots[display]([HEAD,BODY,REDBODY,NECK,PERCH],scaling=constrained, > titlefont=[TIMES,BOLD,28],title = `Idealized Bird`); # Since we have are assuming that glass is weightless we don't really # need the head. What we need is the fluid in the body and neck. The # more idelaized diagram looks like: # > > LIQUIDINBODY:=plots[implicitplot3d](body,x=-1..1,y=-1..1,z=-1..0,style > =patch,color=red): > > perch:=y^2+(z-2.5)^2=.1: > neck:=x^2+y^2=.1^2: > LIQUIDINNECK:=plots[implicitplot3d](neck,x=-.1.. .1,y=-.1.. .1,z=-.8 > .. 4, style=wireframe, color=red): > PERCH:=plots[implicitplot3d](perch,x=-1..1,y=-.1...1,z=2.4..2.6): > plots[display]([ LIQUIDINBODY,LIQUIDINNECK,PERCH],scaling=constrained, > titlefont=[TIMES,BOLD,28],orientation=[90,90],title = `Just the > fluid`); > # Getting Started: A general introduction to the problem for the # student. NOTE: this is not a complete solution, nor is it guaranteed # that the specific numbers used in it are those that apply to the # problem stated. Some modifications may be needed. # The problem is to calculate how high the fluid is when the center of # gravity is exactly at the perch. If the center is higher than the # perch the bird will tip over. # Choose coordinates so that the x-axis is vertical and the body is the # unit sphere centered at the origin. Look at the corss-section in the # x-y plane of the liquid. It is symmetric with respect to the x-axis. # It consists of the portion of the unit circle from x= -1 to FL, # the level of the liquid in the body, together with the rectangle with # vertices ( FL,+-.4) and (LIQTOP, +-.4), where LIQTOP is the top of the # liquid in the neck. For instance, if when FL=-.4, LIQTOP=6, the edge # above the x-axis is the graph of the function. The Heaviside function # allows one to construct piecewise-defined functions in Maple. With it # you can make a function which represents the cross-sectional view of # the "mathematical" bird. # > readlib(Heaviside): # With the x-axis representing the vertical axis of the bird, if the # fluid level in the body is at x=.4 and the fluid extends to x=6 then # the fluid in the body and neck will be the solid of revolution # generated by revolcing the following function, f, about the x-axis. # > f:=x->(1-Heaviside(x-(-.4)))*sqrt(1-x^2)+ Heaviside(x-(-.4)) *.4; # > plot(f(x),x=-1..6,scaling=constrained,axes=boxed); # If the fluid is at different levels in the body then there will be a # different cross-section, given by a different function like the one # above. These other functions would be created by varying the fluid # level, "FL" (in the function f above, FL= .4) and and the top of # the liquid in the neck., " LIQTOP" ( in the function "f" above # LIQTOP=6). We can make a better "f" which permits us to vary the # fluid level with: > liquid:=(x,FL)->(1-Heaviside(x-FL))*sqrt(1-x^2)+( Heaviside(x-FL))*.4 > ; > plot(liquid(x,.2), x=-1..6, scaling=constrained, axes=boxed); > # # Since the total volume of the liquid is constant (this isn't # absolutely correct and is an implied assumption which should be # justified) LIQTOP and FL determine each other. The total volume of # the liquid is equal to the volume of the fluid in the body plus that # in the neck. Thus we have the following relation which should be # justified. > EQN:=Int(Pi*(sqrt(1-x^2)^2),x=-1..FL)+Pi*.4^2*(LIQTOP-FL)=FLUIDVOLUME; # which expresses LIQTOP as a simple function of FL. By changing "Int" # to "int" we get an equation which can be solved for LIQTOP in terms of # FL. This can be done by hand or with the Maple "solve" command. One # can then calculate LIQTOP for any particular FL and (depending on the # total volume which you must provide) make a plot of the cross-section # of the liquid depending only on the value of FL. An expression for # LIQTOP depending only on FL and the FLUIDVOLUME can be substituted # for LIQTOP in the following will then allow one to graph the fluid # cross-section for any value of FL: > plot(liquid(x,FL), x=-1..LIQTOP, scaling=constrained, axes=boxed); # For any fixed FL between -1 and 1 the cross-sectional area of the # liquid at x will be A(x,FL) =Pi*liquid(x,FL)^2 # The moment of that cross-section against the perch will be # A(x,FL)*(x-PRCH), where PRCH is the x-coordinate of the perch. # Finally, for a fixed FL the total moment of the liquid against the # perch will be the integral of this function from -1 to LIQTOP(FL) > TOTALMOMENT:=Int('A(x,FL)*(x-PRCH )',x=-1..LIQTOP); > # This is a function only of FL. The bird is exactly balanced at the # value of FL for which the total moment is zero. Properly done the # right side of the above equation depends only on the know values of # FLUIDVOLUME and PRCH, and the variable FL. Thus commands like # "solve(TOTALMOMENT=0,{FL})" or "fsolve(TOTALMOMENT=0, {FL})", or # "plot(TOTALMOMENT, FL = ?..?)" will calculate the value of FL at which # the (idealized) bird is unstable. One should do calculations for # different, reasonable values of the fluid volume and height of the # bird's perch and make some observations and even edjustments. One # should certainly plot the TOTALMOMENT as a function of FL for various # values of FLUIDVOLUME and/or PRCH and interpret the differences in the # graphs. Questions like " are there always solutions to the problem?" # are important. #