How can I calibrate an accelerometer with unequal sensitivity between axes?

In summary, the accelerometer is not well calibrated, so the axes of measure are not of equal sensitivity. The tilt angle is calculated using the scalar cross product between vZero and vCurrent. The axes are scaled so that the scalar cross product works correctly.
  • #1
mgeerts
4
0
background: I am working with an accelerometer to measure the tilt angle of a mechanical device. The accelerometer reads x, y, z values that can be made into a "gravity vector". The accelerometer can NOT be assumed to mount square with the device. The accelerometer is NOT well calibrated, so the axes of measure are NOT of equal sensitivity. Motion is not an issue as the device is typically sitting still, and motion is rather slow.

so far: The accelerometer is read when the device is known to be "level" so that the "Zero Vector" vZero can be set. The values from then on (vCurrent) are compared to vZero and the angle between is calculated. Scalar cross product between vZero and vCurrent is used to find the cosine of the angle, and a lookup table is used to transale into degrees of tilt.

The tricky part: the axes are not of equal sensitivity! This is what I need to solve. I need to scale the axes so that scalar cross product works correctly.

Two factors are in my favor: 1 - The x-axis is practically irrelevent; the tilt is along that axis, so it is only used for minor mounting correction and does not affect the required accuracy. 2 - I am able to use another method to find the cos of the angle of the device, but only during calibration.

The question in simple terms:
How do i find a scalar to apply to the Y axis of my accelerometer to compensate for inconsistent sensitivity between the Y and X axes given a Zero Vector, a Current Vector and a Current Cosine of the tilt?

Since vZero x vCurrent = CurrentCos, then how do i use a correct CurrentCos to find the correct vZeor and vCurrent?

next question: did any of this make any sense or I am going to have to try to explain it all again?
 
Physics news on Phys.org
  • #2
Use a level, or a high-tech equivalent. No you know the direction in which the true acceleration vector is pointing (up, not down. Accelerometers do not measure gravity. A normal force keeps you, your lab equipment, and the accelerometer from falling through the floor. The accelerometer measures this normal force.) Mount your accelerometer in three distinct but known orientations, the easiest being three orthogonal orientations aligned with the known local vertical. Take the accelerometer readings in each orientation. The differences result from experimental setup errors, bias, and scale errors. This should give you enough information to drastically reduce the scale factor errors and make estimate the biases.
 
  • #3
D H, Thank you for your reply. That is exactly how an accelerometer is calibrated in their factory, as well as the *ideal* way that an accelerometer system should be field calibrated. However, this system can not be held up in orthagonal orientation in some apparatus, which is why my problem is a slightly higher level one.

Allow me to strip down the details and just list the math.

I have two vectors, vZero(x1,y1,z1) and vCurrent(x2,y2,z2). These are the accelerometer vectors as they are read from the calibration point (vZero), and from the current orientation of the device (vCurrent).

To calculate the angle that the device has tilted, I use the equation:
vZero x vCurrent = cos(A) (the scalar cross product of two vectors is equal to the cosine of the angle between them)

However, the z and y axes are not equally sensitive, so this is giving me false readings. The key that I need is a scalar to multiply against the y-axis to make this equation true. My saving grace is that i can use another method ONE TIME to find cos(A).

So the problem is... given [x1,y1,z1], [x2,y2,z2] and cos(A), solve for Y such that:
[x1,Y*y1,z1] x [x2, Y*y2, z2] = cos(A)
 
  • #4
okay, some new developments:

I appologize that the above equation was written partially incorrectly. It should read:

[x1,Y*y1,z1] x [x2, Y*y2, z2] = cos(A)*sqrt(x1x1+YYy1y1+z1z1)*sqrt(x2x2+YYy2y2+z2z2)

the cross product of two vectors is equal to the cosine of the angle between them times the magniture of each.

basically, i need to solve for Y in that equation! I tried pen and paper but got lost in the gigantic equations. I tried an online equation solver, but it kept giving me "error: equation is too large" errors as it was trying to solve it.
 
  • #5
mgeerts said:
[x1,Y*y1,z1] x [x2, Y*y2, z2] = cos(A)*sqrt(x1x1+YYy1y1+z1z1)*sqrt(x2x2+YYy2y2+z2z2)

Since the right-hand side is a scalar, I assume you mean the inner product (rather than cross product) on the right. Expand the left hand side,

[tex]x_1x_2 + z_1z_2 + y_1y_2Y^2 =
\cos A
\sqrt{x_1x_1 + z_1z_1 + y_1y_1Y^2}
\sqrt{x_2x_2 + z_2z_2 + y_2y_2Y^2}[/tex]

Square both side to eliminate the radicals:

[tex](x_1x_2 + z_1z_2 + y_1y_2(Y^2))^2 =
\cos^2 A
(x_1x_1 + z_1z_1 + y_1y_1(Y^2))
(x_2x_2 + z_2z_2 + y_2y_2(Y^2))[/tex]

Hey! This is just a big ugly quadratic equation in [itex]Y^2[/itex]! I assume you know how to solve quadratics.
 
  • #6
Aye... creating a general equation out of it is a major pain! the equations are HUGE. That's okay though, there are websites that can do that with online calculators and I think I have the answer... I'm actually just hand-calculating the scale factor to see if it all works right now.

Thanks :)
 

1. What is accelerometer calibration?

Accelerometer calibration is the process of adjusting an accelerometer to accurately measure acceleration in a specific environment or under certain conditions.

2. Why is accelerometer calibration important?

Accurate accelerometer readings are crucial for data analysis and interpretation in various fields such as sports science, engineering, and transportation. Without proper calibration, the readings may be inaccurate and lead to incorrect conclusions or decisions.

3. How is accelerometer calibration done?

Accelerometer calibration involves exposing the sensor to known accelerations and adjusting the sensor's internal parameters to match the expected values. This can be done through manual adjustments or using specialized calibration equipment.

4. When should an accelerometer be calibrated?

Accelerometers should be calibrated regularly, especially when used in critical applications. The frequency of calibration depends on the type of accelerometer, its intended use, and the environment in which it is used. In general, it is recommended to calibrate at least once a year or whenever there are significant changes in the operating conditions.

5. Can I calibrate an accelerometer myself?

It is possible to calibrate an accelerometer yourself, but it requires specialized knowledge, equipment, and a controlled environment. It is recommended to have a professional calibration service perform the calibration for accurate and reliable results.

Similar threads

Replies
3
Views
1K
  • Introductory Physics Homework Help
Replies
2
Views
691
  • Linear and Abstract Algebra
Replies
2
Views
2K
  • Linear and Abstract Algebra
Replies
3
Views
15K
Replies
4
Views
4K
  • Linear and Abstract Algebra
Replies
5
Views
2K
  • General Engineering
Replies
1
Views
4K
  • Introductory Physics Homework Help
Replies
17
Views
2K
  • Linear and Abstract Algebra
Replies
11
Views
4K
Replies
7
Views
10K
Back
Top