From 46c125d9fe7e87f24a2dccfb20fdb183687e44c7 Mon Sep 17 00:00:00 2001 From: meggert Date: Wed, 20 Mar 2024 16:18:03 +0100 Subject: [PATCH 1/3] rot rate limit change --- mission/controller/acs/AcsParameters.cpp | 3 +++ mission/controller/acs/AcsParameters.h | 1 + mission/controller/acs/Guidance.cpp | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/mission/controller/acs/AcsParameters.cpp b/mission/controller/acs/AcsParameters.cpp index 3a7aa726..a9f806ec 100644 --- a/mission/controller/acs/AcsParameters.cpp +++ b/mission/controller/acs/AcsParameters.cpp @@ -554,6 +554,9 @@ ReturnValue_t AcsParameters::getParameter(uint8_t domainId, uint8_t parameterId, case 0xE: parameterWrapper->set(gsTargetModeControllerParameters.altitudeTgt); break; + case 0xF: + parameterWrapper->set(gsTargetModeControllerParameters.rotRateLimit); + break; default: return INVALID_IDENTIFIER_ID; } diff --git a/mission/controller/acs/AcsParameters.h b/mission/controller/acs/AcsParameters.h index 965878e7..c80627ea 100644 --- a/mission/controller/acs/AcsParameters.h +++ b/mission/controller/acs/AcsParameters.h @@ -898,6 +898,7 @@ class AcsParameters : public HasParametersIF { double latitudeTgt = 48.7495 * DEG2RAD; // [rad] Latitude double longitudeTgt = 9.10384 * DEG2RAD; // [rad] Longitude double altitudeTgt = 500; // [m] + double rotRateLimit = .5 * DEG2RAD; } gsTargetModeControllerParameters; struct NadirModeControllerParameters : PointingLawParameters { diff --git a/mission/controller/acs/Guidance.cpp b/mission/controller/acs/Guidance.cpp index a6559db3..2c1b3c63 100644 --- a/mission/controller/acs/Guidance.cpp +++ b/mission/controller/acs/Guidance.cpp @@ -251,7 +251,7 @@ void Guidance::limitReferenceRotation(const double xAxisIX[3], double quatIX[4]) QuaternionOperations::inverse(quatIXprev, quatXprevI); QuaternionOperations::multiply(quatIX, quatXprevI, quatXprevX); QuaternionOperations::normalize(quatXprevX); - double phiMax = acsParameters->gsTargetModeControllerParameters.omMax * + double phiMax = acsParameters->gsTargetModeControllerParameters.rotRateLimit * acsParameters->onBoardParams.sampleTime; if (2 * std::acos(quatXprevX[3]) < phiMax) { return; From ba7c9e1c26e2616d5a4ed2640105223adfdb389f Mon Sep 17 00:00:00 2001 From: meggert Date: Wed, 20 Mar 2024 16:19:20 +0100 Subject: [PATCH 2/3] changelog --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfa460bd..9969e55d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,11 @@ will consitute of a breaking change warranting a new major release: # [unreleased] +## Changed + +- Rotational rate limit for the GS target pointing is now seperated from controller limit. It + is also reduced to 0.5°/s now. + # [v7.7.3] 2024-03-18 - Bumped `eive-fsfw` From a1be15e939b9e03c8fbb194717696657cc083605 Mon Sep 17 00:00:00 2001 From: meggert Date: Thu, 21 Mar 2024 09:14:35 +0100 Subject: [PATCH 3/3] lets rather be gentle here --- CHANGELOG.md | 2 +- mission/controller/acs/AcsParameters.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9969e55d..dfc11264 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ will consitute of a breaking change warranting a new major release: ## Changed - Rotational rate limit for the GS target pointing is now seperated from controller limit. It - is also reduced to 0.5°/s now. + is also reduced to 0.75°/s now. # [v7.7.3] 2024-03-18 diff --git a/mission/controller/acs/AcsParameters.h b/mission/controller/acs/AcsParameters.h index c80627ea..8f415103 100644 --- a/mission/controller/acs/AcsParameters.h +++ b/mission/controller/acs/AcsParameters.h @@ -898,7 +898,7 @@ class AcsParameters : public HasParametersIF { double latitudeTgt = 48.7495 * DEG2RAD; // [rad] Latitude double longitudeTgt = 9.10384 * DEG2RAD; // [rad] Longitude double altitudeTgt = 500; // [m] - double rotRateLimit = .5 * DEG2RAD; + double rotRateLimit = .75 * DEG2RAD; } gsTargetModeControllerParameters; struct NadirModeControllerParameters : PointingLawParameters {