Liquid Measurement Device for a Tank

20210293590 · 2021-09-23

    Inventors

    Cpc classification

    International classification

    Abstract

    A measurement device for measurement of liquid contained in a tank, particularly a fuel tank on an aircraft or boat. The device has a first pressure sensor for mounting outside the tank, on a liquid outlet pipe connected to the tank to measure the pressure of liquid in the outlet pipe. A second pressure sensor measures the pressure in the ullage space above liquid in the tank. A venturi flow meter mounted in the outlet pipe measures liquid flow through the outlet pipe. The device also includes an accelerometer. The quantity of liquid in the tank can be calculated in response to measured values received from the pressure sensors, the accelerometer and the venturi.

    Claims

    1. A measurement device for determining the quantity of liquid in a tank comprising: a first pressure sensor for mounting on a liquid outlet pipe connected to the tank for discharging liquid from the tank to measure a first pressure value for liquid in the outlet pipe; a second pressure sensor for measuring a second pressure value in an ullage space above the liquid in the tank an accelerometer; a flow measurement device to determine the rate of liquid flow through the outlet pipe; and means for calculating the quantity of liquid in the tank in response to the measured values from the pressure sensors, accelerometer and flow measurement device.

    2. The device as claimed in claim 1, wherein the calculating means is operable to determine the pressure at a selected reference point (R) associated with the tank based on the first pressure value.

    3. The device as claimed in claim 2, wherein the selected reference point (R) is at a bottom of the tank.

    4. The device as claimed in claim 1, wherein the flow measurement device is a differential pressure meter.

    5. The device as claimed in claim 4, wherein the differential pressure meter comprises a venturi flow meter.

    6. The device as claimed in claim 5, wherein the device comprises a body having a liquid passageway extending through the body between an inlet port and an outlet port, the first pressure sensor being mounted at the liquid passageway adjacent the inlet port.

    7. The device as claimed in claim 6, wherein the venturi flow meter (120) is provided in the liquid passageway (121).

    8. The device as claimed in claim 6, wherein at least one 3-axis accelerometer is mounted on the body.

    9. The device as claimed in claim 6, wherein at least one 3-axis gyroscope is mounted on the body.

    10. The device as claimed in claim 1, wherein the second pressure sensor is mounted at a vent pipe on the tank.

    11. The device as claimed in claim 1, wherein the second pressure sensor is mounted at a fuel cap on the tank.

    12. The device as claimed in claim 1, wherein at one or more pressure sensing locations a plurality of pressure sensors are provided.

    13. The device as claimed in claim 7, wherein a plurality of pressure sensors are mounted on the body to measure static pressure at an inlet of the venturi and at a throat of the venturi.

    14. The device as claimed in claim 7, wherein a plurality of pressure sensors are mounted on a vent pipe or cap on the tank to provide the second pressure value.

    15. The device as claimed in claim 1, wherein a second flow measurement device is provided for mounting on a liquid return line connected to the tank.

    16. The device as claimed in claim 15, wherein the second flow measurement device is a differential pressure meter.

    17. The device as claimed in claim 16, wherein the differential pressure meter is a venturi flow meter.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0038] The invention will be more clearly understood from the following description of some embodiments thereof, given by way of example only, with reference to the accompanying drawings.

    [0039] FIG. 1 is an isometric schematic view of a simplified tank containing liquid having an external tank liquid content measurement device according to the invention.

    [0040] FIG. 2 is an isometric view of the extended free-surface of the liquid showing the normal SP from the plane surface at P to the sensor S and the normal QR from the plane surface at Q to the reference point R.

    [0041] FIG. 3 is the projection of the free-surface onto the plane {Z.sub.P, X.sub.P}, centered on the surface point P.

    [0042] FIG. 4 is the projection of the free-surface onto the {Z.sub.P, Y.sub.P} plane, centered on the surface point P.

    [0043] FIG. 5 is the projection of the free-surface onto the {Z.sub.Q, X.sub.Q} plane, centered on the surface point Q.

    [0044] FIG. 6 is the projection of the free-surface onto the {Z.sub.Q, Y.sub.Q} plane, centered on the surface point Q.

    [0045] FIG. 7 depicts the normal from the free-surface at P to the first sensor S.

    [0046] FIG. 8 depicts the normal from the free-surface at Q to the reference point R.

    [0047] FIG. 9 depicts a schematic sectional elevational view of a rectangular tank, containing liquid which flows from the tank via an outlet pipe.

    [0048] FIG. 10 depicts a schematic cross-sectional view of a measurement device according to the invention comprising pressure sensors, signal conditioning (amplifiers, analog-to-digital (A/D) converters), inertial measurement unit (IMU), wired/wireless communication interfaces and power-supply, the device being installed to monitor pressure head and volume flow-rate in a tank supply line.

    [0049] FIG. 11 depicts a schematic cross-sectional view of a simplified measurement device comprising pressure sensors, signal conditioning (amplifiers, analog-to-digital (A/D) converters), wired interface and power supply, for installation in applications where liquid is returned to the tank with a requirement to monitor volume flow-rate in the tank return line.

    [0050] FIG. 12 depicts a schematic isometric view of a measurement device according to the invention comprising pressure sensors, signal conditioning (amplifiers, analog-to-digital (A/D) converters), inertial measurement unit (IMU), wired/wireless communication interfaces and power-supply, including pressure sensors in a liquid return line to the tank, and means to measure air vent or tank ullage pressure.

    [0051] FIG. 13 depicts a schematic sectional elevational view of two inter-connected tanks with individual vent ports and their bases at different heights having the measurement device installed in a single outlet pipe.

    [0052] FIG. 14 is a schematic illustration of portion of another measurement device according to the invention for monitoring tank ullage pressure in a vent line or fuel tank cap.

    DETAILED DESCRIPTION OF THE INVENTION

    [0053] FIG. 1 depicts a simplistic tank 100 that may be used to store fuel 105 onboard a vehicle, such as an aircraft or boat, that is subject to movement and therefore acceleration. The tank 100 may have many different configurations in order to fit within the aircraft structure or other environment within which the tank 100 is located. For example, the tank 100 may have an irregular geometry that conforms to the airfoil and taper of the enclosing wing. In many light aircraft, the tank 100 is an integral part of the wing structure itself. Those skilled in the art will appreciate that the invention can be utilized within any liquid container, where liquid quantity and rate of flow are of particular interest. Furthermore, the invention is not limited to any particular liquid type, although for convenience herein we will refer to a fuel tank 100 installed in an aircraft.

    [0054] A fuel tank outlet pipe 101 connects between the tank 100 and the aircraft engine (not shown). The outlet pipe 101 contains fuel, either in motion such as when the engine is consuming fuel, or at rest as may be the case when the engine is stopped. The outlet pipe 101 may exit the tank 100 at any location that is appropriate for the type of associated installed internal pickup pipe 103 connected to the outlet pipe 101 which is generally located at the lowest point within the tank 100 to extract as much fuel as possible. The pickup pipe 103 may be fixed or movable to ensure continuous fuel delivery on aircraft that perform aerobatic maneuvers.

    [0055] A first measurement device 106 of the present invention is located external to the tank 100 and is installed in the outlet pipe 101. A tank ullage region 104, or region within the tank 100 above a fuel surface 102, is vented via vent port 108 adjacent a top of the tank 100, or any other suitable port that allows air within the ullage region 104 to equalize with external air pressure. In general aviation, the vent port 108 is typically oriented into the airflow to provide a positive pressure to the ullage region 104 and promote fuel flow to the engine. An ullage pressure sensor 109 is connected to the vent pipe 108 and measures the pressure within the ullage region 104. Anyone skilled in the art will appreciate that the ullage pressure sensor 109 may be attached to a fuel cap or other accessible port on the tank 100 that is located at the highest point within the tank 100.

    [0056] On some aircraft, an additional return fuel line 107 is installed to return unused or recycled fuel back to the tank 100. In this scenario, a simplified second measurement device 110 is inserted into the return fuel line 107 to measure volume flow-rate, ensuring that the total flow consumed is consistent with the quantity of fuel in the tank 100 at all times.

    [0057] A reference point R, located internally or externally to the tank 100, is selected as the origin of the axes used to reference the pressure head measured by the measurement device 106 of the present invention. The reference point R is chosen to measure the pressure head at a convenient location, such as the projection of the centroid of the liquid volume onto the tank base, in order to minimize the variation in pressure head with surface orientation. Analysis of the relationship between tank fill level and the centroid of the liquid affords the opportunity to utilize a dynamic reference point, thereby minimizing the effects of local acceleration on surface orientation at all fill levels. This optimization is not possible in capacitive or float-based liquid measurement systems as the sensor locations are limited by design and accessibility constraints.

    [0058] Any change in direction or velocity of an aircraft from level flight will produce a local acceleration that will change the orientation of the free surface 102 of the fuel 105 and therefore affect the pressure head measurement at R. The magnitude of the acceleration vector will also impact the pressure head measurement. Referencing FIG. 2, the free surface 102 of the fuel 105 is tilted by a roll angle β about the X-axis and a pitch angle α about the Y-axis due to the effects of the local acceleration vector ā.

    [0059] To compute the quantity of liquid in the tank 100, it is necessary to determine the pressure head at the specified tank reference point R and then relate this to the volume of liquid V within the tank 100, given knowledge of the tank geometry and local acceleration vector ā.

    [0060] As the measurement device 106 may be located some distance from the tank 100 it is measuring, it may be challenging to accurately determine the location of the measurement device 106 in relation to the reference point R of the tank 100. An “auto-locate” algorithm has been developed to compute the location of the measurement device 106 in relation to the reference point R.

    Operational Modes

    [0061] In normal operation the invention operates as a Fuel System Health Monitor (FSHM) that continuously monitors each tank 100 for abnormalities that affect flight safety by comparing fuel quantity values computed using different methods. One method integrates volume flow-rate (accounting for return flow, if implemented) over known time periods and subtracts the result from an initial starting quantity. The other method computes quantity by determining pressure head at a tank reference point R and then extracting quantity from a mathematical model of the tank 100. The key operational steps are detailed in Algorithm 3.

    [0062] It is possible to configure the invention into a special mode that continuously computes the location of the first pressure sensor S relative to the tank reference point R. This is initiated when fuel flows above a specified threshold value. Sufficient data points (α, β, RQ, ϕ) are captured to ensure that the sensor location can be ascertained to the required accuracy during a short flight. The key operational steps are detailed in Algorithm 4.

    Venturi Flow-Meter

    [0063] Measurement of volume flow-rate using a Venturi is an elegant solution as it: provides the lowest non-recoverable pressure loss of any constriction-based flow-meter; requires minimum additional hardware (an additional pressure sensor); promotes long-term reliability due to its inherent simplicity; maintains unrestricted flow, due to lack of moving parts, easing certification whilst maintaining flight safety.

    [0064] Referring in particular to FIG. 10, the first measurement device 106 comprises a housing or body 115 within which is mounted a venturi 120. The venturi 120 has a fuel passageway 121 with an inlet section 122 (connected to tank 100) and an outlet section 123 (connected to engine) interconnected by a narrowed throat center section 124. An inlet pressure sensor 125 measures the static pressure at the inlet section 122. A center section pressure sensor 126 measures the static pressure at the center section 124. Pressure signals from the pressure sensors 125, 126 and also from the ullage pressure sensor 109 undergo signal conditioning 128 and are communicated to a controller 129 having a microprocessor for making the required calculations. The controller 129 has a power supply 130, a wired interface 131 for connection to an external display device 134 (FIG. 12) and wireless radio 132 for remote communication. An inertial measurement unit 133 is connected to the controller 129. The inertial measurement unit 133 comprises a 3-axis accelerometer and optionally also a 3-axis gyroscope to improve performance of the accelerometer.

    [0065] Referring in particular to FIG. 11, the second measurement device 110 for mounting in the fuel return line 107 is shown. This is largely similar to the first measurement device 106 shown in FIG. 10 and like parts similar are assigned the same reference numerals. In this case a housing or body 135 contains the venturi 120 which is mounted in the return fuel line 107. The inlet section 122 of the venturi 120 receives fuel returning from the engine and the outlet section 123 is connected to the tank 100.

    [0066] FIG. 12 shows a tank measurement system according to the invention incorporating the measurement devices 106, 110 shown in FIG. 10 and FIG. 11. Instead of being connected into the device 106 as shown in FIG. 12, the ullage pressure sensor 109 may be part of a separate third measurement device 140 as shown in FIG. 14, for mounting on or connected to the vent pipe 108 or cap of the tank 100.

    [0067] FIG. 10 depicts a cross-section of the fuel-supply Venturi component 120 of the present invention, comprising pressure sensors 125, 126 (p.sub.s, p.sub.v) that measure the static pressures (P.sub.1, P.sub.2) at an inlet 122 and at a center section 124 of the Venturi 120 respectively. The inlet 122 and center 124 cross-sectional areas are (A.sub.1, A.sub.2) respectively. The inlet 122 velocity is u.sub.1 and the center velocity is u.sub.2. The volume flow rate Q is given by:


    Q=u.sub.1. A.sub.1=u.sub.2. A.sub.2.  (1)

    The Bernoulli equation for viscous flow between p.sub.1 and p.sub.2 can be expressed as:

    [00001] ( p 1 - p 2 ) = ρ 2 .Math. ( u 2 2 - u 1 2 ) + ρ .Math. g .Math. ( h 2 - h 1 ) + ρ .Math. g .Math. h loss , ( 2 )

    where h.sub.1, h.sub.2 are the elevations of the pressure sensors 125, 126 above an arbitrary datum and h.sub.loss is the irreversible head loss in the Venturi 120 due to friction. Acceleration due to gravity and disturbing forces is represented g, and ρ is the density of the liquid.

    [0068] Substituting Eq. (1) into Eq. (2) provide the volume flow rate:

    [00002] Q = A 1 .Math. 2 ρ .Math. ( p 1 - p 2 ) - ρ .Math. g .Math. ( h 2 - h 1 ) - ρ .Math. g .Math. h loss ( A 1 A 2 ) 2 - 1 , = A 2 .Math. 2 ρ .Math. ( p 1 - p 2 ) - ρ .Math. g .Math. ( h 2 - h 1 ) - ρ .Math. g .Math. h loss 1 - ( A 2 A 1 ) 2 . ( 3 )

    [0069] Neglecting the change in elevation between p.sub.1 and p.sub.2 and considering the head loss h.sub.loss as a discharge coefficient Cd, Eq. (3) can be formulated as:

    [00003] Q = C d .Math. A 1 .Math. 2 ρ .Math. ( p 1 - p 2 ) ( A 1 A 2 ) 2 - 1 , = C d .Math. A 2 .Math. 2 ρ .Math. ( p 1 - p 2 ) 1 - ( A 2 A 1 ) 2 . ( 4 )

    For a well-designed Venturi 120, C.sub.d can be as high as 0.98.

    [0070] Consider FIG. 9 which depicts a cross-section of a tank system 200 containing liquid 201. As a first approximation, the liquid flow is considered stationary and laminar. Also as the top of the tank 200 is open, it is assumed that the pressure at p.sub.0 is equal to the tank ullage pressure p.sub.u. The Reynolds number R.sub.e is defined by the measured average velocity u.sub.a=u.sub.1=u.sub.2 (as pipe 202 is constant diameter), the diameter D of an inlet section 203 of the Venturi pipe 202 and the kinematic viscosity of the liquid v as:

    [00004] R e = u a .Math. D v . ( 5 )

    The kinematic viscosity can also be defined by the ratio of the dynamic viscosity μ and the density of the liquid ρ as:

    [00005] v = μ ρ . ( 6 )

    [0071] The volume flow rate can be expressed through the continuity equation as:


    Q=u.sub.a.Math.A,  (7)

    where A is the cross-sectional area of the pipe 202 at the inlet section 203 of the Venturi pipe 202, defined as:

    [00006] A = π .Math. D 2 4 . ( 8 )

    Therefore, the volume flow rate (Eq. 7) an be written:

    [00007] Q = u a .Math. π .Math. D 2 4 . ( 9 )

    Thus, the average velocity u.sub.a at the inlet section 203 of the Venturi pipe 202 is:

    [00008] u a = 4 .Math. Q π .Math. D 2 . ( 10 )

    Therefore, the dimensionless Reynolds number (Eq. 5) based on the definition of the average velocity (Eq. 10) can also be expressed through the volume flow rate (Eq. 9) as:

    [00009] R e = u a .Math. D v = 4 .Math. Q π .Math. v .Math. D . ( 11 )

    [0072] The length L of the pipe 202 between the tank 200 and the Venturi 205 and the relative height h.sub.2 of the Venturi inlet S above the chosen datum R is defined by the installation. The static pressure p.sub.2=p.sub.s is measured by the pressure sensor at the venturi inlet S.

    [0073] An analytical solution can be given for the change in the height h.sub.0-h.sub.1 of the free-surface 206 relative to the sensor S as a function of the dimensionless Reynolds number R.sub.e and the volume flow rate Q. The pressure p.sub.1 can be expressed as:

    [00010] p 1 = p 0 + ρ .Math. g .Math. ( h 0 - h 1 ) , = p u + ρ .Math. g .Math. ( h 0 - h 1 ) . ( 12 )

    [0074] The Bernoulli equation for viscous flow between p.sub.1 and p.sub.2 can be expressed in terms of “heads” as:

    [00011] p 1 ρ .Math. g + u 1 2 2 g . + h 1 = p 2 ρ .Math. g + u 2 2 2 g . + h 2 + h loss , ( 13 )

    where h.sub.loss is the irreversible head loss due to all components of the pipe 202 between p.sub.1 and p.sub.2. The energy loss e.sub.loss associated with the head loss (Eq. 13) can be expressed using the Darcy-Weisbach equation:

    [00012] e loss = λ .Math. L D .Math. u a 2 2 , ( 14 )

    which gives

    [00013] h loss = e loss g = λ .Math. L D .Math. u a 2 2 .Math. g , ( 15 )

    where λ is the dimensionless coefficient of friction which depends on the Reynolds number (Eq. 10) for laminar flow as:

    [00014] λ = 64 R e = 64 .Math. v u a .Math. D = 16 .Math. π .Math. v .Math. D Q . ( 16 )

    Therefore the head loss (Eq. 15) can be expressed in terms of average velocity as:

    [00015] h loss = 32 .Math. v .Math. L .Math. u a g .Math. D 2 , ( 17 )

    or in terms of volume flow rate as:

    [00016] h loss = 128 .Math. v .Math. L .Math. Q π .Math. g .Math. D 4 , ( 18 )

    Applying the Bernoulli equation (Eq. 13) to the length of pipe from p.sub.1 to p.sub.2, we get:

    [00017] ( p 1 - p 2 ) ρ .Math. g = Δ p ρ .Math. g = h loss , ( 19 )

    with the pressure drop over the pipe length given by:

    [00018] ( p 1 - p 2 ) = Δ p = 32 .Math. ρ .Math. v .Math. L .Math. u a D 2 = 128 .Math. ρ .Math. v .Math. L .Math. Q π .Math. D 4 . ( 20 )

    Combining Eqs. (12) and (19) we can define the height difference from the free-surface to p.sub.2 as:

    [00019] ( h 0 - h 2 ) = ( p 2 - p 0 ) ρ .Math. g + h loss . ( 21 )

    Noting that p.sub.z=p.sub.2 and p.sub.u=p.sub.0, the pressure head SP at the sensor S can be expressed in terms of pressure difference and volume flow rate (Eq.18) as:

    [00020] SP = ( h 0 - h 2 ) = ( p s - p u ) ρ .Math. g + 128 .Math. v .Math. L .Math. Q π .Math. g .Math. D 4 . ( 22 )

    [0075] FIG. 2 depicts an isolated view of the extended free-surface 102 of the liquid 105 when subjected to external accelerations in both pitch and roll. Point P on the free-surface 102 is the location of the normal to the first pressure sensor S (pressure sensor 125) on the measurement device 106. Point Q on the free-surface 102 is the location of the normal to the reference point R on the tank 100.

    [0076] Knowledge of the local acceleration vector a and the location of the first sensor S of the measurement device is required to compute the perpendicular distance QR from point Q on the free-surface to the reference point R. The pressure head experienced at R is obtained from the height of the fuel above the reference R and the magnitude of the local acceleration ā.

    [0077] FIG. 3 depicts the projection of the free-surface onto the {Z.sub.P,X.sub.P} plane, centered on the point P (x.sub.p,y.sub.p,z.sub.p), which is the normal from the plane to the first sensor S (x.sub.s,y.sub.s,z.sub.s). The distances along each of the {Z.sub.P,X.sub.P} axes from S to P are (z.sub.sp, x.sub.sp) respectively. Consider Δ SMP:


    x.sub.sp=z.sub.sp.Math.tan α.  (23)

    [0078] FIG. 4 depicts the projection of the free-surface onto the {Z.sub.P,Y.sub.P} plane, also centered on the point P (x.sub.p,y.sub.p,z.sub.p), which is the normal from the plane to the first sensor S (x.sub.s,y.sub.s,z.sub.s). The distances along each of the {Z.sub.P,Y.sub.P} axes from S to P are (z.sub.sp, y.sub.sp) respectively. Consider Δ SNP:


    y.sub.sp=z.sub.sp.Math.tan β.  (24)

    [0079] FIG. 7 depicts the normal on the free-surface from P (x.sub.p,y.sub.p,z.sub.p) to S (x.sub.s,y.sub.s,z.sub.s). Let θ be the angle that the normal makes with the Z.sub.P axis. Consider Δ SPJ:

    [00021] θ = tan - 1 ( x sp 2 + y sp 2 z sp ) . ( 25 )

    [0080] Substituting equations (23) and (24) into (25) and define SP as the distance from S to P gives:


    θ=tan.sup.−1√{square root over (tan.sup.2α+tan.sup.2β)},  (26)


    z.sub.sp=SP.Math.cos θ.  (27)

    [0081] These equations establish the relationship between S and P via (x.sub.sp, y.sub.sp, z.sub.sp). Furthermore, P (x.sub.p,y.sub.p,z.sub.p) is defined in terms of S (x.sub.s,y.sub.s,z.sub.s) as:


    x.sub.p=x.sub.s+x.sub.sp,


    y.sub.p=y.sub.s−y.sub.sp,


    z.sub.p=z.sub.s−z.sub.sp,  (28)

    [0082] The normal from S to P is defined as:

    [00022] n ^ = SP .fwdarw. = .Math. ( x s - x p ) , ( y s - y p ) , ( z s - z p ) .Math. , = .Math. - x sp , y sp , z sp .Math. . ( 29 )

    [0083] The equation of the surface plane 102 is therefore given by:


    x.sub.sp(x−x.sub.p)+y.sub.sp(y−y.sub.p)+z.sub.sp(z−z.sub.p)=0,


    custom-character(−x.sub.sp)x+(y.sub.sp)y+(z.sub.sp)z−(−x.sub.spx.sub.p+y.sub.spy.sub.p+z.sub.spz.sub.p)=0.  (30)

    [0084] The distance RQ from the reference point R (x.sub.r,y.sub.r,z.sub.r) to the surface plane at point Q is given by:

    [00023] RQ = .Math. ( - x sp x r ) + ( y sp y r ) + ( z sp z r ) - ( - x sp x p + y sp y p + z sp z p ) .Math. x sp 2 + y sp 2 + z sp 2 . ( 31 )

    RQ is the distance to the free-surface from the reference point R, and when combined with the magnitude of the local acceleration vector custom-character, enables the pressure head at R to be determined.

    Determine Quantity of Liquid in Tank

    [0085] The quantity of liquid in the tank 100 is determined from a knowledge of the: orientation of the free-surface 102 (α, β) and the magnitude of the acceleration vector; pressure head RQ at the tank 100 reference point R; mathematical model relating quantity to free-surface 102 orientation and pressure head.

    Orientation of the Free-Surface and G-Loading

    [0086] The angles associated with the orientation of the free-surface 102 and the magnitude of the G-loading are easily derived from the local acceleration vector computed in the measurement device from accelerometer data. More stable, accurate and responsive acceleration measurements are obtained by using an Inertial Measurement Unit (IMU) which provides accelerometer and gyroscope data that can be integrated using a Kalman filter or equivalent sensor fusion algorithm.

    Pressure Head at the Tank Reference Point

    [0087] This is obtained indirectly by applying an algorithm to measurements of the static pressure at the first sensor S and the tank ullage region 104. The effects of G-loading are applied during the calculation of pressure head via the acceleration parameter g.

    Tank Model

    [0088] As fuel tanks are typically complex geometries, an efficient method of encapsulating the tank geometry is to use a look-up table (LUT) that contains sufficient data points to achieve the desired accuracy.

    [0089] The LUT is generated using the open-source FreeCAD tool running a python script that successively displaces sections of a solid model of the tank 100 by an air box to simulate the free-surface 102 of the liquid. The tank model is tilted along the pitch and roll axes to emulate the effects of the local acceleration vector, which is always perpendicular to the free-surface 102. In this way, a comprehensive set of data points can be generated that relate free-surface 102 orientation (α, β) and pressure head (at a specified tank reference point R) to liquid quantity.

    [0090] Trilinear interpolation can be used to extract the exact quantity, however by constraining the angles (α, β) to 1-degree increments and the pressure head to 1 mm increments, the complexities of trilinear interpolation can be avoided at the expense of increased non-volatile memory to accommodate the larger LUT. Sample pseudo-code illustrating the algorithm is listed in Algorithm 1.

    Sensor Auto-Location

    [0091] FIG. 5 depicts the projection of the free-surface 102 onto the {Z.sub.Q, X.sub.Q} plane, centered on the point Q (x.sub.Q,y.sub.Q,z.sub.Q), which is the normal from the plane to the reference point R (x.sub.R,y.sub.R,z.sub.R). The distances along each of the {Z.sub.Q, X.sub.Q} axes from R to Q are (z.sub.RQ,x.sub.RQ) respectively. Consider Δ QER:


    x.sub.RQ=z.sub.RQ.Math.tan α.  (32)

    [0092] FIG. 6 depicts the projection of the free-surface onto the {Z.sub.Q, Y.sub.Q} plane, also centered on the point Q (x.sub.Q,y.sub.Q,z.sub.Q), which is the normal from the plane to the reference point R (x.sub.R,y.sub.R,z.sub.R). The distances along each of the {Z.sub.Q, Y.sub.Q} axes from R to Q are (z.sub.RQ,y.sub.RQ) respectively. Consider Δ QFR:


    y.sub.RQ=z.sub.RQ.Math.tan β.  (33)

    [0093] FIG. 8 depicts the normal on the free-surface from Q (x.sub.Q,y.sub.Q,z.sub.Q) to R (x.sub.R,y.sub.R,z.sub.R). Let ϕ be the angle that the normal makes with the z.sub.R axis. Consider Δ QRK:

    [00024] ϕ = tan - 1 ( x RQ 2 + y RQ 2 z RQ ) . ( 34 )

    Substituting equations (32) and (33) into equation (34) and defining RQ as the distance from R to Q gives:


    ϕ=tan.sup.−1√{square root over (tan.sup.3α+tan.sup.2β)},  (35)


    z.sub.RQ=RQ.Math.cos ϕ.  (36)

    These equations establish the relationship between R and Q via (x.sub.RQ, y.sub.RQ, z.sub.RQ). Furthermore, Q (x.sub.Q, y.sub.Q, z.sub.Q) is defined in terms of R (x.sub.R, y.sub.R, z.sub.R) as:


    x.sub.Q=x.sub.R−x.sub.RQ,


    y.sub.Q=y.sub.R+y.sub.RQ,


    z.sub.Q=z.sub.R+z.sub.RQ,  (37)

    The normal from R to Q is defined as:

    [00025] n ^ = RQ .fwdarw. = .Math. ( x R - x Q ) , ( y R - y Q ) , ( z R - z Q ) .Math. , = .Math. x RQ , - y RQ , - z RQ .Math. . ( 29 )

    The equation of the surface plane 102 is therefore given by:


    x.sub.RQ(x−x.sub.Q)−y.sub.RQ(y−y.sub.Q)+x.sub.RQ(z−z.sub.Q)=0,


    custom-character(x.sub.RQ)x−(y.sub.RQ)y−(x.sub.RQ)z−(x.sub.RQx.sub.Q−y.sub.RQy.sub.Q−z.sub.RQz.sub.Q)=0.  (39)

    Equations 38 and 39 relate to the same plane, therefore:


    (−x.sub.sp)x+(y.sub.sp)y+(z.sub.sp).sup.2−(−x.sub.spx.sub.p+y.sub.spy.sub.p+x.sub.spx.sub.p)=(x.sub.RQ)x−(y.sub.RQ)y−(x.sub.RQ)z−(x.sub.RQx.sub.Q−y.sub.RQy.sub.Q−z.sub.RQz.sub.Q).  (40)

    The distance SP from the first sensor S (x.sub.s,y.sub.s,z.sub.s) to the surface plane at point P is given 1

    [00026] SP = .Math. ( - x RQ ) x S + ( y RQ ) y S + ( z RQ ) z S - ( - x RQ x Q + y RQ y Q + z RQ z Q ) .Math. x RQ 2 + y RQ 2 + z RQ 2 . ( 41 )

    It is possible to compute the location of the sensor S by solving 3 equations (41) in 3 unk (x.sub.s, y.sub.s, z.sub.s), given 3 independent data sets with the following parameters: [0094] custom-characterx.sub.s, y.sub.s, z.sub.scustom-character location of first sensor S (unknown) [0095] custom-characterx.sub.R, y.sub.R, z.sub.Rcustom-character location of reference point R [0096] SP distance of free-surface from first sensor, |{right arrow over (SP)}| [0097] RQ distance of free-surface from reference point, |{right arrow over (RQ)}| [0098] α, β pitch & roll angles of free-surface [0099] θ=ϕ=tan.sup.−1√{square root over (tan.sup.2α+tan.sup.2β)} angle {right arrow over (S)}P & {right arrow over (R)}Q deviate from vertical [0100] custom-characterx.sub.RQ, y.sub.RQ, z.sub.RQcustom-character custom-character(Z.sub.RQ.Math.tan α), (z.sub.RQ.Math.tan β), RQ. Cos θ)custom-character [0101] custom-characterx.sub.Q, y.sub.Q, z.sub.Q custom-character custom-character(x.sub.R−x.sub.RQ), y.sub.R−y.sub.RQ), (z.sub.R−z.sub.RQ)custom-character
    Assuming 3 versions (i=1,2,3) of equation (41) can be generated for fixed location of the reference point R and first sensor S, the corresponding matrix representation is:

    [00027] [ - x RQ 1 y RQ 1 z RQ 1 - x RQ 2 y RQ 2 z RQ 2 - x RQ 3 y RQ 3 z RQ 3 ] A .Math. [ x S y S z S ] x = [ d 1 d 2 d 3 ] b . ( 42 )

    where


    d.sup.1=(−x.sub.RQ.sup.ix.sub.Q.sup.i)+(y.sub.RQ.sup.iy.sub.Q.sup.i)+(z.sub.RQ.sup.iz.sub.Q.sup.i)±SP.sup.i√{square root over ((x.sub.RQ.sup.i).sup.2+y.sub.RQ.sup.i).sup.2+(z.sub.RQ.sup.i).sup.2)}.  (43)

    Solving the linear system (42) gives the location of the first sensor S (x.sub.s, y.sub.s, z.sub.s):


    x=A.sup.−1.Math.b.  (44)

    Note that equation (43) implies that there are two possible solutions for each d.sup.i and the correct one will be evident by inspection of the resulting location for S. In practice, multiple solutions for S can be computed for different orientations and levels of the free-surface as the tank drains during flight. Statistical analysis of this set of location data enables the most accurate location for S to be determined.

    [0102] The pressure head RP at the tank reference point R is obtained by applying an inverse-interpolation algorithm on the tank model, with inputs α, β and quantity ψ. The tank quantity is obtained with knowledge of an initial quantity and then computing the quantity consumed at subsequent times by integrating the volume flow-rate over a known elapsed time period.

    [0103] By constraining the angles (α, β) to 1 degree increments it is possible to avoid the complexities of inverse-trilinear interpolation whilst re-using the same lookup table (LUT) as required for determining Quantity. Sample pseudo-code is listed in Algorithm 2.

    Pressure Heads in Multiple Interconnected Tanks

    [0104] Consider FIG. 13 which depicts a cross-section of an interconnected dual-tank system 300 comprising first tank 301 and second tank 302 interconnected by pipe 303 extending between the bottom of the tanks 301, 302 and containing liquid 304. The tanks 301, 302 have tank bases 305, 306 respectively which are at different heights and each tank 301, 302 is vented separately with ullage pressures p.sub.u.sup.1 and p.sub.u.sup.2. Liquid may be extracted from the lower tank 302 through outlet 308 under gravity or by a mechanical pump.

    [0105] To minimize the effects of local accelerations on the fuel surfaces 309, 310 choose the reference points, R.sup.1 and R.sup.2 for each tank 301, 302 to be at the center of each tank base 305, 306. With knowledge of the pressure head SP at the first sensor S and the ullage pressures in each tank 301, 302, the pressure heads RQ.sup.1 and RQ.sup.2 at these reference points R.sup.1, R.sup.2 can be computed using the methods described previously for a single tank 301, 302 using Eq. (31). The quantity of liquid in each tank 301, 302 is extracted from mathematical models that are specific to each tank 301, 302 using Algorithm 1.

    [0106] An ullage pressure sensor 109 and a mathematical model of each tank 301, 302 are required to determine the quantity of liquid in interconnected tanks 301, 302. No additional installation work is required if the vent lines 314, 315 are linked to equalize the ullage pressures. The quantity of liquid in each tank 301, 302 is computed by simply changing the location of the reference point from R.sup.1 to R.sup.2 in Eq. (31) and Algorithm 1, and also selecting the corresponding ullage pressure measurement.

    [0107] Single tanks are typically subdivided into sections, separated by internal slosh baffles. These can be considered as a group of interconnected tank sections where the individual pressure heads RQ.sup.i for each section can be computed separately. To minimize variations in the free-surface orientation in each section, the individual X.sub.B.sup.i and Y.sub.B.sup.i reference point values are specified to be the projection of the centroid of each section volume on the tank base. The quantity of liquid in each tank section is extracted from a mathematical model of each section and the associated pressure head RQ.sup.i. The total quantity of liquid in the tank is a summation of the individual quantities in each tank section. This approach assumes that the ullage pressure is constant for all sections but permits a more accurate quantity measurement when the liquid in each section has not yet reached its equilibrium level. Memory resources for the tank section lookup tables are minimized when multiple tank sections are identical.

    [0108] The above examples illustrate the simplicity and flexibility of external pressure sensing in complex tank installations.

    Monitoring Liquid Pump Operation

    [0109] By sampling static pressures, at typical rates of 10 ms, a Fast Fourier Transform (FFT) of the captured signal allows the operational frequencies of the fuel pump(s) to be determined. From this data, it is possible to accurately determine (a) whether the electrical and mechanical pumps are operating, (b) changes that predict impending failure modes, and (c) the speed of the engine that drives the mechanical pump.

    [0110] Continuous logging and analysis of this data is an independent mechanism for monitoring changes in engine/pump health and alerting the pilot in a timely manner, thereby promoting flight safety.

    [0111] Algorithm 1 depicts pseudo-code for extracting liquid quantity from a LUT, simplified by imposing constraints on surface orientation and pressure head inputs.

    [0112] Algorithm 2 depicts pseudo-code for extracting pressure head at the tank reference point from a LUT, simplified by imposing constraints on surface orientation inputs.

    [0113] Algorithm 3 depicts the steps carried out during “fuel system health monitoring”. Fuel quantity is periodically derived from two independent sources: (a) volume flow-rate is integrated over time and subtracted from a known initial quantity, and (b) pressure head at the reference point and free-surface orientation enable fuel quantity to be extracted from a tank model. Flight safety is enhanced as the pilot is alerted to any inconsistencies in these two values.

    [0114] Algorithm 4 depicts the steps carried out to accurately locate the first pressure sensor in relation to the tank reference point.

    [0115] Algorithms

    TABLE-US-00001 Algorithm 1 Extract Quantity from LUT Require: Range check and limiting on all input values Require: LUT organised as (N×4) matrix with each row comprising: α, β, RQ & Ψ  1: function GETQUANTITY(α, β, RQ) custom-character  Pitch, roll & pressure head at R respectively  2:  Ψ ← −1  custom-character  Initialise quantity to detect lookup error  3:  for i ← 1. N do   custom-character  For all rows in lookup table  4:   if LUT[i][0] = α then      custom-character  α value detected  5:    if LUT[i][0] = β then      custom-character  β value detected  6:     if LUT[i][2] = RQ then     custom-character  RQ value detected  7:      Ψ ← LUT[text missing or illegible when filed ][3]    custom-character  Extract fuel quantity  8:     end if  9:    end if 10:   end if 11:  end for   return Ψ      custom-character  Return quantity 12: end function text missing or illegible when filed indicates data missing or illegible when filed

    TABLE-US-00002 Algorithm 2 Extract RQ from LUT Require: Range check and limiting on all input values Require: LUT organised as (N×4) matrix with each row comprising: α, β, RQ & Ψ Require: Min and Max values for α, β and Ψ in LUT  1: function GETPRESSHEADATR(α, β, Ψ) custom-character  Pitch, roll & quantity respectively  2:  Ψ.sub.1 ← Ψ.sub.max custom-character  Assign maximum value to upper quantity  3:  Ψ.sub.0 ← Ψ.sub.min custom-character  Assign minimum value to lower quantity  4:  i1 ← 0 custom-character  Reset upper index  5:  i0 ← 0 custom-character  Reset lower index  6:  RQ ← −1 custom-character  Initialise pressure head to detect lookup error  7:  for i ← 1, N do custom-character  For all rows in lookup table  8:   if LUT[i][0] = α then custom-character  α value detected  9:    if LUT[i][1] = β then custom-character  β value detected 10:     if LUT[i][4] ≥ Ψ then custom-character  Upper Ψ value detected 11:      if LUT[i][4] < q1 then custom-character  Check & assign lower value 12:       Ψ.sub.1 ← LUT[i][4] custom-character  Assign lower quantity 13:       i1 ← i custom-character  Assign upper index 14:      end if 15:     end if 16:     if LUT[i][4] ≤ Ψ then custom-character  Lower Ψ value detected 17:      if LUT[i][4] > q0 then custom-character  Check & assign higher value 18:       Ψ.sub.0 ← LUT[i][4] custom-character  Assign upper quantity 19:       i0 ← i custom-character  Assign lower index 20:      end if 21:     end if 22:    end if 23:   end if 24:  end for 25:  [00028] RQ LUT [ i 0 ] [ 3 ] + ( LUT [ i 1 ] [ 3 ] - LUT [ i 0 ] [ 3 ] ) × ( Ψ - Ψ 0 Ψ 1 - Ψ 0 ) custom-character  Linear interpolation  return RQ custom-character  Return pressure head at reference point R 26: end function

    TABLE-US-00003 Algorithm 3 Fuel Tank Health Monitoring Require: Tank model (LUT) relating free-surface orientation & pressure head to quantity  1: {D.sub.1,D.sub.2} ← values custom-character  Assign Venturi inlet & center diameters respectively   2: {L} ← values custom-character  Assign combined pickup & outlet pipe length   3: {p,v} ← values custom-character  Assign liquid properties (density, kinematic viscosity)   4: {x text missing or illegible when filed  ,  text missing or illegible when filed  ,  text missing or illegible when filed  } ← values custom-character  Assign location of first pressure sensor relative to refernce point   5: Q text missing or illegible when filed  ΔΨ ← values custom-character  Assign tolerances on flow-rate & quantity respectively   6: mode ← health-monitor custom-character  Enable fuel system heath monitoring   7: repeat  8:  { text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  } ← values custom-character  Capture static pressures & temperatures   9:  {p text missing or illegible when filed  ,p text missing or illegible when filed  ,p text missing or illegible when filed  } = APPLYTEMPCOMP( text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  ) custom-character  Apply temperature compensation  10:  { text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  } ← values custom-character  Capture local acceleration from IMU  11:  {x text missing or illegible when filed  ,y text missing or illegible when filed  ,z text missing or illegible when filed  } ← values custom-character  Capture local angular rates from IMU  12:  {α, β, |α|} = GETANGLES(x text missing or illegible when filed  , y text missing or illegible when filed  , z text missing or illegible when filed  , x text missing or illegible when filed  , y text missing or illegible when filed  , z text missing or illegible when filed  ) custom-character  Compute surface angles & G-loading  13:  Q = GETFLOWRATE(p text missing or illegible when filed  , p text missing or illegible when filed  , D.sub.1. D.sub.2, p) custom-character  Compute volume flow-rate  14:  if (Q < Q text missing or illegible when filed  then custom-character   Flow not used as below Q.sub.min  15:   go to 27 custom-character  Read parameters & compute volume flow-rate again  16:  else if (Q text missing or illegible when filed  < Q.sub.min) and (Q.sub.i ≥ Q.sub.min) then custom-character  Flow just started  17:   Ψ text missing or illegible when filed  ← Ψ custom-character  Store initial quantity in non-volatile memory  18:  end if 19:  SP = GETPRESSHEADATS(α,  text missing or illegible when filed  , p text missing or illegible when filed  ,  text missing or illegible when filed  , D.sub.1,L,p,v) custom-character  Compute pressure head at S  20:  RQ = TRANSLATESTOR(α,  text missing or illegible when filed  , SP,  text missing or illegible when filed  , text missing or illegible when filed  , text missing or illegible when filed  ) custom-character  Translate pressure head at S to R  21:  Ψ = GETQUANTITY(α, β, RQ) custom-character  Compute quantity from tank model  22:  Ψ text missing or illegible when filed  = GETQUANTITYREMAINING(Q, Ψ text missing or illegible when filed  ) custom-character   Integrate flow-rate over known time period  23:  if (Ψ text missing or illegible when filed  < Ψ − ΔΨ) or (Ψ text missing or illegible when filed   > Ψ + ΔΨ) then custom-character  Quantities differ by more than ΔΨ  24:   PUSHMESSAGE(“alert”) custom-character  Alert pilot that issue with fuel system health  25:  end if 26:  PUSHUPDATES(ψ, Ψ.sub.r, Q) custom-character  Update connected devices with current data  27:  DELAY(time-period) custom-character  Repeat above steps after waiting for preset time  28: until (mode ≠ health-monitor) custom-character  Repeat until mode changes  text missing or illegible when filed indicates data missing or illegible when filed

    TABLE-US-00004 Algorithm 4 Sensor Auto-Locate Require: Tank model (LUT) relating free-surface orientation & pressure head to quantity  1: {D.sub.1, D.sub.2} ← values custom-character  Assign Venturi inlet & center diameters respectively   2: {L} ← values custom-character  Assign combined pickup & outlet pipe length   3: {p,v} ← values custom-character  Assign liquid properties (density, kinematic viscosity)   4: Q text missing or illegible when filed  ΔΨ ← values custom-character  Assign tolerances on flow-rate & quantity respectively   5: text missing or illegible when filed  ←  text missing or illegible when filed custom-character  Reset auto-locate iteration counter   6: Δ text missing or illegible when filed   ← values custom-character  Assign tolerances on sensor location   7: mode ← auto-locate custom-character  Enable sensor auto-location   8: repeat  9:  iteration ← iteration + 1 custom-character  Increment iteration counter  10:  {p text missing or illegible when filed  , p text missing or illegible when filed  , p text missing or illegible when filed  , t text missing or illegible when filed  , t text missing or illegible when filed  , t text missing or illegible when filed  } ← values custom-character  Capture static pressures & temperatures  11:  {p text missing or illegible when filed  , p text missing or illegible when filed  , p text missing or illegible when filed  } = APPLYTEMPCOMP(p text missing or illegible when filed  , p text missing or illegible when filed  , p text missing or illegible when filed  , t text missing or illegible when filed  , t text missing or illegible when filed  , t text missing or illegible when filed  ) custom-character  Apply temperature compensation  12:  {x text missing or illegible when filed  , y text missing or illegible when filed  , z text missing or illegible when filed  } ← values custom-character  Capture local acceleration from IMU  13:  {x text missing or illegible when filed  , y text missing or illegible when filed  , z text missing or illegible when filed  } ← values custom-character  Capture local angular rates from IMU  14:  {α, β, |α|} = GETANGLES(x text missing or illegible when filed  , y text missing or illegible when filed  , z text missing or illegible when filed  , x text missing or illegible when filed  , y text missing or illegible when filed  , z text missing or illegible when filed   ) custom-character  Compute surface angles & G-loading  15:  Q = GETFLOWRATE(p text missing or illegible when filed  , p text missing or illegible when filed  , D.sub.1, D.sub.2, p) custom-character  Compute volume flow-rate  16:  Ψ text missing or illegible when filed  = GETQUANTITYREMAINING(Q, Ψ.sub.NVM) custom-character  Integrate flow-rate over known time period  17:  SP = GETPRESSHEADATS(p text missing or illegible when filed  , p text missing or illegible when filed  , D.sub.1, L, p, v, α, β) custom-character  Compute pressure head at S  18:  RQ = GETPRESSHEADATR(α, β, Ψ text missing or illegible when filed  ) custom-character  Extract pressure head at R from tank model  19:  {x text missing or illegible when filed  , y text missing or illegible when filed  , z text missing or illegible when filed  } = GETSENSORPOSR(α, β, SP, RQ, ΔS) custom-character  Compute location of S relative to R  20:  if (x text missing or illegible when filed  ≠ 0) and (y text missing or illegible when filed  ≠ 0) and (z text missing or illegible when filed  ≠ 0) then custom-character  Non-zero values imply valid location  21:   PUSHMESSAGE(“success”,  text missing or illegible when filed  teration) custom-character  Update connected devices with current status  22:   mode ← health-monitor custom-character  Restore fuel system heath monitoring  23:  else custom-character  Keep iterating a sensor location not computed to required accuracy  24:   PUSHMESSAGE(“calibrating”, iteration) custom-character  Update connected devices with current status  25:   DELAY(time-period) custom-character  Repeat above steps after waiting for preset time  26:  end if 27: until (mode ≠ auto-locate) custom-character   Repeat until mode changes  text missing or illegible when filed indicates data missing or illegible when filed

    [0116] In the specification the terms “comprise, comprises, comprised and comprising” or any variation thereof and the terms “include, includes, included and including” or any variation thereof are considered to be totally interchangeable and they should all be afforded the widest possible interpretation and vice versa.

    [0117] The invention is not limited to the embodiments hereinbefore described which may be varied in both construction and detail within the scope of the appended claims.