feedforward controller, G_f(s) has the form G_f(s) = -K/(\beta*s
+1)*[G_{p1}(s)]^{-1}. K is the level of feedforward action (from 0 to
1), where \beta is the trade off between the effectiveness of
feedforward vs. the size of the control. How does one pick the range
of \beta though?

Practically or academically?
Practically, one gives it a whirl, either on the system itself, on a
system model in a simulation tool, or by analyzing the expected
variation between the real plant and one's model.
When I use feedforward I generally try to apply it _after_ I've found
the best feedback controller I can -- the idea is that you use the
feedforward to do as much of the heavy lifting as possible, then use the
feedback to clean up the detritus left over from the mismatch between
the model and the actual plant.

Don't you mean before?
-- the idea is that you use the
Agreed.
Ideally the feed forwards are the inverse of the system model.
I have no idea what syslee is talking about when he mentions a beta.
When would you used it?
Also, syslees's feed forward is in the wrong place. r is the set
point and r' and r'' are the derivatives that are multiplied by the
the feed forward gains. Syslee is show some sort of distrubance
rejection.
Peter Nachtwey

Usually after -- but now that I'm challenged I realize that there are
times when that doesn't work. This is the "feedforward with feedback"
loop I was thinking of -- it works well with plants that are well behaved
at high frequencies, but need help where a controller can do some good.
G is the plant, Hfb is the feedback controller, Hff is most of the
inverse of G, and Hc compensates for those parts of G (like pure delay)
that you just cannot reasonably stick into Hff. Done right, this
topology will always have a zero error going into Hfb as long as Hff and
Hc match G exactly -- so you get the dual advantages that all the
feedback controller has to do is clean up the mess, and the tuning of the
feedback controller is orthogonal from the tuning of the feed forward.
.-------.
| |
.------------------------>| Hff |------.
| | | |
| '-------' |
| |
| .------. .-------. +| .-------.
| | | + | | + V | |
---o--->| Hc |---->( )---->| Hfb |---->( )--->| G |--o--->
| | A | | | | |
'------' -| '-------' '-------' |
| |
| |
'--------------------------------------'
(created by AACircuit v1.28.6 beta 04/19/05

formatting link

I'm not sure how this will work when G has poles that are outright
unstable or is integrating -- Hmm.
I was deliberately glossing over that part -- I should have pointed that
out. Clearly he's looking at some specific paper without giving much
background; I was hoping that a more general response might spark some
thinking.
Now that you mention it...
Syslee, where did that picture come from? It looks like that's a scheme
to measure disturbances and try to correct them with feedforward, which
is _not_ how feedforward is usually used in control systems.

If the auto tune does not work I usually use only enough P gain to get
some control. Then I work on the feed forwards. If I tune up the
closed loop control first then the closed loop control covers up to
much of the error and it is harder to find the right values for the
feed forwards gains. The idea is to get the feed forwards to do all
the work as you say and use the closed loop control for non-
linearities, and changes in load.
The feed forward gains should be the inverse of the open loop transfer
function so once the feed forwards are accurately known it is possible
to calculate the closed loop gains that will provide the desired
response. I have formulas for calculating the closed loop gains in
terms of the feed forward gains so tuning the feed forward gains is a
big help in tuning the closed loop gains. This trick doesn't work in
reverse.
Peter Nachtwey

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.