How do I measure in-run bias stability in a MEMS gyroscope?
The "in-run bias stability" typically references the minima of the Allan Variance curve. The Allan Variance method was developed by David Allan, in the 1960s, for the purpose of monitoring stability in atomic clocks, but the method works very well for studying gyroscope bias as well. IEEE-STD-952-1997, Appendix B, provides a lot of detailed information on this method, but the purpose of this FAQ is to focus on how to apply this method, using a specific example. Let's start with the ADIS16485, a 6DOF IMU that provides an Allan Variance plot in its datasheet. The integration time for the Allan Variance minima covers a span of ~40 to 2000 seconds.
This example uses (1) ADIS16485AMLZ, (1) EVAL-ADIS, the IMU Evaluation software package (1.1) and a vice for keeping the IMU stable during data collection. The EVAL-ADIS User Guide, UG-287, provides details on how to set the EVAL-ADIS and IMU Evaluation software package for ADIS16485 testing.
Hit the start button and wait for the data collection process to complete. The Data Capture menu will provide a real-time status update at the bottom of the screen. The following picture show this, along with the Data Capture settings for this test. Click on the image to access a higher-resolution version.
Once the analysis is complete, open the data file in MS Excel to complete the analysis. Obviously, there are more elegant ways to process this data, for those who can write macros or their own analysis programs, but the attached Excel file (ADIS16485_IRBS_DataAnalysis.xlsx), provides a manual analysis view, for the purpose of learning each step.
The attached Excel file has two separate sheets in it.
The bottom line is that this process may take some "trial and error," in order to manage all potential influences. We look forward to your feedback.
I think in the excel you are getting z_gyro(combining both z_gyro_out and z_gyro_low) and not z_gyro_low( guess u have to correct the name!!!)... and regarding the conversion from 2's complement format to decimal , I didn't understand the math behind it...could you please explain??
Say I am only reading the z_gyro_out (16 bit register) and I get 2 8 bit values through controller(arduino)with msb coming first .. the math to get 16 bit is
msb*256+lsb --- this gives me a decimal value and I multiply this with scale factor and get the output
for 32 bit output how do I combine the values from gyro_out and gyro_low!! please throw some light on this
We might have to change that heading in the data-capture file but we are also considering adding a note to the EVAL-ADIS User Guide (UG-287), which will explain that when you select the x_xxxx_LOW register in the Data Capture menu (IMU Evaluation software), it will combine the x_xxxx_OUT and x_xxxx_LOW registers automatically. In order to combine these two registers in your code, start with Figure 18 (page 14) on the ADIS16488 datasheet. You will mutiply the x_GYRO_OUT number by 2^16, then add it to the x_GYRO_LOW number, to produce a 32-bit number. Regarding the twos complement to decimal conversion, the Excel sheet uses a simple "IF" statement that sets the decimal output equal to the twos complement, if the number is less than 2^31. If the two complement number is greater than, or equal to 2^31, it subtracts 2^31 from the twos complent number to produce the decimal number.
I hope that helps! Thank you for the feedback.