Feedforward

A simple feedforward implementation for applying velocity, acceleration, jerk and snap based compensations.

The Feedforward processing block can be found in the ‘Templates’ feature in the PMP installer.

Most control systems combine feedforward and feedback for the best performance. The feedforward controller is used to compensate for all known behavior, and the feedback controller is used to compensate for the remaining modeling errors and external disturbances.

The main difference between feedforward control and feedback control can be described as follows:

  • A feedforward controller uses system knowledge to predict the control output needed to follow the reference trajectory. It responds to instant changes in reference trajectory, so it is very fast. However, it cannot compensate for modeling errors or unknown external disturbances.

  • A feedback controller determines the error between the desired position (reference trajectory) and the measured position, and calculates a control output to reduce this error. A feedback controller is slower than a feedforward controller because it can only respond to errors made in the past. However, because the feedback controller uses measurement data, it can compensate for unmodeled plant behavior and external disturbances.

Description

The implementation of the processing block is shown in Implementation of the feedforward processing block.

feedforward implementation

Implementation of the feedforward processing block

Each position derivative (i.e. velocity, acceleration, jerk, snap) has its own compensation gain. An extra compensation gain for Coulomb friction is available, which only uses the direction of the movement via a sign function.

The behavior of the sign output is described in the table below.

Sign behavior

DemandVelocity

Sign output

>0

1

0

0

<0

-1

Integration

The integration of this processing block in the software platform is shown in Integration of the feedforward processing block in the system.

Since feedforward control is always combined with feedback control, the two independent control outputs must be summed before passing it to the plant. When using one of the predefined feedback processing blocks, this summation is done inside the feedback controller to avoid the need for an extra summation block outside the two processing blocks. It also causes the feedforward control output to be included in the control output saturation.

feedforward integration

Integration of the feedforward processing block in the system

Interface

Inputs

Inputs

Name

Description

DemandVelocity

Velocity of the reference trajectory.

DemandAcceleration

Acceleration of the reference trajectory.

DemandJerk

Jerk of the reference trajectory.

DemandSnap

Snap (i.e., time derivative of jerk) of the reference trajectory.

Read only signals

Read only signals

Name

Description

KfcOutput

Coulomb friction compensation output.

KfvOutput

Velocity compensation output.

KfaOutput

Acceleration compensation output.

KfjOutput

Jerk compensation output.

KfsOutput

Snap compensation output.

FeedforwardOutput

Total feedforward output.

Read-write signals

Read-write signals

Name

Description

Kfc

Coulomb friction compensation gain.

Kfv

Velocity friction compensation gain.

Kfa

Acceleration compensation gain.

Kfj

Jerk compensation gain.

Kfs

Snap compensation gain.