9
First off, I got to the bottom of the anomalously high turnover error for the center tap voltages. I had unwittingly connected circuit GND to the shield of the USB cable via the SMA jack and the case. Things are much better behaved after using some polyimide tape to insulate the jack and connecting the USB cable through an isolator.
To address Kleinstein's comments, the "corrected sum error" values came out to near zero seemingly by coincidence for that test. It is an interesting sum because it ends up cancelling out the even-order errors from the data. However, with the source actually floating now, it is noisier than the regular sum error. There is no option to short the meter at a common mode potential relative to circuit ground other than that of the center tap because the output switching is handled by four SPDT switches (a TMUX 7234). The relays on the board are actually range switching for the Howland current source. The short nulls out the TEMF-related offsets back to the common terminal of the first switches. It is not clear to me that anything would be gained by taking short readings at multiple bias voltages unless there is considerable noise from the center tap buffer. The meter would be seeing the exact same impedance between its terminals for a short at any tap, and there is no effect from bias voltage on the short voltage in the data I have captured. The range for the tests was set manually, and it is the 10V range the whole way through.
I have been collecting slopes from the data points for each measurement in the test, and I noticed that with a randomized code order, there is a relationship between slope and code. Moreover, when I use bipolar references for the DAC and take readings on either side of zero sequentially, the second of these has a smaller standard deviation. To try to keep the settling better behaved, I started running the codes in sequence. This does help reduce the standard deviation a bit, but it is now impossible to separate drift in time from code-dependent drift, so I may look at some alternatives.
The weakest point in this strategy is probably the reliance on polynomial regression. With a dataset I gathered at 10 NPLC with 50 points and 8 replicates each, going above fifth order fits was dicey. Seven was possibly OK except at the edges, but nine was not well behaved. I have been experimenting with fitting cubic splines, and this is definitely better near the edges. I don't know if it is possible to analytically derive the transfer function from such a fit, but I have been testing some algorithmic approaches to converge on a transfer function that minimizes deviation from the turnover error fit spline and the sum error fit spline. This is doable, but it tends to be poorly behaved around zero, which has significant effects on the other points in the curve. I may also try fitting a polynomial to the data near zero, as high order terms will not be important, and calculating out from the fitted curve. The sum error formula is agnostic about what happens on the other side of the origin, and the turnover error data do not constrain the difference between two points on opposite sides of the y axis. That means just trying to derive the transfer function through recursion is subject to compounding errors. The effect of fitting errors on the slope of the transfer function is greatest near zero because the sum error is effectively the slope of the error of the transfer function between the total voltage and the center tap voltage (assuming a ratio of 1/2). As the function approaches zero, the divisor defining this slope gets small, so the impact of the errors gets large. This is a work in progress, and the results would need to be validated against simulated data with various polynomial and non-polynomial transfer functions to gain confidence in the technique. I expect that this general approach will ultimately yield the best way of processing the data.