Skip to content

Hybrid AI + Kalman Filter-based Satellite Attitude Determination and Control System (ADCS) — Python simulation of a 3-axis CubeSat control system combining Extended Kalman Filtering and Neural Network-based adaptive control for high-precision spacecraft attitude stability.

License

Notifications You must be signed in to change notification settings

amaranenivinitha/hybrid_adcs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI-Powered Satellite Attitude Determination and Control System (Hybrid ADCS)

Overview

This project implements a Hybrid AI + Kalman Filter-based Attitude Determination and Control System (ADCS) for small satellites.
The goal is to maintain precise satellite orientation despite external disturbances and limited onboard computation, achieving performance comparable to research-level spacecraft control systems.

Problem Statement

Small satellites (CubeSats) experience attitude drift due to:

  • Environmental disturbances (gravity gradient, drag, solar pressure)
  • Actuator limitations
  • Sensor noise and computational constraints

Traditional PD/LQR controllers struggle under unmodeled disturbances and nonlinear dynamics.
This project develops a hybrid controller combining:

  • Kalman Filtering (EKF) for state estimation
  • AI-based Neural Compensator for disturbance rejection and adaptive control

Objectives

  • Design a 3-axis satellite attitude simulation using quaternion dynamics
  • Implement an Extended Kalman Filter (EKF) for state estimation
  • Develop a Neural Network-based control augmentation on top of PD control
  • Validate the Hybrid ADCS under realistic noise and disturbances
  • Compare with classical PD/LQR control performance

System Architecture

\
+-----------------------------+ | Star Tracker / Gyro | +---------------+--------------+ | v +----------+----------+ | Kalman Filter (EKF) | +----------+----------+ | Estimated Attitude & Rates | v +--------------+--------------+ | Hybrid Controller (PD + AI) | +--------------+--------------+ | v +----------+----------+ | Satellite Dynamics | +----------+----------+ | v +-----------+-----------+ | Reaction Wheel Actuators | +---------------------------+ \\

Control Strategy

  • Baseline: PD Controller for nominal control.
  • AI Augmentation: Neural compensator (trained on disturbance–error data) learns to minimize residual attitude errors.
  • Estimator: Quaternion-based EKF providing orientation and angular rate estimates to the controller.
  • Hybrid Control Law: [ τ = τ_{PD} + f_{AI}(q_{err}, ω) ]

Simulation Environment

  • Language: Python
  • Libraries: NumPy, SciPy, PyTorch, Matplotlib
  • Dynamics: 3-DOF rotational motion with reaction wheel model
  • Disturbances: Gravity gradient, drag, and random torque noise
  • Visualization: Quaternion and Euler angle evolution, torque profiles, AI-vs-PD comparison plots

Results Summary

Metric PD Controller Hybrid AI Controller Improvement
RMS Attitude Error 12.583° 3.891° 69.1%
Max Error 19.75° 11.40° 42%
Avg Torque 0.00457 Nm 0.00441 Nm Energy Efficient
Stability ✅ Stable ✅ Stable
Disturbance Recovery Moderate Fast & Adaptive

The hybrid AI controller significantly improves pointing accuracy and robustness under disturbances.

Validation Metrics

Pointing Accuracy: RMS error < 0.5° (target)
Estimation Accuracy: EKF error < 3°
Actuator Efficiency: No saturation, smooth torque commands
Disturbance Rejection: Quick recovery after impulse disturbance
Robustness: Handles sensor noise, dropouts, and torque bias

Repository Structure

\
hybrid_adcs/ │ ├── src/ │ ├── dynamics.py │ ├── ekf.py │ ├── ai_controller.py │ ├── train_ai.py │ ├── sim.py │ ├── validate.py │ ├── validate_ai.py │ ├── scale_search.py │ └── utils/ │ ├── results/ │ ├── attitude_error_plot.png │ ├── torque_profile.png │ ├── metrics_summary.csv │ └── ai_model.pt │ ├── requirements.txt ├── README.md └── .gitignore \\

Future Work

  • Implement Unscented Kalman Filter (UKF)
  • Extend to reaction wheels + magnetorquers
  • Integrate Reinforcement Learning (PPO/SAC)
  • Deploy on CubeSat hardware (ARM Cortex-M)
  • Prepare for publication in Acta Astronautica or AIAA GNC

Keywords

ADCS, CubeSat, Kalman Filter, Neural Control, Reinforcement Learning, Attitude Estimation, Satellite Dynamics

Author

Amaraneni Vinitha
B.Tech in Aeronautical Engineering | AI-based Space Systems Researcher
GitHub: @amaranenivinitha

License

Released under the MIT License.

About

Hybrid AI + Kalman Filter-based Satellite Attitude Determination and Control System (ADCS) — Python simulation of a 3-axis CubeSat control system combining Extended Kalman Filtering and Neural Network-based adaptive control for high-precision spacecraft attitude stability.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages