Control loop & parameter hierarchy - speed, altitude, wind challenge

I recently lost a 450 flamewheel clone running APM 2.6, AC 3.2.1 on a autonomous mission to a friend’s house. It just never made it to the destination, where it had flown 6x before with the same waypoints, commands, and params. The baro was protected and was never a problem previously. Set altitude of the entire path was 100m above Home, which was at least 30m above the highest obstruction enroute.

I did not recover the craft, and the crash could have been due to a number of reasons, but it caused me to wonder about the behavior in headwind conditions, as there was about a 5mph wind that day. I’m curious to know from developers about the control logic as well as pilots about any real-world experience with this.

If the copter has a set forward speed, tilt angle, and altitude on an auto mission, and meets a headwind, how will it respond when the motor output maxes out?

  1. increase tilt angle past limit to try to maintain speed
  2. decrease speed below setting
  3. attempt to maintain speed but lose altitude

I would like to think there is a command hierarchy which preserves altitude by diminishing speed, but I just don’t know. If the priority was speed, then I could see it simply diving to the ground, whether the tilt angle was respected or exceeded.

Here’s a .bin from a successful flight on this same route. It’s not the crash log, but may give some insight. Thank you!