EFFORTS TOWARD DESIGN, DEVELOPMENT AND IMPLEMENTATION OF AN INTEGRATED AND FLEXIBLE SUPPORT SYSTEM FOR CALIBRATION OF AIR DATA ATTITUDE HEADING REFERENCE SYSTEMS Except where reference is made to the work of others, the work described in this thesis is my own or was done in collaboration with my advisory committee. This thesis does not include proprietary or classified information. ______________________________________ Arvind Raghuraman Certificate of Approval: ____________________________________ Thomas S. Denney Jr. Professor Electrical and Computer Engineering __________________________________ Michael E. Greene, Chair Professor Electrical and Computer Engineering ___________________________________ Victor P. Nelson Professor Electrical and Computer Engineering __________________________________ Joe F. Pittman Interim Dean Graduate School EFFORTS TOWARD DESIGN, DEVELOPMENT AND IMPLEMENTATION OF AN INTEGRATED AND FLEXIBLE SUPPORT SYSTEM FOR CALIBRATION OF AIR DATA ATTITUDE HEADING REFERENCE SYSTEMS Arvind Raghuraman A Thesis Submitted to the Graduate Faculty of Auburn University in Partial Fulfillment of the Requirements for the Degree of Master of Science Auburn, Alabama May 10, 2007 iii EFFORTS TOWARD DESIGN, DEVELOPMENT AND IMPLEMENTATION OF AN INTEGRATED AND FLEXIBLE SUPPORT SYSTEM FOR CALIBRATION OF AIR DATA ATTITUDE HEADING REFERENCE SYSTEMS Arvind Raghuraman Permission is granted to Auburn University to make copies of this thesis at its discretion, upon request of individuals or institutions and at their expense. The author reserves all publication rights. ___________________________ Signature of Author ___________________________ Date of Graduation iv VITA Arvind Raghuraman was born on December 19, 1980 in Chennai, India. After graduating from Boston Matriculation Higher Secondary School in 1998 he attended Madras University, India where he received his bachelor?s degree in engineering specializing in instrumentation and control. On completion of his undergraduate degree, He worked on design, development and deployment of industrial automation solutions for Apna Technologies and Solutions, an alliance member of National Instruments, India, till July 2003. He entered graduate school at Auburn University in the fall of 2003. His research interests include industrial automation and control and embedded systems. v THESIS ABSTRACT EFFORTS TOWARD DESIGN, DEVELOPMENT AND IMPLEMENTATION OF AN INTEGRATED AND FLEXIBLE SUPPORT SYSTEM FOR CALIBRATION OF AIR DATA ATTITUDE HEADING REFERENCE SYSTEMS Arvind Raghuraman Master of Science, May 10, 2007 (Bachelor of Engineering, Madras University, Chennai, India, 2002) 152 Typed Pages Directed by Michael E. Greene An Air Data Attitude Heading Reference System is a device that provides a modern day Aircraft with altitude, air-speed, attitude, and magnetic parameters. A typical ADAHRS contains a number of tightly integrated sensors to sense the various operating variables required to compute these parameters. The operation of ADAHRS greatly depends on the accuracy of measurements made by its sensor systems. When deployed for use, the accuracy of sensors is affected due to various error sources. These errors may be induced due to the inherent characteristics of sensors themselves or due to the ambient conditions the sensors operate in. It is important that the characteristics of these error sources are well understood and their effects mitigated using suitable correction and vi compensation schemes. In a typical ADAHRS production environment each ADAHRS unit has to be individually calibrated and tested to ensure its accuracy within its rated operating limits. The work presented in this thesis provides a commercially deployable calibration support system that provides an enabling framework for production line calibration, and acceptance testing of Air Data Attitude Heading Reference Systems. vii ACKNOWLEDGMENTS I take this opportunity to thank my academic advisor Dr. Edward Michael Greene for the guidance, motivation, inspiration and support he provided for my research and my master?s degree program in Auburn University. I am grateful to my research associates Jay, Sangram, Stephen, Victor and Karthick for the cooperation and help they extended for my work. I am thankful to my manager Christopher Sholler for his understanding and support. I wish to dedicate this degree and work to my family who made this possible. viii Style manual or journal used: IEEE Computer software used: Microsoft Office System 2003 ix TABLE OF CONTENTS LIST OF FIGURES .......................................................................................................... xii LIST OF TABLES........................................................................................................... xvi 1 INTRODUCTION ...................................................................................................... 1 1.1 Introduction......................................................................................................... 1 1.2 What is ADAHRS?............................................................................................. 2 1.3 Background on ADAHRS: Case Study ? The AHR150A.................................. 4 1.4 Need for Calibration in ADAHRS...................................................................... 8 1.5 Existing IMU and ADS Sensor Calibration Methods......................................... 9 1.6 Need for a Comprehensive Calibration Support System for ADAHRS ........... 13 1.7 Proposed system - ADAHRS Calibration Support System .............................. 17 1.8 Goals and Contributions ................................................................................... 19 1.9 Thesis Organization .......................................................................................... 20 2 ADAHRS CALIBRATION METHOD AND PROCESS........................................ 21 2.1 Overview........................................................................................................... 21 2.2 Inertial Measurement Unit (IM3) ..................................................................... 22 2.3 ADXL210E MEMS Accelerometer Sensor...................................................... 24 2.4 ADXRS150 MEMS Gyro Sensor ..................................................................... 25 2.5 Air Data System................................................................................................ 26 2.5.1 Model 1230 Piezo-Resistive Pressure Sensor........................................... 27 2.6 IMU ? Error Sources......................................................................................... 28 2.6.1 Accelerometer Temperature Drift............................................................. 28 2.6.2 Accelerometer Offset and Scale factor ..................................................... 29 2.6.3 Cross-Axis Error ....................................................................................... 29 2.6.4 Gyroscope Errors ...................................................................................... 29 2.6.5 Gyroscope Temperature Drift................................................................... 30 2.6.6 Gyroscope Scale Factor and Offsets......................................................... 31 2.6.7 Gyroscope Scale-Factor Non-Linearity .................................................... 32 2.6.8 Gyroscope Scale Factor Dependency on Temperature............................. 33 2.7 Air Data System (ADS) ? Error Sources .......................................................... 34 2.7.1 Pressure Sensor Temperature Drift........................................................... 34 2.7.2 Offset and Scale Factor............................................................................. 35 2.7.3 Scale Factor Non-Linearity....................................................................... 36 x 2.7.4 Offset and Scale-Factor Dependency on Temperature ............................. 37 2.8 IMU calibration - Method and Process............................................................. 38 2.8.1 IMU Thermal Calibration ......................................................................... 38 2.8.2 Accelerometer Offset and Scale Factor Calibration ................................. 41 2.8.3 Gyroscope Scale Factor Calibration ......................................................... 48 2.8.4 Accelerometer and Gyroscope Cross-Axis Calibration............................ 51 2.9 ADS Calibration Method - Method and Process .............................................. 54 2.9.1 Ps and Pt Pressure Sensor Calibration Method......................................... 54 3 ADAHRS CALIBRATION SYSTEM DESIGN AND IMPLEMENTATION ....... 57 3.1 Chapter Overview ............................................................................................. 57 3.2 IMU Calibration System - Layout and Description.......................................... 58 3.2.1 Rate Table ................................................................................................. 59 3.2.2 Environmental Chamber ........................................................................... 60 3.2.3 Four Port RS232 to USB Converter.......................................................... 60 3.2.4 Calibration Computer................................................................................ 61 3.3 ADS Calibration System - Layout and Description.......................................... 61 3.3.1 Environmental Chamber ........................................................................... 62 3.3.2 DRUCK 403 Air Data Test System.......................................................... 62 3.4 LabVIEW Application Development Platform ................................................ 63 3.5 IMU Calibration System Application Software................................................ 64 3.6 IMU Calibration System Requirements............................................................ 69 3.7 IMU Calibration System ? Application Software Implementation .................. 71 3.7.1 Main Module............................................................................................. 71 3.7.2 IMU Calibration Communications Setup Module.................................... 72 3.7.3 Thermal Calibration Module..................................................................... 74 3.7.4 IMU Sensor Calibration Module .............................................................. 83 3.8 ADS Calibration System ? Application Software ............................................ 93 3.9 ADS Calibration System Application Software Requirements ........................ 97 3.10 ADS Calibration System ? Application Software Implementation .................. 99 3.10.1 ADS Calibration Communications Setup ................................................. 99 3.10.2 ADS Burn-in Module.............................................................................. 102 3.10.3 ADS Calibration Module ........................................................................ 109 4 ADAHRS CALIBRATION SUPPORT SYSTEM TESTING AND RESULTS... 118 4.1 Chapter Overview ........................................................................................... 118 4.2 IMU Calibration System Results .................................................................... 118 4.2.1 IMU Thermal Calibration ....................................................................... 118 4.2.2 IMU Accelerometer Offset and Scale Factor Calibration....................... 120 4.2.3 IMU Gyroscope Scale Factor Calibration............................................... 122 4.2.4 IMU Cross-Axis Calibration................................................................... 122 4.2.5 IMU Sensor Calibration Acceptance Test .............................................. 124 4.3 ADS Calibration System Results.................................................................... 128 xi 4.3.1 ADS Sensor Calibration.......................................................................... 128 4.3.2 ADS Sensor Calibration Acceptance Test .............................................. 129 5 CONCLUSION....................................................................................................... 131 REFERENCES????????????????????????????133 xii LIST OF FIGURES Figure 1: Role of ADAHRS in an aircraft .......................................................................... 3 Figure 2: AHR150A, a product of Archangel Systems Inc ................................................ 4 Figure 3: AHR150A architecture........................................................................................ 5 Figure 4: Optical tracking system..................................................................................... 11 Figure 5: ADAHRS calibration support instruments........................................................ 18 Figure 6: IM3 hardware layout ......................................................................................... 22 Figure 7: Inertial Measurement Cube - IM3. (a) Accelerometer triad mounting, (b) IM3. (c) Gyroscope triad mounting ........................................................................................... 23 Figure 8: ADXL210E PWM output.................................................................................. 25 Figure 9: ADS hardware layout ........................................................................................ 26 Figure 10: Accelerometer temperature drift.. ................................................................... 28 Figure 11: Gyroscope temperature drift............................................................................ 31 Figure 12: Gyroscope scale factor non-linearity............................................................... 32 Figure 13: Gyro scale factor dependency on temperature.. .............................................. 33 Figure 14: Pressure sensor temperature drift.. .................................................................. 35 Figure 15: Pressure sensor scale factor non-linearity.. ..................................................... 36 xiii Figure 16: Pressure sensor scale factor dependency on temperature................................ 37 Figure 17: Thermal profile used for IMU calibration....................................................... 39 Figure 18: The six orientations used for IMU calibration. ............................................... 45 Figure 19: Z- Axis accelerometer calibration data. .......................................................... 46 Figure 20: X-Axis accelerometer calibration data............................................................ 47 Figure 21: Y-Axis accelerometer calibration data............................................................ 48 Figure 22: Gyro scale factor non-linearity calibration data.............................................. 50 Figure 23: Gyro scale factor non-linearity curve-fit,........................................................ 51 Figure 24: Altitude sensor calibration data....................................................................... 56 Figure 25: IMU calibration system layout........................................................................ 58 Figure 26: IDEAL-Aerosmith rate table/ rate table with environmental chamber ........... 59 Figure 27: ADS calibration system layout........................................................................ 61 Figure 28: DRUCK 403 ADTS......................................................................................... 63 Figure 29: Software modules involved in IMU calibration process................................. 66 Figure 30: Main GUI ........................................................................................................ 72 Figure 31: IMU communications setup GUI .................................................................... 73 Figure 32: Communications setup module flowchart....................................................... 74 Figure 33: Download thermal profiles GUI...................................................................... 76 Figure 34: Download thermal profiles flowchart-I........................................................... 77 Figure 35: Download thermal profiles flowchart-II.......................................................... 78 Figure 36: Profile download process flowchart................................................................ 79 Figure 37: IMU thermal calibration GUI.......................................................................... 80 Figure 38: IMU thermal calibration.................................................................................. 81 xiv Figure 39: IMU thermal calibration result generation GUI.............................................. 82 Figure 40: Thermal calibration flowchart......................................................................... 83 Figure 41: IMU sensor calibration setup GUI .................................................................. 84 Figure 42: IMU sensor calibration setup flowchart .......................................................... 85 Figure 43: IMU sensor calibration GUI............................................................................ 87 Figure 44: IMU sensor calibration flowchart - I............................................................... 88 Figure 45: IMU sensor calibration flowchart - II.............................................................. 89 Figure 46: IMU sensor calibration flowchart ?III............................................................. 90 Figure 47: IMU sensor calibration flowchart - IV............................................................ 91 Figure 48: IMU sensor calibration result generation GUI................................................ 92 Figure 49: IMU sensor calibration result generation flowchart........................................ 93 Figure 50: ADS calibration process.................................................................................. 95 Figure 51: ADS communications setup GUI.................................................................. 100 Figure 52: ADS communications setup flowchart.......................................................... 101 Figure 53: WATLOW series 942 programmer GUI....................................................... 103 Figure 54: WATLOW programmer flowchart................................................................ 104 Figure 55: ADS burn-in GUI .......................................................................................... 106 Figure 56: ADS burn-in flowchart.................................................................................. 107 Figure 57: ADS burn-in validation GUI ......................................................................... 108 Figure 58: ADS burn-in flowchart.................................................................................. 109 Figure 59: ADS calibration setup GUI ........................................................................... 110 Figure 60: ADS calibration setup flowchart ................................................................... 111 Figure 61: ADS calibration GUI..................................................................................... 113 xv Figure 62: ADS calibration flowchart............................................................................. 114 Figure 63: ADS calibration components flowchart ........................................................ 115 Figure 64: ADS result generation ................................................................................... 117 Figure 65: IMU thermal calibration data, temperature cycle used was from -20 ?C to +65 ?C. Plots 1, 2, and 3, show the gyro measurements (gx, gy and gy) in counts scaled by a division factor 20972 [9] on Y-axis. Plots 4, 5, 6, 7, 8 and 9, show the accelerometer measurements (az1, ax1, ay1, az2, ax2, and ay2) in pulse width scaled by a multiplication factor of 25 [8]. X-axis represents time (not to scale). ................................................... 119 Figure 66: Accelerometer calibration acceptance test, delta velocities acquired in orientations 11, 21 and 31 are shown. Delta velocity unit in m/s. X-axis represents time (not to scale).................................................................................................................... 124 Figure 67: Gyroscope calibration acceptance test, delta angles acquired at rates -150 ?/s, - 100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150?/s, in orientations 11, 21 and 31 are shown. Delta angle unit in degrees. X-axis represents time (not to scale).................................. 126 Figure 68: IMU thermal calibration acceptance test, conducted between -20 ?C and +65 ?C, in orientation 31. Plots 1,2, and 3 shows delta roll angle, pitch angle and yaw angle on Y-axis in degrees. Plots 3,4, and 5 show delta velocities along X, Y and Z axis along Y-axis in m/s. X-axis represents time (no to scale). ....................................................... 128 Figure 69: ADS altitude error observed at reference altitudes between 0 feet to 12000 feet at 1000 feet increments. At temperatures 25 ?C, 45 ?C, and 65 ?C................................ 130 xvi LIST OF TABLES Table 1: IMU inertial measurement accuracy table.......................................................... 14 Table 2: ADS altitude accuracy table ............................................................................... 14 Table 3: ADS air-speed accuracy table............................................................................. 15 Table 4: ADAHRS operating limits table......................................................................... 15 Table 5: ADAHRS temperature specifications................................................................. 15 Table 6: ADXL210E specifications, from Analog Devices data sheet [8]....................... 25 Table 7: ADXRS150 specifications, from Analog Devices data sheet [9]....................... 26 Table 8: IMU calibration application modules and sub-modules..................................... 65 Table 9: Steps supported in IMU calibration sequence .................................................... 67 Table 10: IMU calibration application software system requirements............................. 69 Table 11: ADS calibration application software module and sub-modules ..................... 96 Table 12: ADS calibration application software requirements......................................... 97 Table 13: Computed thermal calibration constants for data shown in Figure 65, a 2nd-order polynomial fit was used................................................................................... 120 Table 14: Mean of accelerometer measurements acquired under orientations 11, 12, 21, 22, 31, and 32 are shown. Temperature compensated accelerometer measurement unit in pulse width...................................................................................................................... 121 Table 15: Computed accelerometer offsets for data shown in Table 14. Eq. (12) was used to compute the offsets. .................................................................................................... 121 Table 16: Computed accelerometer scale factors for data shown in Table 14. Eq. (12) was used to compute the scale factors.................................................................................... 121 xvii Table 17: Mean of gyro measurements taken at the chosen rates; -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s in orientations 11, 21 and 31. Temperature compensated gyro measurement unit in counts. ............................................................. 122 Table 18: Computed gyro scale factor constants for data shown in Table 17 a 3rd-order polynomial fit was used to compute the scale factor constants. ..................................... 122 Table 19: IMU cross-axis calibration, mean of delta velocities obtained in orientations 11, 21 and 31 are shown. Delta velocity unit in m/s............................................................. 123 Table 20: IMU cross-axis calibration, mean of delta angles obtained in orientations 11, 21 and 31 are shown. Delta angle unit in degrees................................................................ 123 Table 21: Mean of delta velocities in orientations 11, 21 and 31. Delta velocity unit in m/s................................................................................................................................... 125 Table 22: Mean of delta angles in orientation 11 acquired at rates -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s. Delta angle unit in degrees.................................. 126 Table 23: Mean of delta angles in orientation 21 acquired at rates -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s. Delta angle unit in degrees.................................. 126 Table 24: Mean of delta angles in orientation 31 acquired at rates -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s. Delta angle unit in degrees.................................. 127 Table 25: Computed surface fit constants....................................................................... 129 1 1 INTRODUCTION 1.1 Introduction This thesis provides a detailed description of efforts toward design, development and implementation of an integrated and flexible calibration support system for Air Data Attitude Heading Reference Systems (ADAHRS). A number of published sensor calibration methods have been reviewed, and a tool has been developed and implemented to realize a comprehensive method and process for ADAHRS calibration. An ADAHRS is a distributed multi-processor embedded system composed of independent sub-systems, such as, an Inertial Measurement Unit (IMU), an Air Data System (ADS), and a Magnetic Sensing Unit (MSU). The sensor systems employed by these sub-systems are composed of a number of uniquely different sensors: the inertial measurement unit employs tri-axial accelerometers and tri-axial gyroscopes, the air data system employs static and differential piezo-resistive pressure sensors, and the magnetic sensing unit employs tri-axial magnetometers and bi-axial accelerometers. The operation of each of the stand-alone sub-systems and the ADAHRS as a whole greatly depend on the accuracy of measurements made by these sensors. The accuracy of ADAHRS sensors is affected by a number of error sources. These errors may be induced due to the inherent characteristics of sensors themselves or due to the ambient conditions in which the sensors operate. Since these errors are unique to a given sensor, in a typical production 2 environment, each ADAHRS unit has to be individually calibrated and tested for its accurate operation within its rated operating limits. The calibration support system presented in this thesis provides a flexible framework that will enable the developer to study and characterize the sensor error sources, experiment with different sensor calibration strategies for error correction and compensation, and evaluate the effectiveness of calibrations performed with relevant acceptance tests. Once satisfactory results are obtained with a chosen calibration strategy the user can freeze the system configuration and deploy it for production line calibration and testing of each individual ADAHRS unit. The organization of this chapter is given as follows: Section 1.1 gives a brief introduction to ADAHRS and its commercial applications. Section 1.2 gives an overview of the ADAHRS, its components and their functionality. Section 1.3 discusses the need for calibration in ADAHRS. Section 1.4 presents a literature review of existing calibration methods. Section 1.5 discusses the need for a comprehensive calibration support system for ADAHRS. Section 1.6 presents the proposed calibration support system. Section 1.7 presents the goals and contributions achieved. Section 1.8 presents the organization of this thesis. 1.2 What is ADAHRS? An Air Data Attitude Heading Reference System (ADAHRS) is an integral part of a modern aircraft?s flight control and navigation systems as well as pilot instrumentation such as an Electronic Flight Information System (EFIS). It provides vital flight parameters like body lateral acceleration, body longitudinal acceleration, body normal acceleration, body pitch rate, body roll rate, body yaw rate, magnetic heading, pitch 3 angle, roll angle, inertial pitch rate, inertial roll rate, along heading acceleration, cross heading acceleration, altitude, altitude rate, computed air-speed, mach, true air-speed, total air temperature and baro-corrected altitude [2]. The ADAHRS provides the combined functionality of three traditional flight systems: an air data system that provides an aircraft?s altitude and air speed parameters, an inertial measurement unit that measures linear accelerations and rotation rates which are used to calculate an aircraft?s pitch, roll and yaw parameters, and a magnetic sensing unit that measures the magnetic field along the three axes and provides the magnetic heading for an aircraft. A typical ADAHRS is an a integral part of an aircrafts fly-by wire system, driving vital aircraft components like primary flight displays (PFD), navigation displays and autopilots, making it the heart of an aircraft?s electronic flight instrumentation system, as shown in Figure 1. ADAHRS finds its applications throughout aviation from single engine to multi engine propeller general aviation aircraft, turbine business aircraft, helicopters, air transport craft and in military aircraft worldwide [1]. Primary Flight Display PFD Navigation Display Flight Auto-Pilot Inertial Measurement Unit IMU Air Data System ADS Magnetic Sensing Unit MSU ADAHRS Figure 1: Role of ADAHRS in an aircraft. 4 1.3 Background on ADAHRS: Case Study ? The AHR150A The ADAHRS system considered in this thesis for development of the ADAHRS support system is the AHR150A air data and attitude heading reference system, a product of Archangel Systems Inc, USA [2]. In modern ADAHRS systems, a combination of attitude heading with air data is used to obtain robust inertial solutions. The AHR150-A is one such system [1]. The AHR150A is a complete avionics attitude and air data sensor system composed of hardware and software. The system is composed of two boxes: an AHR150A-1 Inertial Sensing Unit (ISU) and an AHR150A-2 Magnetic Sensing Unit (MSU) [2], which are shown in Figure 2(a) and 2(b), respectively. The architecture of the AHR150A system is shown in Figure 3. The AHR150A communicates to the external world via a dedicated bi-directional ARINC bus through which the inertial solutions are transmitted to the flight computers. ARINC is a communication standard for instrument communication in aircrafts [11]. An RS 232 compliant maintenance port is provided for diagnostics and calibration. The AHR150A also provides sensor interface ports for static pressure sensor, pitot pressure sensors and the outside air temperature (OAT) sensor. (a) (b) Figure 2: AHR150A, a product of Archangel Systems Inc. 5 Inertial Measurement Unit dsPIC 6012 IMU 3 Accelerometers, 3 Gyros Computes FLASP solution from sensor data. Air Data System dsPIC 6012 ADS Pitot & Static pressure sensors Computes Air Data Solution from sensor data. Core Processing Element TI TMS320C6713 DSP Computes FLASP solution from IMU data and validates it. Computes Air Data solution from ADS data and validates it I/O Processor dsPIC 6012 IOP ARINC Xceivers, RS 232 Xceivers Transmits ARINC data AHR150A-2 MSU 3-axis Magnetometers, 2-axis accelerometers Provides Magnetic heading Pt Ps OAT Calibration and Maintenance port Discrete's ARINC bus AHR150A-1 (ISU) Figure 3: AHR150A architecture. 6 The ISU contains multiple embedded subcomponents: Inertial Measurement Cube (IM3), Air Data System (ADS), Digital Signal Processor (DSP), and Input Output Processor (IOP).The components of the ISU are explained as follows. The IM3 measures tri-axial accelerations and tri-axial angular rotation rates. It consists of solid state strap down MEMS gyros, MEMS accelerometers, temperature sensors, power/signal conditioning circuitry and a digital signal programmable interface controller (dsPIC) for computing the accelerations and angular rotation rates along the X,Y and Z axes. The IMU acquires data from the sensors and executes an advanced Fuzzy Logic Adaptive Signal Processing (FLASP) corrective algorithm to ensure the correctness of the inertial attitude solution. It outputs the sampled accelerometer, gyro and sensor temperature data along with the computed inertial solution to the main DSP where the solution is recomputed and validated with dissimilar software. The ADS measures and transmits air pressure data, which is used to derive the altitude and airspeed of an airborne system. It consists of pitot and static pressure sensors, power and signal conditioning circuitry, and a dsPIC for computing the air data solutions. The ADS transmits solution parameters like: mach number, altitude, true air speed, total air temperature, and the sampled sensor data to the DSP. The DSP recomputes and validates the solution parameters with dissimilar software. Non-conforming solutions by either or both of the subsystems generate a fault which is used to ensure measurement integrity. The Input Output Processor (IOP) serves as the bridge between the AHR150A and the other flight systems. It obtains various solution parameters from the DSP processor and transmits it over several ARINC 429 busses [2]. The IOP contains ARINC 7 interface drivers and a dsPIC for synchronizing and coordinating the communication between the AHR150A system and the flight computer. The IOP also monitors the fault lines from the various subcomponents to assert the ARINC fault line. The DSP is the core processing element. It is responsible for acquisition, verification, and validation of inertial, altitude and air speed solutions computed by the system sub-components. It consists of an external flash memory, program memory, communication peripherals and a TI TMS320C6713 DSP for performing the above mentioned functions. The DSP contains an RS232 maintenance port, which serves as a communication window between the AHR150A system and external support systems for testing, and calibration. The AHR150A-2 consists of a three-axis magnetic sensor to measure the tri-axial magnetic flux, a two-axis accelerometer to measure the acceleration along the X and Y axis, associated analog interface circuitry, power conditioning, and a PIC16C773 micro- controller for computing the magnetic heading [5]. The MSU remotely transmits the magnetic heading data for the computation of inertial solutions. The AHR150A-2 outputs magnetic field strength on an RS422 bus at 100 Hz [5]. The IMU and ADS sub-components described above are dealt with in detail in the following chapters. The IOP and the IMU communicate with the DSP through a dedicated Serial Peripheral Interface (SPI) bus and the ADS communicate with the DSP through an UART interface. The ADS unit is calibrated after system integration of the AHR150A through the maintenance port, while the IMU and MSU are calibrated independently before integration. 8 1.4 Need for Calibration in ADAHRS In the inertial measurement unit, the tri-axial linear acceleration and rotation rate measurements made by the MEMS accelerometers and gyroscopes are integrated with respect to time to determine the inertial parameters such as pitch, roll and yaw. As a consequence of this time integration even small errors induced by the inertial sensors can propagate with an unbounded growth leading to serious system inaccuracies [6]. The accelerometers and gyroscope sensors used in the IMU are plagued by sensor offset and scale factor errors caused by inherent sensor design inconsistencies and cross-axis errors caused by device-mounting imperfections. They are also susceptible to thermal drift errors induced by operating ambient temperature conditions [8, 9]. In addition to these errors, the gyroscope scale factor exhibits non-linearity over the measurement span and a dependency on operating ambient temperature [16]. The nature of these sensor errors has to be studied and error models have to be developed for the prominent error sources. Suitable calibration strategies have to be devised for correction and compensation of modeled errors and the measurement accuracy using the devised strategy has to be verified with suitable acceptance tests in order to evaluate the effectiveness of calibration. In the air data system, the PC board mountable piezo-resistive silicon pressure sensors used for measurement of static and pitot pressures are affected by sensor thermal drift errors, offsets and scale factor errors, scale factor non-linearity errors, errors caused by scale factor dependency on temperature, errors caused by measurement hysteresis, and errors caused by temperature hysteresis. These error sources need to be thoroughly investigated and suitable calibration techniques should be adopted to get the ADS system to perform within the error budget specified by the relevant ARINC706-4 standard [11]. 9 The magnetic sensing unit present in the ADAHRS employs MEMS accelerometers and magnetometers for measurement of X and Y axis accelerations and the tri-axial magnetic flux, respectively. The accelerometers suffer from errors due to sensor scale factor and thermal drifts, while the magnetometers need to be calibrated for sensor scale factor. The ADAHRS support system presented in this thesis does not provide calibration support for the MSU calibration. [10] presents a comprehensive calibration system for calibration of the MSU. 1.5 Existing IMU and ADS Sensor Calibration Methods Various methods and algorithms have been proposed for calibration of accelerometer triads. Lukowicz et al [12] proposed an automatic accelerometer calibration method that uses earth?s acceleration due to gravity g as a known acceleration reference. In this method, the IMU accelerometer triad measurements are taken in six random, significantly different positions under a precondition that the accelerometers are perfectly orthogonal to each other. Under this premise, when measurements are taken in six orientations with no dynamic acceleration effects, Eq.(1) stands true. 1)( 222 =++=? zyxX )1( Where x , y and z are acceleration components measured along the X, Y and Z axes respectively. The general equation for acceleration measured along an axis, say X-axis is given by Eq.(2). xxx aSOx ?+= )2( 10 Where xO is the offset, xS is the scale factor, x is the calibrated measurement and xa is the un-calibrated measurement for the X-axis accelerometer. Substituting Eq.(2) in (1) we get, 1)/)(()/)(()/)(( 222 =?+?+? zxzyyyxxx SOasOaSOa )3( From Eq.(3), we have six unknowns zyxzyx SSSOOO ,,,,, . With measurements taken in six random orientations we will have a system of six equations which can be solved to obtain the unknowns. In this method, care should be taken to make sure that the six orientations are significantly different to ensure convergence while solving the equation system. Axes orthogonality is a mandatory precondition for this method. Since sensor mounting in an IMU triad can never be truly orthogonal, this method will fail for ADAHRS IMU calibration. Hung et al [13] presented a calibration algorithm similar to [12] that uses earth?s acceleration due to gravity g as a known acceleration reference. In this method, IMU accelerometer triad measurements are taken in 12 predefined positions [13]. The measured quantity is the earth?s gravity and the triad measurement is the vector sum of outputs of the x, y, and z axes accelerometers. The accelerometer error model considered in this paper consists of three bias uncertainties ),,( zyx BBB , three scale factor constants ),,( zyx KKK , three dis-symmetry constants ),,( zyx DSDSDS and three non- orthogonality constants ),,( zyzxyx NONONO , where x, y and z are the respective coordinate axes. The 12 unknowns of the triad?s error model can be obtained by solving the system of 12 equations obtained from the 12 position test. In order for the 12 position test to be effective, the IMU should be accurately and precisely placed in the 12 11 predetermined positions mentioned in [13]. This method is not very well suited for a production line calibration, since mechanical automation will require an elaborate test jig design, making the system complicated and expensive. Golnaraghi et al [15] proposed an accelerometer triad calibration method that is relatively more expensive to implement, but highly efficient in terms of calibration time. A standard calibration run takes about half a minute. This method requires an optical tracking system, shown in Figure 4, which will measure the true translational and rotational kinematics of the IMU. Three tracking LED?s are attached to the corners of the IMU to enable the cameras present in the optical tracking system to track the motion of the IMU, as shown in Figure 4. A typical calibration run involves accelerating the IMU in six degrees of freedom and acquiring the IMU output simultaneously. The optical tracking system tracks and records the position of the IMU throughout the duration of this process. In order to calibrate the gyros the IMU is rotated in all six degrees of freedom at an angular rate of 90 ?/s while the IMU output is acquired. Figure 4: Optical tracking system. 12 On completion of the calibration process a non-linear least squares algorithm, presented in this paper, is used to determine the accelerometer and gyro offsets and scale factors. The infrastructure required to implement this method for mass IMU calibration is quite complicated and expensive. Automation of this method drives the costs even higher. Krohn et al [14] proposed a simple six-position rotational calibration method for calibration of accelerometer triads. This is the chosen method for IMU accelerometer calibration in this thesis. The method and process are clearly explained under Section 2.6. Although axis orthogonality is a precondition for this method, cross-axis calibration explained under Section 2.6 compensates for any axis misalignments. Ojeda et al [16] presented a gyro calibration method that employs a rate table to provide known reference angular rates to the IMU. The gyroscopes present in the IMU are calibrated with respect to this known reference. This is the chosen method for IMU gyroscope calibration in this thesis. This method, published for calibrating fiber-optic gyros, will be employed to calibrate MEMS gyros used in the IMU. The algorithms used and implementation of this method are explained in detail in Section 2.6. In order to calibrate the pressure sensors used in the air data system, one of the commonly practiced methods to compensate for scale factor nonlinearity and temperature dependency is implemented using a look-up table approach. The behavior of a pressure sensor under various temperatures at different regions of the measurement span is captured and implemented as a look-up table. During operation, the altitude and air-speed measurement is obtained from the look-up table based on the current temperature and pressure measurements. 13 Reynolds et al [21] presented a methodology to calibrate pressure sensors to compensate for their scale factor non-linearity and scale-factor dependency on temperature. The method proposed involves subjecting the pressure sensors to known altitude and airspeed inputs over the operating measurement range to capture scale factor non-linearity. This procedure is repeated at a number of equidistant points on the operating temperature span to capture the scale factor dependency on temperature. Data is continuously acquired and logged during this procedure. A 3-D polynomial least- squares curve fit was used to fit the measured pressure data and temperature data to the true altitude reference and air-speed reference used during calibration. The ADS calibration system implemented in this thesis provides a modular framework to implement this procedure. 1.6 Need for a Comprehensive Calibration Support System for ADAHRS A typical ADAHRS that can be deployed for commercial avionic applications should comply with a number of rigorous specifications. Typical technical specifications required for an ADAHRS unit will include data accuracy, operating limits and environmental specifications. Tables 1, 2, 3, 4 and 5 show the technical specifications for a typical ADAHRS unit in compliance with FAA TSO standards. From the previous discussion in Section 1.4, it is seen that the scale factors for some of the sensors are non- linear over the measurement span and dependent on the operating temperature conditions. A comprehensive calibration system for ADAHRS should provide a mechanism to ensure data accuracy over the operating temperature range and measurement span. All calibration methods presented in Section 1.5, except [15], might satisfy the calibration 14 requirements for a particular ADAHRS sensor, but are not comprehensive enough to calibrate all ADAHRS sensors to operate within their rated measurement span and operating temperature range. The method proposed in [15] is complicated to implement for mass production of ADAHRS and relatively more expensive. In addition this method does not account for any environmental effects. Currently, there are no calibration tools that are commercially available that provide a comprehensive and integrated framework for calibration of ADAHRS. Table 1: IMU inertial measurement accuracy table Parameter Specification Inertial angles Magnetic heading < 0.1?, pitch and roll < 0.01? Inertial rates Pitch, roll, yaw and turn rate < 0.015?/s Body rates Pitch, roll and yaw < 0.015?/s Accelerations Along X, Y, and Z axes is 1.0 mg Table 2: ADS altitude accuracy table Altitude (feet) Accuracy (feet) -1000 feet to Sea level ? 15 At 10,000 ? 15 At 30,000 ? 20 At 50,000 ? 80 15 Table 3: ADS air-speed accuracy table Air-speed (knots) Accuracy (knots) At 60 ? 5 At 100 ? 2 At 300 ? 1 At 450 ? 1 Table 4: ADAHRS operating limits table Parameter Specification Rates ?150?/s (-A), ?300?/s (-B) Accelerations ?10 g (-A), ?18 g (-B) Altitude -1000 feet to 50000 feet Airspeed 30 knots to 450 knots Table 5: ADAHRS temperature specifications Parameter Specification Temperature -40 ?C to +85 ?C In a complex measurement system like the ADAHRS, the sensor error models considered for each of the sensors employed model only some of the more prominent error sources. There are always error sources that are not considered which are typically deemed negligible. In a typical industrial product development environment, the ADAHRS development process might involve many design iterations that investigate these error sources and their effects on measurement accuracy. Various error correction 16 and compensation strategies may have to be evaluated in order to reach an error compensation scheme that provides a perfect balance between computational overhead and measurement accuracy. Considering these factors, an ideal ADAHRS calibration support system should possess the following characteristics. ? It should provide the developer a flexible framework that will enable him or her to perform sensor error modeling by studying various aspects of sensor behavior in its operating environment. ? It should provide an infrastructure to execute preliminary burn-in tests in order to reduce ADAHRS infant-mortality rate. ? It should provide a flexible framework to investigate various calibration, error correction and compensation strategies to account for the modeled errors. ? It should provide a test infrastructure to evaluate the effectiveness of calibration performed with suitable acceptance tests. ? It should implement a calibration method that is simple and effective. ? It should provide an integrated platform that would optimize the production economics and time to market. The absence of published calibration methods that are comprehensive in nature, or commercially available tools that satisfy the characteristics required by an ideal ADAHRS calibration support system, provides the motivation for the work presented in this thesis. 17 1.7 Proposed system - ADAHRS Calibration Support System The calibration and support framework proposed in this thesis provides a simple and cost effective platform for sensor characterization, sensor calibration, and acceptance testing of various sensors used in the IMU and ADS. The proposed system will be commissioned for use in a real ADAHRS research, development and production environment. In order to develop an ADAHRS calibration system characterized by the features presented in Section 1.6, the calibration application has been implemented as a robust state-machine that executes a calibration sequence of the user?s choice. The proposed system provides the user a powerful and intuitive Graphical User Interface (GUI) which enables him to create a customized calibration sequence composed of a number of configurable steps. Each of these steps performs a particular calibration function. By sequencing these steps in different combinations, sensor characterization, sensor calibration and calibration acceptance testing sequences can be realized and implemented. A single generic framework able to perform the functions necessary to satisfy the system characteristics presented in Section 1.6 results in a highly productive ADAHRS calibration support system. The ADAHRS calibration and support system is composed of both hardware and software. The software component, referred to as the ADAHRS calibration support software, enables a user to implement the desired procedure through a flexible, powerful and intuitive graphical user interface. The hardware component is composed of a number of support instruments that provide various calibration services required by the ADAHRS calibration support software, as illustrated in Figure 5. The ADAHRS calibration support software runs on a dedicated calibration computer. It essentially controls and sequences the operations of the support 18 instruments in order to implement the ADAHRS calibration procedure that will be discussed in Chapter 2. Ideal Aerosmith thermal chamber and Rate table assembly -for IMU Thermal calibration and sensor calibration Tenney Junior thermal chamber -for ADS Thermal calibration DRUCK 403 Air Data Test System -for ADS sensor calibration Calibration computer - running the ADAHRS calibration system application software Figure 5: ADAHRS calibration support instruments. The ADAHRS calibration support software consists of two components, the IMU calibration support system, and the ADS calibration support system. The IMU calibration support system supports burn-in, sensor calibration, thermal calibration and acceptance 19 testing for the MEMS accelerometers and gyros used in the inertial measurement unit. The ADS calibration and support system provides burn-in, sensor calibration, thermal calibration, and acceptance testing for pressure sensors used in the air data system. In addition to their calibration functions, these systems also provide a solid framework for sensor characterization and study. 1.8 Goals and Contributions The goal of this thesis is to develop a commercially deployable calibration support system that can be used for sensor characterization, calibration, and acceptance testing of Air Data Attitude Heading Reference Systems. The implemented system provides the user the framework to implement calibration strategies that would ensure ADAHRS data accuracy over its operating measurement and temperature range. Various sensor error sources that affect the performance of ADAHRS sensors have been reviewed and the more prominent ones were identified. Various published methods for the correction and compensation of these sensor errors have been reviewed and an integrated tool has been developed to implement a comprehensive method and process for IMU and ADS sensor calibration. The calibration support software tool design has been structured and optimized for: cost, modularity, scalability, portability, testability, and most importantly re-configurability of the system. Since the calibration strategy is always under continuous research and development, the calibration tool has been designed and developed to adapt to new calibration requirements, sequences and routines with minimal modifications to the tool environment, consequently reducing the ADAHRS unit?s time to market. The proposed support system is suited for batch calibration of IMU and can be 20 easily extended to support batch calibration of ADS, as well enabling mass production. The integrated nature of the system optimizes production time and economics of calibration. 1.9 Thesis Organization This thesis document is organized as follows: Chapter 2 presents the IMU and ADS error sources, and describes the implementation of the chosen method and process for IMU and ADS calibration. Chapter 3 describes the system design and software implementation details of the IMU and ADS calibration system. Chapter 4 presents the results obtained from trial calibration runs verifying the calibration system?s functionality and usefulness. Chapter 5 concludes this thesis by discussing the goals achieved and scope for future development. 21 2 ADAHRS CALIBRATION METHOD AND PROCESS 2.1 Overview The IMU considered for this thesis is the Inertial Measurement Cube (IM3), a product of Archangel Systems Inc, USA, shown in Figure 7(b) [4]. An inertial measurement unit is the heart of any ADAHRS system. It provides linear acceleration and angular rotation rate parameters to the ADAHRS unit for computation of inertial solutions. The air data system considered for this thesis is the ADS, a product of Archangel Systems Inc, USA [2]. The air data system measures static pressure, pitot pressure and outside air temperature. Based on these measurements it computes and transmits altitude, altitude rate, computed air-speed, MACH, true air-speed, total air temperature and baro-corrected altitude as final outputs on the ARINC bus. Section 2.2 of this chapter covers the basic hardware layout of the IM3 with a brief discussion on its manufacturing process. Section 2.3 covers the basic hardware layout of the ADS. Section 2.4 describes the error sources present in the sensors employed by the IMU. Section 2.5 describes the error sources present in the sensors employed by the ADS. Section 2.6 presents the implemented IMU calibration method and process. Section 2.7 presents the implemented ADS calibration method and process. 22 2.2 Inertial Measurement Unit ? IM3 Figure 6 shows the hardware layout of the IM3. The digital signal Programmable Interface Controller (dsPIC) serves as the main processing element. It is responsible for sensor data acquisition and computation of the inertial solutions. Microchip dsPICA/Dconverters X-axes temp sensor Y-axes temp sensor Z-axes temp sensor X-axes accel aX1 X-axes accel aX2 Y-axes accel aY1 Y-axes accel aY2 Z-axes accel aZ1 Z-axes accel aZ2 X-axes gyro gX Y-axes gyro gY Z-axes gyro gZ Internal A/D converters PWM capture ports UART SPI Figure 6: IM3 hardware layout. The sensor system consists of strap-down solid state accelerometers, gyros, and temperature sensors. The main processing element, along with the sensor systems, forms the IM3, shown in Figure 7(b). The manufacturing process of the IM3 involves populating the sensors, microcontroller (dsPIC), power regulation and signal conditioning components on six, ? inch square PCB?s (printed circuit boards), which form the faces of the IM3. The printed circuit boards are interconnected using a rigid-flex card to form the IM3 flats. The IM3 flats are then subjected to burn-in tests to assess their infant-mortality. 23 On completion of the burn-in process the IM3 flats are folded in the form of a cube and epoxy-glued to form the IM3 shown in Figure 7(b). Three dual-axes accelerometers 212121 ,, zzyyxx aaandaaaa mounted on orthogonal faces of the cube measure the +ve/-ve linear accelerations along the X, Y and Z axes, as illustrated in Figure 7(a). Figure 7: Inertial Measurement Cube. (a) Accelerometer triad mounting, (b) IM3. (c) Gyroscope triad mounting. 24 The accelerometers provided for each axis are interfaced to the internal capture ports of the dsPIC. Three MEMS gyros, ,, yx gg and zg mounted on the orthogonal faces of the IM3, measure the angular rates along the X, Y and Z-axes, respectively, as shown in Figure 7(c). The Gyros are interfaced to external 19-bit A/D converters that communicate with the dsPIC via a dedicated Serial Peripheral Interface (SPI) channel. The Gyros have inbuilt temperature sensors that are interfaced to the dsPIC?s internal A/D converters. These sensors provide the temperature data that is required for thermal compensation of sensor data during run-time. The IM3 outputs data via SPI/UART ports present in the dsPIC. 2.3 ADXL210E MEMS Accelerometer Sensor The ADXL210E is a low-cost, low-power, dual-axis, monolithic MEMS accelerometer from Analog Devices [8]. It provides a digital duty cycle output that can be readily interfaced with PWM peripherals of modern day microcontrollers. These accelerometers can be employed for both dynamic (vibration) and static acceleration measurements. Table 6 shows the relevant specifications of the ADXL210E. The sensor output is an analog output proportional to the acceleration measured. After being low- pass filtered, this analog signal is converted to a Duty Cycle Modulated (Pulse Width Modulated PWM) signal by a DCM modulator present in the sensor. At 0g a 50% duty cycle signal is produced. Accelerations below/above 0g are determined from pulse widths T1 and T2, as shown in Figure 8. 25 Table 6: ADXL210E specifications, from Analog Devices data sheet [8] Specification Value Full-scale measurement range ? 10 g Non-Linearity 2% of Full-Scale Alignment-Error ?1 ? Alignment-Error X-sensor to Y-sensor ? 1 ? Temperature Drift ? 0.5 % Operating Temperature Range -40 ?C to +85 ?C T1 T2 Figure 8: ADXL210E PWM output 2.4 ADXRS150 MEMS Gyro Sensor The ADXRS150 is a complete single-axis angular rate sensing gyroscope manufactured by Analog Devices [9]. The output signal produced by the sensor is an analog signal that can be calibrated to measure the angular rate in ?/s. The MEMS gyro has an inbuilt temperature sensor which produces an analog signal that is proportional to the operating absolute temperature. During operation, this temperature output is used by 26 the IM3 for thermal compensation of accelerometers and gyros in the IMU. The relevant specifications of the ADXRS150 are given in Table 7. Table 7: ADXRS150 specifications, from Analog Devices data sheet [9] Specification Value Full-scale measurement range ? 150 ?/s (clockwise + ve) Non-Linearity 0.1% of Full-Scale Sensitivity over temperature 11.25-13.75 mV/ ?/s Operating Temperature Range -40 ?C to +85 ?C 2.5 Air Data System Figure 9 shows the hardware layout of the ADS unit. The digital signal Programmable Interface Controller (dsPIC) serves as the main processing element. It is responsible for sensor data acquisition and computation of the altitude/air-data solution. Microship dsPIC A/D converters ADS1254 OAT sensor Pressure sensor Ps Pressure sensor Pt Internal A/D converters Power supply UART to DSP Figure 9: ADS hardware layout 27 The sensor system consists of two piezo-resistive pressure sensors, Ps and Pt, that measure the absolute static pressure and the differential pitot pressure, respectively. The main processing element along with the sensor system forms the ADS unit, shown in Figure 9. The pressure sensors are interfaced to the dsPIC controller through an ADS1254 24-bit analog to digital converter. The A/D converter transmits the sampled pressure sensor output to the dsPIC through a dedicated Serial Peripheral Interface channel. The pressure sensors used are temperature compensated over a range of -20 oC to +85 oC. The sensor bridge provides an analog voltage output proportional to the sensor?s operating ambient temperature which is used for thermal compensation of ADS sensors during run time. The Outside Air Temperature (OAT) sensor is interfaced to the dsPIC through one of the on-chip A/D converters. The ADS transmits the computed air data to the main processing DSP via a dedicated UART interface. 2.5.1 Model 1230 Piezo-Resistive Pressure Sensor The model 1230 piezo-resistive pressure sensor is a low cost, high performance, temperature compensated piezo-resistive silicon pressure sensor package manufactured by IC Sensors [20]. The model 1230 pressure sensor employed for the ADS is capable of measuring absolute pressure between 0 PSI to 15 PSI and differential pressure between 0 PSI to 15 PSI. The sensors have a rated +/- 0.1% non-linearity, +/- 0.5% temperature error, 0.05 % temperature hysteresis and a 0.1% pressure hysteresis over the measurement span. The sensors have an operating temperature range of -40 oC to 125 oC. 28 2.6 IMU ? Error Sources 2.6.1 Accelerometer Temperature Drift The ADXL210E accelerometers used in the IM3 are susceptible to sensor thermal drift error. Thermal drift is a characteristic error source that is inherent to the sensor design and unique to every sensor. It causes a constant, measured acceleration value to drift with respect to ambient temperature. If the accelerometers are not suitably calibrated and compensated for thermal drift, the sensors can introduce severe measurement errors while operating under changing ambient temperature conditions. Figure 10 shows the variation in a constant measured acceleration with respect to the operating ambient temperature. Figure 10: Accelerometer temperature drift. 29 2.6.2 Accelerometer Offset and Scale factor In general, MEMS accelerometers are generally not calibrated post-production. They are shipped with a scale factor S and offset O on each of their measurement axes [8]. The ADXL210E has a wide range of tolerance for initial offset. Hence, the accelerometers need to be calibrated individually in order to determine their offset and scale factor. 2.6.3 Cross-Axis Error As shown in Figure 7(a), the IM3 contains three dual-axis accelerometers orthogonally mounted to form a 3-dimensional acceleration measurement system. In this type of application, a source of error called sensor non-orthogonality error creeps in. Since the dual-axis sensors are manually or machine mounted on the orthogonal surfaces, the axes of the sensors are often misaligned from perfect orthogonality. This misalignment introduces erroneous sensor measurements along the three measurement axes. The Gyro triad also suffers from this error source. 2.6.4 Gyroscope Errors Traditionally, gyroscopes suffer from static bias drift errors, i.e, a stationary gyro that is supposed to read an angular rate sec/00.0 ?? = , reads a bias which drifts over time. The AHR150A uses a proprietary Fuzzy Logic Adaptive Signal Processing (FLASP) algorithm to propagate the gyro bias drift errors for correction and compensation. This keeps the gyro drift rate per hour within the relevant error budget specifications. With reduction in the prominent bias drift errors, other gyro errors like 30 scale factor nonlinearity, and scale factor dependency on temperature gain significance, and need to be compensated for. 2.6.5 Gyroscope Temperature Drift The ADXRS150 MEMS gyroscopes used in the IM3 are susceptible to sensor thermal drift error. Thermal drift is a characteristic error source that is inherent to the sensor design and unique to every sensor. It causes a constant, measured angular rate value to drift with respect to ambient temperature. If the gyroscopes are not suitably calibrated and compensated for thermal drift, the sensors can introduce severe measurement errors while operating under changing ambient temperature conditions. Figure 11 shows the variation in a stationary gyro output with respect to the operating ambient temperature. 31 Figure 11: Gyroscope temperature drift. 2.6.6 Gyroscope Scale Factor and Offsets Although the X, Y and Z axis gyroscopes are similar in construction and design, when subjected to a given angular rate, they produce different outputs. This is because of the fact that sensor sensitivity about an axis is unique to a sensor. This quantity is captured as a multiplication factor and referred to as sensor scale factor. The offset of a gyro is given by the gyro output under stationary conditions (0 angular rate input). This parameter is also unique to every gyroscope. Scale factors and offsets for the X, Y and Z axis gyroscopes have to be determined. 32 2.6.7 Gyroscope Scale-Factor Non-Linearity In MEMS gyroscopes, it is observed that the scale factor is non-linear over the measurement span. Figure12 shows the relationship between gyro measurement and angular rate input. As shown, the relationship is not a linear one. Considering the scale factor as a constant linear quantity will lead to measurement errors during operation over the full measurement span. Hence the scale factor non-linearity over the rated measurement span should be captured and compensated for. Figure 12: Gyroscope scale factor non-linearity. 33 2.6.8 Gyroscope Scale Factor Dependency on Temperature In addition to the scale factor non-linearity presented above, the gyro scale factor exhibits a dependency on operating ambient temperature. Figure 13 shows the surface of gyro measurement at fixed rates, acquired under different ambient temperatures. Since the surface observed is not flat, the nature of this surface should be studied and any scale factor dependency on operating ambient temperature has to be captured during gyro scale factor calibration. Figure 13: Gyro scale factor dependency on temperature. 34 2.7 Air Data System (ADS) ? Error Sources The Ps and Pt pressure sensors employed are affected by a number of error sources. In order to calibrate the ADS to provide the accuracy level required by the ARINC706-4 standard [11], the effects of these error sources have to be studied and a suitable calibration strategy must be adopted. According to the 706-4 Mark 5 Subsonic Air data system requirements [11], the ADS unit must capable of operating between an altitude range of -1000 feet to 50000 feet and an airspeed range between 30 knots and 450 knots. It should comply with the accuracy specifications shown in Table 2 and Table 3 over the rated temperature range shown in Table 5. 2.7.1 Pressure Sensor Temperature Drift The model 1230 IC pressure sensors used in the ADS are susceptible to sensor thermal drift error. Thermal drift is a characteristic error source that is inherent to the sensor design and unique to each individual sensor. It causes a constant, measured pressure value to drift with respect to ambient temperature. If the pressure sensors are not suitably calibrated and compensated for thermal drift, the sensors can introduce severe measurement errors while operating under changing ambient temperature conditions. Figure 14 shows the drift in static pressure counts Ps and pitot pressure counts Pt with respect to operating ambient temperature. 35 Figure 14: Pressure sensor temperature drift. 2.7.2 Offset and Scale Factor IC pressure sensors are not calibrated post-production. They are shipped with a scale factor and an offset. Under a zero pressure input the pressure sensors have a +/- 2 mV output voltage tolerance, this voltage output is constant and unique to every sensor. This output is accounted for by identifying and adding an offset. The pressure sensor output acquired by the dsPIC is in counts, and has to be scaled to attitude units in feet. This scaling is accomplished using a scale factor. When two identical pressure sensors are subjected to the same constant pressure input they tend to output measurements of 36 different magnitude. Due to difference in sensitivities exhibited by the sensor, the sensor scale factor is unique to every sensor. 2.7.3 Scale Factor Non-Linearity In ADS pressure sensors, it is observed that the scale factor is non-linear over the measurement span. Figure 15 shows the relationship between measured altitude (counts) and true altitude (feet). As observed, the scale factor is clearly non-linear. Considering the scale factor as a constant linear quantity will lead to measurement errors over the full measurement span. Therefore, it is important that the scale factor non-linearity over the measurement span is captured and compensated. Figure 15: Pressure sensor scale factor non-linearity. 37 2.7.4 Offset and Scale-Factor Dependency on Temperature In using piezo-resistive pressure sensors, it is observed that the scale factor has a dependency on operating ambient temperature. Figure 16 shows the results of an investigation conducted on the scale factor dependency on temperature. As can be seen in the figure, with decrease in ambient temperature the curves shift higher. Hence scale factor dependency on temperature should be captured and compensated. The plots shown look linear since it has been zoomed in to show the shifts in detail, the scale factor non- linearity shown in Figure 15 still exists. Figure 16: Pressure sensor scale factor dependency on temperature. 38 2.8 IMU calibration - Method and Process The IMU calibration process is a multi-stage process. The various calibration stages are the IMU burn-in stage, IMU thermal calibration, accelerometer sensor calibration, gyroscope sensor calibration, and accelerometer and gyroscope cross-axis calibration. The calibration process begins with a burn-in stage, where the IMU flats are subjected to a known temperature cycle. The chosen temperature cycle typically covers the rated operating temperature range of the IMU, which is shown in Figure 17. Subjecting the IMU flats to these temperature extremes helps to reduce the infant mortality rate of the manufactured units. 2.8.1 IMU Thermal Calibration The IMU thermal calibration process calibrates the IMU sensors for operation under varying ambient temperature conditions. This stage compensates for the accelerometer and gyroscope temperature drift error sources explained in Section 2.4. Thermal calibration of the IMU is performed by subjecting the IMU to a known temperature cycle and acquiring the IMU output data throughout the duration of thermal cycling. A thermal chamber, explained in Section 3.2, was employed to provide the necessary ambient temperature conditions. The temperature profile used is shown in Figure 17. The flat regions on the profile were provided to ensure ample time for the IMU units under calibration to reach the peak temperatures. On completion of the thermal profile, the data acquired is processed and fitted to a 2nd-order polynomial equation. The curve fit constants obtained are downloaded to the IMU units. At the end of the thermal 39 calibration stage the IMU batch is reprogrammed to transmit thermally calibrated accelerometer ? Ta and gyro ? Tg data. Figure 17: Thermal profile used for IMU calibration. If TDa? is the accelerometer thermal drift correction factor, TDg? is the gyroscope thermal drift correction factor, ? Ta is the thermal drift compensated accelerometer output vector and ? Tg is the thermal drift compensated gyroscope output vector. Then, ? Ta and ? Tg are given by Eq.(4) and Eq.(5). ??? ?= TDaUTa ? and ??? ?= TDgVTg ? )4( )5( 40 Where, ? U is the raw un-calibrated accelerometer output vector, ? TDa? is the accelerometer thermal drift correction vector for accelerometers 222111 ,,,,, yxzyxz aaaaaa given by vectors )6( and )7( , respectively. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? 2 2 2 1 1 1 y x z y x z ua ua ua ua ua ua U ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? 2 2 2 1 1 1 TDay TDax TDaz TDay TDax TDaz TDa ? ? ? ? ? ? ? )6( )7( ? V is the raw un-calibrated gyroscope output vector, ? TDg? is the gyroscope thermal drift correction vector for gyroscopes zyx ggg ,, given by vectors )8( and )9( , respectively. ? ? ? ? ? ? ? ? ? ? = ? z y x Vg Vg Vg V ? ? ? ? ? ? ? ? ? ? = ? 3 2 1 TDg TDg TDg TDg ? ? ? ? )8( )9( 41 The thermal drift correction factors for accelerometers and gyroscopes are obtained using a second order polynomial fit given by Eq. )10( and Eq. )11( , respectively. 2210 tktkkTDa ++=? 2 210 tktkkTDg ++=? )10( )11( 210 ,, kkk are the polynomial fit constants and t is the measured temperature. 2.8.2 Accelerometer Offset and Scale Factor Calibration In order to be used as a linear acceleration measurement sensor in the IMU, the ADSL210E has to be calibrated for offset and scale factor, as discussed in Section 2.4. The rotational calibration method [14] was employed for accelerometer offset and scale factor calibration. The rotational calibration method is a six-position calibration process that determines the offset and scale factor parameters for each of the accelerometers independently. This method uses earth?s acceleration due to gravity g as a known acceleration reference. In this method, the accelerometer triad is placed in six pre-defined orientations which subject each of the six accelerometers to +1g and -1 g acceleration, as shown in Figure 18. For example, if the Z-axis accelerometer is being calibrated, the IMU is placed in a position subjecting the Z-axis accelerometer 1za to +1g and accelerometer 2za to -1g gravity vector, as shown in orientation 31 in Figure 18. The IMU is locked in this orientation and the stationary IMU output data is acquired and logged. Next, the IMU is rotated 1800, subjecting Z-axis accelerometer 1za to -1g and accelerometer 2za to +1g gravity vector, as shown in orientation 32 in Figure 18. The 42 IMU is locked in this orientation and IMU output is acquired and logged. Data acquired during Z-axis accelerometer calibration is shown in Figure 19. The same exercise is repeated for X axis accelerometers 1xa 2xa , and Y axis accelerometers 1ya 2ya . Figure 20 and 21 show the data acquired during X and Y axes accelerometer calibration. Care should be taken to ensure that the IM3 is positioned perfectly horizontal in a known and repeatable fashion in all orientations. The rotation of the cube while changing orientations should be performed slowly to minimize the effects of dynamic acceleration. In order to obtain the scale factor and offset calibrated acceleration vector aC ? , the temperature compensated accelerometer output vector ? Ta is used in Eq. )12( . ???? += TaSOC a )12( To obtain the accelerometer offsets ? O and scale factor ? S for the Z-axis, let gzUa 11+ and gzUa 12? represent the mean of the sample set acquired under orientation 31 for accelerometers 1za and 2za . Similarly let gzUa 11? and gzUa 12+ represent the mean of the sample set acquired under orientation 32 for accelerometers 1za and 2za . Based on Eq. )12( , under orientation 31, the accelerometers 1za and 2za experience an acceleration of +1g and -1g, given by Eq. )13( , and Eq. )14( . 1 1 111 +=?+ z zgz S OUa 1 2 212 ?=?? z zgz S OUa )13( )14( 43 Similarly, based on Eq. )12( , under orientation 32, the accelerometers 1za and 2za experience an acceleration of -1g and +1g, respectively, given by Eq. )15( and Eq. )16( . 1 1 111 ?=?? z zgz S OUa 1 2 212 +=?+ z zgz S OUa )15( )16( From Eq. )13( and Eq. )15( , we get the offset and scale factor for accelerometer 1za using Eq. )17( and Eq. )18( . 2 1111 1 gzgz z UaUaO ?+ += 2 1111 1 gzgz z UaUaS ?+ ?= )17( )18( Similarly, from Eq. )14( and Eq. )16( , we get offset and scale factor for accelerometer 2za using Eq. )19( and Eq. )20( . 2 1212 2 gzgz z UaUaO ?+ += 2 1212 2 gzgz z UaUaS ?+ ?= )19( )20( The same algorithm can be applied for X and Y axes accelerometer calibration to obtain the offset vector ? O and scale factor vector ? S given by Eq. )21( and Eq. )22( . 44 [ ]222111 yxzyxz ooooooO =? [ ]222111 yxzyxz ssssssS =? )21( )22( ? O , ? S and temperature compensated accelerometer output ? Ta can be used in Eq. )12( to obtain the scale factor and offset calibrated accelerometer output ? aC . 45 X Z Y G G X Y Z Orientation 31 Orientation 32 Y X Z G G Y Z X Orientation 11 Orientation 12 z Y x G G z x y Orientation 21 Orientation 22 Figure 18: The six orientations used for IMU calibration. 46 Figure 19: Z- Axis accelerometer calibration data. 47 Figure 20: X-Axis accelerometer calibration data. 48 Figure 21: Y-Axis accelerometer calibration data. 2.8.3 Gyroscope Scale Factor Calibration The gyroscope calibration method implemented is similar the method proposed in [16]. This method involves determining the scale-factor non-linearity using a rate table to provide known angular rate inputs. In order to capture the scale factor non-linearity, the IMU units are subjected to known rotation rates at different points on the rated measurement span. The ADXRS150 has a measurement span of +/- 150 ?/s. For any given axis, the gyroscope is subjected to seven equidistant angular rate inputs: -150 ?/s, - 100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, 150 ?/s. These rates were chosen in order to cover the entire gyro measurement span. A rate table, which is explained in Section 3.2, was used to provide known reference rotational rates. The IMU data output is acquired and 49 logged at each reference rate input used. This procedure is repeated for all three axes in order to capture scale factor non-linearity components for the gyros mounted on X, Y and Z axes. The calibration data acquired from a trial calibration run is shown in Figure 22. As shown, under orientations 11, 21 and 31 gyros xg , yg and zg are calibrated, respectively. Care must be taken to make sure that the gyroscope under calibration is mounted in a manner to ensure the alignment of the axis of measurement to the axis of rotation. In order to calibrate the X-axis gyroscope, let 150?xTg , 100?xTg , 50?xTg , 0xTg , 50+xTg , 100+xTg , 150+xTg represent the mean of sample set acquired under orientation 11 under angular rate inputs -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, 150 ?/s, respectively. The means obtained are normalized for each of the rates. The normalized means )( 0150 xx TgTg ?? , )( 0100 xx TgTg ?? , )( 050 xx TgTg ?? , )( 050 xx TgTg ?+ , )( 0100 xx TgTg ?+ , and )( 0150 xx TgTg ?+ are plotted against reference angular rate inputs used, as shown in Figure 23. A third order curve is fitted to the plotted data and the curve fit constants 0xl , 1xl , 2xl , and 3xl obtained provide the gyro non-linearity scale factors for gyro xg . Similarly, scale factor non-linearity constants are obtained for gyros yg and zg . The calibrated gyroscope output vector ? gC is given by Eq. )23( . 50 ? ? ? ? ? ? ? ? ? ? ? ? +++ +++ +++ = ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? = ? 3 3 2 210 3 3 2 210 3 3 2 210 )( )( )( zzzzzzz yyyyyyy xxxxxxx z y x z y x g TglTglTgll TglTglTgll TglTglTgll Tgf Tgf Tgf cg cg cg C )23( ? gT is the temperature compensated gyroscope output. Figure 22: Gyro scale factor non-linearity calibration data. On completion of calibration for all three axes, the gyroscope non-linearity scale factors and the accelerometer scale factors and offsets are downloaded to the IMU unit by the user. At the end of the gyro sensor calibration stage, the IMU transmits partially calibrated accelerometer and gyro data. The IMU still needs to be calibrated for accelerometer and gyro cross-axis errors discussed in Section 2.4. 51 Figure 23: Gyro scale factor non-linearity curve-fit. 2.8.4 Accelerometer and Gyroscope Cross-Axis Calibration By the beginning of this stage the accelerometers and gyroscopes have been calibrated for their respective scale factors and offsets. The IMU now transmits calibrated linear velocity rates aC ? and angular rotational rates gC ? . The cross-axis calibration is performed to offset the effects of any axis misalignments that might have occurred during the accelerometer and gyro mounting on the orthogonal measurement triad. The cross- axis calibration methodology and algorithm presented below was developed by Archangel Systems, Inc [2]. Cross-axis calibration is accomplished by first subjecting the IMU to constant known reference acceleration along each of the axes of the 3-D acceleration measurement system and then subjecting the IMU to a known reference 52 angular rate about each axis of the 3-D angular rate measurement system. During the cross-axis calibration process, care should be taken to ensure that the IMU acceleration measurement axis is perfectly aligned with the reference acceleration vector and the angular rate measurement axis is perfectly aligned with the axis of reference angular rate input in all orientations. In order to perform cross-axis calibration for the X-axis accelerometers, the IMU is placed in orientation 11, as shown in Figure 18. This subjects the IMU to an acceleration of +1g along the X-axis. The IMU output, which contains the linear velocity rates ? aC , is acquired and logged. The same exercise is repeated for orientations 21 and 31, subjecting the IMU to 1g acceleration along the Y-axis and Z-axis, respectively. The IMU output is acquired and logged in all three orientations. Now the cross-axis calibration constants for the accelerometers are calculated in the following method. Let, I represent the matrix containing the mean of the linear velocity rates acquired from the IMU under orientations 11, 21 and 31, as shown in Eq. )24( . ? ? ? ? ? ? ? ? ? ? = 313131 212121 111111 )()()( )()()( )()()( zyx zyx zyx CaCaCa CaCaCa CaCaCa I )24( 11)( xCa , 11)( yCa , and 11)( zCa are the mean of the linear velocity rates obtained under orientation 11. 21)( xCa , 21)( yCa , and 21)( zCa are the mean of the linear velocity rates obtained under orientation 21. 31)( xCa , 31)( yCa , and 31)( zCa are the mean of the linear velocity rates obtained under orientation 31. Now, the cross-axis correction matrix can be obtained using Eq. )25( . 53 ? ? ? ? ? ? ? ? ? ? ?= ? 81.900 081.90 0081.9 ][ 1ICA )25( The cross-axis calibrated acceleration vector ? A is given by Eq. )26( . ?? ??? ?? ???=? z y x Ca Ca Ca CAA )26( In order to perform X-axis gyroscope cross-axis calibration, the IMU is mounted on the rate table and locked in orientation 11, as shown in Figure 18. Under this setup, the IMU is subjected to an angular rotation rate of 150 ?/s and its output data which contains the calibrated angular rotation rate gC ? , is acquired and logged. The same exercise is repeated for orientations 21 and 31, subjecting the IMU gyro triad to an angular rotation rate of 150 ?/s about the Y-axis and Z-axis, respectively. The IMU output is acquired and logged in all three orientations. The cross-axis calibration constants for the gyroscopes are calculated in the following manner. Let, J represent the matrix containing the mean of the angular rotation rates acquired from the IMU under orientations 11, 21 and 31, as shown in Eq. )27( . ? ? ? ? ? ? ? ? ? ? = 313131 212121 111111 )()()( )()()( )()()( zyx zyx zyx CgCgCg CgCgCg CgCgCg J )27( 54 11)( xCg , 11)( yCg , and 11)( zCg are the mean of the linear velocity rates obtained under orientation 11; 21)( xCg , 21)( yCg , and 21)( zCg are the mean of the linear velocity rates obtained under orientation 21; 31)( xCg , 31)( yCg , and 31)( zCg are the mean of the linear velocity rates obtained under orientation 31. Now, the cross-axis correction matrix can be obtained using Eq. )28( . ? ? ? ? ? ? ? ? ? ? ?= ? 15000 01500 00150 ][ 1JCG )28( The cross-axis calibrate angular rotation rate vector ? G is given by Eq. )29( . ?? ??? ?? ???=? z y x Cg Cg Cg CGG )29( 2.9 ADS Calibration Method - Method and Process 2.9.1 Ps and Pt Pressure Sensor Calibration Method The implemented ADS sensor calibration method is an integrated process in which the static and pitot pressure sensors are calibrated to compensate for all the error sources presented in Section 2.5. In order to capture the scale factor non-linearity over the measurement span, the calibration process essentially subjects the ADS pressure sensors to reference altitude/air-speed inputs at various points on their measurement span. The ADS output and the reference inputs are acquired and logged throughout this process. 55 Since the altitude accuracy levels required at lower altitudes are more stringent than accuracy levels acquired at higher altitudes, as given in Table 2, the reference calibration altitudes employed must be more closely placed at lower altitudes then at higher altitudes. Similarly, air-speed accuracy levels required at higher air-speeds are more stringent compared to lower air-speeds, as given in Table 3, hence the reference air-speeds employed must be more closely spaced at higher air-speeds then at lower air-speeds. This will ensure an optimal fit that will provide the necessary accuracy levels. A DRUCK 403 air data test system, discussed in Section 3.3, was used to provide known static and differential pressure inputs. In order to capture the scale factor dependency on temperature, the scale factor calibration process explained above is repeated at various temperatures over the operating temperature span. The ADS output, the reference inputs, and ambient temperatures are acquired and logged throughout this process. Equidistant temperatures covering the operating temperature range can be used to capture the scale- factor temperature dependency. The environmental chamber explained in Section 3.3 was used to provide known operating temperatures. The ADS calibration system presented in Chapter 3 provides the user a flexible and modular framework to execute the above explained calibration procedure described above. Figure 24 shows the results obtained from a sample altitude sensor calibration run. On completion of the calibration run, a 3-D polynomial fit is used to fit the acquired pressure sensor data and temperature data to the true reference inputs used during calibration. The surface fit constants obtained are downloaded to the ADS units by the user. The final ADS output will have altitude expressed as a function of measured static pressure (counts) and temperature (counts) and 56 airspeed expressed as a function of measured pitot pressure (counts) and temperature (counts). Figure 24: Altitude sensor calibration. 57 3 ADAHRS CALIBRATION SYSTEM DESIGN AND IMPLEMENTATION 3.1 Chapter Overview The IMU calibration support system and ADS calibration support system provide an integrated support environment for sensor characterization, calibration and acceptance testing of IMU and ADS, respectively. The system provides the user with a software tool that can be used to implement the IMU and ADS calibration procedure presented under Chapter 2. This software tool henceforth will be referred to as the IMU calibration application and ADS calibration application. The IMU calibration application employs the services of a number of support instruments in order to perform the various functions involved in the IMU calibration process. The instruments used include a rate table for gyroscope calibration and an environmental chamber for thermal calibration of the IMU. In addition to other functions, the IMU calibration application essentially controls and sequences the operations of these support instruments to implement the IMU calibration procedure. Similarly, ADS calibration application controls and sequences the operation of support instruments like DRUCK 403 air data test system for altitude/airspeed calibration and an environmental chamber for thermal calibration of ADS. Sections 3.2 and 3.3 describe the IMU calibration system and ADS calibration system layout. Section 3.4 describes the labVIEW application development platform which was employed for development of the ADAHRS calibration support system. Section 3.5 presents 58 the IMU calibration application software and explains the role played by the various modules and sub-modules present in it. Section 3.6 lists the system requirements for implementation of the IMU calibration application. Section 3.7 presents the software design flowcharts and details the functionality of each of the individual modules present in the IMU calibration application. Section 3.8 presents the ADS calibration application software and explains the role played by the various modules and sub-modules present in it. Section 3.9 lists the system requirements for implementation of the ADS calibration application. Section 3.10 presents the software design flowcharts and details the functionality of each of the individual modules present in the ADS calibration application. 3.2 IMU Calibration System - Layout and Description The IMU calibration system comprises a calibrating computer and other support instruments like the rate table, thermal chamber, and communication hardware. Calibration computer Aero812 Rate table controller Rate table WATLOW series F4 tamperature controller Environmental chamber IMU 1 IMU 2 IMU 3 IMU 4 Quad UART to USB RS 232 MODBUS UART USB Figure 25: IMU calibration system layout 59 The rate table provides known precision angular rates for gyro calibration and the thermal chamber provides controlled ambient temperature conditions for thermal calibration of accelerometers and gyros. Figure 25 shows the architecture of the IMU calibration system. Brief descriptions of the various components are given as follows. 3.2.1 Rate Table The rate table chosen for this application is the Ideal Aerosmith, 1621-200 series single-axis precision positioning and rate table system [17]. The rate table system can be used to provide precision position, rate and acceleration motion for development, calibration and production testing of inertial navigational systems. The rate table is driven by a servo motor controlled by a servo motor driver/table controller. The rotating disc on the table contains a slip ring assembly which enables the IMU communication with the calibration computer. Figure 26: IDEAL-Aerosmith rate table/ rate table with environmental chamber 60 The Aero812 rate table controller supports IEE 488.1 and RS232 communication capability to communicate with external systems. The rate table operation is controlled by the calibrating computer by issuing Aerosmith Table Language (ATL) commands over a dedicated RS232 link. 3.2.2 Environmental Chamber The Ideal Aerosmith rate table comes with an integrated environmental chamber which is mounted on top of the table, housing the rotating plate [17]. The operating temperature of the IMU units can be controlled using the environmental chamber mounting. The environmental chamber supports a MODBUS compatible serial communication interface to enable communication with external systems. The calibrating computer issues temperature commands in compliance with MODBUS protocol to the WATLOW series F4 temperature controller in order to control and monitor the operations of the environmental chamber. 3.2.3 Four Port RS232 to USB Converter The four-port RS232 to USB converter [12] was chosen to provide additional serial communication channels for the calibration computer to communicate with the IMU units under calibration. This device enables calibration of 4 IMU units at a time. The serial data from the four ports are transmitted to the calibrating computer through a single USB stream. 61 3.2.4 Calibration Computer The calibration computer is a personal computer running the IMU calibration application. It is responsible for supervisory control of the rate table, and thermal chamber and data acquisition from the IMU units. 3.3 ADS Calibration System - Layout and Description Figure 27 shows the ADS calibration system layout. The calibration computer runs the ADS calibration application. It is responsible for data acquisition from the ADS units and supervisory control of the DRUCK 403 air data test system and the environmental chamber. The application is also responsible for data analysis, data post-processing, result generation and acceptance-testing. The air data test system is a closed-loop pressure control system which provides known precision static/pitot pressure inputs for calibration of the Ps and Pt pressure sensors present in the ADS unit. The environmental chamber provides controlled ambient temperature conditions for thermal calibration of Ps and Pt pressure sensors. Calibration computer WATLOW series 940 temperature controller Tenney Junior Environmental chamber DRUCK 403 Air Data Test system Air compressor Vacuum pump ADS unit Ps Pt RS232 GPIB RS232 pressure supply vacuum supply Figure 27: ADS calibration system layout 62 3.3.1 Environmental Chamber The environmental chamber employed is a bench-top Tenney Junior environmental chamber unit housing a WATLOW series 942 temperature controller [18]. The environmental chamber supports a temperature range between -75 oC to +200 oC and is capable of controlling the internal chamber temperature at a 0.3 oC tolerance. The ADS units are placed in the environmental chamber and their ambient temperature is cycled for thermal calibration of the Ps and Pt pressure sensors. The temperature controller supports RS232/422 communication interface to enable communication with external systems. The calibration computer issues WATLOW series 942 controller commands over the RS232 link to control and monitor the operations of the environmental chamber. 3.3.2 DRUCK 403 Air Data Test System The DRUCK 403 air data test system is a twin-channel Ps and Pt pressure control system for precision calibration and verification of aircraft pitot/statics [19]. The DRUCK 403 air data test system is capable of altitude calibration between -3000 feet to +80000 feet, and air-speed calibration between 10 knots to 1000 knots. The air data test system requires a pressure/vacuum supply for generation of precision static/differential pressures. An air compressor and vacuum pump with an output capacity of at least 25% more than the operating pressure were employed to provide supply pressures. The DRUCK 403 system provides an IEEE 488 GPIB interface for communication with external systems. It supports an elaborate command set which enables the user to effectively control the operations of the ADTS. 63 Figure 28: DRUCK 403 ADTS 3.4 LabVIEW Application Development Platform LabVIEW, a product of National Instruments Inc is a highly productive graphical programming language for development of industrial automation and control, data acquisition, and instrumentation solutions. LabVIEW provides an object-oriented data flow paradigm for application development. Traditional text based programming relies on the sequence of instructions for program execution, but labVIEW provides a data flow programming paradigm which relies on flow of data for program execution. LabVIEW provides a highly intuitive and powerful graphical user interface which provides a solid man machine interface for the ADAHRS calibration system. It also provides a very comprehensive set of functions for data management, data processing and report generation. Application development in LabVIEW is highly scalable and portable providing a single powerful integrated platform to accomplish all the needs of the ADAHRS calibration system. The LabVIEW application development platform comprises a front panel and a block diagram. The front panel provides a feature rich suite of GUI objects like buttons, text boxes, graphs, plots, etc. Instances of these objects are accessible from the block diagram and they can be used with a rich suite of arithmetic, 64 logical, string, array manipulation, data acquisition, and data processing functions to implement the data flow logic of the application being developed. The various functional components of the ADAHRS calibration system application software have been implemented as virtual instruments (VI?s). A VI in LabVIEW is analogous to a function in C. 3.5 IMU Calibration System Application Software The IMU calibration application has been developed in a highly modular architecture with each module implemented to perform a particular functional component of the IMU calibration process presented under Chapter 2. Each of these modules comprises a number of sub-modules. The basic modules and their sub modules are shown in Table 8. Figure 29 shows the role played by each of the modules in the IMU calibration process. The Communications setup module is responsible for setting up the serial communication parameters for the IMU batch under calibration and the other calibration support systems. The Thermal calibration module is responsible for burn-in test and thermal calibration of the IMU batch. It consists of a number of sub-modules. The Download thermal profile sub-module enables the user to create and download customized thermal profiles to the WATLOW series F4 temperature controller present in the thermal chamber. The Thermal calibration sub-module prompts the user to mount the IMU batch inside the thermal chamber and executes the downloaded thermal profile which subjects the IMU batch to desired thermal loading. This module also continuously acquires and logs the output data from the IMU batch during this process. On completion of the thermal profile it prompts the user. The Thermal calibration result generation sub- 65 module retrieves the logged thermal calibration data and presents graphical plots of acquired data to the user. It also passes a file handle of the acquired calibration data file to a MATLAB engine invoked in LabVIEW. The user has the flexibility to implement a MATLAB script of his choice, which will be executed by the MATLAB engine to post- process the acquired thermal calibration data. Table 8: IMU calibration application modules and sub-modules MODULES SUB-MODULES 1 Communications setup module Communication setup 2 Thermal calibration module Download thermal profile Thermal calibration Thermal calibration result generation 3 IMU sensor calibration module IMU sensor calibration setup IMU sensor calibration IMU sensor calibration result generation 66 IMU Calibration start IMU communications set-up Download thermal profile IMU burn-in process Burn-in complete ? IMU burn-in validation Co mm un ica tio n se t-u p m od ule IM U Th erm al cal ibr ati on m od ule IMU sensor calibration set-up IMU accelerometer calibration Accel Cal complete ? IMU gyroscope calibration IMU cross-axis calibration Cross-axis cal complete ? IMU Calibration end IM U sen so r c ali bra tio n m od ule Download thermal profile IMU Thermal calibration Thermal cal complete ? Thermal calibration result generation IM U Th erm al cal ibr ati on m od ule Gyro Cal complete ? User re-programs the IMU batch with thermal calibration constants User re-programs the IMU batch with Accel and Gyro calibration constants User re-programs IMU batch with cross-axis calibration constants no no no no no yes yes yes yes Figure 29: Software modules involved in IMU calibration process The IMU sensor calibration module provides a flexible framework for accelerometer and gyroscope calibration. It consists of the following sub-modules. The IMU sensor calibration setup sub-module provides the user the flexibility to implement a calibration sequence of his choice. The calibration sequence is composed of a list of configurable steps which will be sequentially executed to implement the sensor 67 calibration process. The calibration steps supported and their functions are listed in Table 9. Table 9: Steps supported in IMU calibration sequence Tag Step Step configuration parameters Functions OA Accelerometer calibration 1. Enter accelerometer 3-D orientation tag OA. 2. Number of IMU data packets to acquire ?N 1. Prompts user to mount IMU batch for orientation OA 2. On user confirmation, acquires N data packets. OG Gyroscope calibration 1. Enter gyroscope 3-D orientation tag OG. 2. Number of IMU data packets to acquire ?N. 3. Minimum rate - Rmin. 4. Maximum rate - Rmax. 5. Rate increment - Rinc 1. Generates equidistant rate command sequence Rseq based on Rmin, Rmax and Rinc. 2. Prompts user to mount IMU batch for orientation OG. 3. Waits for user confirmation. 4. Issues the rate command in the rate command sequence Rseq. 5. Waits till target rate is reached. 6. Acquires N data packets 7. Repeats steps 4-6 till all rate commands in Rseq are exhausted. 68 TT Target Temperature 1.Target Temperature - Tt 2. Soak time - Ts in HRS, MIN, SEC 1. Issues target temperature Tt command to the environmental chamber 2. Waits, till the target temperature Tt is reached. 3. Soaks at target temperature Tt for soak time Ts. CA Cross-axis calibration None 1. Performs accelerometer cross- axis calibration procedure presented in Chapter 2. 2. Performs gyroscope cross-axis calibration procedure presented in Chapter 2. The IMU sensor calibration setup module enables the user to create a calibration sequence of his choice from the calibration steps listed in Table 9. The created sequence can be stored and retrieved at the user?s will. The TAG fields OA, OG, and TT are user configurable one byte values that will be appended to every data packet acquired in a particular calibration step. This TAG will be used at the time of data post-processing to sort and manipulate calibration data. The IMU sensor calibration sub-module executes the calibration sequence created by the IMU sensor calibration setup sub-module, collects calibration data and alerts the user on completion of the calibration sequence. The IMU sensor calibration result generation sub-module retrieves the calibration data 69 file and passes a handle of the file to a MATLAB engine invoked in LabVIEW. The user can implement the calibration algorithm presented under Chapter 2 as a MATLAB script to be executed by the MATLAB engine for data post-processing and result generation. 3.6 IMU Calibration System Requirements In order to implement the calibration procedure discussed under Chapter 2, the calibration application running in the calibrating computer must comply with the following high level functional requirements. The requirements are categorized under the various modules of the IMU calibration system presented in Table 10. Table 10: IMU calibration application software system requirements IMU Thermal Calibration Module IMU_thermal_cal_req1 1. The application shall be capable of establishing serial communication and be able to log data from at least 4 IMU. IMU_thermal_cal_req2 1. The application shall be capable of communicating with the environmental chamber?s WATLOW series F4 ramping temperature controller via a dedicated serial channel using MODBUS communication protocol. 2. The application shall be capable of controlling the operations of the WATLOW F4 temperature controller by issuing MODBUS command messages [11]. 3. The application shall enable the user to create, edit and 70 download custom thermal profiles to the WATLOW F4 ramping temperature controller using MODBUS command messages. IMU_thermal_cal_req3 The application shall be capable of parsing the logged data and present the user with graphical plots of logged data. IMU Sensor Calibration Module IMU_sensor_cal_req1 1. The application shall be capable of establishing serial communication and be able to log data from at least 4 IMU. IMU_sensor_cal_req2 1. The application shall be capable of communicating with the environmental chamber?s WATLOW F4 ramping temperature controller via a dedicated serial channel using MODBUS communication protocol. 2. The application shall be capable of controlling the operations of the WATLOW F4 temperature controller by issuing MODBUS command messages [11]. IMU_sensor_cal_req3 1. The application shall be capable of communicating with the Ideal Aerosmith rate table controller [17] via a dedicated serial RS232 channel. 2. The application shall be capable of controlling the operations of the rate table using Aerosmith Table Language (ATL) [17]. IMU_sensor_cal_req4 The calibration application shall enable the user to configure 71 a calibration sequence of his choice composed of steps presented in Table 9. IMU_sensor_cal_req5 In order to ensure the orientation of the IMU mounting, necessary software interlocks shall be provided in the calibration application for both accelerometer and gyro calibration. 3.7 IMU Calibration System ? Application Software Implementation The IMU application software modules have been implemented as LabVIEW virtual instruments (VI). The implementation of IMU calibration application software is presented as follows. 3.7.1 Main Module Sub-module: Main Virtual instrument: main.vi Called by: none Calls: imu_cal_comm_setup.vi, watlow_f4_programmer.vi, imu_thermal_cal.vi, imu_thermal_cal_result_gen.vi, imu_cal_setup.vi, imu_sensor_cal.vi, imu_cal_result_gen.vi, ads_cal_comm_setup.vi, watlow_programmer.vi, ads_burn_in.vi, ads_burn_in_val.vi, ads_cal_ setup.vi, ads_sensor_cal.vi, ads_cal_result_gen.vi The Main module provides the central user interface from which all other system modules and sub-modules can be called. The GUI for main.vi is shown in Figure 30. 72 Figure 30: Main GUI 3.7.2 IMU Calibration Communications Setup Module Sub-module: Communication setup Virtual instrument: imu_cal_comm_setup.vi Called by: main .vi Calls: none The imu_cal_comm_setup.vi enables the user to allocate serial communication resources and setup the communication parameters for each of the system components present in the IMU calibration system. Figure 31 shows the GUI for this sub-module. Figure 32(a), Figure 32(b) and Figure 32(c) present the flow chart for communication settings required for the IMU batch, Aero812 rate table controller, and the WATLOW F4 temperature 73 controller, respectively. As shown, the communication settings are obtained from the user and saved to the imu_comm_setup.dat file. Depending on the IMU batch size being calibrated, the user can enable or disable data logging for individual IMU units. Figure 31: IMU communications setup GUI 74 IMU calibration batch setup start Aero812 rate table controller setup start WATLOW F4 temperature controller setup start Obtain & load serial port configuration from file Obtain serial port configuration from file Obtain & load serial port configuration from file Select IMU n to configure n = 0,1,2 ....15 1. Enable/Disable data logging for the selected IMU 2. Allocate serial resource for the selected IMU. 3. Enter Baud Rate All IMU configured ? Save revised configuration to imu_comm_setup.dat file IMU calibration batch configuration done yes no 1. Allocate serial resource for the Aero812 rate table controller. 2. Enter Baud Rate Save revised configuration to imu_comm_setup.dat file Aero812 rate table controller configuration done 1. Allocate serial resource for communication with WATLOW F4 temperature controller. Save revised configuration to imu_comm_setup.dat file WATLOW F4 temperature controller configuration done (a) IMU batch communication setup (b) Aero812 rate table controller setup (c) WATLOW F4 controller setup Figure 32: Communications setup module flowchart 3.7.3 Thermal Calibration Module Sub-module: Download thermal profiles Virtual instrument: watlow_f4_programmer.vi Called by: main .vi Calls: download__f4_profile.vi The watlow_f4_programmer.vi enables the user to create and download custom temperature profiles to the series F4 WATLOW ramping temperature controller. Figure 75 33 shows the GUI for this sub-module. Figure 34 and Figure 35 present the flowchart of the Download thermal profiles sub-module. This sub-module enables a user to implement a thermal profile of his choice using a combination of ramp time, ramp rate, soak and jump commands. A command_list array is built from the user commands and encoded in a format in compliance with the MODBUS protocol [18]. This encoded thermal profile is serially transmitted to the WATLOW F4 temperature controller. The download_profile.vi shown in Figure 36 presents the flowchart of the profile download process. The download_profile.vi obtains the environmental chambers serial communication settings from the imu_comm_setup.dat file. The encoded command_list array is downloaded to the temperature controller with necessary error checking and message acknowledgements. The command list contains the temperature commands, encoded as a list of WATLOW F4 controller registers and their values [18]. 76 Figure 33: Download thermal profiles GUI 77 watlow_f4_programmer.vi start CREATE / EDIT / DOWNLOAD ? Select step AUTO START RAMP TIME RAMP RATE SOAK JUMP A B C D E select file & load saved profile "command_list" from file ensure a new profile is created / saved profile is loaded download_f4_profile.virevise / edit loaded "command_list" Save edited "command_list" to file F DownloadCreate Edit G F Figure 34: Download thermal profiles flowchart-I 78 A B C D E Enter "AUTO START" parameters module Enter "RAMP_TIME" parameters module Enter "RAMP_RATE" parameters module Enter "SOAK" parameters module Enter"JUMP" parameters module Enter "wait_for" parameters Enter RAMP_TIME in Hours,Minutes,Seconds Enter Temperature set point Enter "wait_for" parameters Enter RAMP_RATE in "units per minute" Enter "wait_for" parameters Enter SOAK_TIME in Hours, Minutes, Seconds Enter Temperature set point enter "step" to jump to enter "number of repeats" Enter Date Enter Time Enter "END" parameters module Enter "END"mode Profile complete? Add step to "command_ list" Save "command_list" to file watlow_f4_programmer.vi end F F User "Exit Module" yes G no Figure 35: Download thermal profiles flowchart-II 79 download_profile.vi start open serial resource (COM port) for communication with environmental chamber flush UART RX buffer write cmmand_list[i] to UART TX buffer close COM port error status ? download_profile.vi end error no error n= bytes in UART RX buffer read n bytes from UART RX buffer i=0 i = i+1 i >= size(command_list ) true false Figure 36: Profile download process flowchart Sub-module: Thermal calibration Virtual instrument: imu_thermal_cal.vi Called by: main .vi Calls: none The imu_thermal_cal.vi enables the user to execute the IMU batch thermal calibration process. Figure 37 shows the GUI for this sub-module. The flowchart of imu_thermal_cal.vi is shown in Figure 38. As shown, the communication settings are 80 obtained from the imu_comm_setup.dat file and serial COM port handles are opened for communication with the enabled IMU units and the WATLOW F4 temperature controller in the thermal chamber. This module initiates the thermal profile loaded to the temperature controller by the Download thermal profiles sub-module and logs the output data from the IMU batch continuously. Figure 37: IMU thermal calibration GUI 81 Thermal calibration start retrieve IMU communications set-up from imu_comm_setup.dat file Handle Ai = Open serial COM port handles to communicate with enabled IMU units i= 0,1,2,3...n. Handle B = Open serial COM port handle to communicate with environmental chamber Start thermal profile by initiating the thermal profile execution via Handle B flush UART RX buffer (Handle Ai) N = bytes in RX buffer (Handle Ai) imu_data_msg = Read N bytes from UART RX buffer (Handle A) Parse (imu_data_msg) check CRC pass fail save imu_data_msg to imu_log.dat file i < n true A false B i=i+1 i = 0 "User input" stop acquisition false thermal calibration end A B Close open serial port handles. Figure 38: IMU thermal calibration 82 Sub-module: Thermal calibration result generation Virtual instrument: imu_thermal_cal_result_gen.vi Called by: main .vi Calls: none The imu_cal_result_gen.vi enables the user to view and analyze the acquired thermal calibration data. Figure 39 shows the GUI for this sub-module. Figure 40 shows the flowchart of this VI. This module provides the user with provisions to select a data component to view and displays the selected plots. It also passes the IMU thermal calibration data retrieved to a MATLAB engine. The MATLAB engine executes the thermal calibration data processing procedure presented in Chapter 2, implemented as a MAT script to generate the thermal calibration results. Figure 39: IMU thermal calibration result generation GUI 83 Thermal calibration result generation start retrieve logged IMU data from imu_log.dat file poll "user input" for the IMU parameter to view "user input" update plot Display selected parameter on plot Thermal calibration result generation end false true "User input" Exit and return false true Pass retrieved IMU data to the MATLAB Engine Thermal calibration Result Figure 40: Thermal calibration flowchart 3.7.4 IMU Sensor Calibration Module Sub-module: IMU sensor calibration setup Virtual instrument: imu_cal_setup.vi Called by: main .vi Calls: none The imu_cal_setup.vi provides the user the flexibility of creating a calibration sequence of his choice. Figure 41 shows the GUI for this sub-module. The flowchart for the imu_cal_setup.vi is shown in Figure 42. The user creates the calibration sequence by 84 sequencing the accelerometer calibration, gyroscope calibration and target temperature steps. Table 9 presents the functions provided by each of the steps. The imu_cal_setup.vi essentially obtains the input parameters required to implement the functions performed by each of the steps and creates a calibration sequence array main_cmd_list. Figure 41: IMU sensor calibration setup GUI 85 IMU Sensor Calibration Setup imu_cal_setup.vi Start Enter 3-D orientation tag for accelerometer calibration OA Enter number of data packets to acquire N Enter limits for orientation sanity checks Enter rates Rmin,Rmax and Rinc Enter number of data packets to acquire N Enter target temperature tag TT Enter target temperature Tt Add step "user input" Add step "user input" Add step "user input append accelerometer calibration specifications "accel_cal" to command list cmd_list [i] R = Rmin i=0 create Aero812 rate table command word for rate R, rate_cmd[i] R = Rmin+ Rinc i=i+1 R > Rmax set-up done "user input" IMU sensor calibration done imu_cal_setup.vi end main_cmd_list [k] = concatenate incoming cmd_list[i] arrays k = k+size(i) yes yes yes yes A A A A no no no no no yes B B save main_cmd_list[] to file "imu_cal_setup.dat" Enter Soak time Ts - HRS, MIN, SEC accelerometer calibration step gyroscope calibration step Temperature step Enter 3-D orientation tag for gyroscope calibration OG "user selection" append accelerometer temperature command specifications "target_temp" to command list cmd_list [i] append gyroscope calibration "gyro_cal" specifications to command list cmd_list [i] append cross-axis calibration specifications "cross_axis" to command list cmd_list [i] C C Figure 42: IMU sensor calibration setup flowchart 86 Sub-module: IMU sensor calibration Virtual instrument: imu_sensor_cal.vi Called by: main .vi Calls: none The imu_sensor_cal.vi executes the calibration sequence created by imu_cal_setup.vi. Figure 43 shows the GUI for this sub-module. Figures 44, 45, 46 and 47 present the relevant flow charts for IMU sensor calibration sub-module. The sensor calibration module has been implemented as a robust state machine that transits between the various calibration steps in order to implement the IMU calibration process, as shown in Figure 44. Figure 45(a) shows the accel_cal.vi. The accel_cal.vi step checks for the mounting orientation and prompts the user for any improper orientation based on the limit checks configured by the user. Under proper mounting orientation, a sample set of size N is acquired and logged. Figure 45(b) shows the gyro_cal.vi. The gyro_cal.vi jogs the IMU batch at 100 ?/s to check for gyro triad mounting orientation. It prompts the user in case an improper orientation is detected based on the gyro triad measurement made. Under proper mounting orientation, the rate table is jogged at the configured rotation rates and IMU batch output is acquired and logged once the rate table stabilizes at each configured rate. On completion of all configured rates program control exits the gyroscope calibration step. Figure 45(c) shows the target_temp.vi. The target temperature step creates a two-step thermal profile targeting the configured temperature followed by a soak. The target temperature and soak time is configured by the user using the imu_cal_setup.vi. The created profile is downloaded to the WATLOW F4 temperature controller and executed. The environmental chamber temperature is polled to let the 87 chamber temperature to stabilize at set temperature. On stabilization, IMU batch output data of size N is acquired and logged. Figure 46 shows the flowchart for cross_axis.vi. As shown in the flowchart, the accel_cal.vi and gyro_cal.vi are called for orientations 11, 21, and 31 to calibrate the IMU for cross-axis errors. Figure 43: IMU sensor calibration GUI 88 IMU calibration imu_sensor_cal.vi start read and load "imu_comm_setup.dat" file read and load "imu _cal_setup.dat" file retrieve serial COM port settings retrieve main_cmd_list [] i=0 user input "Calibration_start" current_command = main_cmd_list [i] cal_status = if( i>=size(main_cmd_list)) Execute accel_cal.vi i=i+1 Execute gyro_cal.vi i=i+1 Execute target_temperature.vi i=i+1 "C ali bra tio n_ sta rt" = 0 "Calibration_start" = 1 current_c omm and = acce l_cal current_c ommand = gyro_ cal current_c ommand = target _temp acce l_cal don e gyro_cal done target_te mp done IMU calibration imu_sensor_cal.vi end cal_status = 1 Execute cross_axis.vi i=i+1 cro ss_ axi s d one cur ren t_c om ma nd = cro ss_ axi s Figure 44: IMU sensor calibration flowchart - I 89 accel_cal.vi start Prompt user to mount the IMU batch in orientation OA. wait for user confirmation orientation check pass Prompt user for improper orientation fail Log N data packets call - log_n_data_packets.vi accel_cal.vi end gyro_cal.vi start Prompt user to mount the IMU batch in orientation OG. wait for user confirmation Log N data packets (N=1) call - log_n_data_packets.vi orientation check pass Prompt user for improper orientation fail Log N data packets (N=1) call - log_n_data_packets.vi Jog rate table at 100 deg/sec call - dispatch_rate.vi Jog rate table at Rseq[i] call - dispatch_rate.vi Log N data packets call - log_n_data_packets.vi i = i + 1 i > size (Rseq) gyro_cal.vi end true false true false true false (b) Gyroscope calibration step target_temp.vi start Create 2 step thermal profile download thermal profile call - download_profile.vi Chamber temperature stabilized ? target_temp.vi end (c) Target temperature step (a) Accelerometer calibration step Figure 45: IMU sensor calibration flowchart - II 90 cross_axis.vi start orientation OA = 11. orientation OG = 11. Rseq[0] = 150 deg/sec. Call accel_cal.vi orientation OA = 21. orientation OG = 21. Rseq[0] = 150 deg/sec. Call gyro_cal.vi Call accel_cal.vi Call gyro_cal.vi orientation OA = 31. orientation OG = 31. Rseq[0] = 150 deg/sec. Call accel_cal.vi Call gyro_cal.vi cross_axis.vi end Figure 46: IMU sensor calibration flowchart ?III 91 dispatch_rate.vi start log_n_data_packets.vi start read and load "imu_comm_setup.dat" file flush UART RX buffer (Handle Ai) N = bytes in RX buffer (Handle Ai) imu_data_msg = Read N bytes from UART RX buffer (Handle A) Parse (imu_data_msg) check CRC pass fail save imu_data_msg to imu_log.dat file i < n true A false i=i+1 Handle Ai = Open serial COM port handles to communicate with enabled IMU units i= 0,1,2,3...n. read and load "imu_comm_setup.dat" file Load data tag to append example: OA, OG, TT etc Load number of data packets to log N append data tag to imu_data_msg Load rate sequence array Rseq[] i = 0 Issue rate command for rate Rseq[i] Read current table rate R R >= Rseq[i] dispatch_rate.vi end i = i + 1 true false Figure 47: IMU sensor calibration flowchart - IV 92 Sub-module: IMU sensor calibration result generation Virtual instrument: imu_cal_result_gen.vi Called by: main .vi Calls: none The imu_cal_result_gen.vi enables the user to implement and evaluate various calibration algorithms. Figure 48 shows the GUI for this sub-module. This module provides an interface to MATLAB from the labVIEW environment. Figure 49 presents the flow chart of the IMU result generation module. As shown, the logged IMU calibration data is retrieved and fed to the MATLAB engine. The calibration algorithm presented under Chapter 2, implemented as a MAT script, processes the IMU calibration data and presents the results to the user. Figure 48: IMU sensor calibration result generation GUI 93 imu_cal_result_gen.vi start retrieve logged IMU calibration data from ads_log.dat file parse retrieved data and input the calibration data to the MATLAB script Execute the calibration algorithm implemented in MATLAB Display results imu_cal_result_gen.vi end "User input" Exit and return "User input" process data true false true false Figure 49: IMU sensor calibration result generation flowchart 3.8 ADS Calibration System ? Application Software The ADS calibration application is characterized by a highly modular architecture, with each module implemented to perform a particular function of the ADS calibration process. Each of these component modules comprises a number of sub-modules. Table 11 lists the various modules and sub-modules involved in the ADS calibration process. 94 Figure 50 presents the operational sequence in which the various modules and sub- modules will be employed by the user. The ADS communications setup module is responsible for allocating serial communication resources for each of the calibration system components and setting up their communication settings. The ADS burn-in module is responsible for conducting burn-in tests on an ADS unit. It consists of a number of sub-modules: The Download thermal profile sub-module allows a user to create and download customized thermal profiles to the environmental chamber. The ADS burn-in sub-module begins the execution of the downloaded thermal profile and subjects the ADS unit in the environmental chamber to desired thermal loading. During thermal loading, ADS output data is acquired and logged. On completion of thermal cycling, the ADS burn-in validation sub-module presents the user with graphical plots of logged ADS data based on which the user validates the assembled ADS board. The ADS calibration module is responsible for sensor calibration of the ADS unit. The ADS calibration setup sub-module provides the user the versatility to create any custom calibration or acceptance test sequence. 95 ADS Calibration start ADS communications set-up module Download thermal profile ADS burn-in burn-in complete ? ADS burn-in validation ADS calibration set-up ADS calibration Calibration complete ? ADS calibration result generation ADS acceptance tests Acceptance complete ? ADS Calibration end Communication set-up ADS sensor calibration process ADS burn-in process yes yes yes no no no Figure 50: ADS calibration process 96 Table 11: ADS calibration application software module and sub-modules MODULES SUB-MODULES 1 ADS communications setup module ADS calibration communication setup 2 ADS Burn-in module Download thermal profile ADS burn-in ADS burn-in validation 3 ADS calibration module ADS sensor calibration setup ADS calibration ADS calibration result generation A calibration sequence/acceptance test sequence comprises a number of steps, each of which performs a specific function of the ADS sensor calibration/acceptance process. For example: go to temperature 25 oC, wait for 10 minutes, go to altitude -1000 ft, log 100 ADS data packets, go to altitude 0 ft, log 100 ADS data packets, go to altitude 1000 ft, log 100 ADS data packets, and so on, is a calibration sequence that calibrates the altitude sensor over an altitude span between -1000 ft and 1000 ft at a temperature of 25 oC. The ADS calibration sub-module executes the calibration sequence created by the ADS sensor calibration setup sub-module, collects calibration data and alerts the user on completion of the calibration sequence. The ADS calibration result generation sub- module retrieves the calibration data collected by the ADS calibration sub-module and uses a MATLAB script to post process the data. It generates the ADS calibration surface plots and presents the user with the surface fit constants, which are re-programmed into 97 the ADS unit by the user. The ADS acceptance process involves evaluating a calibrated ADS unit?s output at various temperatures, altitudes and air-speeds specified by the acceptance test criteria. The ADS acceptance tests enable the user to evaluate the quality of calibration. The user using the test sequences created by the ADS calibration setup module can create suitable acceptance test. The ADS calibration module can be used to execute these acceptance tests. Suitable scripts can be implemented for evaluating conformance with acceptance criteria. 3.9 ADS Calibration System Application Software Requirements In order to implement the calibration procedure discussed under Chapter 2, the ADS calibration application must comply with the functional requirements given in Table 12. The requirements are categorized under the various modules of the ADS calibration application. Table 12: ADS calibration application software requirements ADS burn-in module ADS_burn_in_req1 The application shall be capable of establishing serial communication and be able to log data from at least one ADS unit. ADS_burn_in_req2 The application shall be capable of communicating with the environmental chamber?s series 942 temperature controller via a dedicated serial channel. It shall be capable of monitoring and controlling the operations of the series 942 98 temperature controller. It shall enable the user to create, edit and download thermal profiles to the series 942 controller. ADS_burn_in_req3 The application shall be capable of parsing the logged data and present the user with graphical plots of logged data for identification of shifts, dropouts, or any abnormal noise that might have occurred due to thermal loading. ADS sensor calibration module ADS_sensor_cal_req1 The application shall be capable of establishing serial communication and be able to log data from at least one ADS unit. ADS_sensor_cal_req2 The application shall be capable of communicating with the environmental chamber?s series 942 temperature controller via a dedicated serial link. It must be capable of monitoring and controlling the operations of the series 942 temperature controller. ADS_sensor_cal_req3 The application shall be capable of communicating with the DRUCK 403 air data test system via a dedicated GPIB interface. The operations of the air data test system will be controlled through DRUCK 403 ADTS commands over the GPIB bus. ADS_sensor_cal_req4 The application shall be capable of parsing the logged data and present the user with graphical plots of logged data. 99 ADS calibration acceptance test module ADS_cal_acceptance_r eq1 The module must me capable of retrieving, parsing and processing logged ADS calibration data to generate the surface fit equation and its constants. ADS_cal_acceptance_r eq2 The module must be capable of applying the obtained surface fit equation on raw calibration data and present the user with calibrated ADS data. 3.10 ADS Calibration System ? Application Software Implementation The ADS application software modules have been implemented as labVIEW virtual instruments (VI?s). The implementation of the ADS calibration application software is presented as follows. 3.10.1 ADS Calibration Communications Setup Sub-module: ADS calibration communication setup Virtual instrument: ads_cal_comm_setup.vi Called by: main .vi Calls: none The ads_cal_comm_setup.vi enables the user to allocate serial communication resources and setup the communication parameters for each of the system components present in the ADS calibration system. Figure 51 shows the GUI for this sub-module. Figure 52 presents the flow chart of the ADS communications setup module. As shown, the 100 communication settings are obtained from the user and saved to ads_comm_setup.dat file. Figure 51: ADS communications setup GUI 101 ads_cal_comm_setup.vi start Select serial "COM" port for WATLOW series 942 controller Select port number for GPIB communication with DRUCK Enter WATLOW series 942 baud rate Select serial "COM" port for ADS unit Enter ADS serial baud rate Enter number of ADS data packets to log Save set-up data "user input" ads_cal_comm_setup.vi end Save communication settings to ads_comm_setup.dat no yes Figure 52: ADS communications setup flowchart 102 3.10.2 ADS Burn-in Module Sub-module: Download thermal profiles Virtual instrument: watlow_programmer.vi Called by: main .vi Calls: download_profile.vi The watlow_programmer.vi enables the user to create and download custom temperature profiles to the series 942 WATLOW temperature controller. Figure 53 shows the GUI for this sub-module. Figure 54(a) presents the flowchart of the Download thermal profiles sub-module. This sub-module obtains the temperature profile data from the user and encodes it in series 942 temperature controller?s command message format [18]. The encoded temperature command input from user is appended to a temp_cmd_list array and downloaded to the series 942 controller by the download_profile.vi. Figure 54(b) presents the flowchart of the download_profile.vi. The download_profile.vi obtains the serial communication settings for communication with the environmental chamber from the ads_comm_setup.dat file. The temp_cmd_list array is downloaded to the temperature controller with necessary error checking and message acknowledgements, as shown in Figure 54(b). 103 Figure 53: WATLOW series 942 programmer GUI 104 watlow_programmer.vi start select step type : stp_typ = StPt or SoAh or Jmp or End configure step "user input" stp_typ Enter set point = set_pt ramp rate = rmp_rt Enter Soah time hours = hrs, minutes = min, seconds = sec Enter Jmp step_number Enter End state stp_cmd = "STP i 1 set_pt rmp_rt 1 1 0" step number i = 0 array temp_cmd_list[] i = i+1 stp_cmd = "STP i 2 hrs_min sec 1 1 0" i = i+1 temp_cmd_list [i] = stp_cmd temp_cmd_list [i] = stp_cmd download_profile.vi start retrieve ADS communications set-up from ads_comm_setup.dat file open serial resource (COM port) for communication with environmental chamber flush UART RX buffer Write temp_cmd_list[i] to UART TX buffer close COM port Error status ? download_profile.vi end error no error n= bytes in UART RX buffer Read n bytes from UART RX buffer i=0 i = i+1 i >= size(temp_cmd_lis t) true false A stp_cmd = "STP i 1 set_pt rmp_rt 1 1 0" i = i+1 temp_cmd_list [i] = stp_cmd stp_cmd = "STP i 1 set_pt rmp_rt 1 1 0" i = i+1 temp_cmd_list [i] = stp_cmd A A B Execute download_profile.vi StPt SoAh Jmp End Download profile "user input" A button press no button press button press A B no button press (a) WATLOW series 942 programmer (b) Download thermal profiles Figure 54: WATLOW programmer flowchart 105 Sub-module: ADS burn-in Virtual instrument: ads_burn_in.vi Called by: main .vi Calls: none The ads_burn_in.vi enables the user to execute the ADS burn-in process. Figure 55 shows the GUI for this sub-module. Figure 56 presents the flowchart of the ADS burn-in sub-module. This sub-module obtains the communications settings from the ads_comm_setup.dat file and opens serial resource handles for communication with the ADS unit and the environmental chamber. It commences the thermal profile programmed into the WATLOW series 942 temperature controller by the Download thermal profiles sub-module and continually acquires and logs the ADS output data. 106 Figure 55: ADS burn-in GUI 107 ads_burn_in.vi start retrieve ADS communications set-up from ads_comm_setup.dat file K = ADS data message size Handle A = Open serial COM port handle to communicate with ADS unit Handle B = Open serial COM port handle to communicate with environmental chamber Start thermal profile by issuing START command via Handle B flush UART RX buffer (Handle A) N = bytes in RX buffer (Handle A) N >= K ? ads_data_msg = Read N bytes from UART RX buffer (Handle A) Parse (ads_data_msg) check CRC false true pass fail save ads_data_msg to ads_log.dat file "User input" stop acquisition false ads_burn_in.vi start Figure 56: ADS burn-in flowchart 108 Sub-module: ADS burn-in validation Virtual instrument: ads_burn_in_val.vi Called by: main .vi Calls: none The ads_burn_in_val.vi enables the user to view and validate the results of the thermal burn-in process. Figure 57 shows the GUI for this sub-module. Figure 58 presents the flowchart of the ADS burn-in validation sub-module. This sub-module retrieves the logged ADS data from the ads_log.dat file and displays plots of various ADS output parameters. The GUI provides various zoom features to thoroughly analyze and validate the ADS output. Figure 57: ADS burn-in validation GUI 109 ads_burn_in_val.vi start retrieve logged ADS data from ads_log.dat file poll "user input" for the ADS parameter to view "user input" update plot Display parameter on plot ads_burn_in.vi start false true "User input" Exit and return false Figure 58: ADS burn-in flowchart 3.10.3 ADS Calibration Module Sub-module: ADS calibration setup Virtual instrument: ads_cal_ setup.vi Called by: main .vi Calls: none The ads_cal_cal_setup.vi gives the user the modularity to execute a calibration sequence of his choice. Figure 59 shows the GUI for this sub-module. Figure 60 presents the flowchart for the ads_cal_setup.vi. This module obtains the inputs required for a 110 particular calibration step and encodes it in an appropriate communication message format. The supported calibration steps enable a user to target and soak at a temperature, target an altitude, or target an airspeed. Using a combination of these steps the user has the flexibility to implement and execute any calibration sequence of his choice. A master command array is built out of these individually encoded calibration steps, which can be edited at the user?s will. After creating a sequence of his/her choice the user can save the calibration setup to a file which will be retrieved by the ADS calibration sub-module at the time of ADS sensor calibration. Figure 59: ADS calibration setup GUI 111 ADS Sensor Calibration Setup ads_cal_setup.vi Start Enter Minimum Altitude Altmin Enter Maximum Altitude Altmax Enter Altitude step-size Altstp Enter Minimum Airspeed Airmin Enter Maximum Airspeed Airmax Enter Air-speed step-size Airstp Enter Target temperature Ts Enter ramp rate Tr Enter Soah time Shr , Smin , Ssec , Add step "user input" Add step "user input" Add step "user input Alt = Altmin i=0 create Altitude DRUCK command word cmd_list [i] = "SOURce:PRESsure alt, Alt" Alt = Altmin+ Altstp i=i+1 Alt >= Altmax Air = Airmin i=0 create Air-speed DRUCK command word cmd_list [i] = "SOURce:PRESsure cas, Air" Air = Airmin+ Airstp i=i+1 Air >= Airmax Create target temperature series 942 word cmd_list [i] = STP 1 1 Ts Tr 1 1 0 create tempetarure soah series word cmd_list[i+1] = "STP 2 2 Shr Smin Ssec 1 1 0" main_cmd_list [k] = concatenate incoming cmd_list[i] arrays set-up done "user input" ADS Sensor Calibration Setup ads_cal_setup.vi end k = k+size(i) yes yes yes yes yes A A A A no no no no no no yes B B save main_cmd_list[] to file "cal_setup.dat" Figure 60: ADS calibration setup flowchart 112 Sub-module: ADS calibration Virtual instrument: ads_sensor_cal.vi Called by: main .vi Calls: dispatch_temp_cmd.vi, dispatch_cmd.vi, dispatch_air_cmd.vi, ads_log_n_packets The ads_sensor_cal.vi enables the user to execute the ADS sensor calibration process. Figure 61 shows the GUI for this sub-module. Figure 62 and Figure 63 present the flow charts for ads_sensor_cal.vi. The communication settings are retrieved from the ads_comm_setp.dat file and the calibration sequence is retrieved from the ads_cal_setup.dat file. The execution of the calibration sequence has been implemented as a state-machine as shown in Figure 62. Based on the action requested by the current command in the calibration sequence one of the two execution modules, dispatch_temp_cmd.vi or dispatch_adts_cmd.vi, is executed. Figure 63(a) shows the dispatch_temp_cmd.vi. As shown, the VI opens the appropriate serial communication resource and writes the current temperature command to the series 942 WATLOW temperature controller with suitable error checking. Figure 63(b) shows the dispatch_adts_cmd.vi. As shown, this VI opens the appropriate serial GPIB resource and issues the current ADTS command. The command can be either an altitude command or an air-speed command. Figure 63(c) shows the flowchart for ads_log_n_packets.vi. As shown the VI opens the appropriate serial resource, logs J data packets with suitable CRC checks and saves it to the ads_log.dat file. On completion of the ADS sensor calibration sequence, the user is prompted with the calibration status. 113 Figure 61: ADS calibration GUI 114 ADS calibration ads_cal_module.vi start read and load "ads_comm_setup.dat" file read and load "cal_setup.dat" file retrieve COM port/GPIB settings retrieve main_cmd_list [] i=0 user input "Calibration_start" current_command = main_cmd_list [i] cal_status = if( i>=size(main_cmd_list)) Execute dispatch_temp_cmd.vi i=i+1 Execute dispatch_alt_cmd.vi i=i+1 Execute dispatch_air_cmd.vi i=i+1 log n ADS data packets ads_log_n_packets.vi "C ali bra tio n_ sta rt" = 0 "Calibration_start" = 1 cur ren t_co mm and = t emp com man d current_command = Alt command current_c ommand=Air_spee d comma nd set_ tem p_r eac hed alti tud e_r eac hed air _sp eed _re ach ed n d ata pac kets log ged ADS calibration ads_cal_module.vi end cal_status = 1 Figure 62: ADS calibration flowchart 115 dispatch_tmp_cmd.vi start open serial resource (COM port) for communication with environmental chamber flush UART RX buffer Write "current_command" to UART TX buffer close COM port Error status ? dispatch_tmp_cmd.vi end true false n= bytes in UART RX buffer Read n bytes from UART RX buffer dispatch_adts_cmd.vi start open serial resource (GPIB port) for communication with DRUCK ADTS Write "current_command" to GPIB device GPIB Error ? write_status = GPIB controller status wait 200 ms operation_status = Read GPIB device operation status ? dispatch_adts_cmd.vi end "prompt user" true false done in progress ads_log_n_packets.vi start open serial resource (COM port) for communication with ADS unit flush UART RX buffer N = bytes in (RX buffer) K = ADS data message size J = Number of ads packets to log i=0 N >= K ? ads_data_msg = Read N bytes from UART RX buffer Parse (ads_data_msg) check CRC close COM port i >= J ? ads_log_n_packets.vi end save ads_data_msg to ads_log.dat file i=i+1 close COM port false true pass fail true (a) Dispatch temperature command (b) Dispatch Druck ADTS command (c) ADS log N data packets Figure 63: ADS calibration components flowchart 116 Sub-module: ADS calibration result generation Virtual instrument: ads_cal_ result_gen.vi Called by: main .vi Calls: none The ads_cal_result_gen.vi enables the user to implement and evaluate various calibration algorithms. This module provides an interface to MATLAB from the labVIEW environment. Figure 64 presents the flow chart of the ADS result generation module. As shown, the logged ADS calibration data is retrieved and fed to the MATLAB engine. The calibration algorithm presented under Chapter 2, implemented in MATLAB, processes the ADS calibration data and presents the results to the user. 117 ads_cal_result_gen.vi start retrieve logged ADS calibration data from ads_log.dat file parse retrieved data and input the calibration data to the MATLAB script Execute the calibration algorithm implemented in MATLAB Display results ads_cal_result_gen.vi end "User input" Exit and return "User input" process data true false true false Figure 64: ADS result generation 118 4 ADAHRS CALIBRATION SUPPORT SYSTEM TESTING AND RESULTS 4.1 Chapter Overview The ADAHRS calibration system presented in this thesis was tested and its functionality was verified at system level. Trial calibration runs were executed using the IMU calibration application software and ADS calibration application software presented under Chapter 3. The calibration method presented under Chapter 2 was used. Trial acceptance test runs were executed to verify and validate the functionality and usefulness of calibration performed by the ADAHRS calibration support system. This chapter presents the results obtained from the trial calibration runs and acceptance test runs conducted. 4.2 IMU Calibration System Results 4.2.1 IMU Thermal Calibration IMU thermal calibration was done using the Thermal calibration module. A temperature cycle between -20 ?C and +65 ?C was used and the data acquired during the trial thermal calibration run is shown in Figure 65. Table 13 gives the thermal calibration constants generated by the Thermal calibration result generation sub-module. 119 Figure 65: IMU thermal calibration data, temperature cycle used was from -20 ?C to +65 ?C. Plots 1, 2, and 3, show the gyro measurements (gx, gy and gy) in counts scaled by a division factor 20972 [9] on Y-axis. Plots 4, 5, 6, 7, 8 and 9, show the accelerometer measurements (az1, ax1, ay1, az2, ax2, and ay2) in pulse width scaled by a multiplication factor of 25 [8]. X-axis represents time (not to scale). 120 Table 13: Computed thermal calibration constants for data shown in Figure 65, a 2nd-order polynomial fit was used. Accelerometer Thermal constant k2 Thermal constant k1 Thermal constant k0 xg -8.8615 e-002 7.6793 e+002 -1.1758 e+006 yg -2.0937 e-001 1.1421 e+003 -1.4166 e+006 zg -9.6758 e-002 4.9812 e+002 -7.1191 e+005 1za -2.1004 e-008 7.6304 e-005 4.4814 e-001 1xa 5.5724 e-009 -2.2270 e-005 4.9489 e-001 1ya 3.8915 e-008 -1.4233 e-004 5.7257 e-001 2za 1.8567 e-008 -7.3550 e-005 4.8380 e-001 2xa -1.3784 e-008 4.5704 e-005 4.3152 e-001 2ya -1.0779 e-009 5.2205 e-006 4.5086 e-001 4.2.2 IMU Accelerometer Offset and Scale Factor Calibration The IMU accelerometer offset and scale factor calibration was done using the IMU sensor calibration module. The mean of accelerometer data acquired under each of the six orientations is shown in Table 14. Tables 15 shows the accelerometer offsets and Table 16 shows the accelerometer scale factors computed by the IMU sensor calibration result generation module. 121 Table 14: Mean of accelerometer measurements acquired under orientations 11, 12, 21, 22, 31, and 32 are shown. Temperature compensated accelerometer measurement unit in pulse width. 1za (mean) 1xa (mean) 1ya (mean) 2za (mean) 2xa (mean) 2ya (mean) Orientation 11 -0.03 0.03 5.69 e-5 0.03 -0.03 0.00 Orientation 12 -0.03 -0.04 0.00 0.00 0.04 0.00 Orientation 21 0.00 0.00 -0.03 -8.00 e-5 0.00 0.03 Orientation 22 0.00 0.00 0.03 0.00 0.00 -0.04 Orientation 31 0.03 0.00 0.00 -0.03 0.00 -0.00 Orientation 32 -0.04 0.00 0.00 0.03 0.00 0.00 Table 15: Computed accelerometer offsets for data shown in Table 14. Eq. (12) was used to compute the offsets. Accelerometer Offset Offset for 1za -0.0395 Offset for 1xa -0.0002 Offset for 1ya 0.0001 Offset for 2za 0.0385 Offset for 2xa 0.0009 Offset for 2ya 0.0001 Table 16: Computed accelerometer scale factors for data shown in Table 14. Eq. (12) was used to compute the scale factors. Accelerometer Scale factor Scale factor for 1za -25.3533 Scale factor for 1xa -25.0795 Scale factor for 1ya 25.2551 Scale factor for 2za 25.9297 Scale factor for 2xa 25.5728 Scale factor for 2ya -25.7141 122 4.2.3 IMU Gyroscope Scale Factor Calibration Gyro scale factor calibration was done using the IMU sensor calibration module. The gyroscope data was acquired at the chosen angular rates in each of the three orientations 11, 21 and 31 subjecting gyros xg , yg , zg to the reference rates. The mean of data collected is shown in Table 17. Table 18 shows the gyro scale factor constants computed by the IMU sensor calibration result generation sub-module. Table 17: Mean of gyro measurements taken at the chosen rates; -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s in orientations 11, 21 and 31. Temperature compensated gyro measurement unit in counts. s0150? s0100? s050? s00 s050 s0100 s0150 xg -3.21 e6 -2.14 e6 -1.07 e6 -8203.8 1.05 e6 2.11 e6 3.16 e6 yg -3.10 e6 -2.06 e6 -1.02 e6 4905.2 1.03 e6 2.06 e6 3.09 e6 zg 3.11 e6 2.07 e6 1.05 e6 3388.3 -1.03 e6 -2.08 e6 -3.12 e6 Table 18: Computed gyro scale factor constants for data shown in Table 17 a 3rd-order polynomial fit was used to compute the scale factor constants. Gyroscope Scale factor constant 3l Scale factor constant 2l Scale factor constant 1l Scale factor constant 0l xg 2.4852 e-20 6.6801 e-14 4.6782 e-5 3.2071 e-2 yg 8.2173 e-21 4.3668 e-14 4.8363 e-5 -5.8402 e-3 zg -1.0998 e-20 -7.4890 e-14 -4.7983 e-5 -8.9218 e-2 4.2.4 IMU Cross-Axis Calibration IMU cross-axis calibration was done using the IMU sensor calibration module. The mean of delta velocities obtained under a reference acceleration input of 1g is shown in Table 19 for all three orientations. The mean of delta angles acquired under a reference 123 rate input of +150 ?/s is shown in Tables 20 for all three orientations. The linear velocity rates and angular rotation rates measured by the IMU are multiplied by 0.01 internally, to obtain the delta velocities and delta angles at 100 Hz. Eq. (30) and Eq. (31), shown the computed accelerometer cross-axis matrix CA and computed gyroscope cross-axis matrix GA. Table 19: IMU cross-axis calibration, mean of delta velocities obtained in orientations 11, 21 and 31 are shown. Delta velocity unit in m/s. Mean of delta velocity along X-axis (m/s) Mean of delta velocity along Y-axis (m/s) Mean of delta velocity along Z-axis (m/s) Orientation 11 -0.0988 0.0015 0.0009 Orientation 21 -0.0014 -0.0974 0.0014 Orientation 31 -0.0021 0.0010 -0.0974 Table 20: IMU cross-axis calibration, mean of delta angles obtained in orientations 11, 21 and 31 are shown. Delta angle unit in degrees. Mean of delta angle along X-axis (deg) Mean of delta angle along Y-axis (deg) Mean of delta angle along Z-axis (deg) Orientation 11 1.5051 -0.0168 -0.0129 Orientation 21 0.0120 1.4977 -0.0034 Orientation 31 0.0041 -0.0085 1.5105 ? ? ? ? ? ? ? ? ? ? ?? ?= 0054.10102.00221.0 0149.00056.10147.0 0097.00158.09905.0 CA )30( ? ? ? ? ? ? ? ? ? ? ? ?= 9993.00056.00027.0 0022.00014.10080.0 0085.00112.09965.0 GA )31( 124 4.2.5 IMU Sensor Calibration Acceptance Test The IMU calibration performed was evaluated using acceptance test sequences executed by the IMU sensor calibration module. For accelerometer acceptance testing, IMU output data was collected in orientations 11, 21 and 31. Figure 66 shows the acquired delta velocities in orientations 11, 21 and 31. Table 21 shows the mean of delta velocities acquired in the three orientations. In the data presented it can be observed that the maximum error caused by cross-axis misalignment is 30 mg?s. Figure 66: Accelerometer calibration acceptance test, delta velocities acquired in orientations 11, 21 and 31 are shown. Delta velocity unit in m/s. X-axis represents time (not to scale). 125 Table 21: Mean of delta velocities in orientations 11, 21 and 31. Delta velocity unit in m/s. Mean of delta velocity along X-axis (m/s) Mean of delta velocity along Y-axis (m/s) Mean of delta velocity along Z-axis (m/s) Orientation 11 -0.0980 0.0020 0.0030 Orientation 21 -0.0020 -0.0980 0.0004 Orientation 31 -0.0020 -0.0005 -0.0980 For gyroscope acceptance testing, IMU output data was collected at seven chosen rates; -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s. This acceptance test was performed in orientations 11, 21 and 31 to test X, Y and Z axes gyroscopes. Figure 68 shows the delta angles acquired in orientations 11, 21 and 31. Table 22, 23 and 24, show the mean of delta angles acquired in orientations 11, 21 and 31 respectively. In the data presented, it can be observed that the maximum error along the major axes is 0.3 ?/s in orientation 11 and 31. Maximum error caused by cross-axis misalignment along the minor axis is 2.3 ?/s in orientation 21. 126 Figure 67: Gyroscope calibration acceptance test, delta angles acquired at rates -150 ?/s, - 100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150?/s, in orientations 11, 21 and 31 are shown. Delta angle unit in degrees. X-axis represents time (not to scale). Table 22: Mean of delta angles in orientation 11 acquired at rates -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s. Delta angle unit in degrees. Mean at sec1500? Mean at sec1000? Mean at sec500? Mean at sec00 Mean at sec500 Mean at sec1000 Mean at sec1500 xg (deg) -1.5023 -1.0035 -0.4994 0.0006 0.4987 0.9991 1.5005 yg (deg) 0.0182 0.0115 0.0045 0.0053 -0.0068 -0.0139 -0.0225 zg (deg) 0.0207 0.0129 0.0079 0.0011 -0.0080 -0.0153 -0.0212 Table 23: Mean of delta angles in orientation 21 acquired at rates -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s. Delta angle unit in degrees. 127 Mean at sec1500? Mean at sec1000? Mean at sec500? Mean at sec00 Mean at sec500 Mean at sec1000 Mean at sec1500 xg (deg) -0.0235 -0.0166 -0.0088 -0.0018 0.0063 0.0136 0.0215 yg (deg) -1.5006 -1.0008 -0.5005 -0.0007 0.4999 1.0001 1.5000 zg (deg) -0.0055 -0.0025 0.0002 0.0005 0.0042 0.0067 0.0091 Table 24: Mean of delta angles in orientation 31 acquired at rates -150 ?/s, -100 ?/s, -50 ?/s, 0 ?/s, 50 ?/s, 100 ?/s, and 150 ?/s. Delta angle unit in degrees. Mean at sec1500? Mean at sec1000? Mean at sec500? Mean at sec00 Mean at sec500 Mean at sec1000 Mean at sec1500 xg (deg) -0.0180 -0.0120 -0.0059 -0.0009 0.0054 0.0120 0.0185 yg (deg) 0.0031 0.0037 0.0010 -0.0002 -0.0035 -0.0052 -0.0079 zg (deg) -1.5018 -1.0011 -0.4986 0.0000 0.4967 0.9972 1.500 For IMU thermal calibration acceptance testing, the IMU unit was subjected to the same temperature profile that was used for thermal calibration. IMU output data was acquired and logged during thermal loading. Figure 69 shows plots of data collected during the thermal calibration acceptance test in orientation 31. The maximum standard deviation observed is 0.20 ?/s for gyros and 4 mg?s for accelerometers. The IMU thermal calibration module can be used to further investigate and improve the quality of IMU thermal calibration by evaluating higher order curve fits for temperature compensation. 128 Figure 68: IMU thermal calibration acceptance test, conducted between -200C and +650C, in orientation 31. Plots 1,2, and 3 shows delta roll angle, pitch angle and yaw angle on Y- axis in degrees. Plots 3,4, and 5 show delta velocities along X, Y and Z axis along Y-axis in m/s. X-axis represents time (no to scale). 4.3 ADS Calibration System Results 4.3.1 ADS Sensor Calibration A trial ADS sensor calibration was done using the ADS sensor calibration module. The calibration was performed for an altitude range between -2000 feet to 10000 feet, at temperatures 250C, 350C, 450C, 550C, and 650C. A surface fit to the acquired data was done using a software tool named Table curve 3-D [22] to model the surface. A cubic equation of form y jxixyhygxfxyeydxcybxaz 223322 +++++++++= was 129 chosen to model the surface. Where, z represents the computed altitude in feet, x represents the measured altitude in counts and y represents the measured temperature in counts. Table 25 shows the surface fit constants computed. Table 25: Computed surface fit constants Surface fit constants Values A 1004224.8 B -0.0731 C -1376.8546 D 1.8239 e-08 E 0.6633 F 1.7150 e-05 G -1.2018 e-15 H -0.0001 I -3.5173 e-10 J -4.0258 e-12 4.3.2 ADS Sensor Calibration Acceptance Test The computed counts were downloaded to the ADS unit and an acceptance test was conducted at temperatures 250C, 450C, and 650C, at altitudes from -2000 feet to 10,000 feet at 1000 feet increments. Figure 69 shows the altitude errors observed at various altitudes and temperatures. 130 Figure 69: ADS altitude error observed at reference altitudes between 0 feet to 12000 feet at 1000 feet increments. At temperatures 250C, 450C, and 650C. The altitude errors observed at lower temperatures are clearly out of the ADS error budget specifications shown in Table 2. The ADS calibration support system can be used to further refine the ADS calibration by using more closely spaced altitude points and temperatures during calibration. Other surface fit equations can be evaluated to bring the ADS to function within its rated accuracy specifications. 131 5 CONCLUSION The various sensor error sources relevant to the sensors used in the ADAHRS were considered and a comprehensive calibration support system has been developed and tested. Unlike the existing calibration methods that cater to the calibration requirements of an individual sensor, a simple, comprehensive and integrated calibration framework has been developed to calibrate all ADAHRS sensors within the rated temperature and measurement range. In addition to its basic calibration function, the flexible nature of the calibration support system provides an enabling framework to study and characterize the sensors, perform initial burn-in to reduce ADAHRS infant mortality rate, and evaluate the effectiveness of calibration using suitable calibration acceptance tests. A highly productive LabVIEW application development environment has been used to develop the calibration software application. It provides the user a powerful and intuitive GUI in the front-end and performs instrument control, calibration data acquisition and data logging in the back-end. Post-processing of acquired calibration data is implemented as a MAT script, which is executed by a MATLAB engine invoked from LabVIEW. This provides the user an open framework to investigate and study various correction and compensation algorithms without having to worry about software implementation in LabVIEW. The developed calibration system has been tested and verified using trial calibration runs. The 132 developed framework can be used in future work to refine the existing calibration process and to investigate and develop algorithms to compensate for other sources of errors like gyro scale factor dependency on temperature, pressure sensor temperature hysteresis, pressure sensor measurement hysteresis, etc. 133 REFERENCES [1] Software algorithms for Air Data Attitude Heading Reference Systems, Michael E. Greene; Victor Trent; Aircraft Engineering and Aerospace Technology: An International Journal Vol. 75 No 5, 2003. [2] Archangel Systems Inc, Aerospace products, Air Data Attitude Heading Reference System (ADAHRS), web-link: http://www.archangel.com/products/adahrs.html. [3] Karthik Narayanan, ?Air Data Heading Reference Systems for Airborne Systems?, Masters Thesis, Auburn University 2002. [4] Archangel Systems Inc, Aerospace products, Inertial Measurement Cube IM3, web- link: http://www.archangel.com/products/im3.html. [5] Vamshi Gangumalla, ?Three-Axis Magneto-resistive Sensor Unit?, Masters Thesis, Auburn University, December 2004. [6] S.A. Hewitson, J.W., A.H.W Kearsley, Performance Evaluation of Inertial Navigation Systems for Surveying. Presented at SatNav 2003, The 6th International Symposium on Satellite Navigation Technology including Mobile positioning & Location services, 2003. [8] Analog Devices, iMEMS Accelerometers, web-link: ADXL210, www.analog.com [9] Analog Devices, iMEMS Gyroscopes, web-link: ADXRS150, www.analog.com [10] Jayendra Dabhade, ?Design and Implementation of a Software Calibration tool for a three-axis Magnetometer System?, Masters Thesis, Auburn University, December 2004. 134 [11] 706-4 Mark 5 Subsonic Air Data System (ADS), www.arinc.com [12] Paul Lukowicz, Holger Junker, and Gerhard Tr oster, Automatic calibration of body worn acceleration sensors. In Proceedings of the second international Pervasive Computing conference, Vienna, Austria, 2004 [13] J.C.Hung, J.R.Thacher and H.V.White, Calibration of Accelerometer triad of an IMU with drifting z-accelerometer bias. IN: NAECON 89; Proceedings of the IEEE National Aerospace and Electronics Conference, Dayton, OH, May 22-26, 1989. Volume 1 (A90-30676 12-01). New York, Institute of Electrical and Electronics Engineers, Inc., 1989, p. 153-158. Publication Date:00/1989, Category:Instrumentation and Photography , Origin:STI. [14] Inexpensive and Automatic calibration for Acceleration sensor (2004), Albert Krohn, Michael Beigl, Christian Decker, Uwe Kochend?rfer, Philip Robinson, Tobias Zimmer. [15] Initial calibration of an inertial measurement unit using an optical position tracking system. Kim, A. Golnaraghi, M.F. Dept. of Mech. IEEE transaction, Publication Date: 6- 29 April 2004, On page(s): 96- 101, ISSN: ISBN: 0-7803-8416-4, INSPEC Accession number: 7963490. [16] Precision calibration of fiber-optics gyroscopes for mobile robot navigation, Ojeda, L. Chung, H. Borenstein, J. Volume: 3, On page(s): 2064-2069 vol.3, Meeting Date: 04/24/2000 - 04/28/2000, Location: San Francisco, CA, USA, ISBN: 0-7803-5886-4, INSPEC Accession Number: 6683682 [17] ?Ideal Aerosmith, 1621-200 Series Single-Axis Precision and Positioning and Rate Table System?, web-link: http://www.ideal-aerosmith.com. 135 [18] Tenney junior environmental chamber, web-link: http://www.tenney.com/tenney/jr- temp-chambers.asp [19] DRUCK air data test system, web-link: http://www.gesensing.com/products/adts403_1.htm?bc=bc_indust+bc_trans_aero [20] IC-sensors, model 1230 pressure sensor, web=link: http://nees.berkeley.edu/Facilities/pdf/2-2-C-9-EERCinstrumentation/ic_sensors_ catalog.pdf [21] ?Packaging piezoresistive pressure sensor to measure low absolute pressures over a wide sub-zero temperature range?, J. Kurth Reynolds, David Catling, Randel C. Blue, Nadim I. Maluf, Thomas Kenny. [22] TableCurve 3-D, web-link: www.systat.com.