top of page

Optimal Control Project Portfolio

Here is a compilation of various trajectory optimization problems I have solved for classes, projects, and fun!

Optimal Low-Thrust Orbit Transfer - Indirect Methods

Solving for a 2D trajectory transfer between Earth and Mars orbits with constraints on thrust. Used indirect optimization with a shooting function (in MATLAB using fsolve). Non-dimensionlized units to increase solution accuracy and convergence. Solved for different cost functions. The trajectories and control histories are given below for interpretation, and the Hamiltonian and Costates are plotted for proof of mathematical validity.

image.png
image.png
image.png
image.png

Solution for minimizing energy with fixed final time. As you can see in graph 2, the control history is small continous inputs throughout flight to guide the spacecraft to the desired orbit

image.png
image.png
image.png
image.png

Solution for minimizing time. The control is more aggressive this time, and you can see in Graph 1, the rendezvous is completed sooner.

image.png
image.png
image.png
image.png
image.png

Solution for minimizing fuel. The control takes a bang-bang form as expected. A switching function was used to facilitate modelling the bang bang nature numerically. Progressively more aggressive switching functions were used along with initial costate guesses to improve convergence properties. The switching functions are also plotted.

Digging deeper: Initial velocity is now an optimization variable

Now we modify the problem to constrain the magnitude of the initial velocity, but free its direction. This is representative of a realistic launch scenario where you can now choose your launch direction. A switching function was used, only the results from the finest version of the switching function are shown below. 

image.png
image.png
image.png
image.png

As you can tell, the initial trajectory is no longer tangential to earth's orbit, but is now different which saves some fuel in this trajectory.

Optimal Mars Lander Descent Trajectory - Convex Optimization

Solving for optimal descent trajectory for a mars lander. Due to presence of State Path Constraints, we use direct optimization (convex solvers). The first step is to conduct lossless convexification of the problem, and then implement in MATLAB. The constraints are: 1) Min and Max Throttle constraints (can't turn engine off), 2) Surface constraint (Can't go under the surface of Mars), 3) Glide Slope Constraint (To avoid burning up in atmosphere), 4) Landing zone final conditions. The cost function we are minimizing is total fuel used.

image.png
image.png
image.png

Non-Convex Problem Formulation

Convexified Problem Formulation

image.png
image.png
image.png

Following the Throttle curve, we see that the lander starts at Max Throttle in a deorbit maneuver, and then goes to min throttle for a little bit. Here it glides to the landing zone. When sufficiently close to the landing zone, the throttle jumps up to max again to decelerate right before touchdown. This is a bang-bang controller.

ISS Rendezvous Trajectory Optimization using Clossey Wiltshire Dynamics

Solved using Convex Programming. Minimizing function is energy, and there are state path constraints and control bounds.

image.png
image.png
image.png

This problem demonstrates the unintuitive nature of orbital mechanics. In order to catch up to your target, you actually need to slow down.

bottom of page