Optimal Spacecraft Trajectories Essay, Research Paper
Optimal Finite-Thrust Spacecraft Trajectories Using
Collocation and Nonlinear Programming
Background
Recently there has been great interest by NASA and the ESA in developing satellite constellations that will serve to act as interferometers for use in gravity wave detection. These satellite constellations would be composed of six satellites arranged in varying orbits such that they form an equilateral triangle with each triangle vertex containing two satellites at close proximity. Each vertex would send two laser signals to the satellites at the other vertices. The satellites then calculate the distance between themselves and the other vertices based on the time it took the laser beam to reach them. This distance is compared with the known distance between the satellites and any increase would suggest that a gravity wave has passed through the detector. The job of the astrodynamicist is to keep the satellites in their orbits so that the distance between each vertex remains fixed. This starts off as a problem of forced-Keplerian motion but then gets a little more complicated when the constraint of minimizing thruster firing time is thrown in. When the satellite thrusters are firing to maintain their orbit, the interferometer can’t take accurate data because the disturbance due to the movement is far greater than the disturbances caused by gravity waves. This dilemma brings about the problem of needing to minimize the thruster firing time so that you can maximize the data collection time. One method of optimizing finite-thrust spacecraft trajectories is the Direct Collocation with Nonlinear Programming approach (DCNLP).
Direct Collocation with Nonlinear Programming
Direct Collocation with Nonlinear Programming is a method of approximating the continuous optimization problem with a parameter optimization problem. This method has been developed over the course of the last thirty-five years and a summary of its history can be found in reference 1. The DCNLP approach approximates the spacecraft trajectory with piecewise polynomials that are represented by state and control variables at a given number of nodes. State variables are stored in the state vector x and the control variables are stored in the control vector u . The spacecraft trajectory is divided into a series of thrust arcs and coast arcs, which are subdivided into evenly spaced segments. In a segment each state variable has a state trajectory which is taken to be a Hermite cubic. This is a “unique cubic that goes through the endpoints of the thrust segment with the appropriate derivatives that are dictated by the evaluation of the differential equations of motion at the endpoints” [1]. Each control variable is assumed to have a linear control trajectory across the segment. At the center of each segment a collocation point is found and then the difference between the derivative of the Hermite cubic at the collocation point and the trajectory equations of motion evaluated at the collocation point is calculated. This difference is called the defect and it is one of the constraints that the objective function, the thruster firing time, is subject to. When the defect is zero the differential equations of motion are satisfied at the collocation point and the endpoints. Allowing the trajectory equations of motion to be given by = (x,u) and the length of time of a segment to be T, the Hermite interpolated state vector at the collocation point is given by
xc = (1/2)+(xl + xr) + (T/8)+[ (xl, ul) - (xr, ur)]
where xl and xr are the state vectors at the left and right nodes. The linearly interpolated control vector is given by
uc = (1/2)+(ul + ur)
where ul and ur are the control vectors at the left and right nodes. The derivative of the Hermite interpolated state vector at the collocation point is
c = -[3/(2+T)]+(xl – xr) – (1/4)+ [ (xl, ul) + (xr, ur)]
Finally, the de
d = (xc,uc) – c
where both the equations of motion and the derivative of the Hermite interpolated state vector are evaluated at the collocation point [1],[2],[3],[4].
The differential equations of motion that describe the spacecraft trajectory are needed for use in the equations above. The three-dimensional equations of motion for a thrust arc in spherical coordinates using canonical units (m = 1.0) are
where c1 is the orbital radius, c2 is the angle between the inertial Z-direction and the satellite radius vector, c3 is the radial component of velocity, c4 is the c2 component of velocity, c5 is the angle between the inertial X-direction and the satellite radius vector, c6 is the c5 component of velocity, at is the magnitude of the thrust acceleration, u1 is the c2 component of the thrust acceleration, u2 is the c5 component of the thrust acceleration, Fd,r is the radial component of the drag force, Fd,f is the c2 component of the drag force, and Fd,q is the c5 component of the drag force. The equations of motion for a coast arc will be identical to those of a thrust arc except that the thrust acceleration terms specified by u1, u1, and at will be zero.
Besides the defect vector, equality and inequality constraints can also be added to the analysis. These are determined by the user and can include for example, constraints on the initial or final conditions or path constraints. All of the defects and constraints are used as bounds on the objective function, the quantity to be minimized. In the case of the spacecraft trajectories, the objective function is the sum of the thrust arc durations. The state, control, and defect variables for both thrust and coast arcs plus any other problem constraints make up a nonlinear programming problem. To solve this problem the variables must first be assembled into state and constraint vectors. The state and control vectors and the thrust arc duration time are assembled into the nonlinear programming ( NLP) state vector as follows
XT = [ x1T, u1T, x2T, u2T, , xnT, unT, t1, t2, , tk]
where X is the NLP state vector, n is the number of nodes that the trajectory is divided into, t is the thrust arc duration time, and k is the number of thrust arcs on the trajectory. The defects, equality constraints, and inequality constraints are assembled into the NLP constraint vector as follows
CT = [ dt,1, dc,1, dt,2, dc,2, , dt,m, dc,p, h1, h2, , hj, g1, g2, , gi]
where C is the NLP constraint vector, m is the number thrust arc segments, p is the number of coast arcs, h is the equality constraints, j is the number of equality constraints, g is the inequality constraints, and i is the number of inequality constraints [1],[2],[3],[4]. The NLP state vector must always be larger in length than the NLP constraint vector or an optimized solution will not be found. Once the NLP state and constraint vectors are found, a solution can be computed by placing these vectors into an optimization subroutine such as NPSOL, MINOS, or SQP.
References
[1] Enright, P.J., and Conway, B.A., “Optimal Finite-Thrust Spacecraft Trajectories Using Collocation and Nonlinear Programming,” Journal of Guidance, Control, and Dynamics, Vol. 14, No. 5, September-October 1991, pp. 981-985.
[2] Enright, P.J., and Conway, B.A., “Discrete Approximations to Optimal Trajectories Using Direct Transcription and Nonlinear Programming,” Journal of Guidance, Control, and Dynamics, Vol. 15, No. 4, July-August 1992, pp. 994-1002.
[3] Betts, J.T., and Huffman, W.P., “Application of Sparse Nonlinear Programming to Trajectory Optimization,” Journal of Guidance, Control, and Dynamics, Vol. 15, No. 1, January-February 1992, pp. 198-206.
[4] Betts, J.T., and Huffman, W.P., “Path-Constrained Trajectory Optimization Using Sparse Sequential Quadratic Programming,” Journal of Guidance, Control, and Dynamics, Vol. 16, No. 1, January-February 1993, pp. 59-68.