Skip to content
/ TVC Public

GNC to land a model rocket using TVC and a solid motor.

Notifications You must be signed in to change notification settings

Zentrik/TVC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

After running ] activate TVC.jl and instantiate in a Julia repl in the TVC directory, see LQR example or PID example.

Guidance for pinpoint landing is old files/6dof only. Below is a visualisation of a trajectory generated by this guidance.

0000-0114.mp4

Recommended Watching

BPS.space

Brian Douglas

Understanding PID Control, Part 1: What is PID Control?

Control Bootcamp

Other videos by brian, brunton, 3b1b etc.

How to read values from mpu6050

Quaternions by 3Blue1Brown

Recommended Reading

My paper. The gain scheduling section is wrong as I didn't linearise about equilibrium points and didn't add an affine term to the state space model to account for this. Also, the appendix is not complete. However, hopefully it is helpful and the references are also recommended to be read.

The Fundamentals of Control Theory

Books Joe Barnard (BPS.space) recommends

Quaternions, this link seems to be dead.

Satellite Dynamics and Control in a Quaternion Formulation

Great introduction to control theory

Basic tutorials in control theory

https://thenumb.at/Exponential-Rotations/

Dynamics

The kinematics of a 6 DOF rigid body are described here and the quaternion derivative is here (this is just standard 1/2 * quaternion * angular velocity (in body coordinates)).

Stevens, Brian, and Frank Lewis. Aircraft Control and Simulation, 2nd ed. Hoboken, NJ: John Wiley & Sons, 2003, explains the equations used in the matlab 6dof block nicely.

I think it's quite important to understand reference frames and coordinate systems so reading the book above or the other one here should be helpful in that endeavour.

My notes on 6dof block

The block takes in the forces, moments and Inertia tensor in the body coordinate system. V_b is the velocity of the centre of mass w.r.t. (I think the flat earth reference frame) expressed in the body coordinate system whilst V_e is expressed in the flat earth coordinate system. A_bb is the derivative of V_b wrt to the body reference frame whilst A_be is wrt to the flat earth reference frame.

Aerodynamics

OpenRocket describes the aerodynamic forces acting on a model rocket. I don't know if I would recommend trying to implement the equation from here, I struggled quite a lot doing that but using debugging tools on the OpenRocket code helped. It would probably be best to look at other implementations of the barrowman equations/ Aerodynamics.jl where its implemented for a rocket with a conical nose cone and no fins.

Optimal Landing

SCP Toolbox and links to papers on SCvx, PTR and GuSTO

Post on GFOLD

Lecture Notes on Optimal Spacecraft Guidance