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.
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.
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.
Interface¶
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. |