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.
thanks for the clarification, yes averaging is "low pass" to me.
For more details on analyzing the frequency response of this particular IMU, please see this blog, which includes a link to a detailed article on this topic. Hope that helps!
The difference between the 5 and 40 second AVAR estimates relates to the noise behaviors of the device. Not sure what else to offer, hope that helps. If you have a difference expectation and would like deeper explanation, please feel free to share that, perhaps in a new discussion that provides this link as a starting point.
The decimation filter includes averaging, which has "low pass filter" attributes, but I am not 100% sure what you mean by "low-passed." Look forward to clarification if you wanted more information on this.
for the rial1-40sec data set with an average time of 40 seconds, it shows a result of 7.6 deg/hour, however if I do the excel again with an average time of 5 seconds, it shows a slightly higher value of 9.3 deg/hour, it seems not much difference between 5 seconds and 40 seconds average time, is it because it hits the bias (in)stability curve after 5 seconds?
one quick question, for the decimated 2 samples output in one second, are the output data low passed or not? Thanks.
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.