ardupilot icon indicating copy to clipboard operation
ardupilot copied to clipboard

High speed VTOL flight fixes

Open priseborough opened this issue 1 year ago • 7 comments

This fixes a bug that was incorrectly applying the forward flight motor failure detection to tilt rotors.

This adds a protection to prevent quadplanes from performing excessive pitch up during braking manoeuvres in VTOL modes that could over stress the airframe.

The following figure is from a simulation test and shows how the upper pitch angle limit lowers as the vehicle speeds up in a forward acceleration followed by a braking manoeuvre in QLOITER.

Screenshot 2024-02-20 at 9 23 34 am

We will update as testing continues and we determine the appropriate default value for the Q_BCK_PIT_LIM parameter. The limit can be disabled by setting the parameter to a non positive value.

This is something that should be considered for the Beta release.

priseborough avatar Feb 13 '24 20:02 priseborough

has this been flight tested? It looks like something we would want in 4.5.0 I'm trying to get a cygwin binary to a tester that has a representative model of their quadplane before they go and fly it on hardware. The artifacts produced by the build server don't contain the cygwin binaries I was expecting.

https://github.com/priseborough/ardupilot/actions/runs/7892856368

priseborough avatar Feb 13 '24 22:02 priseborough

The artifacts produced by the build server don't contain the cygwin binaries I was expecting.

thanks, fix here: https://github.com/ArduPilot/ardupilot/pull/26215 maybe cherry-pick that into this PR?

tridge avatar Feb 14 '24 00:02 tridge

@priseborough I've rebased this on the cygwin fix

tridge avatar Feb 15 '24 02:02 tridge

Again thank you, we been collaborating with Paul on this and very happy for the solution. Tested in SITL and we are seeing what we wanted. Looking forward for it in 4.5 as it is a safety "must" for the new forward VTOL speed PR.

pompecukor avatar Feb 20 '24 12:02 pompecukor

Here are the results from the last round of simulation testing with Q_BCK_PIT_LIM reduced fro 10 to 5 degrees so that the pitch is being limited during high speed braking manoeuvres. This test was into zero wind. During the decel, the nav pitch upper pitch limit FWDT.npulcd is limiting the pitch angle during the intial phase of trhe braking maneouvre.

Screenshot 2024-02-21 at 7 22 31 am

The velocity loop handles the limiting, noting that during decel at higher airspeeds the deceleration achieved has a lot of rotor momentum and other drag contributing to it which the position controller ignores with its assumption that the only forces are rotor thrust and gravity.

Screenshot 2024-02-21 at 7 23 13 am Screenshot 2024-02-21 at 7 23 05 am

The same manoeuvre was also tested into a high wind speed:

Screenshot 2024-02-21 at 7 18 02 am

The duration of pitch limiting is longer. Note that the vehicle gets blown back a few metres at the end of the braking phase before stopping. This pre-exisiting characteristic.

Screenshot 2024-02-21 at 7 18 11 am Screenshot 2024-02-21 at 7 18 21 am

We are now at a point were flight testing is required.

priseborough avatar Feb 20 '24 20:02 priseborough

@priseborough looks good!

tridge avatar Feb 21 '24 01:02 tridge

Now flight tested on real craft @priseborough and @tridge have the logs

pompecukor avatar Feb 22 '24 16:02 pompecukor

Here are the flight test results from a high QLOITER speed dash into wind with a braking manoeuvre. The up pitch is limited in part of the decel manoeuvre using Q_BCK_PIT_LIM = 5. I would rather leave the value at 10 by default and leave it o users to reduce the value if they think the braking manoeuvre is overloading the wing rather than have a value that could be excessively restrictive and reduce braking performance for other users. In the future If the pitch limit proves too noisy with some setups we can increase the tconst value on line 3057 from 0.5 to 1.0 seconds.

Screenshot 2024-02-24 at 3 39 16 pm Screenshot 2024-02-24 at 3 39 26 pm

priseborough avatar Feb 24 '24 04:02 priseborough