Merge pull request 'GS Target Pointing Limit Change' (#881) from ptg-improv into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good

Reviewed-on: #881
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
This commit is contained in:
Marius Eggert 2024-03-21 10:10:44 +01:00
commit 8011686fbe
4 changed files with 10 additions and 1 deletions

View File

@ -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.75°/s now.
## Fixed
- Fixed wrong sign in calculation of total current within the `PWR Controller`.

View File

@ -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;
}

View File

@ -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 = .75 * DEG2RAD;
} gsTargetModeControllerParameters;
struct NadirModeControllerParameters : PointingLawParameters {

View File

@ -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;