mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-21 15:25:29 +03:00
Correctly reset Dterm filter
This commit is contained in:
parent
4ca21cd2b3
commit
e01d16a81d
2 changed files with 1 additions and 6 deletions
|
@ -1703,7 +1703,6 @@ float navPidApply2(pidController_t *pid, const float setpoint, const float measu
|
||||||
return navPidApply3(pid, setpoint, measurement, dt, outMin, outMax, pidFlags, 1.0f);
|
return navPidApply3(pid, setpoint, measurement, dt, outMin, outMax, pidFlags, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void navPidReset(pidController_t *pid)
|
void navPidReset(pidController_t *pid)
|
||||||
{
|
{
|
||||||
pid->reset = true;
|
pid->reset = true;
|
||||||
|
@ -1713,8 +1712,7 @@ void navPidReset(pidController_t *pid)
|
||||||
pid->integrator = 0.0f;
|
pid->integrator = 0.0f;
|
||||||
pid->last_input = 0.0f;
|
pid->last_input = 0.0f;
|
||||||
pid->feedForward = 0.0f;
|
pid->feedForward = 0.0f;
|
||||||
pid->dterm_filter_state.state = 0.0f;
|
pt1FilterReset(&pid->dterm_filter_state, 0.0f);
|
||||||
pid->dterm_filter_state.RC = 0.0f;
|
|
||||||
pid->output_constrained = 0.0f;
|
pid->output_constrained = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,6 @@ bool adjustMulticopterHeadingFromRCInput(void)
|
||||||
/*-----------------------------------------------------------
|
/*-----------------------------------------------------------
|
||||||
* XY-position controller for multicopter aircraft
|
* XY-position controller for multicopter aircraft
|
||||||
*-----------------------------------------------------------*/
|
*-----------------------------------------------------------*/
|
||||||
static pt1Filter_t mcPosControllerAccFilterStateX, mcPosControllerAccFilterStateY;
|
|
||||||
static float lastAccelTargetX = 0.0f, lastAccelTargetY = 0.0f;
|
static float lastAccelTargetX = 0.0f, lastAccelTargetY = 0.0f;
|
||||||
|
|
||||||
void resetMulticopterBrakingMode(void)
|
void resetMulticopterBrakingMode(void)
|
||||||
|
@ -363,8 +362,6 @@ void resetMulticopterPositionController(void)
|
||||||
for (int axis = 0; axis < 2; axis++) {
|
for (int axis = 0; axis < 2; axis++) {
|
||||||
navPidReset(&posControl.pids.vel[axis]);
|
navPidReset(&posControl.pids.vel[axis]);
|
||||||
posControl.rcAdjustment[axis] = 0;
|
posControl.rcAdjustment[axis] = 0;
|
||||||
pt1FilterReset(&mcPosControllerAccFilterStateX, 0.0f);
|
|
||||||
pt1FilterReset(&mcPosControllerAccFilterStateY, 0.0f);
|
|
||||||
lastAccelTargetX = 0.0f;
|
lastAccelTargetX = 0.0f;
|
||||||
lastAccelTargetY = 0.0f;
|
lastAccelTargetY = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue