A servo control loop uses sensor feedback to determine whether the system’s actual state (position, velocity, or torque) matches the commanded state. But sensors feedback isn’t perfect — even high-quality encoders and sensors can introduce noise, phase lag, and other errors in measurement. One way to improve the feedback of a servo control system is to augment the sensor input with input from an observer.
An observer is an algorithm that combines feedback from the sensor with other information about the control system to produce observed feedback signals that are more accurate and more reliable than the basic feedback signals.
A common observer model used in motion control is the Luenberger Observer, which uses models of the plant and the sensor in parallel with the physical plant and sensor.
In control theory, the plant is the system that takes an input and produces an output. In servo systems, this is typically a servo motor driving a mechanical transmission component such as an actuator.
The output from the plant and sensor model is the observed output. But even the observed output contains error, because the models are not perfect representations of the actual plant and sensor. So the error signal produced by the observed output is routed back to the model through the observer compensator — which is typically a common PI or PID controller — to further reduce the error in the observed signal. This way, even small errors in the model are corrected, and the observed state of the plant becomes a good representation of the actual plant. Now, the observed state can be used to close the control loop of the actual plant.
The observer model can be created with lookup tables (comparing known input values with known output behaviors) or with an algorithm describing inputs versus outputs. During auto-tuning, the observer makes corrections to the model, and during normal, closed-loop operation, the observer uses the model to make corrections to the control loop.
An observer can be used to produce more accurate positioning, velocity control, acceleration control, or even to compensate for jerk (the abrupt change in acceleration often caused by friction or stiction in a system). Similarly, load observers can estimate the mechanical load on the motor — including disturbances such as sudden torque or inertia changes — and compensate for that load. This allows the control loop to treat the motor as if it’s unloaded, making motor control much easier for the servo system. A load observer can also compensate for changes in behavior due to mechanical wear over time, so performance remains consistent without re-tuning the system.
Other control methods, such as PIV control or feedforward control, can also improve the performance of servo systems, but observer control is often used when high-accuracy control is needed despite widely varying loads, or when extremely fast settling times are required.
Feature image credit: Parker