I’m pretty confident this explains the radical behavioural difference between Zoe’s plastic and CF props: the higher pitch of the CF props means the airflow over the props would be disrupted at lower rotation rates and the props would stall producing virtually no lift; the code would then increase the props speed as a result, worsening the situation to the extent that Zoe would never get off the ground – which is exactly what is happening.
In particular, at the take-off transition from ground ‘hover’ to ascent, there’s a sharp increase in props rotation driven by the vertical velocity PID P gain as the target changes from 0m/s to 0.3m/s. This immediate kick could well be hard enough to break the smooth airflow over the props, causing them to stall and thus kill the lift – it then never recovers as the motors spin ever faster to compensate for the insufficient lift.
However if I shift the bias towards the I gain, then the increase in motor speed is smoother, and this would result in the airflow speed increasing in line with the prop rotation, and reduce the risk of the props stalling.
I have a vague memory from somewhere that once a prop (or wing) stalls, it’s very hard to stabilize the airflow again; as an example, if an aeroplane stalled at high altitude, suddenly the only force would be gravity and the plane would drop like a brick; however, if the pilot points the nose of the aircraft down towards the earth, this would streamline airflow over the wings again and the pilot could then pull-up using the reinstated lift from the wings.
Why’s that relevant? Because it means there’s no point trying to recover from stalled props for a quad; the solution is to stop it happening in the first place.
The interesting bit is whether it will be possible to tune the vertical velocity PIDs such that both types of props run with the same PID settings?
Only indirectly related, I could do with some additional PID to ESC calibration. The PWM runs from 1ms to 2ms in 1us increments. At 1ms, the ESCs are synchronised with the PWM and they stop their annoying whining, but it’s only at 1.15ms pulses that the props start spinning. That shows up in flight as wobbly landings, and there is a risk that the PIDs could actually turn of the motors during flight; I need to update the PWM code so that it knows about the ESC minimum value. I think this is only a few lines of code.