Profile image

2. The Differential Electric Engine [Technical Documentation | Edo-45]

162k spefyjerbf  4.6 years ago

2. The Differential Electric Engine

Edo-45 was designed around a novel electric engine, named the Differential Electric Engine. The engine employs phase-shifted pistons, reverse-airbrakes, and code derived from a differential equation to produce a nearly-logistic velocity curve. The overall design process focuses on the velocity curve's end behavior, as velocity has been designed to approach a ceiling asymptotically.

2.1 Acceleration as a Differential Equation

Airbrake-based electric engines must be designed to limit their maximum velocity. Many mechanisms can be used to limit maximum velocity, but no existing methods explicitly define a maximum velocity in a gradual fashion. In other words, the few engines that do define a velocity ceiling, within their code, only do so through logical operators - resulting in a rather bumpy velocity curve.

The Differential Electric Engine explicitly defines its maximum velocity, gradually, by using a differential equation. In particular, a differential equation with an equilibrium solution, set to the engine's velocity ceiling, was used. This equation is the foundation of the Differential Electric Engine, and is used to govern the engine's force output. Change in velocity, after all, is defined as acceleration, and is proportional to net force. Therefore, the differential equation (general form), as well as its solution, found in Figure 2.1.1, is valid for use in the Differential Electric Engine:


Figure 2.1.1: The Engine's Differential Equation

The variables, as shown in the figure, are defined below:

V_max = The velocity ceiling, maximum velocity
V(t) = The time-varying velocity curve, velocity function. It is the dependent variable
t = The independent time variable
a = The acceleration
F / m = The force divided by mass
C = An arbitrary constant (depends on initial value)

The differential equation, then, can be applied in the form of code, that will govern the force output of the reverse-airbrake system. Section 2.2 details such application.

2.2 Implementation and Practical Considerations

The differential equation is applied by translating it into code. The code is then edited to prevent overcorrection and to enable throttleability. Overcorrection is prevented by using a clamp function, that prevents negation, and limits the maximum force output of the engine. Throttleability is achieved by multiplying the velocity ceiling by a throttle input. As a result, the velocity curve becomes a family of curves with throttle-varying maximum velocities, as shown in figure 2.2.1:


Figure 2.2.1: Velocity Curve Family (Click for the Animated Version)

The input code, with these applied changes, is provided below in a general form:

-1 * clamp(Throttle * V_Max - 1 * GS * cos(AngleOfAttack) * cos(AngleOfSlip), 0, Max_Output )

Where:
V_Max = The designed maximum velocity
Max_Output = The maximum output of the engine. This value is proportional to the maximum force output of the engine. This value is less than or equal to the maximum velocity, V_max.

This code should be used as the input of an airbrake. The minimum input of the airbrake, min, should be set to a (usually small) negative number, that can be tweaked to adjust the engine's force output. It should be noted that the code uses the longitudinal component of the aircraft's velocity. Negation is applied, too, as the reverse-airbrake accepts negative inputs to generate thrust.

Reverse airbrakes require velocity to apply force. The engine, then, uses pistons to provide necessary velocity to the airbrakes (credit: randomusername). The Differential Electric Engine itself uses a pair of such pistons. The piston pair employs a phase shift to provide a smooth flight experience. A reverse airbrake is attached to the end of each piston. The specifications of each piston are as follows:

Piston Number One

input: -1 * (Throttle = 0) * (1 + cos(Time * 9000))
range: 1
speed: 100
preventBreaking: true

Piston Number Two

input: -1 * (Throttle = 0) * (1 - cos(Time * 9000))
range: 1
speed: 100
preventBreaking: true

Note that an airbrake should be attached to each piston. These two airbrakes are identical, and use the code discussed earlier in this section. The engine can be tweaked in three ways to meet the programmer's requirements:

  1. Edit the velocity ceiling, V_Max.
  2. Edit the maximum engine output, Max_Output.
  3. Edit the minimum input, min. A larger magnitude will yield a larger force. -0.3 yields a small force, while -100 yields a ridiculously large force.

To reiterate, the code for both airbrakes is as follows:
-1 * clamp(Throttle * V_Max - 1 * GS * cos(AngleOfAttack) * cos(AngleOfSlip), 0, Max_Output )
The minimum input is named min, under the inputController tab in overload.

As a result, the Differential Electric Engine is highly customizable for the experienced programmer. This characteristic, among others, will be expanded upon in section 2.3.

2.3 Advantages of the Differential Electric Engine

As previously mentioned, the Differential Electric Engine sets a limiting velocity in a gradual fashion. This approach results in a smooth velocity curve that is explicitly defined. Existing reverse-airbrake engines do not meet this functional requirement. Instead, they either set a limiting velocity, or they provide a smooth velocity curve that lacks an explicit velocity ceiling.

The former approach (unsmoothed velocity regulation) simply uses logical operators, which results in an all-or-nothing engine behavior. The engine either applies its maximum force, or no force at all. This behavior causes this approach to be sub-optimal at best. The latter approach (smooth, yet undefined velocity curve), in contrast, is actually quite useful. This approach, which gradually decreases acceleration, takes the form of the following airbrake input code:

pow(0.99, GS) [Source]

The force output of this engine, then, is governed by a negative exponential function. As a result, this entry-level engine will be referred to as the "negative exponentional engine". If viewed as a differential equation, this existing function yields a logarithmic velocity curve. An equilibrium velocity is reached implicitly when, ironically, drag acts on the aircraft. These two functions appear to be similar when graphed, as in figure 2.3.1:


Figure 2.3.1: Velocity Curve Comparison (Click for the Animated Version)

In a practical setting, though, the Differential Electric Engine becomes advantageous through two characteristics:

Benefit One: The engine explicitly defines a maximum velocity
Benefit Two: The engine is more customizable than other existing engines.

The first benefit is, admittedly, a preference that may vary among programmers. It should be noted, though, that an explicitly defined maximum velocity may decrease the amount of fine tuning needed to design a proper electric aircraft.

Benefit Two, though, hinges on the versatility of the Differential Electric Engine. The system can be configured to meet a wider variety of operating conditions than its negative exponential counterpart. The Differential Electric Engine presents three parameters that the programmer can modify to meet their design specifications:

  1. The ceiling velocity can be modified
  2. The maximum engine output can be clamped
  3. The overall engine output can be modified

In theory, the Differential Electric Engine can be configured to govern its maximum acceleration, velocity, and average engine output. In contrast, the negative exponential engine is commonly configured by simply changing its average force output. As a result, the Differential Electric Engine can be configured to meet a wider array of operating conditions than its negative exponential counterpart.

  • Log in to leave a comment
  • Profile image
    162k spefyjerbf

    This post is part of Edo-45's technical documentation. Use the link to return to Edo-45.

    Pinned 4.6 years ago
  • Profile image
    162k spefyjerbf

    @Ezucra No problem! Have fun with the concept :)

    6 months ago
  • Profile image
    362 Ezucra

    Thank you so much Spef! Will definitely work with this in the future.

    +1 6 months ago
  • Profile image
    150 BoiWtf

    Sees equations Confused screaming

    2.5 years ago
  • Profile image
    6,001 HaunebuII

    Didn't know simpleplanes could get so, not simple

    +4 4.2 years ago
  • Profile image
    162k spefyjerbf

    @MercuryCorporation Sounds good, and ty! Building from scratch is definitely more satisfying, so you’re right on that point. When talking to people about this engine, I assume that they aren’t familiar with calculus (or diffeq), so I default to having them take the engine as a subassembly.

    +1 4.5 years ago
  • Profile image
    162k spefyjerbf

    @MercuryCorporation Go for it! Feel free to rip the engine out of Edo-45 and save it to your subassemblies. Please not that, with any upload that involves this specific engine design (mainly the Funky Trees that I used), I do appreciate credit where appropriate.

    4.5 years ago
  • Profile image

    Holy...

    +1 4.6 years ago
  • Profile image
    162k spefyjerbf

    @BaconAircraft I agree, ty!

    4.6 years ago
  • Profile image

    Simply beautiful

    +2 4.6 years ago
  • Profile image
    162k spefyjerbf

    @Tums Ty! This one was a wild ride, and I'm quite proud of the math behind it.

    +2 4.6 years ago
  • Profile image
    10.1k Advil

    I haven’t read all this, but your derivative equations are spot on. This is really impressive!

    +3 4.6 years ago
  • Profile image
    162k spefyjerbf

    Hi everyone,
    .
    This forum post is part of my next upload's technical documentation. As of posting this comment, the build has not been released. You can find the teaser here.

    +3 4.6 years ago