AERO 421: Spacecraft Attitude, Dynamics, and Control Final Project.

Overview

AERO - 421 Final Project Redevelopment

Spacecraft Attitude, Dynamics, and Control: Simulation to determine and control a satellite's attitude in LEO.

Background

AERO-421, or Spacecraft Attitude, Dynamics, and Controls, is a class taught at the California Polytechnic State University at San Luis Obispo (Cal Poly SLO) which serves as an...

"Introduction to spacecraft attitude dynamics and control... [and] fundamentals of guidance and navigation systems... [with emphasis in] analysis and design of control systems for aerospace vehicles." - Cal Poly Aerospace Engineering Course Catalog

The final project in the course was to develop a simulation to determine a satellite's attitude in Low Earth Orbit (LEO), consider and model detumbling from a launch vehicle, consider and model disturbances due to external forces i.e., Solar Radiation Pressure (SRP), and to consider and model control via onboard reaction wheels.

More information regarding the 6 different parts can be found below.

The initial project was developed in MATLAB, however, the project will be completely redeveloped in Python to showcase controls and software development skillsets.

Part 0: Context and Given Data

The project will explore modeling and simulation of the various stages of a spacecraft mission, specifically simulating the attitude dynamics from initial spacecraft deployment to operation. In this simulation, the spacecraft is an Earth observing satellite and an attitude determination and control system must be designed using reaction wheels to ensure the spacecraft maintains pointing nadir.

Orbital Data:

  • h (angular momentum) = 53335.2 km^2/s
  • e (eccentricity) = 0
  • Ω (Right Ascension of Ascending Node) = 0 deg
  • i (inclination) = 98.43 deg
  • ω (Argument of Perigee) = 0 deg
  • θ (True Anomaly) = 0 deg
  • ϵ-LVLH (Initial Quaternion relating the body to the LVLH frame) = [0, 0, 0]; η = 1

Detumble Phase:

  • Spacecraft is a square box with 2 meters on each edge with total mass of 640 kg
  • Initial Angular Velocity of [-0.05, 0.03, 0.2] rad/s relating the body to the ECI frame

Normal Operations:

  • Spacecraft bus is a 2 meter cube with mass of 500 kg. The center of mass of the spacecraft is located at the geometric center of the bus.
  • A rectangular sensor is attached to the face pointing towards the Earth (+Z-axis) and is 1 meter long and 0.25 meters square. The sensor has a mass of 100 kg.
  • Two solar panels are deployed along the +/- Y-axis and are constrained to rotate about the +/- Y-axis. The solar panels are 3 meters long (in the Y-axis), 2 meters wide, and 0.05 meters thick. Each panel has a mass of 20 kg and the center of mass is located at the geometric center of the panel. The solar panels do not rotate relative to the spacecraft bus.
  • Assume all spacecraft components have uniform density with centers of mass located at the geometric centers of each component
  • Magnetically, the spacecraft residual magnetic dipole moment can be modeled as pointing in the -Z direction with magnitude 0.5 A-m^2
  • See the figure below for the spacecraft schematic
  • Because the thrusters are not actually fully-modulated thrusters, the spacecraft will have a residual angular velocity of [0.001, -0.001, 0.002] rad/s relating the body to the ECI frame after the detumble phase.
  • During operation the spacecraft is required to point at the target on the ground to within 0.001 degrees 3-sigma using the reaction wheels used in the reaction wheels part.

Spacecraft Schematic

Part 1: Mass Properties

Determine the mass and inertial properties of the spacecraft for both the detumble and the normal operations phases.

Outputs:

  • Total mass of the spacecraft
  • Center of mass relative to the spacecraft bus center of mass. The body frame will be located at the center of mass of the whole spacecraft
  • Intertia matrix of the whole spacecraft about the center of mass of the spacecraft

Part 2: Torque Free Motion

Model the torque free orbital and attitude motion of the spacecraft

Outputs: Plots for...

  • Euler angles and quaternions relating body to ECI reference frames
  • Angular velocity of the spacecraft in body components for one orbit of the normal operations phase

Part 3: Detumble

Simulate the motion of the satellite during the detumble phase. Assume fully modulated thrusters and use direct velocity feedback

Outputs: Plots for...

  • Euler angles and quaternions relating body to ECI reference frames
  • Angular velocity of the spacecraft in body components for the detumble phase
  • Torque components in the body frame

Part 4: Disturbance Simulation

Add the four disturbance models to the simulation:

  • Atmospheric Drag
  • Solar Pressure
  • Gravity Gradient
  • Earth Magnetic Field

Use the following model for the atmospheric density. Notice that h is the height above the Earth's surface in kilometers where R_Earth equals 6378km

Disturbance Model

Consider the simulation epoch to be March 20, 2021. Disregard any variations of the ECI representation of the sunlight direction during the simulation.

Outputs: Plots for...

  • Euler angles and quaternions relating the body to the ECI reference frame
  • Euler angles and quaternions relating the body to the LVLH reference frame
  • Angular velocity of the spacecraft relative to the ECI frame expressed in body components
  • Angular velocity of the spacecraft relative to the LVLH frame expressed in body components
  • Torque components for atmospheric drag, solar radiation pressure, gravity gradient, and earth magnetic field

Part 5: Reaction Wheel Control

Determine the control gains for a full state feedback 3-axis reaction wheel control system. Use the requirements of ζ = 0.65 and t_s = 30 sec

The positions of the 3 reaction wheels are [1, 0, 0], [0, 1, 0], and [0, 0, 1]. Each reaction wheel can be modeled as a simple cylinder with radius of 0.3 m and a height of 0.02 m

Outputs: Plots for...

  • Euler angles and quaternions relating the body to ECI reference frame
  • Euler angles and quaternions relating the body to LVLH reference frame
  • Angular velocity of the spacecraft relative to the ECI reference frame expressed in body components
  • Angular velocity of the spacecraft relative to LVLH frame expressed in body components
  • Commanded moment from the determined control law
  • Wheel speed of each reaction wheel

Part 6: Visualization

Determine and animate the quanterions of the spacecraft, from ECI to body frame, for the duration of 1-5 revolutions.

Output:

  • Table of quaternion and time data
  • Video or other animation file to show the revolution of the spacecraft
Owner
Gagandeep Thapar
- (he/they) - 4th year Aerospace Engineering (w/ CS Minor) at Cal Poly SLO - Interested in Launch Vehicle and Spacecraft Controls and Avionics
Gagandeep Thapar
Home Assistant custom integration to fetch data from Powerpal

Powerpal custom component for Home Assistant Component to integrate with powerpal. This repository and integration is not affiliated with Powerpal. Th

Lawrence 32 Jan 07, 2023
Homeautomation system created with Raspberry Pi 3 and Firebase.

Homeautomation System - Raspberry Pi 3 Desenvolvido com Python, Flask com AJAX e Firebase permite o controle local e remoto Itens necessários Raspberr

Joselino Santos 0 Mar 09, 2022
Example code to sending USB Gadget multimedia keys via Python

Send Multimedia USB HID Keys via Python As an USB Gadget in Linux This gives a simple script with zero dependencies that can easily run on any Linux d

DevOps Nirvana 2 Jan 02, 2023
GUI wrapper designed for convenient service work with TI CC1352/CC2538/CC2652 based Zigbee sticks or gateways. Packed into single executable file

ZigStar GW Multi tool is GUI wrapper firtsly designed for convenient service work with Zig Star LAN GW, but now supports any TI CC1352/CC2538/CC2652 b

133 Jan 01, 2023
Programmable Rainbow Redstone Computer

Programmable Rainbow Redstone Computer Table of contents What is it? Program flasher How to use it What is it? PRRC is Programmable Rainbow Redstone C

Fern H 2 Jun 07, 2022
Bucatini: a soft PIPE PHY for FPGA SerDes

Bucatini: a soft PIPE PHY for FPGA SerDes Bucatini is a noodly gateware layer capable of transforming an FPGA SerDes into a PIPE PHY, allowing you to

Great Scott Gadgets 28 Dec 02, 2022
Home solar infrastructure (with Peimar Inverter) monitoring based on Raspberry Pi 3 B+ using Grafana, InfluxDB, Custom Python Collector and Shelly EM.

raspberry-solar-mon Home solar infrastructure (with Peimar Inverter) monitoring based on Raspberry Pi 3 B+ using Grafana, InfluxDB, Custom Python Coll

cislow 10 Dec 23, 2022
This repository hosts the code for Stanford Pupper and Stanford Woofer, Raspberry Pi-based quadruped robots that can trot, walk, and jump.

This repository hosts the code for Stanford Pupper and Stanford Woofer, Raspberry Pi-based quadruped robots that can trot, walk, and jump.

Stanford Student Robotics 1.2k Dec 25, 2022
Activate Numpad inside the touchpad with top right corner switch or F8 key

This is a python service which enables switching between numpad and touchpad for the Asus UX433. It may work for other models.

Mohamed Badaoui 230 Jan 08, 2023
Control the lights of Alienware computers under GNU/Linux systems.

Before requesting support please consider that this software is not actively developed. I created it in 2014 for managing my Alienware M14X-R1 (where

rsm 111 Dec 05, 2022
The project is an open-source and low-cost kit to get started with underactuated robotics.

Torque Limited Simple Pendulum Introduction The project is an open-source and low-cost kit to get started with underactuated robotics. The kit targets

34 Dec 14, 2022
Python module for controlling Broadlink RM2/3 (Pro) remote controls, A1 sensor platforms and SP2/3 smartplugs

Python module for controlling Broadlink RM2/3 (Pro) remote controls, A1 sensor platforms and SP2/3 smartplugs

Matthew Garrett 1.2k Jan 04, 2023
A Home Assistant sensor that tells you what holiday is next

Next Holiday Sensor This sensor tells you what holiday is coming up next. You can use it to set holiday light colors or other scenes. The state of the

Nick Touran 20 Dec 04, 2022
circuitpython version of PyBasic for microcontrollers

cPyBasic Circuitpython version of PyBasic for microcontrollers Current version work only for Adafruit titano & CardKB for now. The origninal PyBasic w

BeBoXoS 3 Nov 14, 2021
Mini Pupper - Open-Source,ROS Robot Dog Kit

Mini Pupper - Open-Source,ROS Robot Dog Kit

MangDang 747 Dec 28, 2022
Universal Xiaomi MIoT integration for Home Assistant

Xiaomi MIoT Raw 简体中文 | English MIoT 协议是小米智能家居从 2018 年起推行的智能设备通信协议规范,此后凡是可接入米家的设备均通过此协议进行通信。此插件按照 MIoT 协议规范与设备通信,实现对设备的状态读取及控制。

1.9k Jan 02, 2023
ENC28J60 Ethernet chip driver for MicroPython (RP2)

micropy-ENC28J60 ENC28J60 Ethernet chip driver for MicroPython v1.17 (RP2) Rationale ENC28J60 is a popular and cheap module for DIY projects. At the m

11 Nov 16, 2022
SALUS THERMOSTAT Custom component for Home-Assistant

Home-Assistant Custom Components Custom Components for Home-Assistant (http://www.home-assistant.io) Salus Thermostat Climate Component My device is R

21 Dec 18, 2022
Automatic CPU speed & power optimizer for Linux

Automatic CPU speed & power optimizer for Linux based on active monitoring of laptop's battery state, CPU usage, CPU temperature and system load. Ultimately allowing you to improve battery life witho

Adnan Hodzic 3.4k Jan 07, 2023
CPU benchmark by calculating Pi, powered by Python3

cpu-benchmark Info: CPU benchmark by calculating Pi, powered by Python 3. Algorithm The program calculates pi with an accuracy of 10,000 decimal place

Alex Dedyura 20 Jan 03, 2023