Monday, 25 February 2019

Crow-aware adaptive elevator trim

In this post I describe an adaptive trim system which makes it easy to achieve perfect pitch trim when using crow brakes. 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 - and to make things worse, 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 are normally 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 just 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 is indeed possible.

A better mousetrap

With the crow-aware adaptive trim system, 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 there is no need to look down at the screen.

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 real time. In addition, a custom telemetry 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 trim lever must be programmed to emulate a simple on/off/on switch. Fortunately this can be done within OpenTx (no hardware changes required).

In use

Using the adaptive trim is straightforward. The idea is to apply varying amounts of crow, adjusting the elevator trim at each setting. A couple of passes through the crow range will be required to fully optimise the curve. With most models, the trimming can be done in a single flight (thermal soarers may require a couple of flights due to reduced flight time).

Around zero crow, the trim lever emulates the system default behaviour, in other words +/-25% range with min/max/centre audio callouts. As crow is deployed the min/max limits are relaxed allowing aggressive compensation to be applied if required.

Below is a video showing the aftermath of the test flight with my Stribog F3F model. It shows (a) the script running on my X9D+ and (b) the compensation mix in action. To make it a proper test, the compensation curve was zeroed before the flight - in practice, one would pre-configure the curve according to the manufacturers recommendations.

Note that an early version of the script was used, with 4 points instead of 5. The test was concluded successfully (despite a 40 mph wind!) and I'm now using the system on all my crow-equipped models.

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, X12S and Jumper T16.

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.


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!

Philippe said...

This is great! I am already a big fan of your F3F, Wingy, Ahi and F5x templates which are a blessing for those not as fluent in OpenTX and Lua than you, Mike. Thinking about it, your OpenTX F3F template was my reason to move from Graupner to FrSky some years ago.

Your Crow-aware adaptive elevator trim will find its way to your F3F template soon.

Small thing: On the blog page above you mention a different set of compatible radios compared to the script page (X10 and X12 not mentioned).

Many thanks for your continued contributions to the OpenTX community.

RvD said...

Have 2.1 and incorporated into the eSoar Template on my older Horus X10 - works well.
Tried installing it on my new Horus X10S Express and comes back with an "unsupported radio" error message on the widget screen. Is the Express supported, and does the lua script need to be modified?

RC Soar said...

Hi @RvD: it'll work fine with the Express (and other X10 clones) if you comment out the radio checks by inserting two dashes at the start of line 200. It should look like this:

-- if not supported[radio] then AdpError = "Unsupported radio" return end

The published scripts will be updated in due course.

RC Soar said...

Version 2.4 of the widget version (for colour screen tx's) is now available. The radio checks have been removed so it'll work with any such transmitter, including X10 Express etc.

RvD said...