Published: 2010-12-02 | Categories: [»] Engineeringand[»] Electronics.
Last Modified: 2014-07-23

When playing with flows, it may be interesting to have a look at the instantaneous flow rate for, let's say, control purposes. There are large varieties of flow sensors technologies but here I would like to focus on one that is resistant to corrosive fluids (such as acid, bases and solvents) and which allows outputting a voltage so that we can actually do something with it. This is to put in contrast with some technologies that allow visual inspection of the flow rate but which are troublesome to integrate in a process control chain.

The good news is that the flow sensor I will be talking about is relatively cheap and very easy to build once you can get the hands on the key component of the circuit: a differential pressure sensor. These components allow measuring pressure difference between two points and I will be using here the 24PCEFA6D which reads pressure difference of max ±0.5 psi (about 30 mbar).

The idea is to use the viscosity of the fluid to create a small pressure drop across a small orifice such as shown on Figure 1.

Figure 1

The pressure sensor acts as a strain gauge. I will use a regulated split power supply of ±5V built from a [»] TC962 to power the sensor and read the differential output with an AD620 instrumentation amplifier. According to the datasheet of the 24PCEFA6D, a 0.5 psi differential pressure will generate an output between 24 mV and 64 mV. Because I often use a 0...5V range from a microcontroller ADC, I had to use a gain tuneable from 78 to 210. But the datasheet also tell us that the 24PCEFA6D might have an offset of up to ±30 mV due to poor matching of the internal resistors of the bridge (this is the price to pay for low cost sensors; they have version with less offset but they are more expensive). The problem is that there is a risk that the offset might be as high as ±6.3 Volts with a gain of 210 and so there are chances that we go well above the saturation voltage of our circuits.

As a consequence, I decided to use a gain of 75 for the instrumentation amplifier with an offset tuneable from -2.5 Volts to +2.5 Volts. The largest signal expected would then be about 7 Volts which should be ok with a ±9V power supply. The output is then amplified with a tuneable gain ranging from 1 to 3 to access the whole sensor range.

So far so good. But there is an issue with our sensor: its output is not linear with the flow rate. It is possible to show that the flow rate follows approximately a power function in the form Q=α∆Pβ with β usually between 0.1 and 1.

To find the values of α and β we may record the output of the sensor from known flow rates and fitting a power law on the results. But I would like to show here another method.

The idea is to connect two tanks together by some tubing and to place one above the other to force the first tank to empty its content in the second. With a good placement of the tanks, we are able to browse the whole range of flow rate from a maximum value to almost zero. By monitoring the volume of liquid in the tanks and the sensor output in the connecting tube, we may obtain a lot of data in a single experiment. The concept is shown on Figure 2.

Figure 2

To monitor the volume in the tanks, I have simply used a second pressure sensor (the circuit is built the same) to monitor the hydrostatic pressure of the fluid in the second tank. By using a tank with constant shape (such as a cylinder), we may derive the volume directly from the sensor output. However, this is not as accurate as it may seem because we should select a tank large enough to prevent the flow rate inside the tank to be too large. Bernoulli law states that the pressure is equal to hydrostatic pressure plus a term dependent on the speed of the fluid: P=ρgz+½ρv2 so if we want to read z (the height) from P, we should try to have ½ρv2<<ρgz.

The result of an experiment is shown on Figure 3. The beginning and end of the data should be discarded because of experimental issues.

Figure 3 - Black = hydrostatic pressure; Red = flow sensor.

Because the volume inside the tank can be expressed as the integral of the flow rate over time, we may say that:


It might be tempting to derivate the equations rather than integrating them but it is generally not a good idea since derivation tends to increase noise while integration reduces it.

Rather than trying to fit the data using the integrated equation, I decided to split the integral into 10 regions (you may use more regions if you want):

Then I postulate a value for β' by scanning from 0.1 to 1 and compute the value of α' for every segment of data:

Theoretically, we know that we have selected the right value of β' if all the α'i agrees on the same value. So we can check the validity of a given β' by looking at the standard deviations of the α' set. The result for our data is shown on Figure 4.

Figure 4

We may then check the validity of the model by plotting the expected volume (integrated from the data and our model) and compare it to the second sensor output. The result is given on Figure 5.

Figure 5

The integrated curve perfectly fits the data so we know that our model does correctly represent the flow behaviour over the range tested.

Finally, I tested the sensor accuracy by modulating the flow rate with a valve and weighting the total amount of fluid. The flow rate is shown on Figure 6.

Figure 6

A total volume of 100.5 ml was measured experimentally and the integrated flow rate gave an expected 97.9 ml resulting in a 2.5% error. This can be considered as an extremely good result and the error can be explained by the Bernoulli phenomenon discussed previously.

The complete assembly costs less than 50 EUR, gives very nice results and is also resistant to corrosive fluids. So, what could we ask more?

[⇈] Top of Page

You may also like:

[»] Counting Bubbles with Laplace Pressure

[»] Over-pressure Electric Valve

[»] Building a Flow-Controlled Aspiration Pump

[»] Steady Streams in the Lab #1

[»] Flow-rate Controlled Peristaltic Pump