Not all systems vary linearly. One very well-known case is, of course, thermocouples. International standard curves are available for these, so they present little difficulty. The issue discussed here is determining a non-linear calibration curve and, if appropriate, reducing it to a polynomial.
A typical situation occurs with load-deflection tests such as non-linear springs, suspension systems, crush loading, etc. Usually, it is straightforward to monitor the deflection, either directly or even if it means double integrating an accelerometer signal. The objective, however, is to determine the applied load. That is, we need a non-linear calibration curve of load versus displacement. As an illustration, consider a simple system of a load suspended by two opposing non-linear springs as illustrated below.
In the calibration laboratory, loads may be applied in each direction in turn. It is unlikely that we will have uniform load or uniform displacement steps. That is the acquired data will be load and displacement against ‘point number’. To form a complete calibration curve obviously needs one test in the +x direction and another in the -x direction. This will then give us two load versus point number curves and two displacement versus point number curves like those shown below.
By selecting force and the relevant displacement as the x axis then we can readily display the two force displacement curves. This then gives the following graphs.
These graphs are visualisations of the data and not the data itself. What we need is the signal of force versus displacement in constant displacement steps. This is readily achieved with a spline curve fit {Spline with x points}.The simplest way to proceed is to join the two load curves and the two displacement curves, both as functions of ‘point number’. This means looking carefully at the join point. In the example data neither pair of signals had a zero deflection point. In fact, both the positive and negative signals had 130 points, numbered from 1 to 130 and both started at a non-zero deflection.Clearly if we are to join the signals the negative direction signals should go from -130 to -1 and of course the amplitude needs to be negated. We do this in DATS by reversing the data {Reverse Signal}, multiplying by -1 {Signal*Constant} and then by changing the start value {Change Base}. This now gives us negative side signals as shown below.
Fig. 7 : Negative Load (Reversed) | Fig. 8 : Negative Displacement (Reversed) |
Next we join the two load curves and the two displacement curves {Join Signals} to get
Fig. 9 : Raw Load | Fig. 10 : Raw Displacement |
Now that we have 2 complete curves then we may apply a sliding Spline fit to generate a set of equi-spaced points by using the load curve as y and the deflection curve as x {Spline with x points}.The spline function used is a local cubic spline where it curve fits over 6 measured points and uses the central part of each section to extract the load value at constant displacement increments. When it needs values outside the central section the spline is advanced by one data point and resolved. This ensures accurate local tracking of the data. Using a spline function or other curve fit which attempts to fit the entire curve in one go leads to average behaviour.
Fig. 11 : Load v. displacement (Spline) |
In the example data used neither the positive or the negative side signals had a zero point. Visual inspection of the data showed that zero deflection gave zero load. Hence a zero point was added to one of the measured signals before the spline fit.This was not necessary but as an inspection of the data clearly showed it must pass through the origin it was added to ensure we have a (0.0, 0.0) data point. The spline signal generation on the original 260 points was set to give 1001 output points.Sometimes a calibration curve is sufficient but often one needs to express the resultant curve as a power series. To do this we use the polynomial fit function. This will need an assessment of which powers to use. As an example a fit with odd and even powers up to x7 was formed. This fitted curve was added as an overlay to the measured data shows excellent agreement, in fact the difference cannot be seen!
Fig. 12 : Load v. displacement (Spline and polynomial) |
The coefficients generated are listed below
0 5.4632e-5 1 7.06008 2 -0.00093 3 12.9184 4 0.00209 5 -19.2711 6 -0.001121 7 27.5107
In this case, the function is essentially odd and this is reflected in the relatively small values of the even powers. A repeat run using just the dc component (x0) and the odd powers gave coefficients of
0 2.6133e-06 1 7.06008 3 12.9184 5 -19.2711 7 25.5107
To assess the goodness of fit we determined the rms value of the difference between the fitted and original signals. The difference between the measured and fitted curves is shown below as a percentage of full scale load.
Fig. 13 : Percentage Error |
Class | Highest Power | RMS Error |
Odd | 1 | 10.1736 |
Odd | 3 | 3.67765 |
Odd | 5 | 0.849849 |
Odd | 7 | 0.244096 |
Odd & Even | 7 | 0.244096 |
Odd | 9 | 0.115849 |
Odd | 11 | 0.11957 |
Odd | 13 | 0.108928 |
The optimal choice would be to use up to x9 as adding above this only gives marginal improvement.
Dr Colin Mercer
Latest posts by Dr Colin Mercer (see all)
- Data Smoothing : RC Filtering And Exponential Averaging - January 30, 2024
- Measure Vibration – Should we use Acceleration, Velocity or Displacement? - July 4, 2023
- Is That Tone Significant? – The Prominence Ratio - September 18, 2013