zerocontroller#
Open-loop controller that outputs zero actuation.
-
namespace saltro
-
namespace controller
-
class ZeroController : public saltro::controller::Controller#
- #include <zerocontroller.h>
Zero controller for open-loop trajectory validation.
Implements a trivial control law that always outputs zero actuation, allowing the satellite to evolve under:
Passive dynamics (gravity gradient, wheel momentum exchange)
Environmental disturbances (aerodynamic drag, SRP, magnetic residual dipole)
No active control torques
This controller is primarily used for:
Validating reference trajectory tracking without feedback
Benchmarking passive stability
Testing disturbance models in isolation
Debugging dynamics propagation without control coupling
The control output is always:
\[ \mathbf{u} = \mathbf{0} \in \mathbb{R}^{n_u} \]where \(n_u\) is the total actuator dimension (MTQs + RWs + magic torque).Public Functions
-
explicit ZeroController(const Satellite &satellite)#
Construct a zero controller.
- Parameters:
satellite – Satellite model (used to determine control vector dimension)
-
virtual Satellite::VecX find_u(const Satellite::VecX &x, const Eigen::Vector3d &B_eci, const Eigen::Vector4d &q_goal, const Eigen::Vector3d &boresight_body) const override#
Return zero control input.
Ignores all inputs and returns a zero control vector of appropriate dimension.
- Parameters:
x – Attitude state (unused)
B_eci – Magnetic field (unused)
q_goal – Goal quaternion (unused)
boresight_body – Boresight constraint (unused)
- Returns:
Zero control vector (nu × 1)
Protected Functions
-
virtual void autoTuneGains() override#
No-op gain tuning (zero controller has no gains).
This method does nothing since the zero controller has no tunable parameters.
-
class ZeroController : public saltro::controller::Controller#
-
namespace controller