I have a very sensitive scale used for dynamic weighing (by dynamic I mean that the scale and load cells are actually beneath a belt conveyor that actively weight product when it´s being transported along the belt).

There´s a lot of variation in the measurements (+- 8g, while the manufacturer says it should be max +-2g).

I want to rule out vibration as a source of enviromental influence, so I gathered some data with a pair of 3 axis accelerometer dataloggers mounted on the structure beneath the load cells.

I analyzed the data in Matlab and found that the maximum vibration frequency when the equipment is being static is 1.066 Hz (EDIT 3); peaks of 1.33 g in the z axis (perpendicular to the floor).

It´s being a while since I´ve done anything with vibrations and I´m a little rusty on the theory and practical experiments.

I´m not sure what I should be looking for and I don´t have (didn´t find) anything about what the normal structural vibrations are for a lab room or specifications from the scale manufacturer on how much vibrations in can withstand or filter out.

I´d appreciate any suggestions.


The Scale is installed on top of a mezanine 5m tall. The Accelerometer specifications are: Sensor Type MEMS semiconductor Acceleration Sampling Rate (Datalogger) 200Hz Acceleration Range ±18g Acceleration Resolution 0.00625g Acceleration Accuracy ±0.5g Bandwidth 0 to 60Hz Sampling rate (Software) 500 ms to 24 hours Memory 4Mbit Flash; 112028 Motion Detection samples per axis, or 168042 Normal samples Data Format Time stamped peak acceleration, average and peak vector sum Dimensions 3.7 x 1.1 x 0.8" (95 x 28 x 21mm) Weight 1oz (20g)

The FFT results in the X,Y and Z axis were:

enter image description here enter image description here enter image description here

EDIT 3: Here´s both time and frequency plots: enter image description here

  • What is being measured? Discrete items being moved on the conveyor, or continuous mass flow of a material (e.g. granulate)? – SF. Dec 10 at 15:08
  • There are discrete products being transported through the conveyor at unregular intervals. – spe4ker Dec 10 at 15:15
  • Not good. I bet one item is present on the scale (in the area of 'correct measurement') not much longer than 0.6s (which is about the period of your vibrations)... If it were longer, you could just apply smoothing and substract the bias of measurement from period 'item absent'. But with such low frequency noise getting anywhere near accurate readout would be really tricky. Look for ways to remove the vibrations instead. – SF. Dec 10 at 23:12
  • @SF.Thanks, do you mean that in the period of 0.6s there´s something that is causing the vibrations when the scale is measuring? – spe4ker Dec 11 at 16:17
  • Yeah. You said frequency 1.66Hz, that gives period of ~0.6s, so there's no easy way to distinguish the data from noise by filtering by frequency. Check the rollers of the conveyor, might be one or more is off-center, bent or otherwise unbalanced and causes the whole thing to shake as it turns. – SF. Dec 11 at 17:42

So, look at the time history that you added in edit 3. Notice how it is never ever ever below 1. That's very telling. Let us assume that you have a MEMS accelerometer is able to read down to 0 Hertz. So in the vertical direction, we expect to see 1g due to gravity PLUS the vibration. In other words, we expect to see $y(t) = 1 + A cos(\omega t)$, where A is the amplitude of vibration and $\omega$ is the frequency. Now A may be a function of time, and there might be multiple frequencies, but this is the general idea. So, we expect to see something that is symmetric about 1. Sometimes greater than 1 and sometimes less than 1. E.g. if A = 0.3g, then you'd expect to see between 0.7 and 1.3g. Given that signal, we could do a fourier transform or other analysis to determine the values of A and $\omega$.

But that is NOT what we see here. The value is always positive. So, based on this, and the fact that this is billed as datalogger, and not just a raw accelerometer, I very strongly suspect that what you are getting is not actually the variable y(t). Instead, I think it is an already processed value. i.e. the datalogger is probably sampling a block of time, perhaps 1 second, perhaps 100 ms, could be anything, and then doing some kind of processing, perhaps RMS over that time period. i.e. you aren't getting y(t), but instead something more akin to $\sqrt{\frac{1}{N} \sum y_i ^2} $. Because this is an already processed value, taking a fourier transform of it does not give any meaningful result.

If you work out the math, you'll see that if we take that $1 + A cos(\omega t)$, the RMS value will never be less than 1, which is consistent with the data you posted.

Put another way, when you datalogger spits out a number like "1.3g" at a given time, it is not telling you that the instaneous value of acceleration is 1.3g. It is saying that the average value, over a range of frequencies, and over a certain time range, is 1.3g. There may be various settings to your datalogger, and it might be doing a different type of processing, perhaps it's a peak over a frequency range, or something else. But I don't think you are getting raw acceleration.

if you can compile a correct graph of sensor reading on the coordinates of time versus G, for different intervals such as noticeable changes in vibration, lapses of lesser shaky intervals, you can do a Fourier analysis and sperate the super imposed waves to clean the reading.

Once you find out the vibration frequencies you can design a dynamic insulating suspension to help minimize the undesired vibrations.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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