Skip to content

Commit 252a3bb

Browse files
authored
Merge pull request #9641 from breadoven/abo_fw_autolevel_fix
Fixed wing auto level bug fix
2 parents adc1d88 + a9f3123 commit 252a3bb

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/main/flight/pid.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1182,7 +1182,7 @@ void FAST_CODE pidController(float dT)
11821182
if (FLIGHT_MODE(ANGLE_MODE) || FLIGHT_MODE(HORIZON_MODE) || FLIGHT_MODE(ANGLEHOLD_MODE) || isFlightAxisAngleOverrideActive(axis)) {
11831183
// If axis angle override, get the correct angle from Logic Conditions
11841184
float angleTarget = getFlightAxisAngleOverride(axis, computePidLevelTarget(axis));
1185-
1185+
11861186
//apply 45 deg offset for tailsitter when isMixerTransitionMixing is activated
11871187
if (STATE(TAILSITTER) && isMixerTransitionMixing && axis == FD_PITCH){
11881188
angleTarget += DEGREES_TO_DECIDEGREES(45);
@@ -1323,7 +1323,7 @@ void pidInit(void)
13231323
navPidInit(
13241324
&fixedWingLevelTrimController,
13251325
0.0f,
1326-
(float)pidProfile()->fixedWingLevelTrimGain / 100.0f,
1326+
(float)pidProfile()->fixedWingLevelTrimGain / 200.0f,
13271327
0.0f,
13281328
0.0f,
13291329
2.0f,
@@ -1379,8 +1379,8 @@ void updateFixedWingLevelTrim(timeUs_t currentTimeUs)
13791379
*/
13801380
pidControllerFlags_e flags = PID_LIMIT_INTEGRATOR;
13811381

1382-
// Iterm should freeze when conditions for setting level trim aren't met
1383-
if (!isFixedWingLevelTrimActive()) {
1382+
// Iterm should freeze when conditions for setting level trim aren't met or time since last expected update too long ago
1383+
if (!isFixedWingLevelTrimActive() || (dT > 5.0f * US2S(TASK_PERIOD_HZ(TASK_AUX_RATE_HZ)))) {
13841384
flags |= PID_FREEZE_INTEGRATOR;
13851385
}
13861386

0 commit comments

Comments
 (0)