Skip to main content
10-Marble
July 29, 2008
Question

The 3 Reservoir Problem with a twist

  • July 29, 2008
  • 9 replies
  • 4015 views
I have cobbled together a MC 14 template to solve the classic 3 reservoir hydraulic problem. The problem usually assumes that the head pressure at each reservoir is fixed and so the solve block can handle this with ease. However, in this example I have assumed that one of the reservoirs - denoted as Reservoir A has a falling head characteristic (a hydraulic rating or pump discharge curve). In reality this would be say a node on a pumped water main which is supplying water to the other 2 reservoirs for instance. This is described by the function ZA(QA)vector. As you can see the solve block is having trouble with this arrangement. Does anyone know how to setup the solve block to solve such problems? My ultimate goal is to input all 3 reservoirs but I don't want to run before I can walk.

Regards, Mark

9 replies

10-Marble
July 30, 2008
Sorry I forgot to explain:

The Darcy fuction (aka coolebrook-white friction factor) is an external user fuction ChEMath.dll � 2003 Javier Fuentes, so lets assume it works. If you are not confident replace the function and use a constant say f:=0.003 or similar . The problem is not with the Darcy fuction as that has been professionally coded but the use of a vector in a Solve Block. How do I use, in this case, a vector of flows and pressures to arrive at a balance point / solution for the system?

Regards, Mark
July 30, 2008
You will need to add roughness as an argument to hL.

Personally, I'd use Q|Q| in the definition of hL, rather than Q^2, then you don't need all those Q/|Q| later.

You only need a single value of QA as an initial guess, Given ... Find does the rest.

When you call hL within the Given ... Find block you use fixed values of Reynolds number that have been previously calculated. You should define a Reynolds number function earlier in the worksheet (making sure you use |Q| not just Q in its definition) and call hL with Re(QA,dA) rather than ReA etc.

Currently, your ZA function continues its quadratic behaviour for negative values of QA. Is this what you really want, or should ZA return zero if QA is negative?


stv
10-Marble
July 30, 2008
I have done what you have suggested, but I did not revise the head loss equation as you suggested because I like to change one thing at a time then I know where to look if it breaks. Note I have kept it simple fixed head at the reservoirs but incorporated as suggested the Reynolds fuction in the solve block, note also however that MathCad now fails to arrive at a solution. Why is this?
10-Marble
July 30, 2008
July 30, 2008
1. You haven't defined function darcy within the worksheet (nor referenced it, if it exists in a different worksheet).



2. When you do define it, make sure it caters for zero flow to avoid a possible divide by zero error.



3. Because QA is a vector, QA/|QA| doesn't give what you want it to! Either put a vectorising arrow over it, or, preferably, use sign(QA).



stv
1-Visitor
July 30, 2008
"...I don't want to run before I can walk".
________________________

The problem might be specific to your version ?
That means your *.XMCD restricts the help from lower versions.

jmG