0
\$\begingroup\$

I am using ADXL335 3 axis accelerometer to measure wave elevation on a tank. The data I receive from the sensor is acceleration. I need the displacement of the sensor in x,y and z direction with respect to the stable state. I tried converting acceleration to displacement with double integration but the error is large. Can someone suggest a better was to convert acceleration into displacement without error ?

\$\endgroup\$
4
  • 1
    \$\begingroup\$ Get a better accelerometer. That's really the only proper solution. \$\endgroup\$ May 8, 2015 at 5:33
  • 3
    \$\begingroup\$ What do you mean by "wave elevation"? The best method would be to find a way to get rid of the error periodically by measuring the displacement directly (e.g. using a reference point). Otherwise you will always get an accumulating error. \$\endgroup\$
    – 0x6d64
    May 8, 2015 at 5:46
  • 1
    \$\begingroup\$ Regardless if how good the accelerometer is, you are just integrating any errors twice. You cannot remove this error using the accelerometer alone. \$\endgroup\$
    – copper.hat
    May 8, 2015 at 6:19
  • 1
    \$\begingroup\$ How are you accounting for the gravity vector? Does the sensor have a fixed orientation or are you using a gyro? \$\endgroup\$
    – Weston
    May 8, 2015 at 20:19

2 Answers 2

1
\$\begingroup\$

I'm not 100% sure what you mean by "wave elevation on a tank", but I'll assume that it's a liquid height of some sort.

As you've discovered, you will get integration errors when going from acceleration to displacement. In vibration analysis, typically data is measured with accels, then integrated as needed to get velocity or displacement, typically though, the data will be run through a high pass filter since the noise in the lower frequencies gets amplified with each integration and a signal that looks great as acceleration will be garbage as displacement. Of course, the phenomena you're measuring is probably a low enough frequency that a high pass filter sufficient to remove the noise will also be removing important parts of your signal.

My suggestion would be that you're simply using the wrong tool for the job. There are plenty of proven ways to measure a fluid level in a tank. A magneto-restrictive float sensor would be a good place to start.

\$\endgroup\$
0
\$\begingroup\$

As stated in the comments, you cannot eliminate the integration errors. This is a mathematical fact. The integral of a function has a constant C added, in this case, an unknown error, which is independent of the function. There are other solutions for water level sensing.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.