On Mon, Feb 14, 2011 at 11:44 AM, dave <[email protected]> wrote:

> P = gain or stiffness
> I = integral ... shoves the axis toward equalibrium
> D = differential .. pushes harder as the following error gets larger
> FF1 = velocity feedforward
> FF2 = accel feedforward
>

I beg to differ about the meaning of the D term.

Here's the basics of the PID control as explained by a control theory noobie
like myself; apologies to those on the list to whom this stuff is bloody
obvious---please just disregard the rest.

The PID controller is a useful generalization of a general control system
useful in many areas: it could be a temperature controller that uses a
heater to warm up a tank, or servo that drives a motor to move a spindle on
a linear track. Traditionally, such system is called 'plant'. The goal of
the controller is to use the stimulus (heater current or servo voltage) to
move the system from whatever current state to the desired value, as
measured by  a feedback value: temperature sensor in the tank, or the
position sensor on the linear stage, or the resolver on the servo drive. The
variable that the controller is trying to affect is the error, or difference
between the actual and desired position of the 'plant'.

The P (proportional) term is the one that pushes harder the farther the
system is from the desired point. Since it's proportional to the error term,
it tries to zero out the error,  but  it can overshoot and whipsaw leading
to instability and oscillation around the desired position. If the system
starts from a large error 'e', the 'P*e' term is large and pushes the plant
hard, causing it to acquire significant speed when travelling towards the
desired position---so by the time it arrives at zero error, it has so much
inertia (mechanical or thermal or whatever the actual system is controlling)
that it keeps going and overshoots the zero. Eventually it will build up the
opposite large P*e term, which is likely to similarly overshoot on the
return trip---leading to oscillations.

The D (differential) term is proportional to the derivative of the error
term. In the previous scenario, when the P*e term drives the plant to move
fast, the D * (d e / d t) term becomes large, and it is used with the minus
sign so it counteracts the large values of the  P*e term. If the 'plant' was
a mechanical system consisting of  mass on a spring, the D term would
correspond to friction that attenuates the oscillations of the spring.

The I term is useful because it sweeps up the residual error if there's
some. If the P and D terms do not cause the error to go to zero, i..e
there's some sort of offset or bias that keeps the plant off the desired
value, the integral of the value of e over time grows, and when multiplied
by the I parameter (I * integral_0^T{ e dt }, provides an additional
restoring term that will drive the error to zero. Of course when the plant
hovers around the desired point, and is taking the random positive and
negative values, the integral of the error is zero so the I term drops out.

FF0/1/2 do not have a simple mechanical/mathematical explanation, but are
just useful shortcuts that speed up the convergence of the plant. In any
case, most tuning algorithms suggest just slight tuning of the FF values,
and even then at the end of the process, after tuning P/I/D.
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to