When flying horizonlaly at maximum speed, if you suddenly release the stick, the copter can enter in a divergence oscillation that ends with a strong crash.
I´ve experimented already several times trying to tune PID´s to avoid it. See attached videos showing what I´ve explained. Those are real logs from real flight crashes. This happens mainly with light copters, since they are more sensible to this effect.
_________________________________________________________________
UPDATE: Problem fixed (see more details at page 8)
A short abstract is below:
The problem occurs due to a lack or loose of tilt control after reaching the CTR_MAX = 300pwm in a hard manoeuvre.
This is directly link to the mixing table used. When using 50% based table, the problem is increased since we need higher control levels, and so we reach the ctrl_max=300pwm earlier.
The issue has been solved doing two things (for my particular copter: light quad in X mode that showed big divergence issue):
1.- Using a mix table 80% based (instead of 50% from wiki)
2.- Increasing the CTRL_MAX = 400 (default =300)
___________________________________________________________________
My understanding
When the Pitch or Roll stick is released from a big angle, the copter will try to reach the horizontal position strongly. This happens correctly when there´s no horizontal speed.
Imagine we are flying with the maximum angle we´ve defined, let say 30º. The copter maintains a high horizontal speed. If we release suddenly the stick, It will try to recover the horizontal, but it overshooting strongly, swinging in a divergent way.
This should´n happen (not seen in other platforms like Arducopter or KK). It should reach the horizontal angle, keeps it and continue flying (with the inertia) until stop in the air.
PID´s adjustements
I´ve tryed many things:
- reduction of max angle. I´ve reduced the CTRL_FACT_PITC & CTRL_FACT_ROLL a lot (0.3). This impose a max angle = 750 x 0.03 = 22º (very small). This works perfectly while not high horizontal speed. In high speeds the divergence comes again in the same way explained.
- reduction of CTRL_TLT_ANG_P (=10, default=60). This slow a lot the stick movement and help to solve the problem, but the copter is very lazy. Even, if you climb high and then reach a high speed flying down and release the stick, the issue comes again.
- similar effect reducing CTRL_TLT_ANG_PM from 150 to 100. Not very effective.
Preliminary Conclussion
If you fly smooth and slow: NOT problem.
For a bit more agresive flight: This can be a big issue. I´ve got several hard crasses (se attache image) since the copter normally capsizes and hit the floor upside-down.
I don´t think this can be solved only with PID adjustement, but we need some code action. I continue investigating.
Hope this help
Angel