L/d test flight

I’d love thoughts on how to best accomplish an l/d test flight in Auto mode.

current thought process would be to have the aircraft descend from a higher point to a lower one and observe throttle, increasing the descent angle until the throttle reaches neutral thrust.

I’d like to command the throttle to the neutral thrust point (prop and motor dependent) and have it hold airspeed until reaching a set altitude before it recovers, but this doesn’t seem possible with the available commands.

Don’t want to fly it by hand either.

It’s probably going to take a very long flight path and a lot of data extrapolation at the end of the day, but here is how I would do it EDIT: if you don’t have a folding prop:

Plan a waypoint mission with multiple glide slopes that repeat so you can conduct the test at many different airspeeds (in order to mitigate the effects of throttle). Ardupilot’s automatic controller will adjust pitch and throttle to maintain airspeed and altitude demands. Finding the neutral thrust point will be nearly impossible, so that’s why you will have to try multiple glide slopes on the mission. Post-flight or via telemetry, you can pick the flight line where the shallowest glide draws almost no current from your motors. To make everything simple, it will be better to do this on a calm day so that your glide slope relative to the ground is the same relative to the air (and thus your L/d will be equivalent to your gradient).

I would start with 10 glide slopes each representing a decrease in L/d ratio by 1, beginning with 15. If your model does better than that, I congratulate you and you may need to adjust your altitudes/distances. Converting glide ratio to slope or angle can be done by some simple math so that you can adjust your altitudes to match in your mission.

When you conduct the test, look for the current draw while on the glide flight line. If it is too high, you can always skip to the next steeper line early via your GCS. Once your aircraft starts increasing airspeed to maintain the glide slope, stop testing at that airspeed because your props are now causing additional drag. Begin the mission again and change your TRIM_ARSPD_CM to find the perfect glide slope at that new airspeed. Test as many airspeeds as you want.

Other methods using angle of attack, monitoring altitude and airspeed simultaneously, etc. are just too complicated. Set an airspeed and pick the glide slope takes the perfect amount of “0” throttle indicated by the amp draw (not necessarily throttle percentage).


My mission needs some small adjustments to make the slopes match just right, but you should get the idea. I have an additional “lead-in” waypoint to avoid turns at the start of the glide.

A good TECS tune will also help keep things smooth during your automatic flight. Otherwise you might get some oscillations.


I was thinking of roughing the neutral throttle with some math. I think it should be at the RPM where the pitch of the prop = your forward speed. i.e. 16 pitch = 16 inches/rotation =.4 meters/rotation, at 22m/s that’s 55 rotations/second = 3300 rpm, I have historic esc data that shows me how much throttle that equates to.

I think I’ll do something like that. I’ve planned a loop with a jump that will allow me to adjust a certain wp up and down a line from a starting wp (with a lead in wp) to adjust the gradient, once i see it stabilize near neutral throttle I can go into the log and determine airspeed/vertical speed which should give would give real slope in wind.

I really wanted to use the now non-existent Condition_change_alt command to set the throttle, and then abort at a certain altitude, but alas it got pulled.

Its a vtol-plane, so its got nowhere near 15 l/d… lol

You’re making a pretty big assumption that you will get “neutral throttle” at the pitch speed of the prop, and my historic data and APC prop’s data refutes that assumption. The pitch speed is actually where the prop is most efficient at applying its power. In my opinion, the only practical way way to find the “neutral throttle” point without wind tunnel prop testing is to monitor current draw.

The other flaw with estimating a throttle is that it does no good in Auto. TECS has control of the throttle, so manually setting it is not possible.

If you do the test on a windy day, you’ll just have to post-process every point. When it’s windy, the same waypoint slope will be effectively different at different airspeeds. That’s why it’s easier to just do it “live” on a calm day.

1 Like

hmm, cool! yeah thats why I’m asking right? thansk for the insight, looking through the prop data definitly makes me think its lower than the pitch speed (new term to me). Thanks!


Hi Jace,

I do L/D tests in auto quite regularly. I use the soaring feature to allow climbs to use throttle, but descents to be zero throttle. Usually the soaring feature will trigger LOITER mode occasionally, but this can be suppressed by setting a large value for SOAR_VSPEED, eg 1000. Be sure to set SOAR_ALT_MIN and SOAR_ALT_CUTOFF as described here http://ardupilot.org/plane/docs/soaring.html

Using TECS_SPDWEIGHT=2 and a large value for PTCH2SRV_IMAX will be needed for good airspeed control with zero throttle.

If you want to map the glide polar, set up a rectangular mission. Copy the mission multiple times and use a DO_SET_AIRSPEED command to adjust the target airspeed.


Hi @jace26
Specifically what parts of the flight envelope are you interested in finding the L/D ratio for? Are you going to use the data for a specific reason or is it more just to see if you can?
The reason I ask is because your Prop is going to have a big influence on that value. For example at 0 throttle it’s going to create significant drag, or assuming you have a tractor config the Prop wash will boost your lift.

It is tricky to characterise the aerodynamic performance of the aircraft through flight in this way.

Cruise speed l/d for determining drag reduction device effectiveness and cruise speed for max range, max time aloft etc. We have a push config, not tractor. since we are a vtol plane, we are messing with cleaning up drag at cruise speed and then seeing how that affects our payload capacity, optimal cruise speeds ect. To some extent since these will be relative to later flights with drag reduction devices installed and for those flights the thrust isn’t as important as long as its somewhat consistent. Determining how l/d changes as a function of cruise speed is a little more difficult when trying to eliminate the prop. To be honest though, we know this isn’t going to be a lab quality result, at some level of measurement the prop will be in the noise.

Why not just put a folding prop on? That’ll effectively cut the drag and then the true unpowered glide will give you the L/d.

Given your intended use of the data, may I suggest an alternative metric instead of L/D?
Is your aircraft a quad plane?
Also is the forward propulsion electric?

On the assumption that your aircraft is electric and you have current and voltage sensors attached and suitably calibrated, then a suggestion would be for you to use power and thrust as your metrics as these directly correlate to max endurance and max range flight conditions.

It is known that the maximum endurance of a fixed wing plane coinsides with the minimum power required for straight level unaccelerated flight. In my experience the velocity at which the aircraft will need to fly at to achieve this condition will always be quite close to the stall speed of the aircraft (within 20% of the stall speed). You need to make sure that your aircraft has a pitot tube for measuring airspeed and that you have adequately tuned ARSPD_FBW_MIN to be close/equal to your stall speed. Then you can run a series of experiments in which you leave your aircraft in loiter (with a wide turn radius) and fly it at series of discrete speeds. Then using the logged data you can correlate the velocity that flys at min power required.

Similarly to the above, the velocity that achieves maximum range in a fixed wing aircraft travelling in straight level and unaccelerated flight will coincide with the minimum thrust required. For a propeller aircraft it is a reasonable approximation to say:

thrust = power / velocity

Therfore using the same data from the flights suggested above you can now do a bit of work with the log flies to determine the velocity that corresponds to max endurance. And if you really want to find a lift over drag value it just so happens that to achieve max range you would need to fly at L/D_max and you could determine it from this equation:

L/D = weight / thrust

This is of course only applicable if flying at constant altitude and constant speed.

Using this method has the advantage that you are specifically flying in cruise conditions (your region of interest) and it reduces the effect of wind speed and direction, which would have a big impact on glide slope based approaches. Also you can fly your aircraft in loiter for longer periods of time, collecting more data, to improve your averages. Thus the experiment will likely have greater repeatability.

The disadvantage of this approach is that it relies on power and therefore current measurement, which is not the most reliable and will typically give noisy information. However, given that the experiment requires your aircraft to fly straight level and unaccelerated the current draw will be pretty constant and the measurement will be quite reasonable. Additionally, if you take the mean of your data for each flight velocity and you find that when you plot out velocity vs power (or velocity vs thrust) for all experimental conditions and you see a minimum power/thrust that occurs somewhere close to stall speed then it is a strong indication that the experiment worked and that the method’s experimental noise is reasonable.

If you do have a quad plane, use Q_assist and be sure to set Q_ASSIST_SPEED to be your stall speed. Then the plane will always be able to get out of trouble if it does stall.

I have messed around with getting my own quad plane to fly at slow speeds and was impressed at how well FBWB based modes fly at high alpha when an air speed indicator is fitted.

I hope all of that made sense. Not sure I explained it very well :sweat_smile:


You’re right that a power based approach will yield the best endurance. Unfortunately a level flight power-based approach compounds in complexity based on the propulsion efficiency curve. If you want to optimize both systems, it’s much easier to find the optimum of one and the. Optimize the other to it.

For example, if I choose a 16x5 prop, my peak efficiency will be significantly closer to the minimum controllable airspeed than with a 12x12 prop. I’ve done many tests this way, and some of the discussion is here: https://www.rcgroups.com/forums/showthread.php?3009817-Benchmark-Test-of-the-Twin-Engine-Electric-Mapping-Planes

Knowing the effective L/d is very important in the design stage of aircraft. I don’t think using RC forward propulsion systems are currently accurate enough to derive that from level flight (due to numerous complex energy losses in the system). I do agree with the glide-based approach.

Yes, you are entirely right. I did not think about the effect on the propellers efficiency curve! Plus I made a mistake in my previous post as you can’t obtain the thrust from the electrical power draw without knowing the efficiency curves of the various propulsion systems like ESCs, motors, and props.

So with that, I guess I am also in the glide slope approach camp.

@Samuel_Tabor when you have done this previously do you use GPS positioning to get to distance travelled and baro to get height loss then calculate the slope?

1 Like

One of the easiest ways is to use an RTK GPS and turn the raw logging on. Then RTKLIB can give you a precise trajectory. If you do a few loiter turns, the forward wind speed can be estimated and thus corrected for in the time domain. You could also use airspeed, but once again, that relies on another calibrated system. I like to keep my data with as few variables as possible, and the RTK GPS on a calm day provides me with excellent data.

Great, thanks. That is good to know.

Out of curiosity have you tried using airspeed? If so what were the results like? I appreciate where you are coming from with minimising the number of calibrated sensors used. I was just wondering whether in this case, as the airspeed sensor is reducing the effect of wind on the data, would it work well enough (calm days are a rare occurrence near me).

I can second getting good real air speed by loitering for a while first and getting the average gps GS to calibrate the AS. Then use the airspeed and the stable IMU vertical velocity to calculate real air slope regardless of the wind.

What I really want to do is incorporate a force sensor between the push motor and the frame to record thrust. We havent gotten around to that yet… but that would give you L/D just by knowing your aircraft weight, and the thrust in unaccelerated flight.


Can you let us know how you get on if you do install a load sensor inline with you motor mount? I would be interested to hear about it.

unlikely we’ll do it anytime soon :disappointed_relieved: but it would nearly ideal for this purpose unless I’m missing something.

I used the target airspeed divided by the barometer derived rate of decent over a resonably long descent period e.g. 30-40s while flying in a straight line in low turbulence conditions.

1 Like

I’ve got to go with Sam’s method here. I’ve done many similar tests using his approach while attempting to measure the effect of vortex generator placement on l/D, and got repeatable results as long as the airspeed was reasonably well calibrated, and wind was known, and could be factored in. I was testing a glider, so the prop was a folder. Essential, I think.
My barometer/altimeter seems to have pretty stable calibration, provided nothing else was changed (like board placement, aerodynamic shape, etc,) and since I was shooting for optimum placement, deadly accuracy in absolute terms was not essential. That said, I think my results were pretty close even in absolute terms.
It’s possible to over think the problem, and until you know it is inadequate, I’d try the simpler approach.

Cool. What did you find for your vortex generators?