Feedforward - what does it do?


I often see people talking on this traditional helicopter forum about feedforward. However, i can find very little about it in the documentation. I even checked the source a bit, but don’t really understand it. Can somebody explain it?

So feedforward is effectively the same as your RC receiver being connected to your servo. Your servo output is proportional to the stick. That’s the easiest way to look at it. The arducopter software does a lot of other things behind the scenes. Before the feedforward was added, control was achieved solely thru the PID controller which looks at the error between what the user is requesting (typically proportional to your stick) and the actual angular rate of the aircraft. So the control input to the servo was based on the error and not just your stick input.
Hopefully that makes sense.

Hi Bill,

Thanks for the response.
Does it mean that if i enable feedforward, that the PID’s are no longer being used?

No, the PID gains are still available for use. In fact you want to use the PID controller in order to help with flight in windy conditions.

Ruben, you can adjust a balance between the rate feedforward and the PID controller, which is the normal way to set up a FBL helicopter. The feedforward should be adjusted to get the actual vs desired rate commands to match. The PID’s should be adjusted to get the proper damping so it’s smooth.

This only applies to FBL heads.

Flybar is different and just uses rate feedforward. The damping is done by the flybar.

You probably saw me talking about setting up a FBL heli with just rate feedforward and disabling the rate PID’s. That is not normal for what most people will fly. That helicopter we did that to requires an experienced pilot on the sticks, and it is very quick handling.

Hi Chris,
Indeed. Have seen your comments, but also read about it in the “this could be interesting” thread.

I wanted to learn Pid control better so I made a small c# program to figure out how such an algorithm works. I think some of the documentation on ardupilot is not great. Feed forward is not described at all, so my idea was to understand, implement and document it.

At the moment, it’s still not so clear how feed forward is mixed into the equation.

It’s mixed in with helicopters because with most of them the rate P gain can’t be set high enough for proper swash response to get the desired rate. The feedforward makes up for that by bypassing the PID loop.