Active disturbance rejection control

Active disturbance rejection control (or ADRC, also known as automatic disturbance rejection control[1]) is a model-free control technique used for designing controllers for systems with unknown dynamics and external disturbances.[2] This approach only necessitates an estimated representation of the system's behavior to design controllers that effectively counteract disturbances without causing any overshooting.

ADRC has been successfully used as an alternative to PID control in many applications, such as the control of permanent magnet synchronous motors,[3] thermal power plants[4] and robotics.[5] In particular, the precise control of brushless motors for joint motion is vital in high-speed industrial robot applications. However, flexible robot structures can introduce unwanted vibrations, challenging PID controllers. ADRC offers a solution by real-time disturbance estimation and compensation, without needing a detailed model.[6]

## Disturbance rejection

[edit]

To achieve robustness, ADRC is based on extension of the system model with an additional and fictitious state variable representing everything that the user does not include in the mathematical description of the base system to be controlled. This virtual state (sum of unknown part of model dynamics and external disturbances, usually denoted as a "total disturbance"[2] or "generalized disturbance"[7]) is estimated online with an extended state observer and used in the control signal in order to decouple the system from the actual perturbation acting on the plant. This disturbance rejection feature allows users to treat the considered system with a simpler model insofar as the negative effects of modeling uncertainty are compensated in real time. As a result, the operator does not need a precise analytical description of the base system; one can model the unknown parts of the dynamics as internal disturbances in the base system.

## Control architecture

[edit]

The ADRC consists of three main components: a tracking differentiator, a non-linear state error feedback and an extended state observer.[2][8] The global convergence of ADRC has been proved for a class of general multiple-input multiple-output systems.[9][10]

The following architecture is known as the output-form structure of ADRC:

There also exists a special form of ADRC, known as error-form structure, which is used for comparing the ADRC with classical controllers such as PID.[11]

### Tracking differentiator

[edit]

The primary objective of the tracking differentiator is to follow the transient profile of the reference signal, addressing the issue of sudden changes in the set point that occur in the conventional PID controller.[2] Moreover, the tracking differentiator also mitigates the possible noise amplification that affects the derivative term of the PID controller by using numerical integration instead of numerical differentiation.[8]

### Extended state observer

[edit]

An extended state observer (ESO) keeps track of the system's states as well as external disturbances and unknown model's perturbations. As a result, ADRC does not rely on any particular mathematical model of disturbance. Nonlinear ESO (NESO) is a subtype of general ESO that uses a nonlinear discontinuous function of the output estimate error. NESO are comparable to sliding mode observers in that both use a nonlinear function of output estimation error (rather than a linear function as in linear, high gain, and extended observers). A sliding mode observer's discontinuity is at the origin, but the NESO's discontinuity is at a preset error threshold.

### Nonlinear state error feedback

[edit]

The intuitiveness of PID control can be attributed to the simplicity of its error feedback. ADRC extends the PID by employing a nonlinear state error feedback, and because of this, seminal works referred to ADRC as nonlinear PID.[12] Weighted state errors can also be used as feedback in a linearization system.

## References

[edit]

1. ^ Su, Yu Xin; Zheng, Chun Hong; Duan, Bao Yan (2005-05-31). "Automatic disturbances rejection controller for precise motion control of permanent-magnet synchronous motors". IEEE Transactions on Industrial Electronics. 52 (3). IEEE: 814–823. doi:10.1109/TIE.2005.847583.
2. ^ a b c d Han, Jingqing (2009). "From PID to Active Disturbance Rejection Control". IEEE Transactions on Industrial Electronics. 56 (3): 900–906. doi:10.1109/TIE.2008.2011621. ISSN 1557-9948. S2CID 206698917.
3. ^ Sira-Ramirez, Hebertt; Linares-Flores, Jesus; Garcia-Rodriguez, Carlos; Contreras-Ordaz, Marco Antonio (2014). "On the Control of the Permanent Magnet Synchronous Motor: An Active Disturbance Rejection Control Approach". IEEE Transactions on Control Systems Technology. 22 (5): 2056–2063. doi:10.1109/TCST.2014.2298238. ISSN 1063-6536. S2CID 1000762.
4. ^ Wu, Zhenlong; Gao, Zhiqiang; Li, Donghai; Chen, YangQuan; Liu, Yanhong (2021). "On transitioning from PID to ADRC in thermal power plants". Control Theory and Technology. 19 (1): 3–18. doi:10.1007/s11768-021-00032-4. ISSN 2095-6983. S2CID 233709932.
5. ^ Fareh, Raouf; Khadraoui, Sofiane; Abdallah, Mahmoud Y.; Baziyad, Mohammed; Bettayeb, Maamar (2021). "Active disturbance rejection control for robotic systems: A review". Mechatronics. 80: 102671. doi:10.1016/j.mechatronics.2021.102671. S2CID 244183528.
6. ^ "Beyond PID: Exploring Alternative Control Strategies for Field-Oriented Controllers". www.mathworks.com. Retrieved 2023-08-19.
7. ^ Herbst, Gernot (2015). "Practical active disturbance rejection control: Bumpless transfer, rate limitation, and incremental algorithm". IEEE Transactions on Industrial Electronics. 63 (3). IEEE: 1754–1762.
8. ^ a b Dong Sun (2007). "Comments on Active Disturbance Rejection Control". IEEE Transactions on Industrial Electronics. 54 (6): 3428–3429. doi:10.1109/TIE.2007.909047. ISSN 0278-0046.
9. ^ Guo, Bao-Zhu; Zhao, Zhi-Liang (2011). "On convergence of tracking differentiator". International Journal of Control. 84 (4): 693–701. Bibcode:2011IJC....84..693G. doi:10.1080/00207179.2011.569954. ISSN 0020-7179. S2CID 31030254.
10. ^ Guo, Bao-Zhu; Zhao, Zhi-Liang (2013). "On Convergence of the Nonlinear Active Disturbance Rejection Control for MIMO Systems". SIAM Journal on Control and Optimization. 51 (2): 1727–1757. doi:10.1137/110856824. ISSN 0363-0129. S2CID 5740371.
11. ^ Madonski, Rafal; Herbst, Gernot; Stankovic, Momir (2023). "ADRC in output and error form: connection, equivalence, performance". Control Theory and Technology. 21 (1): 56–71. arXiv:2211.07427. doi:10.1007/s11768-023-00129-y. ISSN 2095-6983. S2CID 253510300.
12. ^ Han, J. (1994). "Nonlinear PID controller". Acta Automatica Sinica. 20 (4): 487–490.

## External links

[edit]

* Active disturbance rejection control implementation in MATLAB.