Some observations on vertical displacement:
Getting displacement data from an acceleration signal is possible by double integration. This double integration causes issues as any error present in the original acceleration signal will accumulate at an exponential rate in the displacement signal.
A python script is being used to perform analysis on the Z-axis (vertical axis) acceleration signal.
The script performs the following steps:
- Analyse the Z-axis acceleration data and identify the local minima of the data.
- Split the Z-axis acceleration data into seperate chunks of data using the local minima as breakpoints.
- Double integrate each of these z-axis acceleration data chunks seperately and return an equal number of displacement data chunks.
- Stitch the displacement data chunks back together to get a continuous time series of data .
- Plot the stitched displacement data.
The stitched together displacement data looks like this:
The values of displacement in this graph to not match the diameter of the rotating arm. After researching other academic articles about inertial wave measurement devices, it is apparent that the accuracy of the measurement is inversely proportional to the frequency and the amount of acceleration involved. This is one possible explanation for the discrepancy. Experiments over the next few days will involve modifying the speed of rotation of the arm and the length to see how that affects the accuracy of the height measurements.
Some papers online mention using the zero crossings as integration reset points instead of local maxima or minima. The results from the zero crossing method is shown below:
This graph doesn’t look anywhere near as good as the first and the values are completely different compared to the minima detection method. The separate displacement chunks that have been stitched together do not match up perfectly meaning the last point of one chunk is quite far away from the first point of the next chuck. This artificially adds high frequency components into the data. As the frequency content of the data is really important , this method may not be viable without adding in more steps to stitch the displacement chunks together in a smoother way.
The current parameter of interest is maximum displacement. This should be equal to the diameter of the rotating arm which is currently 1.5 metres. This parameter is calculated by looking at each of the displacement chunks and finding the maximum displacement by subtracting the absolute value of the largest displacement from the absolute value of the smallest displacement value in a given chunk. I do this for all of the displacement chunks and average out the maximum displacement value from each.
When using the peak detection method this value of maximum displacement comes out as 1.81 meters.
With the zero crossing method this value of maximum displacement is 1.83 meters.
This represents roughly a 20% error for both methods of measurement. The exact cause of this issue is not known and will require further experiments to try and diagnose the problem.