Improve PID Design in Presence of Unmeasured Disturbance
Unmeasured (exogenous) disturbances can significantly degrade the performance of a PID controller. While you design PID controllers to maintain desired output in the presence of small disturbances, large or persistent disturbances such as load changes, environmental fluctuations, or sensor noise can overwhelm the ability of the controller to compensate effectively, especially during transient time.
This topic provides an overview of strategies you can use to enhance controller performance under disturbances, including disturbance compensators, active disturbance rejection control (ADRC), or model predictive control (MPC). These methods either estimate and cancel the disturbance or optimize control actions to maintain performance despite external disruptions.
How Disturbances Affect PID Performance
These disturbances can lead to:
Overshoot and Oscillations — Sudden disturbances can cause the output to deviate significantly from the setpoint, resulting in overshoot or sustained oscillations.
Slow Recovery — The controller may take a long time to bring the system back to the desired state, especially if the disturbance is not well-rejected.
Trade-offs in Tuning — Tuning a PID for fast tracking often reduces its ability to reject disturbances, and vice versa. This trade-off becomes more pronounced in systems with frequent or large disturbances.
Overview of Techniques
Use this table to pick an approach based on your plant knowledge, constraints, and tolerance for control structure changes.
| Solutions | How it Works | Advantages | Risks | When to Use | Typical Applications |
|---|---|---|---|---|---|
| Estimates and cancels total disturbances (internal uncertainty + external disturbance) using an Extended State Observer (ESO). | Robust to model uncertainty, minimal plant modeling needed, adaptive to disturbances. | Need to tune ESO gains, observer noise sensitivity, stability analysis less standard. | Model uncertainty is high and real-time disturbance rejection is critical. | Motion control, robotics, electromechanical drives. | |
| Retune PID Gains to Tradeoff Tracking for Disturbance Rejection | Retunes PID gains to favor disturbance rejection over tracking. | Simple, easy model-based tuning. | Requires accurate plant model. Tracking performance may be worse | You can tradeoff tracking performance for better disturbance rejection. | Single-loop plants. |
| Augment with Disturbance Compensation Techniques | Observer-based estimates of disturbance and subtracts them from control input. | Simple concept, improves tracking | Requires accurate disturbance model estimation, may amplify noise with high observer bandwidth | When model uncertainty is high and real-time disturbance rejection is critical. | Motion control, robotics, electromechanical drives. |
| Replace with Sliding Mode Controller | Drives system state to a “sliding surface” and maintains motion on it using discontinuous control law. | Strong robustness to matched uncertainties and disturbances, simple design. | Chattering (high-frequency switching), may excite unmodeled dynamics. | When robustness to uncertainty is key and actuators can tolerate fast switching. | Motor drives, aerospace, uncertain nonlinear systems. |
| Replace with Model Reference Adaptive Controller | Adjusts controller parameters online so system output tracks a reference model. | Guarantees asymptotic tracking under assumptions, systematic Lyapunov-based design. | Requires persistency of excitation, risk of instability if adaptation is too aggressive. | When system dynamics vary with operating conditions and a reference model is available. | Aerospace, robotics, systems with changing dynamics. |
| Replace with Model Predictive Controller | Predicts outputs with disturbance/noise models and solves QP to optimize control subject to constraints. | Handles constraints explicitly; multivariable; band‑limited disturbance shaping. | Requires models and QP solver; more complex; computational cost. | When constraints and multivariable interactions are critical. | Process control, constrained systems, MIMO with delays. |
Replace with Active Disturbance Rejection Control
Active disturbance rejection control (ADRC) is a model-free control technique that is useful for designing controllers for plants with unknown dynamics and internal and external disturbances. This algorithm requires only an approximation of the plant as a single or double integrator to design controllers that provide robust disturbance rejection with no overshoot. To implement ADRC, you can use the Active Disturbance Rejection Control block from Simulink® Control Design™ software. In most cases, ADRC may be sufficient for improving disturbance rejection and one of the first things you can try for improving your design.
When to use — Modeling is difficult and you can provide a first-order () or second-order () approximation of the plant, where b0 critical gain and f(t) is the total disturbance. ADRC particularly effective in scenarios where the system is subject to unknown internal dynamics or external disturbances. It does not rely on a detailed model but instead uses an extended state observer to estimate and reject disturbances in real time. However, if you want a more flexible implementation of ESO, you can augment your PID controller with techniques described in the next section.
How to use — The Active Disturbance Rejection Control block also allows you to implement the algorithm by tuning only a few parameters. Typically, you run an open-loop step response of the plant to get an approximation of the plant model and critical gain. You can then directly specify controller and observer bandwidths to tune the controller.
Architecture — This figure shows a typical way of replacing PID with ADRC.

Examples
Additional Resources
Retune PID Gains to Tradeoff Tracking for Disturbance Rejection
pidtune Function and PID Tuner App
PID design using pidtune or PID
Tuner is a model-based tuning method you can use to retune PID controller with a
focus on disturbance rejection.
When to use — You can trade-off tracking performance to improve disturbance rejection and a plant model is available.
How to use — Use the
pidtuneOptionsor PID Tuner app options to set the design focus to disturbance rejection before performing controller tuning.Examples
Additional Resources
systune Function and Control System Tuner App
PID tuning with systune or Control System Designer is a model-based and optimization-based tuning method you
can use to retune PID controller gains based on specified performance requirements.
When to use — You want to retune controller to attenuate disturbances based on how they affect the signal at a particular output location or in a frequency band.
How to use — Use tuning goals such as time-domain (Step Rejection Goal) or frequency-domain (Disturbance Rejection Goal) goals to specify disturbance rejection performance requirements of your control system.
Examples
Additional Resources
Augment with Disturbance Compensation Techniques
Using the methods described in this section, you can modify the nominal controller actions to account for and reject external disturbances.
Extended State Observer
An extended state observer (ESO) is a state estimation technique that allows you to estimate the states and disturbances of a plant based on the its inputs and outputs. The algorithm models disturbances as an extended state of the plant to perform the estimation.
When to use — You need to estimate both the internal states and unknown disturbances of a system using only input-output data. ESO is useful when you do not have a full model but you can provide a physical representation or an approximation of the plant in the following form. Based on the plant inputs u and measured outputs ym, the Extended State Observer block returns estimated states () and disturbances (). Using these estimated states and disturbances, you can implement state feedback or disturbance compensation control techniques. The accuracy of estimation will depend on the accuracy of the plant approximation.
How to use — You can use the estimated disturbances from the Extended State Observer block along with your PID controller and modify the actions of nominal controller to compensate for disturbances and improve PID performance. Tune ESO using observer bandwidth and pole spacing to adjust estimation speed and stability.
Architecture — This figure shows a typical way of implementing ESO to compensate for plant input disturbances.

Examples
Additional Resources
Disturbance Compensator
The Disturbance Compensator block extends the implementation of ESO to compute control actions that account for estimated disturbances in you system. To compensate for disturbances, the Disturbance Compensator block uses an ESO to estimate total disturbances in the model and returns the modified controller actions you can use as plant input.
When to use — You have a nominal controller and want to enhance its disturbance rejection performance. This technique builds on ESO by estimating disturbances and modifying the controller output to counteract them. It is ideal for systems where disturbances degrade control performance and where you prefer to retain your existing control structure while adding a compensation layer.
How to use — You can use the Disturbance Compensator block to modify control actions of a PID controller to reject and compensate for disturbances in your model as shown in the following figure. Tune the observer and compensation gain matrices using the bandwidth and spacing parameters to effectively reject disturbances.
Architecture — This figure shows a typical way of implementing Disturbance Compensator to compensate for plant input disturbances.

Examples
Additional Resources
Ultra Local Model
Ultra-local model (ULM) is an estimation technique that allows you to approximate a nonlinear plant as a single or double integrator system with an affine term that captures unknown dynamics and disturbances. The estimated model is valid only for a local operating point over a short period of time.
When to use — Modeling is difficult and you can approximate plant as a single or double integrator system at a local operating point over a short period of time. This is useful for nonlinear systems where only local behavior matters and the dynamics can be approximated as a first-order or second-order integrator with an affine disturbance term. ULM is well-suited for applications where the system operates around a local point and disturbances vary over time. You can use both as a standalone estimator or integrate it with nominal PID controllers to enhance disturbance rejection. This technique is especially beneficial when you can provide a rough estimate of input gain and require real-time estimation of disturbances using input-output data over a short time window.
How to use — Use ULM estimate along with the PID controller to improve PID performance for the system with model uncertainties and external disturbances as shown in the following figure. Tune ULM using the input gain α, estimator sample time, and integration window size to balance responsiveness and noise robustness.

Examples
Additional Resources
Replace PID with Advanced Controllers
When you can change the existing structure of your model and want to implement advanced control strategies, you can use the following advanced controllers to provide performance and robustness in presence of nonlinearities or uncertain dynamics.
Sliding Mode Control
Sliding mode control (SMC) is a control technique where you define a sliding surface that the system state trajectory converges to and remains on. This sliding surface is designed such that it is insensitive to disturbances and uncertainties in the system. Once the system state trajectory is on the sliding surface, the controller uses a feedback control law to drive the system state trajectory to the desired state along the sliding surface.
For more information, see Sliding Mode Control. For examples, see Sliding Mode Control Design for a Robotic Manipulator and Stabilize Chua System Using Sliding Mode Controller.
Model Reference Adaptive Control
The Model Reference Adaptive Control block computes control actions to make an uncertain controlled system track the behavior of a given reference plant model. Using the direct and indirect MRAC techniques, you can estimate a model of the external disturbances and uncertainty in the system being controlled. The controller then uses this model to compensate for the disturbances and uncertainty when computing control actions.
For more information, see Model Reference Adaptive Control. For examples , see Indirect MRAC Control of Mass-Spring-Damper System and Indirect Model Reference Adaptive Control of First-Order System.
Model Predictive Control
A model predictive controller uses linear plant, disturbance, and noise models to estimate the controller state and predict future plant outputs. Using the predicted plant outputs, the controller solves a quadratic programming optimization problem to determine optimal manipulated variable adjustments. For more information, see MPC Controller (Model Predictive Control Toolbox), MPC Prediction Models (Model Predictive Control Toolbox), and Why Use MPC?. For examples, see Use MPC with Extended State Observer to Reject Unmeasured Output Disturbances (Model Predictive Control Toolbox).