/exptable

Custom exponential curve tables for use in RC transmitters

Primary LanguagePythonApache License 2.0Apache-2.0

exptable

Custom exponential curve tables for use in RC transmitters

Background

Exponential is a modification to the amount of servo movement you get when you move the transmitter stick. Used correctly, it is intended to give more precise control over small adjustments, whilst retaining the ability to make large control movements. It's effect as experienced by the pilot is explained in many places, such as here. What's often glossed over is that it is not an exponential function at all, and more typically a polynomial.

In Frsky transmitters, the OpenTX firmware implements exponential as a mix of a third order polynomial and a line, as mentioned here. The higher the expo value, the more of the polynomial curve is mixed in.

inputs

  • stick position: -1 <= x <= +1
  • exponential: -<1 <= k <= 1

output

  • output position: -1 <= y <= 1

equation:

alt text

To make this the same as the values we see in the openTX settings, we need to scale the inputs and outputs to 100, whilst keeping the same underlying equation.

inputs

  • stick position: -100 <= x <= +100
  • exponential: -<100 <= k <= 100

output

  • output position: -100 <= y <= 100

equation:

alt text

The specific code for the exponentialfunction in openTX is a little harder to read because the values are then scaled again for faster calculation. If you check the code, you'll see some interesting comments about "extended" exponential and how the code authors settled on what they did, and then how they optimised it.

This can be plotted for various values of the exponential setting

alt text

Usually the same amount of expo is applied going up and down, however this need not always be the case. It's worth noting that the curve no longer has a smooth slope at the centre if we split the expo rate to be different, but it's really only noticable at expos so large you probably wouldn't be using them anyway (and if you were, you could use an even numbered point count and curve smoothing to remove the step change in the derivative at zero). Some modellers may wish to use the tables below to set up such a custom curve in openTX, should the need arise (as it has for a friend). These do not contain the curve smoothing.

alt text

Other trasmitters

Note that the definition of positive and negative exponential is reversed on some brands of transmitters, and that other curve implementations may be used, although you will note that they equate to the same result by and large.

Additional expo strength is available by choosing a higher-order power polynomial, e.g. the fifth order gives this:

alt text

Tables

Usage

The use the tables below, transfer the values into a custom curve.

# down 15% + up25%
|    X    |    Y    |
|--------:|--------:|
| -100.00 | -100.00 |
|  -66.67 |  -61.11 |
|  -33.33 |  -28.89 |
|    0.00 |    0.00 |
|   33.33 |   25.93 |
|   66.67 |   57.41 |
|  100.00 |  100.00 |

For modest exponential, seven curve points and smoothing is adequate. The points in the table are superimposed on the curve.

alt text

down 0% + up0%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 0% + up5%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 0% + up10%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 0% + up15%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 0% + up20%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 0% + up25%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 0% + up30%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 0% + up35%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 0% + up40%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 0% + up45%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 0% + up50%

X Y
-100.00 -100.00
-66.67 -66.67
-33.33 -33.33
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 5% + up0%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 5% + up5%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 5% + up10%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 5% + up15%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 5% + up20%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 5% + up25%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 5% + up30%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 5% + up35%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 5% + up40%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 5% + up45%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 5% + up50%

X Y
-100.00 -100.00
-66.67 -64.81
-33.33 -31.85
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 10% + up0%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 10% + up5%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 10% + up10%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 10% + up15%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 10% + up20%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 10% + up25%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 10% + up30%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 10% + up35%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 10% + up40%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 10% + up45%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 10% + up50%

X Y
-100.00 -100.00
-66.67 -62.96
-33.33 -30.37
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 15% + up0%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 15% + up5%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 15% + up10%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 15% + up15%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 15% + up20%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 15% + up25%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 15% + up30%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 15% + up35%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 15% + up40%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 15% + up45%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 15% + up50%

X Y
-100.00 -100.00
-66.67 -61.11
-33.33 -28.89
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 20% + up0%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 20% + up5%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 20% + up10%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 20% + up15%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 20% + up20%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 20% + up25%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 20% + up30%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 20% + up35%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 20% + up40%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 20% + up45%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 20% + up50%

X Y
-100.00 -100.00
-66.67 -59.26
-33.33 -27.41
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 25% + up0%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 25% + up5%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 25% + up10%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 25% + up15%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 25% + up20%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 25% + up25%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 25% + up30%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 25% + up35%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 25% + up40%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 25% + up45%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 25% + up50%

X Y
-100.00 -100.00
-66.67 -57.41
-33.33 -25.93
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 30% + up0%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 30% + up5%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 30% + up10%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 30% + up15%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 30% + up20%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 30% + up25%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 30% + up30%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 30% + up35%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 30% + up40%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 30% + up45%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 30% + up50%

X Y
-100.00 -100.00
-66.67 -55.56
-33.33 -24.44
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 35% + up0%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 35% + up5%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 35% + up10%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 35% + up15%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 35% + up20%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 35% + up25%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 35% + up30%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 35% + up35%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 35% + up40%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 35% + up45%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 35% + up50%

X Y
-100.00 -100.00
-66.67 -53.70
-33.33 -22.96
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 40% + up0%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 40% + up5%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 40% + up10%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 40% + up15%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 40% + up20%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 40% + up25%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 40% + up30%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 40% + up35%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 40% + up40%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 40% + up45%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 40% + up50%

X Y
-100.00 -100.00
-66.67 -51.85
-33.33 -21.48
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 45% + up0%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 45% + up5%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 45% + up10%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 45% + up15%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 45% + up20%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 45% + up25%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 45% + up30%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 45% + up35%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 45% + up40%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 45% + up45%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 45% + up50%

X Y
-100.00 -100.00
-66.67 -50.00
-33.33 -20.00
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00

down 50% + up0%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 33.33
66.67 66.67
100.00 100.00

down 50% + up5%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 31.85
66.67 64.81
100.00 100.00

down 50% + up10%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 30.37
66.67 62.96
100.00 100.00

down 50% + up15%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 28.89
66.67 61.11
100.00 100.00

down 50% + up20%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 27.41
66.67 59.26
100.00 100.00

down 50% + up25%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 25.93
66.67 57.41
100.00 100.00

down 50% + up30%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 24.44
66.67 55.56
100.00 100.00

down 50% + up35%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 22.96
66.67 53.70
100.00 100.00

down 50% + up40%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 21.48
66.67 51.85
100.00 100.00

down 50% + up45%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 20.00
66.67 50.00
100.00 100.00

down 50% + up50%

X Y
-100.00 -100.00
-66.67 -48.15
-33.33 -18.52
0.00 0.00
33.33 18.52
66.67 48.15
100.00 100.00