This file presents ADCSim, an open-source MATLAB software package for the design, simulation, and validation of satellite Attitude Determination and Control Systems (ADCS). The software integrates detailed models for satellite dynamics, high-fidelity sensors (gyroscopes, accelerometers, magnetometers, star trackers), and actuators (reaction wheels). A key feature is its integration with the Orekit space dynamics library for realistic orbital environment modeling.
ADCSim features an intuitive Graphical User Interface (GUI) for Model-in-the-Loop (MIL) simulations, and implements multiple estimation algorithms (EKF, UKF, Madgwick) and non-linear controllers. Its advanced functionalities include a robust algorithm to compute and visualize the 3D momentum envelope for reaction wheel arrays and the use of genetic algorithms to auto-tune gains for both the EKF and attitude controllers. By providing a comprehensive suite of tools, ADCSim offers a powerful, cost-effective platform for developing and testing satellite attitude control systems.
Figure 2. Orbit propagation results obtained using Orekit simulator engine.
Before you begin, ensure you have the following software installed:
- MATLAB
- Git (for cloning the repository)
- Java Development Kit (JDK) (This is required to compile the
StepStorageHandler).
Open your terminal and clone the repository:
git clone https://github.com/Bespi123/Satellite_ADCS_GUIDEADCSim follows the following structure:
Satellite_ADCS_GUIDE/
├── lib/
│ ├── orekit/
│ └── custom_java/
├── src/
│ ├── +adcsim/
│ ├── +core/
│ ├── +optimization/
│ ├── config/
│ ├── figs/
│ └── gui/
├── main.m
├── LICENCE.txt
├── .gitignore
└── README.md
For the software to work, you must place the required files in the correct folders.
-
Download Orekit: Download
orekit-13.1.2.jarand place it inside thelib/orekitfolder. -
Download Hipparchus: Download all the Hipparchus-4.0.2 binary
.jarfiles (e.g.,hipparchus-core-X.X.jar,hipparchus-filtering-X.X.jar, etc.) and place them inside thelib/orekitfolder. -
Download Orekit Data: Download the
orekit-data.zipfile from the tutorials link.- Link: https://gitlab.orekit.org/orekit/orekit-tutorials/-/releases
- Action: Unzip the file and place the resulting
orekit-datafolder inside thelib/orekit/orekit-datafolder.
-
Compile the Java Handler: Before running the main program, you must compile the custom Java handler.
- Open MATLAB
- Navigate to the
lib/custom_javadirectory. - Run the
compile_java_handler.mcompile script in the MATLAB Command Window. - Verify that the
StepStorageHandler.classfile was created successfully.
Your final /lib folder structure must match this diagram:
Satellite_ADCS_GUIDE/
├── lib/
│ ├── orekit/
│ │ ├── orekit-13.1.2.jar
│ │ ├── hipparchus-core-4.0.2.jar
│ │ ├── ... (all other jars)
│ │ └── orekit-data/
│ │ ├── (data files and folders)
│ └── custom_java/
│ ├── compile_java_handler.m
│ ├── StepStorageHandler.class
│ └── StepStorageHandler.java
│
...
└── main.m
Run the main.m file.
Brayan Espinoza (bespi123)
