First flight with new milled fuselage. Stable start and and stable flight. Possible stall during landing and crash.

The plane was started with hand launch with accelerometer triggered motor start in auto mode. Due to the high wind, the launch was without problems. The motor starts with a delay of maybe 0.5s. The plane followed a flight plan of rectangular shape. We later increased the parameter “TRIM_THROTTLE” from 0.33 to 0.45 and then 0.55 as our impression during flight was that the plane had problems during the turns when the wind direction changed for the plane. During turns the plane often lost altitude. Apart from the altitude problems the plane followed the given pattern. The first rounds were at 50m and the following rounds at 30m altitude.

The last waypoint was landing. After that waypoint was active, the plane lost altitude and then probably stalled and crashed near the street.

When the current waypoint is set to the last “Land” waypoint at 10:40:11, the target altitude is set to 0m.

Target Altitude is 0m
Fig. 1: Target Altitude after current waypoint is set to the last “Land” waypoint is 0m

Figure 1 shows the target altitude and the actual altitude in the TECS system. The plane tries to reach this altitude of 0m.

Thrust is off and Pitch demand -30 degrees
Fig. 2: Thrust is off and TECS pitch demand is -30° but airspeed decreases

Figure 2 shows that the pitch demand from TECS is -30° and the thrust is off in order to reach the new target altitude of 0m. However, somehow the airspeed as estimated by the synthetic airspeed decreases down to 5 m/s. Then the plane stalls and rolls - crash is unavoidable. Why did the airspeed not increase when we are pitching down -30°?

Fig. 3: Manual pitch override via remote control

Figure 3 shows the desired pitch going to the pitch controller after stick mixing from the remote control. The manual intervention via stick mixing results in a new target pitch of +30° instead of the -30° from the TECS system. However, the propeller is still off and the result is a classic stall when the airspeed reaches 5 m/s.

Why is the target altitude set to 0m???

The parameter "LAND_TYPE" is set to 1. That switches the landing mode to “Deepstall Landing”. The deepstall landing approach is described in this video:


“If your aircraft can't take the impact you are about to see here, this is totally irrelevant for you”

Following the Video, the landing approach in deep stall assumes the LAND point to have an altitude where the actual landing procedure begins. They recommend for example 60m in the video. The ardupilot software tries to reach that altitude before it even begins with a landing procedure. If you set this to 0m the plane will try to reach 0m and of course will crash.

Friedrich Beckmann (25.12.2019)

During turns the aircraft sometimes lost quite some altitude. Looking at the logs there is some instance where the control was critical.

Roll and Pitch problems in turn
Fig. 4: Roll and Pitch problems in turn

Figure 4 shows the roll and pitch problems during a turn. The target roll angle is -40° but the actual roll angle is -90°. The target pitch is +15° and the actual pitch is -40°. This is a critical control situtation.

Altitude and speed loss in turn
Fig. 5: Altitude and speed loss in turn

As a result there is an altitude loss of 12m versus the target altitude of 50m and the speed decreases to 9 m/s in the following recovery phase.

My guess is that the controller settings of PIDP, PIDR and the NAV controller is too aggressive resulting in controller instability and possible control loss under certain circumstances. I suggest a less aggressive control strategy which may result in path following errors but more stable flight behaviour. We can improve controller settings during extensive flight tests later.

  • The new milled fuselage does not seem to show problems during flight. However, the turn behavior of the aircraft was not ideal. Is this related to the fuselage? Not clear, probably controller / wind related.
  • Every non-standard parameter setting should have an exact explanation why we set this. If you don't know what the parameter exactly means: DO NOT CHANGE THE PARAMETER
  • We should reestablish the non-standard parameter list in the gitlab and wiki
  • The parameter TECS_SYNAIRSPEED (link) is 1 , i.e. activated. The quote is: “This is useful for development testing where the user is aware of the considerable limitations of the synthetic airspeed system, such as very poor estimates when a wind estimate is not accurate. Do not enable this option unless you fully understand the limitations of a synthetic airspeed estimate.” We should switch this off which is the default.
  • I would be happier with a non-aggressive controller parameter set without D component. The servos get crazy. See PIDP log.
  • In case of emergency as in this flight with the target altitude set to 0m due to misconfiguration the stick mixing is completely useless. Maybe we should disable stick mixing such that we have to switch to FBWA if we want manual intervention. Makes analysis also easier.
  • searchwing-flight-124.txt
  • Last modified: 2019/12/27 10:06
  • by beckmanf