Path: FormationFlying/LP
% Computes the thrust trajectory to go from an initial state x0 to a final state xF in the Hill's frame. Simplex is used to optimize the thrust. Algorithm works for an eccentric reference orbit. It does not however account for disturbances. In case eccentricity = 0, the solution obtained is the same as that obtained for a circular reference frame using LPCircular. A control system can be expressed in its discrete state-space form as: X(k+1) = A(k)X(k) + B(k)U(k) Y(k) = C(k)X(k) where X is state , U is control, Y is output For the nth timestep, this can be rewritten as: X(n) = A(n-1)*A(n-2)...A(n-n)*X(0) + [A(n-1)*A(n-2)...A(n-(n-1))*B A(n-1)*A(n-2)...A(n-(n-2))*B ..... B]u where u = [ U(0)' U(1)' ..... U(n-1)']' For a fully controllable and observable system, Y(n) = X(n) = A(n-1)*A(n-2)...A(n-n)*X(0) + pu where p = [A(n-1)*A(n-2)...A(n-(n-1))*B A(n-1)*A(n-2)...A(n-(n-2))*B ..... B] error >= |Y(n) - Y(desired)| = A(n-1)*A(n-2)...A(n-n)*X(0) + pu - Y(desired) The Simplex problem (minimise cu(cost) such that au <= b) and u >= 0 can now be posed as [-p; p]u <= [error + A(n-1)*A(n-2)...A(n-n)*X(0) - Y(desired); error - A(n-1)*A(n-2)...A(n-n)*X(0) + Y(desired)] In case of an Equality Constraint with 0 error, this reduces to [-p]u = A(n-1)*A(n-2)...A(n-n)*X(0) - Y(desired) Note: The constraintType determines whether it is an equality technological constraint( au = b, flag: 0) or an inequality technological constraint( au <= b, flag: 1) u are called 'decision variables', in this case thrust vector Since u is unrestricted in sign (u can be positive and negative), we split u into two parts: u=up-um, where up>=0 and um>=0. Since version 7. -------------------------------------------------------------------------- Form: [aC,t,exitFlag] = LPEccentric( e, n, x0, xF, nu0, nuF, nS, cW, cType, maxC ) -------------------------------------------------------------------------- ------ Inputs ------ e (1) Orbit eccentricity n (1) Mean orbit rate (rad/sec) x0 (6,1) Initial state in Hill's frame xF (6,1) Final state in Hill's frame nu0 (1) Initial true anomaly (rad) nuF (1) Final true anomaly (rad) nS (1) Number of samples to use for control vector cW (:) Cost weighting vector (optional) cType (1) Flag with value 0 or 1 (optional, default: 0) 0 : Equality Constraint on the Linear program formulation 1 : Inequality Constraint on the Linear program formulation maxC (1) Maximum constraint on u (optional, default: 1e25) ------- Outputs ------- aC (3,nS) Commanded acceleration in Hill's frame t (1,nS+1) Time vector (sec) exitFlag (1) Feasible solution = 1, No feasible solution = 0 --------------------------------------------------------------------------
FormationFlying: EccDynamics/FFEccLinOrb FormationFlying: Utility/NuDot SC: BasicOrbit/E2M SC: BasicOrbit/Nu2E SC: BasicOrbit/Nu2M SC: BasicOrbit/OrbRate Common: CommonData/SwooshWatermark Common: Control/C2DZOH Common: General/CellToMat Common: General/DispWithTitle Common: General/MatToCell Common: General/Watermark Common: Graphics/NewFig Common: Graphics/Plot2D Common: Graphics/PltStyle Math: Analysis/Simplex Math: Analysis/Simplex2 Math: Linear/DupVect Math: Linear/InvP Math: Linear/Mag Math: Trigonometry/UnwrapPhase
Back to the FormationFlying Module page