Tune PID Controller to Balance Tracking and Disturbance Rejection Performance

This example shows how to tune a PID controller to reduce overshoot in reference tracking or to improve rejection of a disturbance at the plant input. Using the PID Tuner, the example illustrates the trade-off between reference tracking and disturbance rejection performance.

  1. Load a Simulink® model that contains a PID Controller block.


    The plant has poles at s = –1, s = –0.2, and s = –0.05. The model also includes a reference signal and a step disturbance a the plant input.

    Setpoint tracking is the response at y to the reference signal, r. Disturbance rejection is a measure of the suppression at y of the injected disturbance, d.

  2. Double-click the PID Controller block to open the Block Parameters dialog box.

  3. Click Tune to open the PID Tuner, which designs an initial controller for the plant.

    The initial controller design has some overshoot in the reference tracking response.

  4. Right-click in the plot area, and select Characteristics > Peak Response. A blue dot appears at the point of maximum overshoot. Click the blue dot to display peak response data in a tool tip.

    The tool tip shows that the overshoot is 8.45%. If this overshoot is too much for your application, you can reduce it using the Transient behavior slider.

  5. Move the Transient behavior slider to the right until the overshoot is less than 0.2%.

    Increasing controller robustness also reduces overshoot, so moving the Transient behavior slider to the right improves this measure of controller performance. However, for a given controller bandwidth (or response time), there is a trade-off between reducing reference tracking overshoot and optimizing disturbance rejection.

  6. Examine the effect of the overshoot reduction on the disturbance rejection performance. Click Add Plot. In the Step section of the Add Plot menu, select Input disturbance rejection. The disturbance rejection response appears in a new figure.

      Tip   Use the options in the View tab to change how PID Tuner displays multiple plots.

  7. Right-click in the plot area, and select Characteristics > Settling Time. Click the blue dot to display the settling time tool tip.

    The current controller design minimizes reference tracking overshoot. However, it responds sluggishly to a disturbance at the plant input, taking over two minutes to settle. You can use the Transient behavior slider to make the disturbance rejection more aggressive without changing the controller bandwidth.

  8. Move the Transient behavior slider to the left until the disturbance response settles in under 60 seconds.

  9. Examine the Reference tracking plot to see the effect of more aggressive transient behavior on the reference tracking overshoot.

    Optimizing the disturbance rejection response for the given bandwidth increases the reference tracking overshoot to 12.6%.

    The PID Tuner selects an initial controller design that balances this trade-off. The initial controller design has less reference tracking overshoot than the design optimized for disturbance rejection. Likewise, it has somewhat faster disturbance rejection than the design optimized to reduce overshoot. You can use the Transient behavior slider to adjust this balance as needed to suit your application.

    To obtain independent control over reference tracking and disturbance rejection, you can use a two-degree-of-freedom controller (PID Controller (2DOF) block) instead of a single degree-of-freedom controller.

Related Examples

Was this topic helpful?