You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue details
Height demand term is erroneous in flare, when using rangefinder.
Please describe the problem
Using a mature simulation with ArduPilot in the loop, and injecting radar altimeter readings from synthesized terrain.
During flight, terrain height was injected at 30ft (~10m). During autoland, altitude update occurred as expended. When flare occurs (triggered by 3 seconds to touchdown) TECS target altitude "h_dem" shows 30ft drop followed by 30ft ramp downward. Not sure why the offset is needed, and further, the rampdown seems to be in the wrong direction, causes a pitchdown cmd, and does not agree with altitude rate cmd.
Ultimately, the TECS control law minimizes error between "h_dem" and "height", so these should be in the same altitude frame. This appears to not be the case.
SEE PICTURE for simulation output.
Airframe type
simulated airplane, powered fixedwing.
Hardware type
Simulated CubeOrange
Logs
cannot provide due to sensitive information
Suggested fix is to simply remove code in AP_TECS.cpp:
REMOVE: // fade across to the ideal height profile
REMOVE: _hgt_dem = _flare_hgt_dem_adj * (1.0f - p) + _flare_hgt_dem_ideal * p;
REMOVE: // correct for offset between height above ground and height above datum used by control loops
REMOVE: _hgt_dem += (_hgt_afe - _height);
ADD THIS LINE: _hgt_dem += _DT * _hgt_rate_dem;
When I make this change, flare altitude and alt cmd were nice and smooth, and agreed with altitude rate terms as expected.
The text was updated successfully, but these errors were encountered:
Bug report
Issue details
Height demand term is erroneous in flare, when using rangefinder.
Please describe the problem
Using a mature simulation with ArduPilot in the loop, and injecting radar altimeter readings from synthesized terrain.
During flight, terrain height was injected at 30ft (~10m). During autoland, altitude update occurred as expended. When flare occurs (triggered by 3 seconds to touchdown) TECS target altitude "h_dem" shows 30ft drop followed by 30ft ramp downward. Not sure why the offset is needed, and further, the rampdown seems to be in the wrong direction, causes a pitchdown cmd, and does not agree with altitude rate cmd.
Ultimately, the TECS control law minimizes error between "h_dem" and "height", so these should be in the same altitude frame. This appears to not be the case.
SEE PICTURE for simulation output.
Version
Plane-4.4.4
Platform
[ ] All
[ ] AntennaTracker
[ ] Copter
[X] Plane
[ ] Rover
[ ] Submarine
Airframe type
simulated airplane, powered fixedwing.
Hardware type
Simulated CubeOrange
Logs
cannot provide due to sensitive information
Suggested fix is to simply remove code in AP_TECS.cpp:
REMOVE: // fade across to the ideal height profile
REMOVE: _hgt_dem = _flare_hgt_dem_adj * (1.0f - p) + _flare_hgt_dem_ideal * p;
REMOVE: // correct for offset between height above ground and height above datum used by control loops
REMOVE: _hgt_dem += (_hgt_afe - _height);
ADD THIS LINE: _hgt_dem += _DT * _hgt_rate_dem;
When I make this change, flare altitude and alt cmd were nice and smooth, and agreed with altitude rate terms as expected.
The text was updated successfully, but these errors were encountered: