5
$\begingroup$

I'm relatively new to the field of orbital trajectory design, so I apologise if the questions herein are obvious.

I'm reading Jeffrey Parker and Rodney Anderson's book "Low-Energy Lunar Trajectory Design" Ch2.6.4-2.6.5 and trying to understand how the state transition matrix is actually employed. I understand it from an intuitive/logical standpoint: its a way of encoding how the trajectory is sensitive to initial conditions, and stability of the trajectory. My question is several fold:

  1. When talking about the STM, Parker and Anderson use language like "the state transition matrix is propogated by: $$\dot{\phi}(t, t_0)=A(t)\phi(t, t_0)$$ with $A(t)$ equal to the matrix of partials...". The difficulty for me is in understand how we actually do this propogation numerically. This question and excellent answer from user Chris R digs into this and he states "instead of having to propagate your dynamics (i.e. the F function) over a given integration time, you simply need to multiply the state $X_{i−1}$ with the STM $\phi$ in order to get $X_i$" and "we compute the initial STM, compute the state at the next time, and then re-compute the STM around that new state." Here's where I'm stuck: if the STM at time 0 is simply the identity matrix, then multiplying the STM by the initial conditions to get $x_1$ simply gives us $x_1=x_0$, which doesn't give us an awful lot after that as we just stay at $x_0$. My next thought was to flip the steps that Chris R mentions, instead computing the next STM (i.e. $\phi(t_1,t_0)$) using the definition of the derivative of $\phi$ given by Parker and Anderson (which itself depends on $x_0$ through the $A$ matrix's dependence on $x$) and using some numerical integration eg. Euler integration, to get something like $x_1 =\phi(t_1,t_0)x_0$ (a logical leap I justified to myself by Chris's use of the $X_{i-1}$ and $X_i$ notation rather than $X_i$ and $X_{i+1}$, but which I am fully aware is likely the wrong way to do this). This seems intuitively shoddy to me, but I also don't really know what I'm talking about, so is this the right way to do this or have I misunderstood a step here?
  2. Later in the same chapter, Parker and Anderson detail that in the single-shooter algorithm case where the initial and final positions are constrained and the final time and velocity are free, the mathematics simplifies to $$\Delta V_0 = \left[\phi_{RV}(t_f,t_0)\right]^{-1}\delta R_f$$ and state that "the algorithm must be iterated until convergence". Is this iteration in reference to propogating the STM to the final time or something else like a root-finder (maybe fixed point iteration?)? It's not explicitly stated (at least not explicitly enough for me to understand it). This terminology is confusing me greatly.
  3. Along that same vein, we are doing all this in the single-shooter method in order to get $\delta R_f$ as small as possible, preferably 0. But in the above equation, setting $\delta R_f=0$ gives us $\Delta V_0=0$ doesn't it?
  4. I've seen this idea floating around that is touched on in Chris's answer that $$\phi(t_j, t_k)=\phi(t_j, t_i)\phi(t_i, t_k)$$ If it is the case that we are doing some kind of iterative root-finder in the single-shooter algorithm wherein the trajectory changes every iteration, its presumably also the case that we can't simply compute the STM for all the intermediate steps to get $\phi(t_f, t_0)$ and then use that same $\phi$ again each iteration, correct? In other words, each time we iterate and try a new $\Delta V_0$, it will change the trajectory and thus the STM, so we will have to fully recompute the entire trajectory each iteration. It seems like I'm answering my own question, but as an M&S Engineer, what I really want to know is is this not really really numerically intensive, or is that numerical load lightened by the use of the STM instead of the governing equations of motion?

As you may be able to tell, I'm very confused about a lot of aspects of the STM and its application in single-shooter methods, so it may be that the above questions don't even make sense as questions and I've got the wrong end of the stick. Feel free to tell me so and correct any naivities if there are any.

$\endgroup$

1 Answer 1

5
$\begingroup$

The way that the STM is used in the single shooting method for trajectory optimisation is that it is integrated along side the dynamics. For the shooting method you would be using a tool such as fsolve in MATLAB or Python.

As mentioned in the very descriptive post by @ChrisR where the dynamics of the STM are defined, what you are wanting is the derivative of the STM. This can be obtained by taking the Jacobian of the state-dynamics and multiplying it by the identity matrix at the initial time step.

Then in an ODE solver, typically ODE113, you integrate the STM and state dynamics as a single vector. At the next time step you then recalculate the Jacobian of the system with the new states at timestep t_1. Then you take the integrated STM and multiply it with the new Jacobian to provide the new STM derivative. This process is repeated until t_f.

After reaching the final state you then take the states and costates from your original dynamics and evaluate your shooting function. When using fsolve you have the option to provide it your own Jacobian of the shooting function. If not defined, fsolve will instead calculate the Jacobian of the shooting function using the finite difference method. Instead, with the STM you can provide fsolve a more accurate analytically calculated Jacobian of the shooting function. By providing fsolve the Jacobian you decrease the time it takes to find a solution and increase robustness of the the next guess update.

After your guess is updated you will repeat the process above of propagating the dynamics and STM together.

Computationally, propagating the STM alongside the dynamics can be advantageous for systems which have a very narrow solution space that may be missed by fsolve. This can lead to less function evaluations and less iterations through the solver, providing the solution to the trajectory problem faster than using the FD method. There is an eventual trade off when considering methods which use dynamics averaging as the higher the fidelity of your averaging can lead to more computational cost than not using the STM.

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.