Class ostk::astrodynamics::GuidanceLaw

class GuidanceLaw

An interface for a Guidance Law that can compute an acceleration contribution. To be used in conjunction with a Thruster class to propagate a satellite to a target orbit.

Subclassed by ostk::astrodynamics::guidancelaw::ConstantThrust, ostk::astrodynamics::guidancelaw::QLaw

Public Functions

GuidanceLaw(const String &aName)

Constructor.

Parameters:

aName -- A name

virtual ~GuidanceLaw()

Destructor.

String getName() const

Get name.

Returns:

The name

virtual void print(std::ostream &anOutputStream, bool displayDecorator = true) const

Print guidance law.

Parameters:
  • anOutputStream -- An output stream

  • (optional) -- displayDecorators If true, display decorators

virtual Vector3d calculateThrustAccelerationAt(const Instant &anInstant, const Vector3d &aPositionCoordinates, const Vector3d &aVelocityCoordinates, const Real &aThrustAcceleration, const Shared<const Frame> &outputFrameSPtr) const = 0

Compute the acceleration at the provided coordinates based on logic specific to the guidance law.

Parameters:
  • anInstant -- An instant

  • aPositionCoordinates -- The position coordinates

  • aVelocityCoordinates -- The velocity coordinates

  • aThrustAcceleration -- The thrust acceleration

  • outputFrameSPtr -- The frame in which the acceleration is expressed

Returns:

The acceleration at the provided coordinates

Friends

friend std::ostream &operator<<(std::ostream &anOutputStream, const GuidanceLaw &aGuidanceLaw)

Output stream operator.

std::cout << GuidanceLaw(...);
Parameters:
  • anOutputStream -- An output stream

  • aGuidanceLaw -- A guidance Law

Returns:

A reference to output stream