|
|
@@ -375,10 +375,10 @@ void AcsController::performPointingCtrl() {
|
|
|
|
targetSatRotRate, errorQuat, errorSatRotRate, errorAngle);
|
|
|
|
targetSatRotRate, errorQuat, errorSatRotRate, errorAngle);
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.idleModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.idleModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
ptgCtrl.ptgNullspace(
|
|
|
|
ptgCtrl.ptgNullspace(&acsParameters.idleModeControllerParameters,
|
|
|
|
&acsParameters.idleModeControllerParameters, &(sensorValues.rw1Set.currSpeed.value),
|
|
|
|
sensorValues.rw1Set.currSpeed.value, sensorValues.rw2Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw2Set.currSpeed.value), &(sensorValues.rw3Set.currSpeed.value),
|
|
|
|
sensorValues.rw3Set.currSpeed.value, sensorValues.rw4Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw4Set.currSpeed.value), rwTrqNs);
|
|
|
|
rwTrqNs);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
@@ -399,10 +399,10 @@ void AcsController::performPointingCtrl() {
|
|
|
|
errorSatRotRate, errorAngle);
|
|
|
|
errorSatRotRate, errorAngle);
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.targetModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.targetModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
ptgCtrl.ptgNullspace(
|
|
|
|
ptgCtrl.ptgNullspace(&acsParameters.targetModeControllerParameters,
|
|
|
|
&acsParameters.targetModeControllerParameters, &(sensorValues.rw1Set.currSpeed.value),
|
|
|
|
sensorValues.rw1Set.currSpeed.value, sensorValues.rw2Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw2Set.currSpeed.value), &(sensorValues.rw3Set.currSpeed.value),
|
|
|
|
sensorValues.rw3Set.currSpeed.value, sensorValues.rw4Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw4Set.currSpeed.value), rwTrqNs);
|
|
|
|
rwTrqNs);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
@@ -420,10 +420,10 @@ void AcsController::performPointingCtrl() {
|
|
|
|
targetSatRotRate, errorQuat, errorSatRotRate, errorAngle);
|
|
|
|
targetSatRotRate, errorQuat, errorSatRotRate, errorAngle);
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.gsTargetModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.gsTargetModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
ptgCtrl.ptgNullspace(
|
|
|
|
ptgCtrl.ptgNullspace(&acsParameters.gsTargetModeControllerParameters,
|
|
|
|
&acsParameters.gsTargetModeControllerParameters, &(sensorValues.rw1Set.currSpeed.value),
|
|
|
|
sensorValues.rw1Set.currSpeed.value, sensorValues.rw2Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw2Set.currSpeed.value), &(sensorValues.rw3Set.currSpeed.value),
|
|
|
|
sensorValues.rw3Set.currSpeed.value, sensorValues.rw4Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw4Set.currSpeed.value), rwTrqNs);
|
|
|
|
rwTrqNs);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
@@ -444,10 +444,10 @@ void AcsController::performPointingCtrl() {
|
|
|
|
errorSatRotRate, errorAngle);
|
|
|
|
errorSatRotRate, errorAngle);
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.nadirModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.nadirModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
ptgCtrl.ptgNullspace(
|
|
|
|
ptgCtrl.ptgNullspace(&acsParameters.nadirModeControllerParameters,
|
|
|
|
&acsParameters.nadirModeControllerParameters, &(sensorValues.rw1Set.currSpeed.value),
|
|
|
|
sensorValues.rw1Set.currSpeed.value, sensorValues.rw2Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw2Set.currSpeed.value), &(sensorValues.rw3Set.currSpeed.value),
|
|
|
|
sensorValues.rw3Set.currSpeed.value, sensorValues.rw4Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw4Set.currSpeed.value), rwTrqNs);
|
|
|
|
rwTrqNs);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
@@ -467,10 +467,10 @@ void AcsController::performPointingCtrl() {
|
|
|
|
errorSatRotRate, errorAngle);
|
|
|
|
errorSatRotRate, errorAngle);
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.inertialModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
ptgCtrl.ptgLaw(&acsParameters.inertialModeControllerParameters, errorQuat, errorSatRotRate,
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
*rwPseudoInv, torquePtgRws);
|
|
|
|
ptgCtrl.ptgNullspace(
|
|
|
|
ptgCtrl.ptgNullspace(&acsParameters.inertialModeControllerParameters,
|
|
|
|
&acsParameters.inertialModeControllerParameters, &(sensorValues.rw1Set.currSpeed.value),
|
|
|
|
sensorValues.rw1Set.currSpeed.value, sensorValues.rw2Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw2Set.currSpeed.value), &(sensorValues.rw3Set.currSpeed.value),
|
|
|
|
sensorValues.rw3Set.currSpeed.value, sensorValues.rw4Set.currSpeed.value,
|
|
|
|
&(sensorValues.rw4Set.currSpeed.value), rwTrqNs);
|
|
|
|
rwTrqNs);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
VectorOperations<double>::add(torquePtgRws, rwTrqNs, torqueRws, 4);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
actuatorCmd.scalingTorqueRws(torqueRws, acsParameters.rwHandlingParameters.maxTrq);
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
|
ptgCtrl.ptgDesaturation(
|
|
|
|