ADRC Controller: Selecting ADRC or Weighted PID Control

Patricia Callen2 min read
Other ManufacturerPID ControlTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

An ADRC implementation has been released in the GitHub repository summit00/adrc_controller. The available evidence identifies its defining feature as an internal state observer that estimates unknown disturbance. It does not provide equations, tuning parameters, supported platforms, test results, or implementation details, so assess equivalence and suitability from the controller structure rather than the ADRC label alone.

ADRC and PID Structural Difference

The stated structural distinction is that the PID path accepts control error and produces a control output, while ADRC also runs a state observer to estimate unknown disturbance. This observer creates a place to incorporate known plant dynamics, but the evidence does not confirm that this implementation includes such a plant model.

Decision point Evidence-supported finding Required verification
Control structure ADRC includes a state observer for disturbance estimation. Inspect the implementation to identify observer states and feedback paths.
Plant knowledge Plant dynamics can be modeled inside an ADRC observer. Determine whether this repository actually embeds any plant model.
PID equivalence A cited analysis claims equivalence under a particular, unnamed tuning method. Derive the implemented transfer functions and compare them with filtered, setpoint-weighted PID.

When ADRC May Reduce to PID

The evidence reports an analysis in which a normally configured ADRC becomes equivalent to PID combined with an error filter and setpoint weighting. The equivalence is conditional: it applies to a particular tuning method that the discussion claims the repository uses, but neither the method nor the repository equations are supplied here. Do not generalize the claim to every disturbance-observer controller.

If the observer embeds additional plant dynamics or other system knowledge, the architecture may no longer match that reduced PID representation. Establish this by algebraic reduction or matched closed-loop tests; a block-diagram difference alone does not prove different input-output behavior.

Repository Evaluation Procedure

  1. Identify the controller error path, observer states, disturbance estimate, and final control-output equation.
  2. Record the implemented tuning relationships without assuming an undocumented tuning method.
  3. Check whether the observer contains explicit plant dynamics beyond disturbance estimation.
  4. Derive the resulting input-output form and compare it with PID plus an error filter and setpoint weighting.
  5. Verify both implementations under identical reference and disturbance inputs. Compare control output, tracking response, and disturbance rejection before concluding that either structure is distinct or equivalent.

The evidence contains no benchmark data, stability limits, sample-time requirements, or deployment constraints. Those items remain acceptance-test inputs rather than confirmed properties of the released controller.

FAQ

How is this ADRC controller different from PID?

Its stated difference is an internal state observer that estimates unknown disturbance. Whether that produces behavior unavailable from a filtered, setpoint-weighted PID depends on the implemented equations and tuning.

Can ADRC be equivalent to a PID controller?

Yes, the supplied evidence reports equivalence to PID plus an error filter and setpoint weighting under a particular tuning method. The method is not identified here, so verify the repository algebra before applying that conclusion.

What should I check before using the released ADRC controller?

Inspect the observer model, tuning relationships, disturbance-estimate feedback, and output equation. Then compare it with a filtered, setpoint-weighted PID under identical reference and disturbance tests.

Back to blog