High amplitude, non-zero mean low frequency noise on accelerometer

By mwmusername123456 , 20 July 2016

Hello

I am seeing substantial (between 10 and 20 m/s**2) low frequency (i.e. remains after an aggressive 10Hz cutoff filter) non-zero mean noise on an MPU9250 accelerometer. In the time domain, the noise shows up as "impulses" -- the signal will be mostly concentrated around 0 (as expected), and then occasionally will spike up to high values, before returning to roughly 0. The spikes are always in the same direction. The signals are observed on many (>10) different boards, and are observed independent of the IMU config parameters (DLPF settings & scale).

I am using an invensense MPU 9250 in a small drone, and am experiencing strange measurements which I cannot explain. The drone is loosely attached to a workbench, so that the average acceleration must be zero (given that the velocity remains approx. zero, and the position is constant). The orientation of the accelerometer is approximately constant (varies by at most 5 degrees, i.e. the spikes are not due to measurement of gravity).

The IMU is rigidly connected to four brushed motors, each directly driving a propeller. By PWM, I can change the speeds of the motors, and in my experiments I am running them at the same PWM values (i.e. they should have very similar speeds). The spikes appear most notably when the motors are being driven at speeds of approx. 290Hz, then subside somewhat at higher frequencies only to re-appear at frequencies above 360Hz (up to the maximum 400Hz that I can produce).

The spikes appear only in the horizontal directions, (even thought the noise amplitude is higher in the z-direction).

I have run the experiment on multiple different boards, which produce similar results. I have also run the experiment with many different settings of the IMU, including changing the scale from 16G to 2G, changing the DLPF from 41Hz to 460Hz to disabled.

Looking at a waterfall FFT of the data as I change the motor frequency, I can clearly see the signal at the frequency of the motors, but I also see harmonics (on my waterfall (attached) I can count up to 9 times the principle frequency showing up). The problematic spikes are low frequency though, given that they persist independently of *extremely* aggressive filtering.

My leading theory is that this is somehow related to aliasing, given the incredible harmonics that show up. What I don't understand is why these spikes are not zero mean, but always in the same direction. Notable is that the noise never saturates the output of the accelerometer (the saturation is set to 16G, and the highest observed output is roughly 120m/s**2 ~= 12G).

Is there any way of fixing this, e.g. by changing the IMU parameters? Unfortunately, this effect makes the current system unusable, given that we are interested in low-frequency signals.

The figures show:
- A waterfall FFT, showing the frequency content of the accelerometer measurement as the motors' speeds are varied (by varying the PWM).
- A time series plot of the accelerometer, recorded at 2kHz, raw at the top and aggressively low-pass filtered at the bottom. The non-zero mean spikes are clearly visible in the filtered data, and render the accelerometer useless.

phpbb Topic ID
34814