mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-28 19:32:36 +08:00
Merge branch '559_tecs_climbout' into fw_autoland_att_tecs_navigator_termination_controlgroups
This commit is contained in:
@@ -433,10 +433,18 @@ void TECS::_update_pitch(void)
|
|||||||
// Apply max and min values for integrator state that will allow for no more than
|
// Apply max and min values for integrator state that will allow for no more than
|
||||||
// 5deg of saturation. This allows for some pitch variation due to gusts before the
|
// 5deg of saturation. This allows for some pitch variation due to gusts before the
|
||||||
// integrator is clipped. Otherwise the effectiveness of the integrator will be reduced in turbulence
|
// integrator is clipped. Otherwise the effectiveness of the integrator will be reduced in turbulence
|
||||||
|
// During climbout/takeoff, bias the demanded pitch angle so that zero speed error produces a pitch angle
|
||||||
|
// demand equal to the minimum value (which is )set by the mission plan during this mode). Otherwise the
|
||||||
|
// integrator has to catch up before the nose can be raised to reduce speed during climbout.
|
||||||
float gainInv = (_integ5_state * _timeConst * CONSTANTS_ONE_G);
|
float gainInv = (_integ5_state * _timeConst * CONSTANTS_ONE_G);
|
||||||
float temp = SEB_error + SEBdot_error * _ptchDamp + SEBdot_dem * _timeConst;
|
float temp = SEB_error + SEBdot_error * _ptchDamp + SEBdot_dem * _timeConst;
|
||||||
|
if (_climbOutDem)
|
||||||
|
{
|
||||||
|
temp += _PITCHminf * gainInv;
|
||||||
|
}
|
||||||
_integ7_state = constrain(_integ7_state, (gainInv * (_PITCHminf - 0.0783f)) - temp, (gainInv * (_PITCHmaxf + 0.0783f)) - temp);
|
_integ7_state = constrain(_integ7_state, (gainInv * (_PITCHminf - 0.0783f)) - temp, (gainInv * (_PITCHmaxf + 0.0783f)) - temp);
|
||||||
|
|
||||||
|
|
||||||
// Calculate pitch demand from specific energy balance signals
|
// Calculate pitch demand from specific energy balance signals
|
||||||
_pitch_dem_unc = (temp + _integ7_state) / gainInv;
|
_pitch_dem_unc = (temp + _integ7_state) / gainInv;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user