Project update 3 of 7
I’m excited to show you all an example of SenseTemp TEC running a small thermal chamber, but you’ll have to wait until later this week for that update. In the meantime, I’ve been doing some accuracy measurements on SenseTemp and have some experimental results to share.
For this data collection, all four SenseTemp RTD elements were pressed against a large aluminum block by a rubber pad and weight. Therefore, all channels should report the same temperature. Note that the aluminum block’s temperature was not actively controlled — so its’ temperature slowly changes as the ambient environment does.
SenseTemp data was recorded every three seconds over a test duration of 80 minutes.
This a plot of the raw test measurements from SenseTemp.
You can see SenseTemp’s temperature resolution of 0.034C in this graph. This measurement resolution is governed by the MAX31865 15-bit ADC, and the ratio between the 4.3 kOhm reference resistor and the 1 kOhm nominal RTD resistance.
Note that SenseTemp system accuracy is governed by the tolerances of the reference resistor and the RTD element, not their nominal values.
Since the temperature of the aluminum block changes during this test, we cannot merely compare instantaneous samples with the mean to determine noise and error. Instead, we need to compensate for the changing block temperature before error calculation.
To do this, a rolling mean is calculated from the measurements of Channel 1. Since the time constant on the block is very long, its’ temperature changes very slowly — so a large sampling window can be used to average sample data and remove noise.
A sample window of 60 seconds (20 measurements) was used to calculate a rolling mean, and that derived data is plotted against the Channel 1 direct measurements. Note the normal time-offset of a rolling window mean has been removed by eliminating the first 10 samples (1/2 the window) of the rolling mean.
With this "ground truth" data, we can now calculate error and noise on the SenseTemp channels. Of course, this is a derived ground truth from Channel 1 data, so Channel 1 will show the least error and noise.
There are some interesting patterns and trends in this data.
Error was also calculated after applying a rolling mean (with a window size of 4 samples) on each of the channel’s measurements.
This smoothing does not change the Mean or RMS error but does reduce the maximum sample error and error standard deviation, due to the smoothing process creating measurement points with finer resolution than the MAX31865 15-bit ADC allows.
Below is a table summarizing error results from this 80-minute long test. Due to Channel 1 being the source of ground truth, it shows no mean error and the lowest RMS error.
|Channel||Maximum Sample Error||Mean Error||RMS Error|
|1||0.039 C||0.000 C||0.013 C|
|2||0.056 C||0.007 C||0.016 C|
|3||0.096 C||0.042 C||0.045 C|
|4||0.071 C||0.026 C||0.029 C|
One last note on the SenseTemp used for this test — this prototype was built with a 1% accurate reference resistor. Production SenseTemp hardware will be built with 0.05% rated reference resistors, which will result in even lower variance between channels than measured in this test.