Project 06/2005
Danaher
Motion
72 Rev
E
M-SS-005-03l
In many cases, 100% feed-forward is not acceptable. In these cases, you
can reduce the feed-forward to reduce overshoot. The larger the feed-
forward gain, the greater reduction is seen steady-state following error. Most
systems can tolerate the overshoot generated by feed-forward gains of 50%.
Acceleration feed-forward
allows the use of 100% velocity feed-forward
with no overshoot. Acceleration feed-forward works by adding current
equivalent to the torque required to accelerate a fixed load. Acceleration
feed-forward effectively cancels the torque generated by the inertia changing
speed. This is why this technique is sometimes called inertial feed-forward.
Acceleration feed-forward works only when the inertia load is proportional to
the axis acceleration. It does not work with axes that are coupled, such as
non-rectangular robots. It also does not work well when the axis inertia
varies. However, for most applications, acceleration feed-forward reduces
overshoot and following-error significantly.
To use acceleration feed-forward, use
MOTIONLINK
, or set the acceleration
feed-forward scaling constant from the MC. Acceleration feedforward is IDN
348. For an axis A1, the correct line of code is:
WriteIDNValue Drive = A1.DriveAddress IDN=348 Value = 1000
The valid range for this value is 0 to 2000. The purpose of the acceleration
feed forward is to zero the following error during constant acceleration. The
automatic design (user gain = 1000) gives good results. Fine-tune this value
by applying trapezoidal trajectory and find the user gain that yields the
minimum following error during the acceleration and deceleration.
<axis>.POSITIONERRORSETTLE
, defines what level of position error is
considered close enough to zero to be settled. For example, you can use:
A1.PositionErrorSettle = 0.01
or you can use the short form:
A1.PESettle = 0.01
to specify that the position error must be below 0.01 units to be considered
settled.
POSITIONERRORSETTLE
is used when the motion controller must
determine when an axis is close enough to the final end point of a move to
be considered settled. This is commonly used between moves to ensure that
the response to the first move is complete before moving to the second. The
MC does this automatically through
STARTTYPE
when executing
MOVE
commands as is discussed in the Single Axis Motion section of this manual.
You must set TSETTLE>0 or
POSITIONERRORSETTLE
is ignored.
TIMESETTLE
(or
TSETTLE
) defines the amount of time the position error
must be lower than the value of
PESETTLE
before the move is considered
settled. After the move profile is complete and the position error is less than
POSTIONERRORSETTLE
, the MC waits
TIMESETTLE
milliseconds for
settling. If the position error goes above
POSITIONERRORSETTLE
during
that time, the timer resets.
ISSETTLED
is a logical (TRUE or FALSE) property that indicates if the axis
is settled. To be settled, the motion profile must be complete and the position
error must be below
POSITIONERRORSETTLE
for a period of
TIMESETTLE
milliseconds.