Class YamanakaAnkersenDynamics¶
Defined in File analytical_orbit_dynamics.h
Inheritance Relationships¶
Base Type¶
public lupnt::AnalyticalDynamics(Class AnalyticalDynamics)
Class Documentation¶
-
class YamanakaAnkersenDynamics : public lupnt::AnalyticalDynamics¶
Yamanaka-Ankersen propagation of relative motion about an eccentric reference orbit.
Extends Clohessy-Wiltshire to eccentric chief orbits using the Yamanaka-Ankersen state transition matrix, parameterized by the true anomaly
fof the chief. Intended for formation-flying relative-motion propagation when the chief orbit is non-circular.Note
Propagate() currently throws
std::runtime_error("Not implemented"); only ComputeMat/ComputeInverseMat are functional.Public Functions
-
YamanakaAnkersenDynamics(const ClassicalOE &coe_c, const Cart6 &rv_rtn, Real GM_)¶
Construct from the chief’s classical orbital elements and the deputy’s initial RTN relative state.
- Parameters:
coe_c – Chief’s classical orbital elements (provides semi-major axis, eccentricity, mean anomaly).
rv_rtn – Deputy’s initial relative position/velocity in the chief’s RTN frame.
GM_ – Gravitational parameter of the central body [m^3/s^2 or consistent unit system].
-
MatX ComputeMat(Real t)¶
Compute the Yamanaka-Ankersen state transition matrix at elapsed time
t.Evaluates the true anomaly
fattviaMeanToTrueAnomaly, then formsPhi = A(f) * B(f)mapping the (as-yet-unsolved) integration-constant vector to the relative state.- Parameters:
t – Elapsed time since
t0_[s].- Returns:
6x6 Yamanaka-Ankersen state transition matrix.
-
MatX ComputeInverseMat(Real t)¶
Compute the inverse of the Yamanaka-Ankersen state transition matrix at elapsed time
t.Used to map a relative state at time
tback to the integration-constant vector (Phi^{-1} * x), e.g. for initializingK_fromrv_rtn_.- Parameters:
t – Elapsed time since
t0_[s].- Returns:
6x6 inverse Yamanaka-Ankersen state transition matrix.
-
virtual State Propagate(const State &state, Real t0, Real tf, const State *u, MatXd *stm) override¶
Propagate the relative Cartesian state using the Yamanaka-Ankersen solution.
Note
Currently unimplemented (throws
std::runtime_error) fordt != 0.- Parameters:
state – Initial relative Cartesian state at time
t0.t0 – Initial epoch [s].
tf – Final epoch [s].
u – Unused (no control input).
stm – Output: state transition matrix d(xf)/d(x0); left unmodified if nullptr.
- Returns:
Propagated relative Cartesian state at time
tf.
-
inline virtual StateType GetStateType() const override¶
Return
ClassicalOE::TYPE, the state type associated with this model.
-
virtual State Propagate(const State &x0, Real t0, Real tf, const State *u = nullptr) override¶
Propagate the state from
t0totfwithout computing a state transition matrix.Forwards to
Propagate(x0, t0, tf, u, nullptr).- Parameters:
x0 – Initial state at time
t0.t0 – Initial epoch [s].
tf – Final epoch [s].
u – Optional control/forcing input; unused by analytic propagators.
- Returns:
Propagated state at time
tf.
-
virtual MatX Propagate(const State &x0, const VecX &tfs, const State *u = nullptr) override¶
Propagate the state to a sequence of output epochs, all relative to the initial epoch
tfs(0).Unlike the generic
Dynamics::Propagate(x0, tfs, u), each output row is computed directly asPropagate(x0, tfs(0), tfs(i), u)(parallelized with OpenMP), exploiting the fact that analytic propagators can jump to anytfin one step without re-using the previous step’s result.- Parameters:
x0 – Initial state at
tfs(0).tfs – Vector of output epochs [s], including the initial epoch as
tfs(0).u – Optional control/forcing input; unused by analytic propagators.
- Returns:
Matrix whose i-th row is the propagated state at
tfs(i).
-
YamanakaAnkersenDynamics(const ClassicalOE &coe_c, const Cart6 &rv_rtn, Real GM_)¶