diff --git a/CHANGELOG.md b/CHANGELOG.md index 4505af87..04fb5fe0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ will consitute of a breaking change warranting a new major release: - Reverted lower OP limit of `PLOC` to -10°C. - All pointing laws are now allowed to use the `MEKF` per default. +- Changed limits in `PWR Controller`. +- PUS time service: Now dumps the time before and after relative timeshift or setting absolute time - The `GPS Controller` does not set itself to `OFF` anymore, if it has not detected a valid fix for some time. Instead it attempts to reset both GNSS devices once. - The maximum time to reach a fix is shortened from 30min to 15min. @@ -32,22 +34,25 @@ will consitute of a breaking change warranting a new major release: - Altitude, latitude and longitude messages are not checked anymore, in case the mode message was already invalid. +## Added + +- PUS timeservice relative timeshift. + +## Fixed + +- Fixed wrong order in quaternion multiplication for computation of the error quaternion. + # [v7.7.4] 2024-03-21 ## Changed - Rotational rate limit for the GS target pointing is now seperated from controller limit. It is also reduced to 0.75°/s now. -- PUS time service: Now dumps the time before and after relative timeshift or setting absolute time ## Fixed - Fixed wrong sign in calculation of total current within the `PWR Controller`. -## Added - -- PUS timeservice relative timeshift. - # [v7.7.3] 2024-03-18 - Bumped `eive-fsfw` diff --git a/mission/controller/PowerController.h b/mission/controller/PowerController.h index 6df60732..db3fcedf 100644 --- a/mission/controller/PowerController.h +++ b/mission/controller/PowerController.h @@ -57,9 +57,9 @@ class PowerController : public ExtendedControllerBase, public ReceivesParameterM float batteryMaximumCapacity = 2.6 * 2; // [Ah] float coulombCounterVoltageUpperThreshold = 16.2; // [V] double maxAllowedTimeDiff = 1.5; // [s] - float payloadOpLimitOn = 0.90; // [%] - float payloadOpLimitLow = 0.75; // [%] - float higherModesLimit = 0.6; // [%] + float payloadOpLimitOn = 0.80; // [%] + float payloadOpLimitLow = 0.65; // [%] + float higherModesLimit = 0.60; // [%] // OCV Look-up-Table {[Ah],[V]} static constexpr uint8_t LOOK_UP_TABLE_MAX_IDX = 99; diff --git a/mission/controller/acs/Guidance.cpp b/mission/controller/acs/Guidance.cpp index 2c1b3c63..07730e09 100644 --- a/mission/controller/acs/Guidance.cpp +++ b/mission/controller/acs/Guidance.cpp @@ -303,9 +303,9 @@ void Guidance::comparePtg(double currentQuat[4], double currentSatRotRate[3], do // First calculate error quaternion between current and target orientation without reference // quaternion double errorQuatWoRef[4] = {0, 0, 0, 0}; - QuaternionOperations::multiply(currentQuat, targetQuat, errorQuatWoRef); + QuaternionOperations::multiply(targetQuat, currentQuat, errorQuatWoRef); // Then add rotation from reference quaternion - QuaternionOperations::multiply(refQuat, errorQuatWoRef, errorQuat); + QuaternionOperations::multiply(errorQuatWoRef, refQuat, errorQuat); // Keep scalar part of quaternion positive if (errorQuat[3] < 0) { VectorOperations::mulScalar(errorQuat, -1, errorQuat, 4);