I’m trying to measure the volume of the object not the gas. I have no idea about these tests you are mentioning or the diaphragm gas meters; but I will search as it seems to be very interesting. If you have a link to a website, please post it.
Most all the same considerations are needed. In both cases we have temerature, pressure, flow and volume.
Some of the specifications and procedures are documented here(A, B, C) however, I wish I had kept my notes - it was pre-internet days.
Re: The compressibility factor (Z) of air - the curve is similar to the deviations you have found. It would only take some simple mathematics or use values from a look up table to correct for this.
That I don’t see very well; but I’ll check your suggestions carefully.
-I’m rounding the results just for display on the screen; but calculations are done without rounding with full floats before displaying the results. I’ll check anyway, there maybe some cases where its not. I though approximating 3 decimal digits was enough for display for now.
Approximating 3 decimal digits might be enough for the display, but its how the numbers are determined that can influence the effective precision in the results. Certain equations can have a precision reducing effect.
For example, P = I2R where I = 1A and R = 1 ohm and both have been measured with 5% precision (not accuracy).
At the low end, we would get P = (0.95)2*0.95 = 0.857 Watt
At the high end, we would get P = (1.05)2*1.05 = 1.157 Watt
So, using numbers with 5% precision here affects the results by more than 15%
As mentioned, using floats is good - I would make sure all partial calculations do not truncate valid information. For some statistical MADT calculations, 6 digits of precision is required, for the meter testing I've performed, 12-bit ADCs were used - higher precision was desired but not available at the time.
From your link to the sensor, its pressure range is 1 psi to 150 psi (60 mbar to 10 bar) (69 hPa to 10,342 hPa). The datasheet notes High resolution (min. 0.03 %FSS), so this represents 3.1 hPa resolution. Note you are only using this at the very low end (0.5-2 psi range). Would a different low-cost sensor be available, say within 0-10 psi range?
I'm not sure how you have pre-conditioned the signal levels into the 10-bit ADC. Perhaps resolution could be improved as follows. If ADC code 0 represents the lowest pressure you'll ever measure, say 40 hPa, and ADC code 1023 represents the highest pressure you'll ever measure, say 140 hpa, then the resolution becomes only 0.09765625 hPa per step. You may only need an op-amp or 2 to achieve this.
$$$ may not be required at this point yet ... there may be still room for low-cost or no-cost improvements.
EDIT:
The AD conversion I’m using which includes averaging among other things, is resolving more than the 1024 normal steps the Arduino ADC can resolve (using it). I’ve been working on achieving this for a while now (you can check some of my previous Projects). That creates the 0.05hPa steps in the 0-250mbar range which will otherwise won’t be possible to achieve and constitute a very good observation from you which I haven’t noticed.
Oops - missed this. If averaging (sensor resolution 3.1 hPa) among other things can get 0.05 hPa steps, then perhaps averaging readings with 0.098 hPa resolution could result in 0.01 hPa steps.
As example, deflation starts by time 20 000 milliseconds after the inflation is stopped at 150hPa (that’s what I set it for). Inflation is stopped by finding when the Pr surpasses that threshold and there is a small error involved there. Since time elapsed is the trigger, perhaps the resolution in the differentiation of time originated by the loop duration is creating the impression of the 0.25hPa.
Yes - possible. All time values should also be floats (numbers like 20 could be expressed as 20.0 in calculations)
Valve Timing:
If the solenoid valves have AC coils and if your using a zero-crossing type relay there could be +/- 8.3 ms timing variance (@60Hz AC), if the relays are phase-type, this would be improved. Anyhow, for any type of solenoid (AC or DC coil) there is its response time to activate or deactivate that might have to be considered if the solenoids are controlling the testing start/stop.
Volume determination:
I'm wondering if the object's volume could be determined by looking at just a portion of the decompression test. Then using certain pressure readings within a window of the test to be the trigger points. Say for example 120 hPa as a start trigger and 80 hPa as a stop trigger. That way, more time could be allowed after pressurizing, after the valve opens and before the valve closes. This could be done just by taking data from a more stabilized, but definite portion of the results to determine volume.
Leaking problem:
What if the pump just pre-charges a small tank to around 5 psi. Then the check valve (I think this is the leak source) is replaced with an on/off solenoid control valve (which is inherently leak-free). Another benefit would be air that is much more stabilized with temperature and humidity for performing the tests.
(just some random and perhaps crazy thoughts in case something was missed)