Graduation Year


Document Type




Degree Name

MS in Mechanical Engineering (M.S.M.E.)

Degree Granting Department

Mechanical Engineering

Major Professor

Robert Bishop, Ph.D.

Committee Member

Tansel Yucelen, Ph.D.

Committee Member

Tim Baxter, M.C.S.


Cubesat, DARPA, Kalman Filter, NASA, USSOCOM


The feasibility of using radically inexpensive micro-electromechanical system (MEMS) technology for navigation of a nanosatellite is investigated with a focus on attitude estimation. Typically, larger satellites are equipped with star cameras, sun sensors, or Earth horizon sensors for attitude estimation. These sensors can provide very accurate attitude measurements. A nanosatellite is highly size, power, and cost constrained and cannot readily accommodate these sensors. Our mission is to design, build, and operate a radically inexpensive nanosatellite system. While there is no consensus on what constitutes a "radically inexpensive" satellite, our goal is a maximum cost of $10,000 per unit. This precludes the possibility of using costly high-precision attitude sensors. Instead, we employ a MEMS inertial measurement unit (IMU) and magnetometer coupled with global positioning system (GPS) to provide derived attitude measurements given an onboard and up-to-date version of the World Magnetic Model (WMM). This method of deriving attitude measurements will produce relatively inaccurate measurements. Since our sen-sors, particularly the derived attitude measurements and the IMU, are corrupted with systematic errors and random noise, a multiplicative extended Kalman filter (MEKF) is employed. We augment the state vector with stochastic models of the systematic errors to obtain real-time estimates of the errors as well as the spacecraft state vector. The MEKF design process can be divided into two main areas; modeling and estimation. The satellite system dynamics are modeled using well-known governing equations of motion that represent the position, velocity, and attitude of the satellite to obtain a priori state estimates prior to the measurement update. The position, velocity, and attitude are components of the state vector, which in our case we can measure directly. The IMU is used to propagate the spacecraft position, velocity, and attitude between measurements. Since the IMU is corrupted with systematic errors, such as bias, misalignment, and scale factor errors, the a priori estimates obtained during propagation will be degraded. Models of these errors are included in the augmented state to improve the overall accuracy of the navigation system. Since the MEKF is known to be an ad hoc algorithm, careful consideration must be taken to ensure that the state estimation error covariance represents reality. This requires very careful filter tuning. A single run simulation provides a glimpse of how well the MEKF is estimating the state vector, however, this is only for a single run and may not be representative of the actual estimation error. Therefore, we perform a Monte Carlo analysis where hundreds of runs are completed and analyzed. This provides insight into how the MEKF will respond in as many different scenarios as possible. What we specifically analyze is if the average sample variance of our Monte Carlo runs closely matches the state estimation error covariance of a single-run simulation. If so, this indicates that the filter state estimation error covariance represents reality and that we can trust the results. Another analysis tool that we employ is the error budget. The error budget allows us to determine which of the error sources contribute the most to the overall uncertainty of our state estimates. The error budget is then used to generate a sensitivity analysis. While the error budget may illuminate the errors contributing the most to the overall uncertainty, the sensitivity analysis points out which of the error sources are most impactful if they are larger than expected. The benefit of these two analysis tools is that we may find that some error sources do not have significant contributions to the overall uncertainty and can be removed from the filter to simplify the structure. After our error budget and sensitivity analysis, we determined that six of these error sources fit this category and can be removed from the filter. These include the IMU scaling, non-orthogonality, and misalignment errors for the gyroscope and accelerometer. Removing them and creating a sub-optimal filter allows faster computation while still achieving very similar results to that of the optimal filter. The final MEKF design provided estimates of the attitude with an accuracy below 5◦. This is acceptable for our mission which is a sun pointing attitude within ± 20◦. The main source of error for the attitude estimate was the attitude measurement bias which was found to be unobservable. Since the magnetometer is the primary source of data for this derived measurement, bias in the attitude measurement comes from bias in the magnetometer readings. Magnetometer biases are due to hard and soft iron errors, which can be calibrated and minimized beforehand, thus reducing the uncertainty in our attitude bias, but not completely eliminating it. Position measurement bias was also unobservable, however, our mission is sun pointing, therefore precise positioning is not required. We were still able to achieve an uncertainty of ± 1 m when the bias uncertainty itself was ± 1 m and the sensor uncertainty was ± 3 m. The velocity measurement bias was observable, therefore we were able to achieve an uncertainty of under ± 0.05 m/s which is more than a 50% increase in accuracy from the 0.1 m/s accuracy provided by the sensor. The most sensitive error groups were found to be the biases of the position and attitude measurements and the least sensitive groups are the IMU systematic errors.