#ifndef ACTUATORCMD_H_ #define ACTUATORCMD_H_ #include "MultiplicativeKalmanFilter.h" #include "SensorProcessing.h" #include "SensorValues.h" class ActuatorCmd { public: ActuatorCmd(); virtual ~ActuatorCmd(); /* * @brief: scalingTorqueRws() scales the torque via maximum part in case this part is * higher then the maximum torque * @param: rwTrq given torque for reaction wheels which will be * scaled if needed to be */ void scalingTorqueRws(double *rwTrq, double maxTorque); /* * @brief: cmdSpeedToRws() will set the maximum possible torque for the reaction * wheels, also will calculate the needed revolutions per minute for the RWs, which will be given * as Input to the RWs * @param: rwTrqIn given torque from pointing controller * rwTrqNS Nullspace torque * rwCmdSpeed output revolutions per minute for every * reaction wheel */ void cmdSpeedToRws(int32_t speedRw0, int32_t speedRw1, int32_t speedRw2, int32_t speedRw3, const double *rwTorque, int32_t *rwCmdSpeed, double sampleTime, int32_t maxRwSpeed, double inertiaWheel); /* * @brief: cmdDipolMtq() gives the commanded dipol moment for the magnetorques * * @param: dipolMoment given dipol moment in spacecraft frame * dipolMomentActuator resulting dipol moment in actuator reference frame */ void cmdDipolMtq(const double *dipolMoment, int16_t *dipolMomentActuator, const double *inverseAlignment, double maxDipol); protected: private: }; #endif /* ACTUATORCMD_H_ */