If you have GPS, you know the forward velocity of the plane well enough to compute the centrifugal acceleration as the cross product of the rotation rate vector with the velocity vector, in the frame of reference of the plane, and subtract out the "lie". I have tested it. It works. It removes about 95% of the centrifugal acceleration "lie".
I tested it in a car, going around a traffic circle. Without the compensation, the IMU lied, just as you say. However, with the compensation, it tracked level as I went around the circle for several minutes, at accelerations that were close to sending me into a skid.
this may come as a shock to every one here but I have successfully designed ,tested and flown an 6DOF IMU based AP including extended Kalman filter ,centripetal acceleration compensation and Z-axis gyro biasing through GPS . i have posted in my netburner blog.and no i havn't been paid a dime .
thanks for the compliment . here is one nagging question (and to clarify i have not flown with "z-axis bias from gps" but have done limited ground test with the wife driving me in circles) , does a 360 degree coordinated turn always equal 360 deg of yaw ? i think it may be a vector sum of yaw and pitch after all if you do the calculus i would say " as roll -> 90 deg ,yaw -> 0 deg/sec" in other words a craft outside of a gravity field would change direction without any yaw (except maybe some gyroscopic effect or inertal coupleing)
what yaw is yaw?
Well, Z axis of the gyro is not yaw. gyro-generated aircraft yawrate in earth reference frame is a cosroll + sinroll combination of Y gyro and Z gyro output.
Imagine 90 deg bank (or 89deg if you like). you can make an 'U turn' generating only Y gyro rate, or 'pitch' gyro rate you could name it if the aircraft would be level.
The short answer to your question is that a 360 degree, banked turn in the horizontal plane does not register 360 degrees rotation measured by the Z axis gyro. What will be measured will be 360 degrees times the cosine of the angle between the Z axis of the gyro and the vertical. So, for example, if the plane has rolled by 90 degrees, the Z axis gyro will be in the horizontal plane, and will register 0 rotation.
The longer answer to your question is that what we are dealing with is called a rotation group. There are two convenient and well behaved ways of expressing transformations of the rotation group. One of them is quarternions, the other is called a direction cosine matrix. Either representation leads to a set of nonlinear differential equations that relate the time rate of change of the orientation of the plane to the rotation rates measured by the three gyros. It is possible to numerically integrate the rotation equations in real time to determine the exact orientation of a plane with respect to the earth. This is not the same as a Kalman filter, it is a different approach that fully respects the nonlinearities of the rotation group. It absolutely requires three gyros in order to work.
The beauty of the technique is that it works equally well for any orientation of the plane, and for any sort of rotation. In the case that I cited above, the technique is capable of accurately tracking the orientation of the plane around a turn, even for 90 degree bank angle turns, or when the plane is upside down. It is a very powerful, elegant, accurate way of handling rotations. In my opinion, its going to become the gold standard for IMUs, I am surprised that is not already the case.
For more information, I highly recommend the paper that Mahoney et al wrote on the subject. They describe the basics of the rotation group, how to exactly compute it in real time, how to use measurements such as accelerometers, magnetometers, or GPS, to achieve "gyro lock" in which case the gyro drift is exactly and continuously eliminated. They also describe how to synthesize an integrated solution to the separate problems of orientation measurement and aircraft control.
yes I've been watching your project , very interesting . I would like to give DCM a try, but for now I'm going with the classic kalman . I can definitely see the advantage of applying a non linear solution to a non linear problem .and thanks for the clarification on the roll/turn issue .
so , does z-axis bias formula directly integrate yaw or is it a vector sum of yaw and pitch?
as far as centrifugal kill goes . say you want to subtract centripetal forces out of the z reading from the accel, simply calculate your estimated G in that direction . that would be speed * pitch rate . which will give your acceleration in units ^2^2 which you then can convert to G and subtract from your z accel reading . all units must match including gyro rate.