Understanding accelerometers for rotational motion data

I hope this post isn't too long, but I really need help and want to be pretty detailed/specific.
I have recently built a system where a rod is attached at one end to a rotating shaft. So, as the shaft rotates from 0 to 90 degrees back-and-forth (in the xy plane), so does the rod. It's not exactly 90 degrees but I can measure it exactly later. My goal is to measure the instantaneous (rotational) acceleration of the rod while its moving (I'm going to use that to calculate torque). I mounted a 3-axis accelerometer at the end of the moving rod, and I measured the distance of the accelerometer from the center of rotation (i.e., the length of the rod) to be about 38 cm. I have collected a lot of data, but I'm in need of help to translate these data into an understandable output.
Note that I'm not really sure if the way I filtered it is "good" (maybe someone can comment on that?). But I think the data makes sense: if it's ramping up, then then I think at that point the acceleration should be linearly increasing, and then when it's ramping down, it should linearly decrease. If its moving constantly, the acceleration will be ~zero. Since this is a one dimensional problem (in polar), the plot only shows the data that captured most of the motion in this dimension. However, this accelerometer was capturing data from all 3 dimensions (I will neglect to include the dimension that reads in the up and down direction, since it shows a near constant 1 G reading which makes sense). The other dimension was actually capturing some important information too I think. The units are all in "G." My first question is, how do I combine these data so that I can get a "resultant acceleration?" I tried summing the squares of each element and taking the square root but that didnt make sense. I also did more research and it seems that rotational matrices/vector transformations might help, but after a lot of research I still can't figure out how to use them or make them work. Also, I dont know why but there's an offset for the two dimensions...
Here is a lot of the data I'm talking about. Acceleration (filtered and unfiltered), where the first column is the up and down direction (doesnt matter), the next column is the "main" dimension where most motion behavior is captured, and the last column is the "less relevant" dimension. I would really appreciate someone helping me to appropriately combine these data, and then turn it into a rotational acceleration. I could be more specific on everything I've tried so far if someone wants, but its a bit embarrassing how nonsensical it turned out given the amount of time I spent on it. I have also collected position and time data while using this (although position and acceleration may not be aligned perfectly yet).
cl.ly/023A3q0R1X1W?_ga=1.2791731.2093327149.1426657579
cl.ly/0S1j22310m2S?_ga=1.2791731.2093327149.1426657579

 Accepted Answer

Roger Stafford
Roger Stafford on 14 Apr 2015
Edited: Roger Stafford on 14 Apr 2015
I assume your accelerometer is mounted such that it rotates along with the rotation of the rod. If so, the only significant component of acceleration you need to use for calculating angular acceleration is the horizontal accelerometer component orthogonal to the axis of the rod. The other horizontal component along the rod's axis is due to the acceleration needed to follow a circular route - that is, the so-called centripetal acceleration, and you can ignore it. The calculation is very easy - divide the above acceleration component by the distance of the accelerometer from the axis of the shaft to give radians per unit time squared or multiply this by 180/pi to get degrees per time squared.

3 Comments

Well, sorry maybe I should have put a plot, but why does the component you call the centripetal acceleration peak at the same moments the other component peaks? Because of this, I thought I was losing information to the other axis, but perhaps you're right.
Also, the accelerometer outputs in units of "G." So, I thought that this means that if at any point it reads 1.5 for example, this means 1.5 G, so that would actually be 1.5*9.8 (m/sec^2). Are you telling me that all I need to do is divide all the data by the distance from the center of rotation? And that gives radians per second?
Just not sure I'm understanding your interpretation correctly.
If your accelerometer is very accurately aligned, its component of acceleration along the rod's axis should be v^2/r where v is the velocity and r the radius (distance from the center) and therefore entirely dependent on the velocity. The orthogonal component on the other hand depends entirely on the angular acceleration of the rod and is given by r times the angular acceleration. Hence the angular acceleration is the linear acceleration divided by r. If your acceleration is in meters/sec^2, then divide by the number of meters in r to get radians/sec^2.
If your accelerometer is not accurately aligned, then all bets are off. You can be mixing both components and also picking up components of gravity. Furthermore an accelerometer subjected to rotation may exhibit some eccentricities due to less than ideal design which could affect the readings.
That sort of makes sense. I think I need to investigate the possibility that it's not perfectly aligned. Thanks for your help.

Sign in to comment.

More Answers (1)

Hello. As you mentioned it on Rod for 90 degrees of rotation, my scenario would be somehow similar and I would like to discuss it here. I have a accelerator which is a 3 axis based. I am putting it on a wheel of a bicyle. The radius of the bike is let us consider 40 cm. It can reach a maximum velocity of 25 KMPH.
If i put the sensor on the wheel (assuming surface is smooth and sensor placed without any tilt in X , Y axes). So Z axis is perpendicular to the wheel and hence, it can be ignored. Now we have X and Y acceleraion. How to interprit the datas? As the wheel rotates, it will experience a centrifugal force, How to calculate the speed of the bicyle at this scenario?
Kindly suggest what other factors can play any role, during calculations?
Thank you for this wonderful post.

1 Comment

Bhabani,
Do you have a data sample so that i can comment on it?

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!