2022-09-20 13:36:17 +02:00
|
|
|
#ifndef ACS_CONTROL_DETUMBLE_H_
|
|
|
|
#define ACS_CONTROL_DETUMBLE_H_
|
|
|
|
|
2022-12-01 15:56:55 +01:00
|
|
|
#include <fsfw/returnvalues/returnvalue.h>
|
2023-04-06 10:46:58 +02:00
|
|
|
#include <mission/acs/defs.h>
|
2022-09-20 13:36:17 +02:00
|
|
|
#include <stdio.h>
|
2022-12-01 15:56:55 +01:00
|
|
|
#include <string.h>
|
2022-09-20 13:36:17 +02:00
|
|
|
|
2022-12-01 15:56:55 +01:00
|
|
|
class Detumble {
|
|
|
|
public:
|
2023-02-28 10:12:25 +01:00
|
|
|
Detumble();
|
2022-12-01 15:56:55 +01:00
|
|
|
virtual ~Detumble();
|
2022-09-20 13:36:17 +02:00
|
|
|
|
2023-11-02 16:59:09 +01:00
|
|
|
acs::ControlModeStrategy detumbleStrategy(const bool magFieldValid, const bool satRotRateValid,
|
2023-12-06 17:27:43 +01:00
|
|
|
const bool magFieldRateValid,
|
|
|
|
const bool useFullDetumbleLaw);
|
2022-09-20 13:36:17 +02:00
|
|
|
|
2023-04-06 10:46:58 +02:00
|
|
|
void bDotLawFull(const double *satRotRateB, const double *magFieldB, double *magMomB,
|
|
|
|
double gain);
|
2022-09-20 13:36:17 +02:00
|
|
|
|
2023-04-06 10:46:58 +02:00
|
|
|
void bDotLaw(const double *magRateB, const double *magFieldB, double *magMomB, double gain);
|
2022-10-21 16:46:09 +02:00
|
|
|
|
2022-12-13 11:51:03 +01:00
|
|
|
private:
|
2022-09-20 13:36:17 +02:00
|
|
|
};
|
|
|
|
|
2022-09-27 11:57:15 +02:00
|
|
|
#endif /*ACS_CONTROL_DETUMBLE_H_*/
|