Analysis of Current FBL systems - rotorflight/rotorflight GitHub Wiki

❗ This page is outdated

Rotorflight Wiki is replaced by www.rotorflight.org.


Aerodynamic Stability and Flight Control Mechanisms Unveiled through In-Depth Study of Flybarless Controllers: A Comprehensive Analysis

Commercial FCs and how they seem to work (08/12)

Vbar 5.3

  1. (Updated again) Vbar 5.3 does use I decay but rather fast, around 2.5s linear decay from full charge to zero charge at maximum collective pitch to around 50% collective pitch. And two-stage decay at collective less than 50%. Which is linear at high I term and exponential at low I term. The rate of the linear term does not seem to change. I also believe that the exponential rate in the second stage changes w.r.t collective position so that the slope at transition is always the same (smooth). Which means lower rate at higher threshold at low collective, and higher rate at lower threshold at higher collective. At zero collective, the transition threshold is at maximum. meaning more (and slower) exponential decay than other conditions. And the threshold of the transition seems to scale linearly with collective up to +- 50% collective. Here is a simple demonstration:

  2. (Updated) Vbar 5.3 does use I relax to shape fast I term inputs. The I relax seems to completely freezes the Normal I charge and discharge. However, it's inconclusive whether it affect the Fast Flight I charge.

  3. There is no collective impulse Feed Forward on yaw

  4. The cyclic Feed Forward on yaw corresponds the cyclic position, has little to do with input

  5. IMPORTANT: there is another I term (fast flight integral) that corresponds to collective. If it is charged positive on positive collective, it becomes negative on negative collective. At constant collective, it behaves like normal I gain with linear discharge. It charges up at a constant rate. The sign depends on positive or negative collective. It does not have effect on input at zero collective. Here is a pseudocode:

    When charged up with roughly 2 second at 25% cyclic, It has a very long decay that changes with collective. Around 8-9s linear at zero collective, 60s linear decay at 50% and 70s linear decay at full collective. Here is a demonstration:

    Here is a pseudocode for the decay:

    Which is based on measurement:

    This change of discharge rate results in seemingly lower charging rate at low collective:

    In addition, it does not charge with large cyclic input that also exceed a set threshold of FFI charge (probably) for safety reasons. The logic is likely that when the charge exceed a threshold and the cyclic input is higher than its threshold, the FFI charge will be set to zero to prevent spool-up accidents. Note, both conditions has to be fulfilled for this reset to happen. In another word, it does not set to zero when input is rather small or short.

  6. The autotrim should be trimming the swashplate center or leveling position

  7. (updated) BOTH I terms (normal and Fast Flight) does the piro-correction, where it would be added to other axis when pirouetting.

  8. A simplified pseudocode for the control loop is something like:

Notes for Vbar:

Register 31 is the normal I gain
Register 32 is the fast flight I gain
Register 33 is the master gain / 2
Register 41 corresponds to P gain
Register 72 corresponds to D gain
The xxtreme version has significantly lower I-relax frequency threshold

Default is 41 10, 72 3
Style 40 is 41 40, 72 2
Style 120 is 41 -30, 72 5

Brain/iKON 2 (Not verified yet)

  1. iKON also uses I exponential decay at center.
  2. It seems like the I decay has two stages. When the error term is large, it decays linearly. When error is small, it decays exponentially. This might explain why it has good tracking and strong damping because large I decays slower than smaller I.
  3. iKON does not have Fast Flight I term

Pure Speculation of the new JR gyro by Nick Maxwell

  1. It tunes based on the heli parameters, I assume you would enter size, wight, blade length, etc. He specifically said that he doesn't want to disclose too much because it is very easy for other manufactures to implement.
  2. It does piroflip on servo as startup check (neat!)
  3. It is developed based on PX4
  4. Important: Nick mentioned that "It's gonna do some wonky stuff outside of setup mode", which makes me think it might be the first FBL that implements wobble correction. From what I see him flying in February, the stops are very crispy. I could not see any shaking motion during high disturbance (like rainbow stops). He also specifically said that they took tick-tock into account when developing the gyro.
  5. It also performs extremely well with jumping headspeed. No tail wondering and no shake on cyclic during hard collective stops even though the headspeed dropped significantly. This made me wonder if it has something to do with gain scheduling with RPM feedback.
  6. From slowmo of high speed maneuvers, it certainly used something similiar to FFI-term.

(We need more testing from other FC's)

Appendix:

Attempted using Tustin for I-controller c2d transfer (Doesn't seem to make sense):

The resulting function is a very good approximation of the desired low pass filter but I couldn't think of a method to apply linear decay there:

Comparing my initial pseudocode and the correct pseudocode for I-decay:

My guessed formula (Bottom) coupled the Ki term and decay term together. It limits how much I could adjust it separately! Therefore the top method seems more correct. (confirmation needed)

⚠️ **GitHub.com Fallback** ⚠️