Monday, 25 February 2019

Crow-aware adaptive elevator trim

If you fly advanced sailplanes, you'll almost certainly be using crow brakes. And you'll also know of the difficulty of achieving perfect pitch trim, due to the non-linear crow/pitch coupling.

In this post I describe an adaptive trim system which makes it easy. The pilot simply uses the elevator trim to correct pitch deviations regardless of crow. The system is based on a Lua script.

Landing approach with full crow

Quick revision: crow compensation

The idea behind crow brakes is simple: the flaps go down and the ailerons go up, increasing drag and the model’s rate of descent..

However crow brakes also generate an unwanted side effect in the form of an upward pitching moment; moreover, the effect is non-linear. The standard way to deal with this is using a crow-to-elevator mix, plus a 'compensation' curve. As crow is deployed, so a variable compensatory offset is applied to the elevator:

Crow/elevator 'compensation' curve on author's Stribog

This is all very well, but curves can only be adjusted manually. This means landing the model, then guessing which points to adjust, then diving in to the curves menu. Consequently, it can take several flights to get it right - if the pilot can be bothered.

But hey, it's really about pitch trim... wouldn’t it be nice if we could simply use the elevator trimmer to bend the curve whilst flying the model?  Turns out it's possible, with the aid of Lua.

A better mousetrap

With the crow-aware adaptive trim, the elevator trim lever is radically repurposed. Instead of applying an offset, it bends the compensation curve. The system knows which points to adjust, so no special action is required from the pilot.

The heart of the system is a Lua script. Its sits in the background, monitoring the elevator trim. When a click is detected it reads the crow value and moves the corresponding point(s) on the curve up or down. The script also handles repeats and beeps, emulating normal trim behaviour.

Changes to the compensation curve are reflected in the curves menu. In addition, a custom screen shows the active curve points and crow value.

Telemetry screen (X9D, X9D+, X9E). Vertical bar is crow value.

OpenTx Widget (X10, X12S)

For this to work, the behaviour of the trim lever must changed so it acts as a dumb on/off/on momentary switch. Fortunately this can be done within OpenTx - no soldering is required!

Flight testing

For flight testing, I used my Stribog F3F model. To control it I used an X9D Plus with the Lua script and a modified version of my F3F template. To make it a proper test, I reset the compensation curve points to zero before the flight.

During the flight I applied varying amounts of crow, using the elevator trim to trim out pitch deviations. It required a couple of iterations through the crow range, but the trimming process was completed without issue, and I was able to land the model normally despite the 40 mph wind.

During the trimming process, I never felt the need to look at the screen.

Below is a video showing (a) the script running on my X9D+ and (b) the result of the flight test. Note that an early version of the script was used, with 4 points instead of 5.

Download the script

The Lua script and a demo setup can be downloaded here. At the time of writing, the script supports the X9D, X9D+, X9E, X10 and X12S.

A good working knowledge of OpenTx is required in order to modify your setups. If you're using my F3X templates, then please familiarise first by reading the Excel reference.


My thanks to Lothar Thole for porting the original script to the X10 and X12S. Also to MiamiMike, L Shems, and hisroyaldudeness on RC Groups for their invaluable input.

1 comment:

pernstig said...

Implemented the This Lua to my TopModel Astra V-tail and it´s working perfect, at least on my workshop desk. Modified to be activated by TrmT as I am used to have both motor comp and spoiler comp on this trim. When (if!) wheather improves in Sweden I will try a test flight soon. Thanks a lot!