> > 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