> > FF0 = Velocity Feed Forward Gain.
> > > FF1 = Position Feed Forward Gain.
> > > FF2 = Acceleration Feed Forward Gain  or Friction Feed Forward Gain.
>

As Jon and others wrote, FF0,1,2 are related to consecutive time
derivatives of the controlled parameter: if the controlled parameter is the
position (which is the most common case), FF0/1/2 are derived from
commanded position, velocity, and acceleration. In a velocity-controlled
loop, it's velocity, acceleration and 'jerk', or rate of change of
acceleration.

> >
> > > I would like to update the docs with some descriptive text in addition
> > > to "0th order feed forward gain" as that and the other descriptions
> > > only seem to make sense to a mathematics professor.
>

The reason why it's useful to get into the math part is that one doesn't
have to remember them by rote. There's a symmetry and organization that
appears in the mathematical description of those systems; once understood,
it helps to keep a picture in one's head how those things interact.

The three PID controller parameters (P, I and D) are similar and analogous
to the three feed-forward parameters (FF0, FF1 and FF2). In each sequence,
the parameters act on increasing time derivatives of some system parameter.
The difference is that the PID parameters act upon the error term
(difference between the commanded position and the actual position) whereas
the feed-forward terms act directly on the input parameters, regardless of
the actual output position.

Knowing that, it's possible to get a glimpse of which parameters are
related to each other---for instance, the FF0 term is related to the I term
in an interesting way, which helped me to understand better the principle
of operation of those systems. I have only a basic understanding of control
theory, but I hope the following explanation is accurate and might help
others to get a better intuitive grasp of how those things work.

The P term is of course the most important: it reflects the direct error or
difference between the commanded and actual output, so if we had a servo
fairy that automatically and perfectly runs the system that we're trying
our PID controller on, P would be always zero (and of course I, D also
would be zero). If the fairy got tired and started making mistakes, the P
term would kick in and push the system towards zeroing that error again.

As everyone here knows, the D term represents drag or braking forces, and
helps to dampen the system, thus preventing the oscillations.

The 'I' term is interesting---by integrating the error over time, it
gradually kicks in when the P term alone is unable to keep the system at
the commanded position. It is common, however, that such extra force is
known ahead of time, and instead of acquiring it gradually over time, like
the I term does, we could just immediately add it---as provided by the FF0
term.

If you can see it this way, the usual tuning procedure (P, then D, then I,
then FF) starts making sense.
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to