ADRC Source Code Documentation and Implementation Guide

Resource Overview

Comprehensive technical documentation and source code analysis for Active Disturbance Rejection Control (ADRC) algorithms, including implementation details and practical applications.

Detailed Documentation

Active Disturbance Rejection Control (ADRC) has gained widespread adoption in industrial control systems as a model-independent control strategy. Its core principle involves real-time estimation and compensation of both internal and external disturbances through an Extended State Observer (ESO), exhibiting strong robustness and adaptability characteristics. In code implementation, ADRC typically requires careful parameter tuning of observer bandwidth to achieve optimal disturbance rejection performance.

The ADRC source code generally comprises three key modules: The Tracking Differentiator (TD) smooths reference signals to prevent overshoot caused by abrupt setpoint changes, implemented through discrete difference equations that approximate ideal differentiation. The Extended State Observer (ESO) dynamically estimates total system disturbances, including unmodeled dynamics and external interferences, using state-space equations that extend the system model with an additional disturbance state. The Nonlinear State Error Feedback (NLSEF) employs asymmetric gain structures through nonlinear functions like fal() to achieve rapid, overshoot-free regulation. Code implementation often features configurable nonlinear factors that affect dynamic response characteristics.

For learners studying ADRC source code, three critical implementation aspects require attention: First, the disturbance compensation coupling mechanism with controller output, typically implemented through summation operations in the control law. Second, the matching relationship between observer bandwidth and controller bandwidth, which determines estimation accuracy and system stability. Third, the impact of nonlinear factors in function arrangements on dynamic performance, where parameter tuning directly affects convergence speed. The parameter tuning section in source code is particularly valuable, often employing bandwidth parameterization methods to simplify adjustment processes through systematic bandwidth-to-parameter conversions.

Learners are advised to conduct comparative analysis with classical PID control, noting ADRC's unique disturbance isolation mechanism that significantly reduces dependence on precise system models. By modifying ESO order or nonlinear function types in the source code—such as switching between linear and nonlinear ESO implementations—one can deeply understand the algorithm's adaptability to different controlled objects. Practical code experimentation should include testing various disturbance scenarios to validate the controller's robustness.