Flag for MGM4 Usage #778

Merged
muellerr merged 2 commits from delete-mgm4-from-existance into main 2023-08-15 10:31:13 +02:00
4 changed files with 7 additions and 1 deletions

View File

@ -25,6 +25,8 @@ will consitute of a breaking change warranting a new major release:
return the actual GPS data will be ignored once SPG4 is running. However, by setting the return the actual GPS data will be ignored once SPG4 is running. However, by setting the
according parameter, the ACS Controller can be directed to ignore the SGP4 solution. according parameter, the ACS Controller can be directed to ignore the SGP4 solution.
- Skyview dataset for more GPS TM has been added - Skyview dataset for more GPS TM has been added
- Parameter to disable usage of MGM4, which is part of the MTQ and therefore cannot be
disabled without disabling the MTQ itself.
## Fixed ## Fixed

View File

@ -113,6 +113,9 @@ ReturnValue_t AcsParameters::getParameter(uint8_t domainId, uint8_t parameterId,
case 0x13: case 0x13:
parameterWrapper->set(mgmHandlingParameters.mgmDerivativeFilterWeight); parameterWrapper->set(mgmHandlingParameters.mgmDerivativeFilterWeight);
break; break;
case 0x14:
parameterWrapper->set(mgmHandlingParameters.useMgm4);
break;
default: default:
return INVALID_IDENTIFIER_ID; return INVALID_IDENTIFIER_ID;
} }

View File

@ -80,6 +80,7 @@ class AcsParameters : public HasParametersIF {
float mgm4variance[3] = {pow(1.7e-6, 2), pow(1.7e-6, 2), pow(1.7e-6, 2)}; float mgm4variance[3] = {pow(1.7e-6, 2), pow(1.7e-6, 2), pow(1.7e-6, 2)};
float mgmVectorFilterWeight = 0.85; float mgmVectorFilterWeight = 0.85;
float mgmDerivativeFilterWeight = 0.85; float mgmDerivativeFilterWeight = 0.85;
uint8_t useMgm4 = false;
} mgmHandlingParameters; } mgmHandlingParameters;
struct SusHandlingParameters { struct SusHandlingParameters {

View File

@ -101,7 +101,7 @@ void SensorProcessing::processMgm(const float *mgm0Value, bool mgm0valid, const
sensorFusionDenominator[i] += 1 / mgmParameters->mgm13variance[i]; sensorFusionDenominator[i] += 1 / mgmParameters->mgm13variance[i];
} }
} }
if (mgm4valid) { if (mgm4valid and mgmParameters->useMgm4) {
float mgm4ValueUT[3]; float mgm4ValueUT[3];
VectorOperations<float>::mulScalar(mgm4Value, 1e-3, mgm4ValueUT, 3); // nT to uT VectorOperations<float>::mulScalar(mgm4Value, 1e-3, mgm4ValueUT, 3); // nT to uT
MatrixOperations<float>::multiply(mgmParameters->mgm4orientationMatrix[0], mgm4ValueUT, MatrixOperations<float>::multiply(mgmParameters->mgm4orientationMatrix[0], mgm4ValueUT,