control//feedback control//disturbance observer
A disturbance observer is an estimator placed inside a control loop that computes the force or torque the plant is receiving beyond what the controller commanded, from the mismatch between a nominal model and the measured motion, and subtracts it from the command; it is used in servo drives, robot joints and drones to cancel loads, friction and gusts before they build up into a position error. It treats every mismatch (an unknown payload, a worn bearing, wind, a modelling error) as one lumped push, and needs no idea of where it comes from.
A disturbance observer is an estimator placed inside a control loop that computes the force or torque the plant is receiving beyond what the controller commanded, from the mismatch between a nominal model and the measured motion, and subtracts it from the command; it is used in servo drives, robot joints and drones to cancel loads, friction and gusts before they build up into a position error. It treats every mismatch (an unknown payload, a worn bearing, wind, a modelling error) as one lumped push, and needs no idea of where it comes from.
For a mass driven by a force, the nominal model is m^y¨=u\hat m\ddot y=um^y¨=u. If the measured acceleration is larger or smaller than the command explains, the difference is the disturbance, and the observer keeps a filtered version of it:
d^=Q(s)(m^ y¨−u),u=uc−d^.\hat d=Q(s)\bigl(\hat m\,\ddot y-u\bigr),\qquad u=u_c-\hat d .d^=Q(s)(m^y¨−u),u=uc−d^.
Here ucu_cuc is the controller's command, d^\hat dd^ the estimated disturbance and QQQ a low-pass filter. Within the bandwidth of QQQ the plant behaves like the nominal mass whatever pushes on it, so the controller can be tuned for the model; above it the observer does nothing, which keeps measurement noise out of the command.
The filter is the whole design. A wider QQQ cancels faster disturbances and passes more noise from the acceleration (itself usually a derivative of a velocity or an encoder count), and it is bounded by the same loop delay that bounds any loop: the error moves between disturbance rejection and noise, it does not disappear.
It is faster than integral action at the same job. An integrator also cancels a constant load, but only after an error has appeared and been accumulated; the observer sees the load in the acceleration and cancels it within the bandwidth of QQQ, before the position moves (integral action).
It is a close and practical relative of adaptation. An adaptive controller identifies parameters and redesigns; the observer identifies nothing and just subtracts, which makes it simpler to certify, and L1 adaptive control in its fast-adaptation limit behaves much like one. A common architecture flies a robust base controller with an observer or adaptive term added on top.
The estimation-side twin is state augmentation: a Kalman filter that carries the disturbance as an extra state estimates the same quantity with a statistical model instead of a filter.