SPLat Logo

SPice10212: Nonlinearity correction

NOTICE: SPLat Controls has moved. We are now at 1/85 Brunel Rd, Seaford, 3198. map

SPice10212: Nonlinearity correction

The SPice10212 uses a simple bridge rectifier circuit followed by an averaging filter. It is not a precision rectifier. This means that the response of the board will be somewhat nonlinear, because of the forward voltage drop of the rectifiers. In addition you have the nonlinearity of the transformers to contend with. This is even less predictable than the nonlinearity due to the diodes.

Because the intended use of the board is for monitoring variations in mains (line) voltages around a nominal value of say 240VAC, the nonlinearity will usually have little practical effect. Providing you have calibrated at or near the nominal operating voltage, any nonlinearity errors within say 10% of nominal would amount to no more than a count or two.

There may be situation where you would like to do better. For a given transformer and full scale combination it is feasible to establish a polynomial equation that converts raw readings into voltage with good linearity. It should be possible to get good results with this method, providing you always use the same type of transformer. Note though that in our experience over thousands of small transformers an occasional "rouge" one will have a different set of characteristics. Hence, your testing procedure should include a spot check on linearity.

We use an Excel spreadsheet to determine the polynomial coefficients. The basic process is as follows:

  1. Calibrate to a full scale count near 250.
  2. Using a Variac, take a series of readings of counts versus input voltage. We used 5, 10, 25, 50, 100,150, 200 and 250V.
  3. In Excel, plot voltage (Y axis) versus count (X axis)
  4. Right click the graph and select "Add trendline..."
  5. Set type = polynomial, and order = 3, and in the Options tab select "Display equation on chart"
  6. You should now see an equation on the graph. Right click the equation and select "Format data labels..."
  7. Select the Number tab and set the format to Scientific with 6 decimal places.

You should now have the equation displayed with heaps of precision. Extract the coefficients and insert them in our sample program.