mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-18 08:54:15 +01:00
OP-1848 altvario fixes
1. CC compile fix 2. on reinit calculate a new thrustdemand after which gyro updates will retrigger subsequent calcs
This commit is contained in:
parent
e0919542e7
commit
794605b3d9
@ -84,6 +84,8 @@ float stabilizationAltitudeHold(float setpoint, ThrustModeType mode, bool reinit
|
|||||||
if (reinit || !controlDown.IsActive()) {
|
if (reinit || !controlDown.IsActive()) {
|
||||||
controlDown.Activate();
|
controlDown.Activate();
|
||||||
newaltitude = true;
|
newaltitude = true;
|
||||||
|
// calculate a thrustDemand on reinit only
|
||||||
|
altitudeHoldTask();
|
||||||
}
|
}
|
||||||
|
|
||||||
const float DEADBAND = 0.20f;
|
const float DEADBAND = 0.20f;
|
||||||
|
@ -107,11 +107,13 @@ static void stabilizationOuterloopTask()
|
|||||||
|
|
||||||
bool reinit = (StabilizationStatusOuterLoopToArray(enabled)[STABILIZATIONSTATUS_OUTERLOOP_THRUST] != previous_mode[STABILIZATIONSTATUS_OUTERLOOP_THRUST]);
|
bool reinit = (StabilizationStatusOuterLoopToArray(enabled)[STABILIZATIONSTATUS_OUTERLOOP_THRUST] != previous_mode[STABILIZATIONSTATUS_OUTERLOOP_THRUST]);
|
||||||
previous_mode[STABILIZATIONSTATUS_OUTERLOOP_THRUST] = StabilizationStatusOuterLoopToArray(enabled)[STABILIZATIONSTATUS_OUTERLOOP_THRUST];
|
previous_mode[STABILIZATIONSTATUS_OUTERLOOP_THRUST] = StabilizationStatusOuterLoopToArray(enabled)[STABILIZATIONSTATUS_OUTERLOOP_THRUST];
|
||||||
|
#ifdef REVOLUTION
|
||||||
if (reinit && (previous_mode[STABILIZATIONSTATUS_OUTERLOOP_THRUST] == STABILIZATIONSTATUS_OUTERLOOP_ALTITUDE ||
|
if (reinit && (previous_mode[STABILIZATIONSTATUS_OUTERLOOP_THRUST] == STABILIZATIONSTATUS_OUTERLOOP_ALTITUDE ||
|
||||||
previous_mode[STABILIZATIONSTATUS_OUTERLOOP_THRUST] == STABILIZATIONSTATUS_OUTERLOOP_ALTITUDEVARIO)) {
|
previous_mode[STABILIZATIONSTATUS_OUTERLOOP_THRUST] == STABILIZATIONSTATUS_OUTERLOOP_ALTITUDEVARIO)) {
|
||||||
// disable the altvario velocity control loop
|
// disable the altvario velocity control loop
|
||||||
stabilizationDisableAltitudeHold();
|
stabilizationDisableAltitudeHold();
|
||||||
}
|
}
|
||||||
|
#endif /* REVOLUTION */
|
||||||
switch (StabilizationStatusOuterLoopToArray(enabled)[STABILIZATIONSTATUS_OUTERLOOP_THRUST]) {
|
switch (StabilizationStatusOuterLoopToArray(enabled)[STABILIZATIONSTATUS_OUTERLOOP_THRUST]) {
|
||||||
#ifdef REVOLUTION
|
#ifdef REVOLUTION
|
||||||
case STABILIZATIONSTATUS_OUTERLOOP_ALTITUDE:
|
case STABILIZATIONSTATUS_OUTERLOOP_ALTITUDE:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user