Simple Inclinometer Accuracy?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Simple Inclinometer Accuracy?

跳至解决方案
2,930 次查看
pacman
Contributor II

I require a simple inclinometer where the chip is mounted vertically to measure a tilt angle of +/- 20 degrees in the X and Y planes.

The Accuracy needs to be +/- 0.5 degrees. Since the chip is mounted vertically I assume I will need a 3-axis accelerometer.

I am considering using the FXLS8471Q however referring to the data sheet on Page 24 it says: “All Angles are accurate to +/- 2 degrees”

http://cache.freescale.com/files/sensors/doc/data_sheet/FXLS8471Q.pdf?pspll=1

标签 (1)
1 解答
2,151 次查看
reyes
NXP TechSupport
NXP TechSupport

Hi pacman,

Yes, without doing any changes, all angles are accurate to +/- 2 degrees for all the Freescale accelerometers, however, our applications engineers have just finished some very detailed work on the accuracy that can be achieved with our accelerometers.

The issue is that thermal stresses during soldering result in a zero g offset of up to 30mg in each axis and also cause a 1% change in gain = 10mg in each axis. As a rough estimate of angle accuracy, 1mg error equals 1 mradian (trigonometry) angle error which is 1/57 deg angle error = 0.02 deg.

An additional source of error is the slight rotation of the accelerometer package on the circuit board caused by the pick and place machine. We see about 0.5 deg error from that source.

Because the calibration changes during soldering, the customer has to perform a re-calibration on the final product. This involves placing the final product at multiple orientations and calculating 12 additional new calibration parameters which must then be stored in non-volatile memory and applied by an external uC. We have an application note AN4399 that explains how to do this. We recommend the 12 point algorithm that corrects for a 3x3 gain matrix and 3x1 offset vector.

AN4399: http://cache.freescale.com/files/sensors/doc/app_note/AN4399.pd

Freescale's measurements on MMA845x family, MMA8652 and FXOS8700 accelerometers indicate that after application of this algorithm, the resulting error is 3mg RMS in each axis. That corresponds to an RMS angle error of 0.17 deg RMS.

The MMA8652 (link to datasheet below) has a basic resolution of 1mg but remember that it is possible to resolve to far better than this by averaging multiple measurements. I would therefore propose the MMA8652 with the suggestion of averaging with a time constant of 100 measurements at 100Hz=1sec.

MMA8652 datasheet: http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8652FC.pdf


Have a great day,
Jose Reyes

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

在原帖中查看解决方案

6 回复数
2,151 次查看
pacman
Contributor II

Would you also recommend the MMA9550LR1 or MMA9551LR1 ?

Thanks again

0 项奖励
回复
2,151 次查看
reyes
NXP TechSupport
NXP TechSupport

Hi pacman,

The MMA9550LR1 and the MMA9551LR1 have a mcu (Coldfire V1 32-bits) and an accelerometer embedded in the same package. If you are interested in this kind of device, then yes, you can use them, if not, then it doesn’t really make sense and I would recommend you to use the MMA8652, MMA845x or FXOS8700 instead. 

0 项奖励
回复
2,151 次查看
JackITB
NXP Employee
NXP Employee

Hi pacman,

I'd like to mention the possibility to use the "Acceleration Vector-Magnitude" feature (in FXLS8471Q and FXOS8700) as a simple yet effective inclinometer. You can refer to paragraph 3.2 of AN4692 application note for details.

Basically, all you have to do is store the measured acceleration in the A_VECM_INITX/Y/Z register when device is static at the default vertical position. Then with A_VECM_THS sets according to the desired angle (e.g. 0.3473g for 20° tilt, as per equation.12 in App Note) you can program INT1 or INT2 interrupt line to flag whenever the tilt threshold is reached and exceeded.

The benefit of this solution is that accurate tilt detection is achieved,

- regardless of the device mounting position (as it is based on 3D vector magnitude computation),

- arbitrary threshold (within 0-90° range) can be be selected,

- and no processing from the host MCU is necessary.

Having said that, regardless of the part number you may select for your tilt-meter (and assuming you've performed the above "zeroing" or equivalent calibration), one of the main source of error will be the temperature variation of the accelerometer offset (often referred as TCO), and our accelerometer products are very stable in that respect.

Regards,     Jacques.

0 项奖励
回复
2,152 次查看
reyes
NXP TechSupport
NXP TechSupport

Hi pacman,

Yes, without doing any changes, all angles are accurate to +/- 2 degrees for all the Freescale accelerometers, however, our applications engineers have just finished some very detailed work on the accuracy that can be achieved with our accelerometers.

The issue is that thermal stresses during soldering result in a zero g offset of up to 30mg in each axis and also cause a 1% change in gain = 10mg in each axis. As a rough estimate of angle accuracy, 1mg error equals 1 mradian (trigonometry) angle error which is 1/57 deg angle error = 0.02 deg.

An additional source of error is the slight rotation of the accelerometer package on the circuit board caused by the pick and place machine. We see about 0.5 deg error from that source.

Because the calibration changes during soldering, the customer has to perform a re-calibration on the final product. This involves placing the final product at multiple orientations and calculating 12 additional new calibration parameters which must then be stored in non-volatile memory and applied by an external uC. We have an application note AN4399 that explains how to do this. We recommend the 12 point algorithm that corrects for a 3x3 gain matrix and 3x1 offset vector.

AN4399: http://cache.freescale.com/files/sensors/doc/app_note/AN4399.pd

Freescale's measurements on MMA845x family, MMA8652 and FXOS8700 accelerometers indicate that after application of this algorithm, the resulting error is 3mg RMS in each axis. That corresponds to an RMS angle error of 0.17 deg RMS.

The MMA8652 (link to datasheet below) has a basic resolution of 1mg but remember that it is possible to resolve to far better than this by averaging multiple measurements. I would therefore propose the MMA8652 with the suggestion of averaging with a time constant of 100 measurements at 100Hz=1sec.

MMA8652 datasheet: http://cache.freescale.com/files/sensors/doc/data_sheet/MMA8652FC.pdf


Have a great day,
Jose Reyes

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

2,151 次查看
pacman
Contributor II

Thanks for the info and insight.

BTW 1mg error equals 1 mradian (trigonometry) angle error which is 1/57  (57/1000) deg angle error = 0.02 deg.  = 0.057 deg?

0 项奖励
回复
2,151 次查看
reyes
NXP TechSupport
NXP TechSupport

Hi pacman,

Correct sorry, 1mrad = 0.057 deg and 1 degree = 0.017 rad, so yes, 0.057deg is the angle error.


Have a great day,
Jose Reyes

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复