Class RoeGeometricMappingDynamics¶
Defined in File analytical_orbit_dynamics.h
Inheritance Relationships¶
Base Type¶
public lupnt::AnalyticalDynamics(Class AnalyticalDynamics)
Class Documentation¶
-
class RoeGeometricMappingDynamics : public lupnt::AnalyticalDynamics¶
Geometric-mapping propagation of quasi-nonsingular relative orbital elements (ROE).
Maps a fixed quasi-nonsingular ROE vector
K_to a relative Cartesian state at timetvia the geometric ROE-to-RTN transition matrix, parameterized by the chief’s argument of latitudeu = f + w. Intended for formation-flying analysis expressed in ROE coordinates.Note
Propagate() currently throws
std::runtime_error("Not implemented"); only ComputeMat is functional.Public Functions
-
RoeGeometricMappingDynamics(const ClassicalOE coe_c, const QuasiNonsingROE &roe, Real GM)¶
Construct from the chief’s classical orbital elements, the deputy’s quasi-nonsingular ROE, and the central-body gravitational parameter.
- Parameters:
coe_c – Chief’s classical orbital elements at the reference epoch.
roe – Deputy’s quasi-nonsingular relative orbital elements (ROE), stored as the fixed integration-constant vector
K_.GM – Gravitational parameter of the central body [m^3/s^2 or consistent unit system].
-
MatX ComputeMat(Real t)¶
Compute the ROE-to-relative-Cartesian geometric mapping matrix at elapsed time
t.Evaluates the chief’s true anomaly
fattviaMeanToTrueAnomaly, forms the argument of latitudeu = f + w_, and returnsPhi = A(u) * B(u)mapping the fixed ROE vectorK_to the relative Cartesian state.- Parameters:
t – Elapsed time since
t0_[s].- Returns:
6x6 ROE geometric mapping matrix.
-
virtual State Propagate(const State &state, Real t0, Real tf, const State *u, MatXd *stm) override¶
Propagate the relative Cartesian state using the ROE geometric mapping.
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
QuasiNonsingROE::TYPE, the relative-orbital-element state type propagated by 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).
-
RoeGeometricMappingDynamics(const ClassicalOE coe_c, const QuasiNonsingROE &roe, Real GM)¶