Conclusions
Good
- Rate control
- Run-time Plotting Tool
- Quaternion Attitude
- Theta Multiplier with Quaternion Vector Balancing
- Decomposing a Quaternion
- Quaternion to Moment Conversion
- Quaternion-Based
- PID/SMO State Estimation
- PID/SMC Control
- Sliding Mode Controller**
Less Good
- Experimental Attitude Control
- Actuators
- CSS, Three-Axis Magnetometer
TSatPy
- Quaternion Multiplicative Corrections: Ensures numerical stability in rotating systems
- Adaptive Step Algorithms: Corrects for inconsistent step sizes in simulations or experiments
- Quaternion Decomposition: Decouples rotation and nutation control
- Theta Multiplier with Quaternion Vector Balancing: Linearly scales quaternion attitude measures used in state corrections without violating the unit quaternion restriction
- Euler Axis Based Moments: Utilizes the quaternion's Euler axis and angular displacement to calculate linearly scaled control moments
- Concurrent Estimation/Control Algorithms: Evaluates multiple estimation and control methods
- "Run-time" interface: Enables access and visualization of the internal state of the control system during a test or simulation
- Variable System Clock: Alters the speed of simulations to compress long simulations or inspect state changes is slow motion
- Python: Written in a widely used and expressive language that is easy to learn, comes with "batteries-included", and is viable for high performance applications.
- Modular Design: Additional estimation or control algorithms or system models can be written and plugged into the existing system
- Source Agnostic Control System: Observer-based controller logic can be reused to control a variety of rotating system (simulated and physical)
- MIT License: Software will be released publicly on acceptance of this thesis under as MIT License
Future Work
- Release the source code at https://github.com/MathYourLife under an MIT license.
- Port the tPlot library from MATLAB to Python for enhanced visualizations
- Investigate use of coarse sun sensors for nutation detection.
- Develop a better filtering method such as an extended kalman filter.
- Improve the gradient descent algorithm for parameter tuning.
- Modify the Actuator module to operate pneumatic thrusters and calculate pulse width modulations instead of continuous variable voltages.
- Complete the configuration of the python ADCS "twisted" daemon to open a RESTful API interface to query the system's state.
- Upgrade the three-axis magnetometer nutation to one with a less noisy sensor readings.
- Port the ADCS to a lighter test platform with less friction.
- Investigate with estimator and/or controller scheduling.
- Improve the unit test coverage on the TSatPy library.