INAV 1.6: Fixed Wing PIFF Controller

Another new feature of upcoming INAV 1.6 (BTW, INAV 1.6 ALPHA-1 has just been released) is brand new PID controller for fixed wings. I repeat: this new controller is used only on fixed wings, multirotors are not affected.

So, what is new about this new PID controller? First of all, it is no longer a PID (Proportional, Integral, Derivative). It is a PIFF (Proportional, Integral, Feed Forward) controller. What is the difference?

Traditional PID controller computes error between setpoint and measurement and feeds it to 3 modules: P, I and D.

PID controller

On multirotors everything is fine. On fixed wings it creates few problems:

  1. For Dterm being effective, Dgain has to be big and that introduces a lot of noise and even then it is more less useless
  2. Fancy Iterm limiting so much needed for multirotor acrobatics is not needed on fixed wings. It can even lower flight performance
  3. Default Pgain is much bigger (more less twice) that fixed wings requires and makes servos and control surfaces very active

To solve those problems, PIFF controller has been introduced:

PIFF controller

  • Pterm is more less unchanged, but have much smaller default values
  • Iterm has been simplified to fit better fixed wing requirements
  • Dterm has been removed and replaced by Feed Forward component

What Feed Forward does, it uses setpoint, not error (pilots input) to feed it to servos. What is the advantage of such approach? Much less activity on control surfaces. Level flight stabilization is archived mainly by Iterm. Less active Pterm engages only when really heavy disturbance was introduced or pilot actually touched the sticks. FFterm handles pilot’s inputs. If pilot is not touching sticks, it does nothing. When pilot want to perform a maneuver, it passes the command to servos just like there no stabilization, while Iterm and Pterm still keeps an eye on the things.

As a result, flight performance, especially on fast and agile airplanes, should be greatly improved. Stabilization will be less invasive but still preset.

One thought to “INAV 1.6: Fixed Wing PIFF Controller”

  1. When did you get the pitch, roll, and yaw angles from the IMU sensors can they be directly used to the PID? Can be used output of the PID controller angle immediately for servos or do need to linearize the gear ratio from the servos to the rudders? Why does the INAV code use a biquad filter?

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.