Tutorials : Curves

by Mike Shellim, March 2004

Revised 24 July 2005

Revised 4 March 2006

Introduction

Any R/C system is simply a device for translating the displacement of widgets into the movements of servos. These translations can be described in terms of curves.

What makes the 4000 different, is that the user can specify his/her own curves much more flexibly than with other systems. Consequently, an appreciation of curve concepts is essential to get the best from the set.

As usual, the manual is pretty weak, so let's take a closer look.

What's a curve?

A curve describes the transformation of an input signal. The input may be the position of a stick. The output is typically the position of the servo. These curves can be specified by the user via the Servo Travel menu.

In addition to user defined curves, the system itself uses its own 'internal' curves to implement DIFF, EXPO, DUAL RATES etc. The principles are the same in each case.

Curve Basics

Let's look at a generic curve. We won't be bothered at this stage with what it's used for, but you'll notice that the shape is similar to what you'll see in the Servo Travel screen, except that instead of a smooth line as below, the shape will be defined with 3,5,7,9, or 13 points.

In the diagram above,

Example Servo Travel Curves

Here are some simple curves which mirror what you might see in the Servo Travel screen in a simple model (i.e. no mixers). In the diagrams below,

Example 1: Pass-through.

The simplest curve is a simple straight line with 3 points (-100,-100), (0,0) and (100,100). This a "Pass-through" curve, because it copies the input (x-axis) to the output (y-axis) unchanged. In other words, the servo faithfully follows the stick.

          |          x
          |           
          |
 ---------x----------- Input (-100 to 100)
          |
          |
x         |
        o/p (-100 to 100)

PASS-THROUGH CURVE

Example 2: Reverser.

This is another simple 3-point curve. In this curve, an input value of -100 becomes an output of +100, and vice versa. This is the same as the first example, except the output is reversed. This curve can therefore be used to reverse the direction of a servo.

x         |
          |           
          |
 ---------x----------- Input (-100 to 100)
          |
          |
          |          x
        o/p (-100 to 100)

REVERSER CURVE

Example 3: Reducer

This is like the pass through curve above, except the slope is reduced. For any particular value of the input (x), the output will be less.  This curve might be used to reduce the travel of a servo or control function.

          |
          |           
          |         x
 ---------x----------- Input (-100 to 100)
 x        |
          |
          |
        o/p (-100 to 100)

REDUCER CURVE

Example 4: 'S' curve

Below is a 9-point curve with an S profile. This curve acts as a travel limiter.  What's the betting that the system uses such a curve to implement the 'Servo Limits' adjustment?

          |       xxx
          |    x       
          |         
----------x----------- Input (-100 to 100)
          |
     x    |
xxx       |
         o/p (-100 to 100)

'S' CURVE

Example 5: FIX VAL curve.

The points on this curve lie in a horizontal line. The output is constant with respect to the input. In other words, whatever the stick position, the servo will remain at a fixed position!

          |      
x x   x   x   x  x x 
          |         
---------------------- Input (-100 to 100)
          |
          |
          |
         o/p (-100 to 100)

FIX_VAL CURVE

The Curve Chain

As you've seen above, curves can be used to describe functions which are actually built-in to the 4000, such as ATV, travel LIMIT, and FIX VAL. What's the betting that internally the 4000 uses a general purpose curves engine to implement these features?

We might therefore predict the response of a servo in terms of the result of several curves, with the output of one feeding into the input of the next, in a chain. For example, consider the paremeters which may affect the response of the Aileron stick:

Each of the options above is a transformation which can be represented by a curve. The transformed signal will be then be fed to the Servo, which is also subject to adjustments in the servo screens:

Again each of these transformations can be represented by a curve.

Tthe movement of a servo can therefore be regarded as the result of cascading all the relevant curves, by applying the output of one into the input of the next one in the chain in some order e.g.

[STICK]

  1. TRAVEL
  2. CENTER
  3. DUAL RATE
  4. EXPO
  5. DIFFER
  6. Servo Travel
  7. Servo Limits
  8. Servo Centre

[SERVO]

(Note: the order in which curves are processed depends on the system software, and this is not documented. However the concept of cascaded curves is still very useful in understanding what going on.)

Let's now see curves are 'cascaded'.

Cascading Curves

In the following example, the two curves cascade, i.e. output of the first curve feeds into the input of the second:

This is hopefully reasonably self explanatory!

Let's now take a possible real world example: The servo reverser curve (example 2 above) feeding the reducer curve (example 3 above).

The table below shows the how inputs of -100, zero, and +100 are transformed at each stage. The output of the Reverser curve becomes the input to the Travel curve.

Input Output of
'Reverser'
Output of 'Reducer'
-100 +100 +30
0 0 0
100 -100 -30

So the effect is to reverse the input and attenuate it, rather as we would expect.

          |
          |           
 x        |
 ---------x----------- Input (-100 to 100)
          |
          |         x
          |
        o/p (-100 to 100)
Result of cascading Reverser and Travel curves

Lets see what happens if we now apply a FIX VAL curve (example 5 above) to the output of the travel curve of value 70. FIX VAL is described in example 5. The curve is actually a horizontal straight line. The output is a constant value, irrespective of the input.

Input "Reverser" output "Reducer" Output FIX VAL output
-100 +100 +30 70
0 0 0 70
100 -100 -30 70

The effect of adding a FIX_VAL curve is to completely ignore all the previous curves and apply a fixed output irrespective of the input.

You can see how the FIX VAL option might be implemented in a control like flaps, spoilers etc. - to emulate a stick 'stuck' in a particular position.

Note that the order of processing is important. If for example the FIX VAL curve was processed before the Reducer curve, the table would look like this:

Input "Reverser" output FIX VAL output Reducer output
-100 +100 70 21
0 0 70 21
100 -100 70 21

The output is 21 instead of 70 as previous. Since the order of processing is not documented, the only way to find out in what order the curves are processed is to do one's own experiments.

Summary

By thinking in terms of cascading curves, you should be able to predict the servo movement with more confidence.