Give tracking its own path
Keep feedback gain fixed. Change reference feedforward and compare target tracking with the separate disturbance response.
First, picture it
The normalized first-order plant has time constant 2 s and actual static gain K. The command is kₚ(βr−y)+Fr, with a proportional reference weight β and a reference feedforward gain F. This is a simple two-degree-of-freedom P controller, not a PI/PID implementation. A unit reference step starts at t=0; an additive plant-input disturbance d starts at 6 s. Initial output is zero, with exact sensing and no actuator limit.
What the model says
With K=1, kₚ=2, β=1 and F=0, the pre-disturbance limiting output is 2/3: P leaves a residual error. Record a prediction that the absolute error at 5 s will decrease, then change F to 1, the inverse of nominal static gain 1. The limiting output becomes 1, without changing the closed-loop pole −(1+Kkₚ)/2. This is static feedforward; it does not invert the plant dynamics or make tracking instantaneous.
2ẏ=−y+K(u+d), u=kₚ(βr−y)+Fr · Y/R=K(kₚβ+F)/(2s+1+Kkₚ), Y/D=K/(2s+1+Kkₚ)Keep F=1 and change actual K to 0.7; do not recalibrate the nominal feedforward. The pre-disturbance limit becomes 2.1/2.4=0.875. Feedback softens the mismatch but does not remove it here. Lowering β also changes steady tracking because this bench has no integrator. In a stable unsaturated 2DOF PI loop, integral action can restore constant-reference accuracy while β shapes the transient. Saturation would invalidate the linear path separation shown here; test it in the motor lab.
Two paths before a full PID
The normalized first-order plant has time constant 2 s and actual static gain K. The command is kₚ(βr−y)+Fr, with a proportional reference weight β and a reference feedforward gain F. This is a simple two-degree-of-freedom P controller, not a PI/PID implementation. A unit reference step starts at t=0; an additive plant-input disturbance d starts at 6 s. Initial output is zero, with exact sensing and no actuator limit.
Predict a nominal correction
With K=1, kₚ=2, β=1 and F=0, the pre-disturbance limiting output is 2/3: P leaves a residual error. Record a prediction that the absolute error at 5 s will decrease, then change F to 1, the inverse of nominal static gain 1. The limiting output becomes 1, without changing the closed-loop pole −(1+Kkₚ)/2. This is static feedforward; it does not invert the plant dynamics or make tracking instantaneous.
Compare an increment, not two totals
Substitution gives denominator 2s+1+Kkₚ in both paths. β and F occur only in the reference numerator. Therefore the separate disturbance-induced increment is unchanged when only β or F changes. At the default K=1, kₚ=2, d=−0.5, its limit is −1/6. The total output also contains the reference transient, so compare the dashed disturbance component rather than subtracting unmatched timestamps.
Model mismatch and missing integral action
Keep F=1 and change actual K to 0.7; do not recalibrate the nominal feedforward. The pre-disturbance limit becomes 2.1/2.4=0.875. Feedback softens the mismatch but does not remove it here. Lowering β also changes steady tracking because this bench has no integrator. In a stable unsaturated 2DOF PI loop, integral action can restore constant-reference accuracy while β shapes the transient. Saturation would invalidate the linear path separation shown here; test it in the motor lab.
Make it concrete
Keep feedback gain fixed. Change reference feedforward and compare target tracking with the separate disturbance response.
Open this experimentKeep F=1 and change actual K to 0.7; do not recalibrate the nominal feedforward. The pre-disturbance limit becomes 2.1/2.4=0.875. Feedback softens the mismatch but does not remove it here. Lowering β also changes steady tracking because this bench has no integrator. In a stable unsaturated 2DOF PI loop, integral action can restore constant-reference accuracy while β shapes the transient. Saturation would invalidate the linear path separation shown here; test it in the motor lab.
Check your understanding+
Keep feedback gain fixed. Change reference feedforward and compare target tracking with the separate disturbance response.
Substitution gives denominator 2s+1+Kkₚ in both paths. β and F occur only in the reference numerator. Therefore the separate disturbance-induced increment is unchanged when only β or F changes. At the default K=1, kₚ=2, d=−0.5, its limit is −1/6. The total output also contains the reference transient, so compare the dashed disturbance component rather than subtracting unmatched timestamps.