ardupilot
ardupilot copied to clipboard
Add TECS option to allow low drag planes to descend faster
During descent with low drag planes, TECs will limit the rate of descent so that the specified mission speed can be maintained. This result in shallow descents.
One of the main reason for wanting this is to be able to better predict (forward planning) how far we should set waypoints when coming in for landing. With low drag airframes, no matter what max decent in TECS is set to, the aircraft achieves some fraction of that. This means the approach has to be done from unnecessarily far away which becomes a safety risk due to obstacles. If a Loiter to alt method of descent is used it still wastes mission time.
This PR addresses the issue by adding an enum to TECS_OPTIONS that progressively increases set speed to the maximum allowed as the descent rate approaches the TECS internal limit. This works effectively in SITL.
Because this is off by default, it could be included in the plane Beta release without risk.
Thank you for the great work Paul. We are not happy with how it works. Tested in SITL. @tridge hope this can make it to 4.5 :)
ping @samuelctabor
@priseborough sounds like while this is enabled that AUTO landings need to be re-tuned?
@priseborough sounds like while this is enabled that AUTO landings need to be re-tuned?
Potentially yes if a steep approach path is being used that results in an initial high approach before the reducing speed weight that TECS applies as it gets close to flare pushed it down again.
Lets see how we go with flight testing. If there is unnecessary throttle demand on low rate descents, I can adjust the mapping so that the target speed increases from target to max between the scaled TECS_SINK_MIN and TECS_SINK_MAX rather than 0 and scaled TECS_SINK_MAX.
Now flight tested on real craft @priseborough and @tridge have the logs
@priseborough are you happy with the flight results?
@priseborough are you happy with the flight results?
The algorithm is working as expected. Here is a decent with the algorithm disabled (legacy behaviour). Note how the vehicle periodically raises the pitch to control the speed back to the cruise set-point.
Here is a descent on the same flight with the algorithm enabled (TECS_OPTIONS = 2). The speed setpoint is increased, enabling the aircraft to maintain the target descent profile.
I have an idea for refining this so that the speed set-point increase is the minimum required so that the descent will be flown with throttle closed, but will do that as a future PR rather than hold this one up.
@priseborough thanks again. For that future PR that yoi mentioned, if there was a way to make it sort of "look ahead" and auto dissable this optuon feature when x seconds from the target altitude. Meaning around the time it gets there it would be back to cruise sleed and not have to bleed of excess speed after the fact. The reason why we wish this, if possible is that in current state if it wants to make a turn at a point very close to when it arrives at target alt, then due to the high speed the turn has a much wider radius. Not sure if I am making sense. In this log after the loiter to alt, it turns into the center of the circle to transition. However due to the way the wind direction was it went almost a full circle before turning, so it already bleeded off the excess speed. If however it had reach the target heading just after reaching the target alt. It would havr tried to turn in 90 degrees instantly to the center of the circle and we have seen that in SITL it would have a much bigger radius and due to roll limit cannot hit the center unless we increased the radius of the loiter circle significantly. Again this is for future optimization. We take currenr behavious over the previous any day. So please merge @tridge :)
@priseborough thanks again. For that future PR that yoi mentioned, if there was a way to make it sort of "look ahead" and auto dissable this optuon feature when x seconds from the target altitude. Meaning around the time it gets there it would be back to cruise speed and not have to bleed of excess speed after the fact.
Yes there is a way to do that. I'll try and build it in for the next update.
Could we squeeze this into plane v4.5?