Beruflich Dokumente
Kultur Dokumente
Table of Contents
Inspiration ……………………………………………………………………………………………………………………………….. 2
Goals ……………………………………………………………………………………………………………………………………….. 2
Simplifications …………………………………………………………………………………………………………………………. 3
Conclusion …………………………………………………………………………………………………………………………….. 13
2
Inspiration
The idea of this project stemmed from SpaceX’s ability to land rocket boosters. The reusability
of the rocket booster drastically lower costs of space flight and is one of the greater
technological advancements in this day and age. There are many challenges that surrounded
the problem of landing this rocket with one of the largest problems being attributed to the lack
of communication between the rocket and ground. Because of friction between the
atmosphere and the rocket creates an ionization field which is capable of blocking radio
controls. Being that there is no onboard pilot and communication with ground is not 100%,
engineers were forced to create a standalone guidance and control system that without any
manual assistance, could land within a couple meters of the landing site.
Goals
The goal of this project was to design a control system of a rocket that would be able to
successfully land the rocket as close to the landing site as possible and at an acceptable speed.
As one could expect, there are numerous variables that come into play when attempting to
develop software that would be able to land this rocket on its own (as mentioned in the
previous section, the rocket will not have constant communication with ground and therefore
the rocket’s software must be able to autonomously correct the landing trajectory due to many
unforeseeable disturbances on its descent). Algorithms that take into account all these
variables have taken years and millions on millions of dollars to develop. Additionally, the
problem itself had a whole team of seasoned experts at its disposal. Due to this fact, our goal
3
was to create a simplified version of the rocket landing that more focused on the basics of a
digital control problem rather than the complicated aspects of an aerospace problem.
Simplifications
What follows will be a description of all simplifications that our team has made that allowed us
• Fuel consumption and thrust are proportional to one another and we do not take into
account loss of fuel from x-direction and y-direction thruster. We believe the actual fuel
consumption would slightly differ from being directly proportional to the thrust, but this
• Our base fuel consumption that we later change based off of the thrust comes from the
mass of the fuel and the time of the burn. In reality this is not the case and the fuel
• We are able to choose the mass of the fuel and the mass of the rocket arbitrarily. In
reality, these masses are very precise, but we were unable to find concrete information
on these values. Keep in mind that our simulation is able to land any reasonable
• We simplified wind gusts as half of sin wave with random speed and duration. After
much discussion, we thought this was the best way to simulate a wind gust.
• Although we assume the winds are parallel in x and y direction, the combination of the x
• Similarly, the up-draft and down-draft winds are also simplified as half sin waves with
• The random winds as well as the x, y and main thruster (z direction) all affect the motion
of the rocket as if the rocket was a point mass. This was one of our most vital
rocket.
• We assumed the rocket to be a pure short cylinder and used that as drag coefficient. In
real situations, complicated calculations are performed in order to get a precise drag
coefficient.
All these simplifications allowed us to more closely focus on the control’s aspect of the
problem. One would be able to modify this code very easily to more simulate a specific rocket if
they indeed had access to all the required information. Still, our simulation takes into account:
Our control algorithm is based off the ability of our rocket to accurately recognize its current
acceleration in the x-direction, the y-direction and the z-direction. Being that we are unable to
anticipate the effects on the acceleration before they happen (i.e. we don’t know which way
the winds will push our rocket), our ability to control the rocket is based off of the feedback
from our onboard accelerometers. Our ideal, uninterrupted, path to the ground is previously
5
calculated before flight (this is what actually happens in reality with rockets owned by SpaceX).
Once in flight, our control algorithm will constantly feedback the changes in acceleration from
With the fed back change in acceleration data in the x-y plane, we are able to ‘steer’ the
rocket back to its original location by applying a corresponding thrust from our x-direction and
y-direction thrusters. This allow us to keep the rocket within 0.3 meters of our desired landing
zone. This is compared to with no control that will have the rocket drift off thousands of meters
(it is important to note that if we were able to anticipate the wind gusts, we would be able to
With the fed back change in acceleration in the z-direction, we are able to keep the
rockets deacceleration to a constant desired value (1G, 2G, 3G, etc.). This allows our controlled
rocket to have enough fuel land at a suitable velocity (under 2 m/s). When we are unable to
keep the rockets acceleration constant (which one can see in the simulation), the rocket will
either hit the ground at a deadly velocity or the rocket will run out of fuel and then plummet
The above will all be showed later in this report through our simulations. We included
Below is a step by step walk through of our code which includes screenshots as well as outputs.
6
1. Setting parameters and initializing other variables. Below show the variables taken into
2. Determining the necessary height to initialize the rocket burn to land safely (does not
3. Simulate the descent of the rocket with random up draft and down draft while the
control system is NOT-ACTIVE. Below shows the outputs after the simulation runs:
7
4. Simulate the descent of the rocket with random up draft and down draft while the
control system is ACTIVE. Below shows the outputs after the simulation runs:
8
Below shows the thrust vs. time once the burn begins:
5. Generate random wind gusts in the x and y direction, calculate the effect it has on the
rocket’s descent and then using the control algorithm, counteract the random winds.
6. The last part of the simulation is plotting the data in a readable and insightful format.
a. Controlled and uncontrolled drift on the same axis for comparison (top view/3D)
NOTE: the blue circle is the (0,0) location where the rocket is intended to land, and the red X is
We also have an output that shows the distance from intended target with and without
control:
7. This side script we built enables a user to see a live and moving footage of the rockets
control ability as it descends. Being that it is a moving graphic, we have attached a link
to a YouTube video that shows the graphic in action. The scripts will also be attached to
our submission so one would be able to run it from their own computer.
12
The graphic shows the combined x-y thrust vector along with a top down display of the
rockets movement which shows a scaled thrust vector and scaled wind vectors as a
function of height/time. This allows the user to see the x-y winds being counteracted by
3D Simulation: https://youtu.be/lcH0DOj6kQU
Conclusion
Overall, our group thought this project was very engaging to do. Being able to pick our own
control problem was really exciting being that we were able to pick something we were actually
very interested in. We believe our simulation was a success and even though we made
implications to the problem at hand, we got a good taste of actually using control algorithms
and applying them to a real problem. Finally, we would like to thank Professor Blankenship for a
great semester.