mirror of
https://github.com/okalachev/flix.git
synced 2026-01-11 05:26:53 +00:00
Skip attitude/rate control if thrustTarget is ineffective
To prevent i term windup.
This commit is contained in:
@@ -99,7 +99,7 @@ void interpretControls() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void controlAttitude() {
|
void controlAttitude() {
|
||||||
if (!armed || attitudeTarget.invalid()) return; // skip attitude control
|
if (!armed || attitudeTarget.invalid() || thrustTarget < 0.1) return; // skip attitude control
|
||||||
|
|
||||||
const Vector up(0, 0, 1);
|
const Vector up(0, 0, 1);
|
||||||
Vector upActual = Quaternion::rotateVector(up, attitude);
|
Vector upActual = Quaternion::rotateVector(up, attitude);
|
||||||
@@ -116,7 +116,7 @@ void controlAttitude() {
|
|||||||
|
|
||||||
|
|
||||||
void controlRates() {
|
void controlRates() {
|
||||||
if (!armed || ratesTarget.invalid()) return; // skip rates control
|
if (!armed || ratesTarget.invalid() || thrustTarget < 0.1) return; // skip rates control
|
||||||
|
|
||||||
Vector error = ratesTarget - rates;
|
Vector error = ratesTarget - rates;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user