This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EVM430-FR6043: USS calibration between fluids with different SoS

Part Number: EVM430-FR6043

Tool/software:

We have developed a sensor that is used to measure flow for fluids between, roughly, 0.1 and 10.0 lpm with a circular cross-section of about 71 mm² at a temperature that varies around room temperature. We have worked out how to calibrate it for a particular scenario, e.g., water at room temperature. The issue is we do not necessarily know, a priori, what fluid will be measured in the field.

The general question is this: is it possible to calibrate at the factory, establishing certain sensor stable characteristics such as ToF under known conditions, and then "correct" in the field using any observed changes between those established characteristics and the currently observed values to report an accurate flow rate for the current fluid? Specifically:

  • What should the established parameters be?
  • What should the correction approach be?
  • Should any parameters be changed in USSConfig or can the correction be done downstream of USS flow rate output?
  • How should non-fluid ToF, i.e., unchanging with respect to fluid changes, be considered? Ours is something like 17% of total ToF.

We've considered and tested a number of approaches/formulas, but none of them reliably yield the desired result.

For extra credit, what unit is USS_VOLUME_SCALE_FACTOR in, and how would one establish a sane value using the known physics and geometry of the sensor? While we do establish a value during calibration that yields good measurements, the units seem arbitrary.

Thanks in advance.

  • Hi,

    Emm, I am not totally understand your application. Why the type of fluid can be changed in the field? 

    For my view, if you want to measure different type of fluids, you will need to calibrate all those fluids in the factory. 

    The unit of USS_VOLUME_SCALE_FACTOR depends how you get this value. If you are getting it from below formula, 

    VFR = Meter Constant * dTOF / (absTOF_UPS * absTOF_DNS).

    The VFR is getting from a reference meter, and the TOF results are getting from the USS library. Then the Meter constant unit follows the unit of VFR you used here.

    Best regards,

    Cash Hao

  • Thanks for the reply.

    There's a range of speeds of sound that we can expect in the field. It represents an important design constraint for us to be able to support different fluids in the field without having to replace a perfectly functional sensor or re-calibrate a sensor in-place. It's also not particularly practical for us to have to manage a portfolio of different SKUs and hardware for each type of fluid (which we may not even know when the sensors ship). It is also an expected use case that the fluids change -- both with respect to temperature and to their speeds of sound. 

    For calibration, we start with an average USS_VOLUME_SCALE_FACTOR (670,000) and adjust per-sensor by comparing USS_Algorithms_Results.volumeFlowRate from USS_runAlgorithms to the flow rate from our reference meter (Coriolis). For example, if USS observes 3.9 LPM and the Coriolis observes 4.0, we adjust to 670,000 * (4.0 / 3.9) = 687,179. We are not currently using multiple calibration points.

    With respect to the other questions, considering the physics, it appears to be algebraically possible to create a multiplicative correction factor accounting for the new speed of sound, specifically 

    where 

    • ToF[total] is the average (including up and down) absolute ToF (full path)
    • ToF[solid] is the non-fluid ToF (transducer mounts, pipe wall)
    • cal indicates the value seen at calibration time
    • current indicates the value seen at measurement time

    If we know the meter constant for a specific SoS, if the SoS changes, it seems a rather straightforward exercise to adjust the reported velocity (and subsequent VFR) accordingly. Given that the sensor and its algorithms operate based on flight time and arithmetic derivatives (e.g., differences), it would seem that such a compensation should work. Where is the flaw in this logic? The empirical results suggest there is one.

  • What kind of accuracy are you trying to achieve? This is a critical input to your query.

    The only true way to get speed of sound is to measure it with a known distance. Unfortunately, thermal expansion/contraction causes this previously "known" dimension (and your cross-sectional area) to change over temperature. Pressure can also affect these as well if your mechanical design is not very rigid. Not only that, do you need to linearize/calibrate more than one point or is a single Meter Constant sufficient? If linearization is required, another thing to consider is that fluids of different viscosities will react differently through your meter body at the same VFRs.

    The TI solution (and support structure) is good for water or a single fluid which can be characterized and corrected for. As soon as you need more than one correction curve implemented based on fluid, or get into deep fluid dynamics questions, you will have to implement your own enhancements to the calculations.

  • Thanks for the reply.

    2% to start. In real deployment scenarios, changes due to SoS are >> than those due to temperature. Temperature is relatively stable.

    It seems I am missing something fundamental with either the physics or the USS library, as accounting for SoS changes (assuming fixed geometry as a close approximation) should be straightforward... but it isn't in our case.

  • Agreed with Seth's comment. 

    Even on a water meter, it usually requires multi points of calibration. For a better understanding of USS library, I would suggest you to check with this app note. https://www.ti.com/lit/pdf/slaaes9

**Attention** This is a public forum