这是用户在 2024-10-26 22:19 为 https://ar5iv.labs.arxiv.org/html/2112.01614?_immersive_translate_auto_translate=1 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

Active Disturbance Rejection Control (ADRC) Toolbox
for MATLAB/Simulink
MATLAB/Simulink 主动扰动抑制控制工具箱

Krzysztof Łakomy 克日什托夫·拉科米 krzysztof.lakomy92@gmail.com Wojciech Giernacki 沃伊切赫·吉尔纳茨基 wojciech.giernacki@put.poznan.pl Jacek Michalski 雅切克·米哈尔斯基 jacek.michalski@put.poznan.pl Rafal Madonski 拉法尔·马东斯基 rafal.madonski@jnu.edu.cn rafal.madonski@gmail.com Institute of Robotics and Machine Intelligence, Faculty of Control, Robotics and Electrical Engineering, Poznan University of Technology, Piotrowo 3a, 60-965 Poznan, Poland Energy and Electricity Research Center, Jinan University, 519070 Zhuhai, P. R. China
机器人与机器智能研究所,控制、机器人与电气工程学院,波兹南工业大学,皮奥托沃 3a,60-965 波兹南,波兰 能源与电力研究中心,暨南大学,519070 珠海,中国
Abstract 摘要

In this study, an active disturbance rejection control (ADRC) toolbox for MATLAB/Simulink is introduced. Although ADRC has already been established as a powerful robust control framework with successful industrial implementations and strong theoretical foundations, a comprehensive tool for computer-aided design of ADRC has not been developed until now. The proposed open-source ADRC Toolbox is a response to the growing need in the scientific community and the control industry for a straightforward software application of the ADRC methodology. Its main purpose is to fill the gap between the current theories and applications of ADRC and to provide an easy-to-use solution for users in various control fields who want to employ the ADRC scheme in their applications. The ADRC Toolbox contains a single, general-purpose, drag-and-drop function block that allows the synthesis of a predefined ADRC-based strategy with minimal design effort. Additionally, its open structure allows creation of custom control solutions. The efficacy of the ADRC Toolbox is validated through both simulations and hardware experiments, which were conducted using a variety of problems known in the motion, process, and power control areas111The contents of this paper refer to version 1.1.3 of the ADRC Toolbox; the current version and the repository of previous releases are available at https://www.mathworks.com/matlabcentral/fileexchange/102249-active-disturbance-rejection-control-adrc-toolbox.
在本研究中,介绍了一个适用于 MATLAB/Simulink 的扩张状态观测器(ADRC)工具箱。尽管 ADRC 已经确立为一个拥有成功工业应用和强大理论基础的强大鲁棒控制框架,但直到目前,尚未开发出用于计算机辅助 ADRC 设计的综合工具。 所提出的开源 ADRC 工具箱应运而生,旨在满足科研界和控制工业中对 ADRC 方法直观软件应用日益增长的需求。其主要目标是弥合当前 ADRC 理论与应用之间的鸿沟,并为各控制领域的用户提供一个易于使用的解决方案,以便他们在应用中采用 ADRC 方案。 ADRC 工具箱包含一个通用的拖放功能模块,能够以最小设计工作量实现预定义的 ADRC 策略合成。此外,其开放结构便于创建定制控制解决方案。通过在运动、过程和电力控制领域内已知问题的多种模拟和硬件实验,ADRC 工具箱的有效性得到了验证。

keywords:
active disturbance rejection control (ADRC) , control system design , MATLAB/Simulink toolbox , robust control , computer-aided design
关键词:主动抗扰控制(ADRC)、控制系统设计、MATLAB/Simulink 工具箱、鲁棒控制、计算机辅助设计
journal: arXiv †期刊: arXiv

1 Introduction 1 引言

With the development of modern control techniques, new reliable tools for rapid prototyping are being developed. The intensive expansion of the MATLAB/Simulink222MATLAB and Simulink are registered trademarks of MathWorks, Inc. software environment over the past decade in both academia and industry strongly supports the current trend of using high-level programming for designing, analysing, and applying control systems. By analysing the market and scientific literature, one can find various software toolboxes that support the synthesis of control systems, with emphasis on identifying dynamic systems [1], modelling and solving optimisation problems [2], signal differentiators [3], disturbance observers [4], fractional-order control [5], aerospace vehicle applications [6], or rapid prototyping [7].
随着现代控制技术的发展,新的可靠工具正在被开发用于快速原型制作。过去十年间,MATLAB/Simulink2 软件环境在学术界和工业领域的广泛扩展,强烈支持了当前使用高级编程进行控制系统设计、分析和应用的趋势。 通过对市场和科学文献的分析,可以发现多种软件工具箱支持控制系统综合,重点在于识别动态系统[1]、建模和解决优化问题[2]、信号微分器[3]、扰动观测器[4]、分数阶控制[5]、航空航天器应用[6]或快速原型制作[7]。

Several types of supporting software solutions have been developed for control systems based on active disturbance rejection control (ADRC) methodology. ADRC is a highly practical control framework introduced to the general audience in [8, 9]333The ADRC was formally proposed in 1998 by Prof. Jingqing Han and initial papers are in Chinese (see [8] and references therein). and later streamlined by [10]. Since its inception, it has attracted considerable attention from both scholars and industry practitioners. The effectiveness of its disturbance-centric approach ([11]) for handling uncertainties in governed systems has been verified through both theoretical analyses [12] and numerous control problems in motion, process, and power control areas [13, 14, 15]. The combination of modern control elements with the pragmatism of the minimum-modelling approach has made ADRC an interesting alternative to proportional integral derivative (PID) controllers [16]. Recent surveys [17, 18, 19] have captured the significant impact that ADRC has had on the control field in the last two decades. Conquering market share from popular PID-type controllers, however, is not an easy feat and demands improvements in many areas. Many studies have been conducted thus far (see a summary in [20]), and it is thus not surprising that various software programs have been developed over the years to facilitate the implementation of ADRC.
针对基于自抗扰控制(ADRC)方法论的控制系统,已经开发了多种类型的支持软件解决方案。ADRC 是一个高度实用的控制框架,首次向公众介绍见于[8, 9]3,后经[10]简化和改进。自其问世以来,便吸引了学术界和工业界从业者的广泛关注。 其以扰动为中心的方法([11])对于处理受控系统中不确定性的有效性,已通过理论分析([12])以及运动、过程和功率控制领域的众多控制问题([13, 14, 15])得以验证。现代控制元素与最小建模方法实用性的结合,使得自抗扰控制(ADRC)成为比例积分微分(PID)控制器的一个有趣替代方案([16])。 近期的调查[17, 18, 19]揭示了自过去二十年以来,自抗扰控制(ADRC)在控制领域所产生的显著影响。然而,要从流行 PID 型控制器手中夺取市场份额并非易事,它需要在多个方面进行改进。迄今为止,已有大量研究开展(总结见[20]),因此多年来开发各种软件程序以促进 ADRC 的实施也就不令人意外了。

The ADRC-based systems was implemented so far in a variety of programming languages, like C [21] or Python [22], and in different programming environments like the an open-source Scilab/Xcos [23] and OpenPCS [24]. In [25, 26, 27], various general-purpose function blocks were developed for the industrial implementation of ADRC in programmable logic controllers (PLCs). Two versions of the ADRC library for PLCs were proposed in [25], one as a standard version (with basic functionalities), and the other dedicated to experienced ADRC users allowing for partial dynamic model incorporation, relative disturbance order selection, and nonlinear estimation error function. In [26, 27], the general purpose ADRC function block addresses practically important aspects of process control, like the impact of the derivative backoff, autotuning, or time delay handling. Although the above Scilab/Xcos and PLC implementations of ADRC are neither dedicated to MATLAB/Simulink nor publicly available, they provide important information about parameters and functionalities that a practically appealing ADRC software toolbox should possess.
迄今为止,基于 ADRC 的系统已在多种编程语言中实现,如 C[21]或 Python[22],以及不同的编程环境中,如开源的 Scilab/Xcos[23]和 OpenPCS[24]。在[25, 26, 27]中,为可编程逻辑控制器(PLC)中 ADRC 的工业应用开发了各种通用功能块。 在[25]中,提出了两个用于 PLC 的 ADRC 库版本,一个是标准版(具备基本功能),另一个专为有经验的 ADRC 用户设计,允许部分动态模型嵌入、相对扰动阶次选择以及非线性估计误差函数。在[26, 27]中,通用 ADRC 功能块解决了过程控制中实际重要的方面,如导数退避的影响、自动调谐或时延处理。 尽管上述 Scilab/Xcos 和 PLC 的 ADRC 实现并非专为 MATLAB/Simulink 设计,也未公开可用,但它们提供了关于参数和功能的重要信息,这些信息是一个在实际应用中引人注目的 ADRC 软件工具箱应具备的。

Regarding software support for ADRC implementation in MATLAB/Simulink, to the best of our knowledge, only a few approaches are currently available. Interactive ADRC tuning tools, in the form of graphical user interfaces (GUIs), were developed in [28, 29]. In [28], ADRC tuning was realised through a dedicated GUI, where the user inputs both the system model and ADRC parameters. Then, the tool visualises the calculated tracking and disturbance rejection performance (based on some predefined robustness constraints). The tool can also initiate randomised Monte Carlo tests to check robustness against system parametric uncertainty in prescribed ranges. In [29], an interactive ADRC design for flight attitude control was proposed. In particular, computer-aided design software, based on the MATLAB GUI, was designed to integrate the tuning and simulation processes with a stability margin tester.
关于在 MATLAB/Simulink 中实现 ADRC 的软件支持,据我们所知,目前仅有少数方法可用。交互式 ADRC 调谐工具,以图形用户界面(GUI)的形式,已在文献[28, 29]中开发出来。在[28]中,通过专用 GUI 实现了 ADRC 调谐,用户在其中输入系统模型和 ADRC 参数。 于是,该工具会根据某些预定义的鲁棒性约束,将计算出的跟踪与扰动抑制性能进行可视化呈现。工具还能启动随机化的蒙特卡罗测试,以检验系统在指定参数不确定性范围内的鲁棒性。在[29]中,提出了一种用于飞行姿态控制的交互式 ADRC 设计方法。 特别是基于 MATLAB GUI 的计算机辅助设计软件,旨在将调谐与仿真过程与稳定性裕度测试仪相整合。

A tutorial for ADRC design was published in [30]. The Authors publicly shared their implementation examples on the official MATLAB File Exchange website, which is dedicated to free, open-source code sharing. In [31, 32, 33], MATLAB/Simulink module-based ADRC designs were presented. These works describe drag-and-drop creation of different ADRC schemes by manually combining various modules (subsystems) typically seen in a conventional ADRC block diagram, such as the tracking differentiator, extended state observer, and state feedback controller. Although the proposed module-based design offers flexibility in structure selection, and allows the ADRC to be customised to a given control scenario, it inevitably increases the commissioning time and the required know-how because users need to implement and independently tune all the necessary ADRC components separately.
ADRC 设计的教程已在[30]中发表。作者们在专门的 MATLAB 文件交换网站上公开分享了他们的实现示例,该网站致力于免费和开源代码共享。在[31, 32, 33]中,展示了基于 MATLAB/Simulink 模块的 ADRC 设计。 这些著作通过手动组合传统 ADRC 方框图中常见的各种模块(子系统),如跟踪微分器、扩展状态观测器和状态反馈控制器,描述了以拖放方式创建不同 ADRC 方案。 尽管所提出的模块化设计在结构选择上提供了灵活性,并允许自适应动态响应控制(ADRC)根据特定控制场景进行定制,但这无疑增加了调试时间和所需的专业知识,因为用户需要分别实现和独立调整所有必要的 ADRC 组件。

Given the above literature overview of available software solutions for ADRC implementation, a new MATLAB/Simulink toolbox is developed in this study. The proposed ADRC Toolbox expands the current state-of-the-art solutions by distilling the best practices and most useful features into a single tool for continuous-time implementation of ADRC that provides prospective users with software that:
鉴于上述有关 ADRC 实现可用软件解决方案的文献综述,本研究开发了一种新的 MATLAB/Simulink 工具箱。所提出的 ADRC 工具箱通过提炼最佳实践和最有用的功能,扩展了当前最先进的解决方案,为有意向的用户提供了一个集成的工具,用于连续时间实现 ADRC,其软件能够:

  • 1.

    contains a general-purpose ADRC function block that can be tailored to a given control scenario with minimum tuning parameters;
    包含一个通用型 ADRC 功能模块,能够通过最小化调整参数适应特定控制场景;

  • 2.

    is a development with functionalities that increase its applicable range and practical appeal;
    是一款具备扩展功能性、提升应用广度和实用吸引力的产品;

  • 3.

    can be easily incorporated into a programme through drag-and-drop and offers almost plug-and-play operation;
    可以通过拖放轻松整合到程序中,并提供近乎即插即用的操作;

  • 4.

    has a minimalistic and user-friendly graphical interface; and
    具有极简主义且用户友好的图形界面;

  • 5.

    is freely available to the control community as open-source software at https://www.mathworks.com/matlabcentral/fileexchange/102249-active-disturbance-rejection-control-adrc-toolbox.
    可在 https://www.mathworks.com/matlabcentral/fileexchange/102249-active-disturbance-rejection-control-adrc-toolbox 获得,作为开放源代码软件供控制领域自由使用。

The goal of the proposed ADRC Toolbox is to provide an intuitive blockset within the MATLAB/Simulink environment that will allow users to implement the ADRC structure with relatively little effort and limited knowledge of the details of observer-based control. The introduction of the toolbox aims to decrease the time and effort needed to design and implement basic ADRC schemes, and open new possibilities to swiftly deploy ADRC for real-world control problems.
所提出的 ADRC 工具箱的目标是在 MATLAB/Simulink 环境中提供一个直观的模块集,这将使用户能够以相对较少的努力和有限的基于观测器控制细节知识来实现 ADRC 结构。引入该工具箱旨在减少设计和实现基本 ADRC 方案所需的时间和精力,并为快速部署 ADRC 解决实际控制问题开辟新的可能性。

To validate the efficacy of the proposed ADRC Toolbox for MATLAB/Simulink, several tests were conducted utilising selected problems from motion, process, and power control areas that differ from each other in terms of order, type, and structure of the controlled dynamics and the type of acting external disturbance. Some of the validating tests were performed in simulations, whereas others were realised in laboratory hardware. Such diversified groups were deliberately selected to examine the ADRC Toolbox in various control scenarios. The mentioned tests are added in the ADRC Toolbox as examples to allow reproducibility of the results shown in this paper.
为验证所提出的 ADRC 工具箱在 MATLAB/Simulink 环境中的有效性,进行了多项测试,选用了来自运动、过程及电力控制领域的若干问题,这些问题在控制动力学特性(包括阶次、类型及结构)以及作用的外部扰动类型上各不相同。部分验证测试通过仿真进行,而另一些则在实验硬件上得以实现。 此类多元化群体是特意挑选的,以在多种控制情境下检验 ADRC 工具箱的性能。文中所述测试被作为示例加入到 ADRC 工具箱中,目的是便于重现本文展示的结果。

Notation. Throughout this paper, \mathbb{R} is used as the set of real numbers and \mathbb{Z} as the set of integers. The i𝑖i-th derivative of the signal x(t)𝑥𝑡x(t) with respect to time t𝑡t is represented by x(i)dix(t)dtisuperscript𝑥𝑖superscript𝑑𝑖𝑥𝑡𝑑superscript𝑡𝑖x^{(i)}\triangleq\frac{d^{i}x(t)}{dt^{i}} for i𝑖i\in\mathbb{Z}, and x˙dx(t)dt˙𝑥𝑑𝑥𝑡𝑑𝑡\dot{x}\triangleq\frac{dx(t)}{dt} and x¨d2x(t)dt2¨𝑥superscript𝑑2𝑥𝑡𝑑superscript𝑡2\ddot{x}\triangleq\frac{d^{2}x(t)}{dt^{2}} are also used to denote the first and second derivatives. A standardised notation for certain vectors and matrices is used, i.e., 𝑨n[𝟎(n1)×1𝑰(n1)×(n1)0𝟎1×(n1)]n×nsubscript𝑨𝑛matrixsuperscript0𝑛11superscript𝑰𝑛1𝑛10superscript01𝑛1superscript𝑛𝑛\boldsymbol{A}_{n}\triangleq\begin{bmatrix}\boldsymbol{0}^{(n-1)\times 1}&\boldsymbol{I}^{(n-1)\times(n-1)}\\ 0&\boldsymbol{0}^{1\times(n-1)}\end{bmatrix}\in\mathbb{R}^{n\times n}, 𝒃n[𝟎1×(n1) 1]nsubscript𝒃𝑛superscriptdelimited-[]superscript01𝑛11topsuperscript𝑛\boldsymbol{b}_{n}\triangleq[\boldsymbol{0}^{1\times(n-1)}\ 1]^{\top}\in\mathbb{R}^{n}, 𝒄n[1 01×(n1)]nsubscript𝒄𝑛superscriptdelimited-[]1superscript 01𝑛1topsuperscript𝑛\boldsymbol{c}_{n}\triangleq[1\ \boldsymbol{0}^{1\times(n-1)}]^{\top}\in\mathbb{R}^{n}, and 𝒅n[𝟎n2 1 0]nsubscript𝒅𝑛superscriptdelimited-[]superscript0𝑛210topsuperscript𝑛\boldsymbol{d}_{n}\triangleq[\boldsymbol{0}^{n-2}\ 1\ 0]^{\top}\in\mathbb{R}^{n}, while 𝟎0\boldsymbol{0} and 𝑰𝑰\boldsymbol{I} correspond, respectively, to zero and identity matrices of appropriate dimensions. The symbol x^(t)^𝑥𝑡\hat{x}(t) represents the estimate of the variable x(t)𝑥𝑡x(t), eigi(𝑨)subscripteig𝑖𝑨\textrm{eig}_{i}(\boldsymbol{A}) is the i𝑖i-th eigenvalue of matrix 𝑨𝑨\boldsymbol{A}, and 𝟙(t)1𝑡\mathbbm{1}(t) denotes the unit step function (Heaviside function). Signal x𝑥x, described as x𝒩(μ,σ2)similar-to𝑥𝒩𝜇superscript𝜎2x\sim\mathcal{N}\left(\mu,\sigma^{2}\right), has a normal distribution with standard deviation σ𝜎\sigma and expected value μ𝜇\mu. To keep the equations visually appealing, selected functions within the article are written as f:=f(t)assign𝑓𝑓𝑡f:=f(t); hence, direct time dependence is selectively omitted.
记号。本文中, \mathbb{R} 表示实数集, \mathbb{Z} 表示整数集。信号 x(t)x(t) 对时间 ttii 阶导数用 x(i)dix(t)dtisuperscriptsuperscriptsuperscriptx^{(i)}\triangleq\frac{d^{i}x(t)}{dt^{i}} 表示,且适用于 ii\in\mathbb{Z} ,同时 x˙dx(t)dt\dot{x}\triangleq\frac{dx(t)}{dt}x¨d2x(t)dt2superscript2superscript2\ddot{x}\triangleq\frac{d^{2}x(t)}{dt^{2}} 分别表示其一阶和二阶导数。对于某些向量和矩阵,采用标准化记号,即, 𝑨n[𝟎(n1)×1𝑰(n1)×(n1)0𝟎1×(n1)]n×nsubscriptmatrixsuperscript011superscript110superscript011superscript\boldsymbol{A}_{n}\triangleq\begin{bmatrix}\boldsymbol{0}^{(n-1)\times 1}&\boldsymbol{I}^{(n-1)\times(n-1)}\\ 0&\boldsymbol{0}^{1\times(n-1)}\end{bmatrix}\in\mathbb{R}^{n\times n}𝒃n[𝟎1×(n1) 1]nsubscriptsuperscriptdelimited-[]superscript0111topsuperscript\boldsymbol{b}_{n}\triangleq[\boldsymbol{0}^{1\times(n-1)}\ 1]^{\top}\in\mathbb{R}^{n}𝒄n[1 01×(n1)]nsubscriptsuperscriptdelimited-[]1superscript 011topsuperscript\boldsymbol{c}_{n}\triangleq[1\ \boldsymbol{0}^{1\times(n-1)}]^{\top}\in\mathbb{R}^{n} ,和 𝒅n[𝟎n2 1 0]nsubscriptsuperscriptdelimited-[]superscript0210topsuperscript\boldsymbol{d}_{n}\triangleq[\boldsymbol{0}^{n-2}\ 1\ 0]^{\top}\in\mathbb{R}^{n} ,而 𝟎0\boldsymbol{0}𝑰\boldsymbol{I} 分别对应于适当维度的零矩阵和单位矩阵。符号 x^(t)\hat{x}(t) 表示变量 x(t)x(t) 的估计值, eigi(𝑨)subscript\textrm{eig}_{i}(\boldsymbol{A}) 是矩阵 𝑨\boldsymbol{A} 的第 ii 个特征值,而 𝟙(t)1\mathbbm{1}(t) 表示单位阶跃函数(Heaviside 函数)。信号 xx ,描述为 x𝒩(μ,σ2)similar-tosuperscript2x\sim\mathcal{N}\left(\mu,\sigma^{2}\right) ,具有标准差为 σ\sigma 和期望值为 μ\mu 的正态分布。 为了保持方程式的视觉美观,文章中某些函数写作 f:=f(t)assignf:=f(t) ;因此,时间直接依赖性被选择性省略。

2 Overview of implemented ADRC algorithm
2 已实施的 ADRC 算法概述

The general-purpose ADRC function block, developed within the ADRC Toolbox, encapsulates four core concepts and methods:
在 ADRC 工具箱内开发的通用 ADRC 功能块,封装了四个核心概念和方法:

  • 1.

    total disturbance, which results from the aggregation of system uncertainties into a single, matched, observable term;
    总扰动,指由系统不确定性聚合形成的单项、匹配且可观测的项;

  • 2.

    extended state, which results from extending the original model of the controlled dynamics with an auxiliary state variable, representing solely the total disturbance;
    扩展状态,通过对控制动力学的原始模型引入辅助状态变量获得,该变量仅表示总扰动;

  • 3.

    extended state observer, which is used to reconstruct the total disturbance (and other state variables, if needed) based on available signals and information about the controlled system; and
    扩展状态观测器,用于根据可用的信号和受控系统的信息重构总扰动(以及在需要时重建其他状态变量);以及

  • 4.

    active disturbance rejection, which is the process of constantly updating the control signal with the estimated total disturbance, thus allowing on-line compensation of its effects.
    主动干扰抑制,即持续利用估计的总扰动更新控制信号,从而实现其影响在线补偿的过程。

In general, the controller introduced in the ADRC Toolbox (ver. 1.1.3) is designed to achieve control error stabilisation of an n𝑛n-th order nonlinear single-input, single-output (SISO) system, which can be described as
总体而言,ADRC 工具箱(ver. 1.1.3)中引入的控制器旨在实现对第 nn 阶非线性单输入单输出(SISO)系统的控制误差稳定化,该系统可描述为

{x(n)(t)=f(x,x˙,,x(n1),t)+b(x,x˙,,x(n1),t)u(t)+d(t),y(t)=x(t)+w(t),casessuperscript𝑥𝑛𝑡absentsuperscript𝑓𝑥˙𝑥superscript𝑥𝑛1𝑡superscript𝑏𝑥˙𝑥superscript𝑥𝑛1𝑡𝑢𝑡superscript𝑑𝑡superscript𝑦𝑡absent𝑥𝑡𝑤𝑡\displaystyle\begin{cases}x^{(n)}(t)&=f^{*}\left(x,\dot{x},\ldots,x^{(n-1)},t\right)+b^{*}\left(x,\dot{x},\ldots,x^{(n-1)},t\right)u(t)+d^{*}(t),\\ y^{*}(t)&=x(t)+w(t),\end{cases} (1)

where x𝑥x\in\mathbb{R} is the controlled variable, n𝑛n\in\mathbb{Z} is the order of system dynamics (here, a relative order with respect to the measured signal), u𝑢u\in\mathbb{R} is the control signal, dsuperscript𝑑d^{*}\in\mathbb{R} represents the external disturbances, and ysuperscript𝑦y^{*}\in\mathbb{R} is the system output perturbed by measurement noise w𝑤w\in\mathbb{R}. Following [34], system (1) needs to satisfy the following assumptions for the theoretical analysis (discussed later) to be valid.
其中 xx\in\mathbb{R} 为被控变量, nn\in\mathbb{Z} 代表系统动力学的阶次(此处相对于测量信号的相对阶次), uu\in\mathbb{R} 为控制信号, dsuperscriptd^{*}\in\mathbb{R} 表示外部扰动, ysuperscripty^{*}\in\mathbb{R} 为受测量噪声 ww\in\mathbb{R} 扰动的系统输出。依据[34],为使后续理论分析有效,系统(1)需满足以下假设。

Assumption 1

The variable x(t)𝑥𝑡x(t) and its derivatives up to the (n1)𝑛1(n-1)-th order are defined on an arbitrarily large bounded domain 𝒟x{[xx˙x(n1)]:[xx˙x(n1)]<rx}subscript𝒟𝑥conditional-setsuperscriptdelimited-[]𝑥˙𝑥superscript𝑥𝑛1topnormsuperscriptdelimited-[]𝑥˙𝑥superscript𝑥𝑛1topsubscript𝑟𝑥\mathcal{D}_{x}\triangleq\{[x\ \dot{x}\ \ldots x^{(n-1)}]^{\top}\in\mathbb{R}:\|[x\ \dot{x}\ \ldots x^{(n-1)}]^{\top}\|<r_{x}\} for some rx>0subscript𝑟𝑥0r_{x}>0.


假设 1 变量 x(t)x(t) 及其直至 (n1)1(n-1) 阶的导数定义在某个任意大的有界区域 𝒟x{[xx˙x(n1)]:[xx˙x(n1)]<rx}subscriptconditional-setsuperscriptdelimited-[]superscript1topnormsuperscriptdelimited-[]superscript1topsubscript\mathcal{D}_{x}\triangleq\{[x\ \dot{x}\ \ldots x^{(n-1)}]^{\top}\in\mathbb{R}:\|[x\ \dot{x}\ \ldots x^{(n-1)}]^{\top}\|<r_{x}\} 上,其中 rx>0subscript0r_{x}>0
Assumption 2

The measurement noise w(t)𝑤𝑡w(t) belongs to a bounded set 𝒟w{w:|w|<rw}subscript𝒟𝑤conditional-set𝑤𝑤subscript𝑟𝑤\mathcal{D}_{w}\triangleq\{w\in\mathbb{R}:|w|<r_{w}\} for some rw>0subscript𝑟𝑤0r_{w}>0.


假设 2 测量噪声 w(t)w(t) 属于某个 rw>0subscript0r_{w}>0 的边界集 𝒟w{w:|w|<rw}subscriptconditional-setsubscript\mathcal{D}_{w}\triangleq\{w\in\mathbb{R}:|w|<r_{w}\}
Assumption 3

The external disturbance d(t)superscript𝑑𝑡d^{*}(t) and its derivative d˙(t)superscript˙𝑑𝑡\dot{d}^{*}(t) belong to the bounded sets 𝒟d{d:d<rd}subscript𝒟superscript𝑑conditional-setsuperscript𝑑superscript𝑑subscript𝑟superscript𝑑\mathcal{D}_{d^{*}}\triangleq\{d^{*}\in\mathbb{R}:d^{*}<r_{d^{*}}\} and 𝒟d˙{d˙:d˙<rd˙}subscript𝒟superscript˙𝑑conditional-setsuperscript˙𝑑superscript˙𝑑subscript𝑟superscript˙𝑑\mathcal{D}_{\dot{d}^{*}}\triangleq\{\dot{d}^{*}\in\mathbb{R}:\dot{d}^{*}<r_{\dot{d}^{*}}\}, for some rd,rd˙>0subscript𝑟superscript𝑑subscript𝑟superscript˙𝑑0r_{d^{*}},r_{\dot{d}^{*}}>0.


假设 3 外部扰动 d(t)superscriptd^{*}(t) 及其导数 d˙(t)superscript\dot{d}^{*}(t) 属于某个 rd,rd˙>0subscriptsuperscriptsubscriptsuperscript0r_{d^{*}},r_{\dot{d}^{*}}>0 对应的边界集 𝒟d{d:d<rd}subscriptsuperscriptconditional-setsuperscriptsuperscriptsubscriptsuperscript\mathcal{D}_{d^{*}}\triangleq\{d^{*}\in\mathbb{R}:d^{*}<r_{d^{*}}\}𝒟d˙{d˙:d˙<rd˙}subscriptsuperscriptconditional-setsuperscriptsuperscriptsubscriptsuperscript\mathcal{D}_{\dot{d}^{*}}\triangleq\{\dot{d}^{*}\in\mathbb{R}:\dot{d}^{*}<r_{\dot{d}^{*}}\}
Assumption 4

The fields f(x,x˙,,xn1,t):𝒟x×:superscript𝑓𝑥˙𝑥superscript𝑥𝑛1𝑡subscript𝒟𝑥f^{*}(x,\dot{x},\ldots,x^{n-1},t):\mathcal{D}_{x}\times\mathbb{R}\rightarrow\mathbb{R} and b(x,x˙,,xn1,t):𝒟x×/{0}:superscript𝑏𝑥˙𝑥superscript𝑥𝑛1𝑡subscript𝒟𝑥0b^{*}(x,\dot{x},\ldots,x^{n-1},t):\mathcal{D}_{x}\times\mathbb{R}\rightarrow\mathbb{R}/\{0\} are continuously differentiable Lipschitz functions.


假设 4 域 f(x,x˙,,xn1,t):𝒟x×superscriptsuperscript1subscriptf^{*}(x,\dot{x},\ldots,x^{n-1},t):\mathcal{D}_{x}\times\mathbb{R}\rightarrow\mathbb{R}b(x,x˙,,xn1,t):𝒟x×/{0}superscriptsuperscript1subscript0b^{*}(x,\dot{x},\ldots,x^{n-1},t):\mathcal{D}_{x}\times\mathbb{R}\rightarrow\mathbb{R}/\{0\} 是连续可微的 Lipschitz 函数。

The most common control task in terms of ADRC applications is for x(t)𝑥𝑡x(t) to follow a desired trajectory xd(t)subscript𝑥𝑑𝑡x_{d}(t)\in\mathbb{R}; in other words, the control task is to stabilise a control error e(t)xd(t)x(t)𝑒𝑡subscript𝑥𝑑𝑡𝑥𝑡e(t)\triangleq x_{d}(t)-x(t) in zero. In the case of systems affected by possibly nonlinear external disturbances and measurement noise, one can usually achieve practical stabilisation, that is, one can assure that
ADRC 应用中最常见的控制任务是使 x(t)x(t) 跟踪期望轨迹 xd(t)subscriptx_{d}(t)\in\mathbb{R} ;换言之,控制任务是使控制误差 e(t)xd(t)x(t)subscripte(t)\triangleq x_{d}(t)-x(t) 稳定至零。在系统受可能的非线性外部扰动和测量噪声影响的情况下,通常能够实现实用稳定性,即可以确保

tT|e(t)|<ϵ,subscriptfor-all𝑡𝑇𝑒𝑡italic-ϵ\displaystyle\forall_{t\geq T}|e(t)|<\epsilon, (2)

for some T>0𝑇0T>0 and some arbitrarily small ϵ>0italic-ϵ0\epsilon>0.
对某些 T>00T>0 和任意小的 ϵ>00\epsilon>0

Remark 1

It should be noted that the form of the control task formulated as (2) is general and can address many conventionally considered control tasks, such as trajectory tracking and set point following.


注记 1:应注意到,形如(2)所提出的控制任务形式具有普遍性,能够应对诸多传统上考虑的控制任务,诸如轨迹跟踪与设定点跟随。
Remark 2

Although (1) constitutes a class of nonlinear systems, the control algorithm within the ADRC Toolbox is also applicable to its simplified forms, for example, the group of n𝑛n-th order SISO linear systems.


注 2 尽管(1)构成了一类非线性系统,但 ADRC 工具箱中的控制算法同样适用于其简化的形式,例如 nn 阶 SISO 线性系统。

Because the control task (2) is formulated in the control error domain, it will be more convenient to also design the control system for dynamics (1) in the error-domain form, that is,
由于控制任务(2)是在控制误差域中制定的,因此将控制系统的动力学(1)也设计成误差域形式将更为方便,即,

{e(n)(t)=xd(n)f(xde,x˙de˙,,xd(n1)e(n1),t)b(xde,x˙de˙,,xd(n1)e(n1),t)u(t)d(t),y(t)=e(t)w(t),casessuperscript𝑒𝑛𝑡absentsuperscriptsubscript𝑥𝑑𝑛superscript𝑓subscript𝑥𝑑𝑒subscript˙𝑥𝑑˙𝑒superscriptsubscript𝑥𝑑𝑛1superscript𝑒𝑛1𝑡otherwisesuperscript𝑏subscript𝑥𝑑𝑒subscript˙𝑥𝑑˙𝑒superscriptsubscript𝑥𝑑𝑛1superscript𝑒𝑛1𝑡𝑢𝑡superscript𝑑𝑡𝑦𝑡absent𝑒𝑡𝑤𝑡\displaystyle\begin{cases}e^{(n)}(t)&=x_{d}^{(n)}-f^{*}\left(x_{d}-e,\dot{x}_{d}-\dot{e},\ldots,x_{d}^{(n-1)}-e^{(n-1)},t\right)\\ &-b^{*}\left(x_{d}-e,\dot{x}_{d}-\dot{e},\ldots,x_{d}^{(n-1)}-e^{(n-1)},t\right)u(t)-d^{*}(t),\\ y(t)&=e(t)-w(t),\end{cases} (3)

where yxdy𝑦subscript𝑥𝑑superscript𝑦y\triangleq x_{d}-y^{*}\in\mathbb{R} is the output of the control error-domain dynamics.
其中 yxdysubscriptsuperscripty\triangleq x_{d}-y^{*}\in\mathbb{R} 表示控制误差域动态的输出。

Assumption 5

The reference xd(t)subscript𝑥𝑑𝑡x_{d}(t) and its derivatives up to the (n1)𝑛1(n-1)-th order are defined on an arbitrary large bounded domain 𝒟xd{[xdx˙dxd(n1)]:[xdx˙dxd(n1)]<rxd}subscript𝒟subscript𝑥𝑑conditional-setsuperscriptdelimited-[]subscript𝑥𝑑subscript˙𝑥𝑑subscriptsuperscript𝑥𝑛1𝑑topnormsuperscriptdelimited-[]subscript𝑥𝑑subscript˙𝑥𝑑subscriptsuperscript𝑥𝑛1𝑑topsubscript𝑟subscript𝑥𝑑\mathcal{D}_{x_{d}}\triangleq\{[x_{d}\ \dot{x}_{d}\ \ldots x^{(n-1)}_{d}]^{\top}\in\mathbb{R}:\|[x_{d}\ \dot{x}_{d}\ \ldots x^{(n-1)}_{d}]^{\top}\|<r_{x_{d}}\} for some rxd>0subscript𝑟subscript𝑥𝑑0r_{x_{d}}>0.


假定 5 在某个 $ \alpha } 的任意大有界域 $ \Omega } 上,参考量 $ \nu } 及其直至 $ \alpha } 阶的导数均有定义。
Remark 3

Assumptions 4 and 5 can be relaxed based on the results shown in [35] and an example from [36], where the reference signal xd(t)subscript𝑥𝑑𝑡x_{d}(t) and fields f()superscript𝑓f^{*}(\cdot), b()superscript𝑏b^{*}(\cdot) are allowed to have a limited number of discontinuities with bounded left- and right-hand side limits.


评注 3 根据[35]展示的结果及[36]中的实例,假设 4 和 5 可以放宽,其中参考信号 xd(t)subscriptx_{d}(t) 与场 f()superscriptf^{*}(\cdot)b()superscriptb^{*}(\cdot) 被允许具有有限数量的间断点,且左右极限有界。
Remark 4

In the specific context of ADRC, the synthesis of the control system expressed in the error domain has a certain beneficial characteristic; namely, consecutive time derivatives of xd(t)subscript𝑥𝑑𝑡x_{d}(t) do not necessarily need to be known in advance. Details can be found in [37, 38].


注记 4 在 ADRC 的特定背景下,控制系统的误差域合成呈现出一定的有益特性;即, xd(t)subscriptx_{d}(t) 的连续时间导数未必需要提前知晓。详见[37, 38]。

Now, a state vector 𝒆=[e1e2en][ee˙e(n1)]n𝒆superscriptdelimited-[]subscript𝑒1subscript𝑒2subscript𝑒𝑛topsuperscriptdelimited-[]𝑒˙𝑒superscript𝑒𝑛1topsuperscript𝑛\boldsymbol{e}=[e_{1}\ e_{2}\ \ldots\ e_{n}]^{\top}\triangleq[e\ \dot{e}\ \ldots\ e^{(n-1)}]^{\top}\in\mathbb{R}^{n} can be defined for the control error-domain system (3), allowing its dynamics to be written in the following canonical observable form:
现在,可以为控制误差域系统(3)定义一个状态向量{0},使其动态方程可以写成以下标准可观测形式:

{𝒆˙(t)=𝑨n𝒆(t)+𝒃n[f(𝒆,t)+b(𝒆,t)u(t)d(t)],y(t)=𝒄n𝒆(t)w(t),cases˙𝒆𝑡subscript𝑨𝑛𝒆𝑡subscript𝒃𝑛delimited-[]𝑓𝒆𝑡𝑏𝒆𝑡𝑢𝑡superscript𝑑𝑡otherwise𝑦𝑡superscriptsubscript𝒄𝑛top𝒆𝑡𝑤𝑡otherwise\displaystyle\begin{cases}\dot{\boldsymbol{e}}(t)=\boldsymbol{A}_{n}\boldsymbol{e}(t)+\boldsymbol{b}_{n}\left[f(\boldsymbol{e},t)+b(\boldsymbol{e},t)u(t)-d^{*}(t)\right],\\ y(t)=\boldsymbol{c}_{n}^{\top}\boldsymbol{e}(t)-w(t),\end{cases} (4)

where 𝒙d[xdx˙dxd(n1)]nsubscript𝒙𝑑superscriptdelimited-[]subscript𝑥𝑑subscript˙𝑥𝑑subscriptsuperscript𝑥𝑛1𝑑topsuperscript𝑛\boldsymbol{x}_{d}\triangleq[x_{d}\ \dot{x}_{d}\ \ldots\ x^{(n-1)}_{d}]^{\top}\in\mathbb{R}^{n}, f(𝒆,t):=f(xde,x˙de˙,,xd(n1)e(n1),t)assign𝑓𝒆𝑡superscript𝑓subscript𝑥𝑑𝑒subscript˙𝑥𝑑˙𝑒superscriptsubscript𝑥𝑑𝑛1superscript𝑒𝑛1𝑡f(\boldsymbol{e},t):=-f^{*}(x_{d}-e,\dot{x}_{d}-\dot{e},\ldots,x_{d}^{(n-1)}-e^{(n-1)},t), and b(𝒆,t):=b(xde,x˙de˙,,xd(n1)e(n1),t)assign𝑏𝒆𝑡superscript𝑏subscript𝑥𝑑𝑒subscript˙𝑥𝑑˙𝑒superscriptsubscript𝑥𝑑𝑛1superscript𝑒𝑛1𝑡b(\boldsymbol{e},t):=-b^{*}(x_{d}-e,\dot{x}_{d}-\dot{e},\ldots,x_{d}^{(n-1)}-e^{(n-1)},t). The general concept of robust control is usually connected with robustness against the structural and parametric uncertainties of the controlled system. The most conventional formulation of the minimal amount of information required for the application of ADRC can thus be formulated as the following assumption:
其中 𝒙d[xdx˙dxd(n1)]nsubscriptsuperscriptdelimited-[]subscriptsubscriptsubscriptsuperscript1topsuperscript\boldsymbol{x}_{d}\triangleq[x_{d}\ \dot{x}_{d}\ \ldots\ x^{(n-1)}_{d}]^{\top}\in\mathbb{R}^{n}f(𝒆,t):=f(xde,x˙de˙,,xd(n1)e(n1),t)assignsuperscriptsubscriptsubscriptsuperscriptsubscript1superscript1f(\boldsymbol{e},t):=-f^{*}(x_{d}-e,\dot{x}_{d}-\dot{e},\ldots,x_{d}^{(n-1)}-e^{(n-1)},t) ,及 b(𝒆,t):=b(xde,x˙de˙,,xd(n1)e(n1),t)assignsuperscriptsubscriptsubscriptsuperscriptsubscript1superscript1b(\boldsymbol{e},t):=-b^{*}(x_{d}-e,\dot{x}_{d}-\dot{e},\ldots,x_{d}^{(n-1)}-e^{(n-1)},t) 。鲁棒控制的一般概念通常与控制系统结构和参数不确定性的鲁棒性相关联。因此,应用 ADRC 所需最少信息的最传统表述可以表述为以下假设:

Assumption 6

The structure and parameters of system (4) are highly uncertain up to a point where the dynamics order n𝑛n and a rough estimate b^(𝐞^,t)b(𝐞,t)^𝑏^𝐞𝑡𝑏𝐞𝑡\hat{b}(\hat{\boldsymbol{e}},t)\approx b(\boldsymbol{e},t) are the only available information concerning the controlled system.


假设 6 系统 (4) 的结构和参数高度不确定,以至于关于被控系统的唯一可用信息是动态阶次 nn 和粗略估计 b^(𝐞^,t)b(𝐞,t)\hat{b}(\hat{\boldsymbol{e}},t)\approx b(\boldsymbol{e},t)
Remark 5

The range of admissible ratio of b()/b^()𝑏^𝑏b(\cdot)/\hat{b}(\cdot), which needs to be satisfied to keep the ADRC-based system stable, was studied in detail in [39] and [40], and is at least equal to

t0b(𝒆,t)b^(𝒆^,t)(0,2+2n),forb^(𝒆^,t)0.formulae-sequencesubscriptfor-all𝑡0𝑏𝒆𝑡^𝑏^𝒆𝑡022𝑛for^𝑏^𝒆𝑡0\displaystyle\forall_{t\geq 0}\frac{b(\boldsymbol{e},t)}{\hat{b}(\hat{\boldsymbol{e}},t)}\in\left(0,2+\frac{2}{n}\right),\quad\textrm{for}\leavevmode\nobreak\ \hat{b}(\hat{\boldsymbol{e}},t)\neq 0. (5)

备注 5 针对确保基于 ADRC 系统的稳定性所需满足的 b()/b^()b(\cdot)/\hat{b}(\cdot) 可接受比率范围,已在[39]和[40]中进行了详细研究,其范围至少应等于

In the next step, following Assumption 6, system (4) can be rewritten as
在下一步中,根据假设 6,系统(4)可改写为

{𝒆˙(t)=𝑨n𝒆(t)+𝒃n[b^(𝒆^,t)u(t)+d(𝒆,𝒆^,u,t)],y(t)=𝒄n𝒆(t)w(t),cases˙𝒆𝑡subscript𝑨𝑛𝒆𝑡subscript𝒃𝑛delimited-[]^𝑏^𝒆𝑡𝑢𝑡𝑑𝒆^𝒆𝑢𝑡otherwise𝑦𝑡superscriptsubscript𝒄𝑛top𝒆𝑡𝑤𝑡otherwise\displaystyle\begin{cases}\dot{\boldsymbol{e}}(t)=\boldsymbol{A}_{n}\boldsymbol{e}(t)+\boldsymbol{b}_{n}\left[\hat{b}(\hat{\boldsymbol{e}},t)u(t)+d(\boldsymbol{e},\hat{\boldsymbol{e}},u,t)\right],\\ y(t)=\boldsymbol{c}_{n}^{\top}\boldsymbol{e}(t)-w(t),\end{cases} (6)

where 在此处

d(𝒆,𝒆^,u,t)=d(t)+f(𝒆,t)+[b(𝒆,t)b^(𝒆^,t)]u(t),𝑑𝒆^𝒆𝑢𝑡superscript𝑑𝑡𝑓𝒆𝑡delimited-[]𝑏𝒆𝑡^𝑏^𝒆𝑡𝑢𝑡\displaystyle d(\boldsymbol{e},\hat{\boldsymbol{e}},u,t)=-d^{*}(t)+f(\boldsymbol{e},t)+\left[{b}({\boldsymbol{e}},t)-\hat{b}(\hat{\boldsymbol{e}},t)\right]u(t), (7)

is the lumped total disturbance, which aggregates the unknown components that affect the system dynamics.
是集总的总扰动,它汇总了影响系统动态的所有未知成分。

To design the ADRC controller, an extended state 𝒛[𝒆d]n+1𝒛superscriptdelimited-[]superscript𝒆top𝑑topsuperscript𝑛1\boldsymbol{z}\triangleq[\boldsymbol{e}^{\top}\ d]^{\top}\in\mathbb{R}^{n+1} needs to be defined first, whose dynamics, based on (6), can be written as
为设计自抗扰控制器,首先需定义扩展状态 𝒛[𝒆d]n+1superscriptdelimited-[]superscripttoptopsuperscript1\boldsymbol{z}\triangleq[\boldsymbol{e}^{\top}\ d]^{\top}\in\mathbb{R}^{n+1} ,其动态特性根据公式 (6) 可表示为

{𝒛˙(t)=𝑨n+1𝒛(t)+𝒃n+1d˙(𝒛,𝒛^,u,t)+𝒅n+1b^(𝒆^,t)u(t),y(t)=𝒄n+1𝒛(t)w(t).cases˙𝒛𝑡subscript𝑨𝑛1𝒛𝑡subscript𝒃𝑛1˙𝑑𝒛^𝒛𝑢𝑡subscript𝒅𝑛1^𝑏^𝒆𝑡𝑢𝑡otherwise𝑦𝑡subscriptsuperscript𝒄top𝑛1𝒛𝑡𝑤𝑡otherwise\displaystyle\begin{cases}\dot{\boldsymbol{z}}(t)=\boldsymbol{A}_{n+1}\boldsymbol{z}(t)+\boldsymbol{b}_{n+1}\dot{d}(\boldsymbol{z},\hat{\boldsymbol{z}},u,t)+\boldsymbol{d}_{n+1}\hat{b}(\hat{\boldsymbol{e}},t)u(t),\\ y(t)=\boldsymbol{c}^{\top}_{n+1}\boldsymbol{z}(t)-w(t).\end{cases} (8)
Remark 6

Based on Assumptions 1-6, it can be claimed that the derivative of the total disturbance is bounded, and d˙𝒟d˙{d˙:|d˙|<rd˙}˙𝑑subscript𝒟˙𝑑conditional-set˙𝑑˙𝑑subscript𝑟˙𝑑\dot{d}\in\mathcal{D}_{\dot{d}}\triangleq\{\dot{d}\in\mathbb{R}:|\dot{d}|<r_{\dot{d}}\} for some rd˙>0subscript𝑟˙𝑑0r_{\dot{d}}>0.


注释 6 在假设 1-6 的基础上,可以断言总扰动的导数是有界的,并且对于某个 rd˙>0subscript0r_{\dot{d}}>0 ,其导数为 d˙𝒟d˙{d˙:|d˙|<rd˙}subscriptconditional-setsubscript\dot{d}\in\mathcal{D}_{\dot{d}}\triangleq\{\dot{d}\in\mathbb{R}:|\dot{d}|<r_{\dot{d}}\}

Because of equation (6), the estimates of vector 𝒛^=[𝒆^d^]^𝒛superscriptdelimited-[]superscript^𝒆top^𝑑top\hat{\boldsymbol{z}}=[\hat{\boldsymbol{e}}^{\top}\ \hat{d}]^{\top} (or its components) were used. These deliberate manipulations of introducing estimated signals into the system dynamics were indirectly caused by the form of system output, which allows measurement of only the first component of vector 𝒛𝒛\boldsymbol{z} (see (8)), and thus, the rest of the extended state components have to be estimated using an extended state observer (ESO), which takes the form
由于等式 (6),引入了向量 𝒛^=[𝒆^d^]superscriptdelimited-[]superscripttoptop\hat{\boldsymbol{z}}=[\hat{\boldsymbol{e}}^{\top}\ \hat{d}]^{\top} (或其分量)的估计值。这种将估计信号有计划地引入系统动态的行为,间接地由系统输出的形式引起,该形式仅允许测量向量 𝒛\boldsymbol{z} 的第一个分量(参见等式 (8)),因此,扩展状态的其余分量必须通过扩展状态观测器(ESO)进行估计,其形式如下

𝒛^˙(t)=𝑨n+1𝒛^(t)+𝒅n+1b^(𝒛^,t)u(t)+𝒍n+1[y(t)𝒄n+1𝒛^(t)],˙^𝒛𝑡subscript𝑨𝑛1^𝒛𝑡subscript𝒅𝑛1^𝑏^𝒛𝑡𝑢𝑡subscript𝒍𝑛1delimited-[]𝑦𝑡subscriptsuperscript𝒄top𝑛1^𝒛𝑡\displaystyle\dot{\hat{\boldsymbol{z}}}(t)=\boldsymbol{A}_{n+1}\hat{\boldsymbol{z}}(t)+\boldsymbol{d}_{n+1}\hat{b}(\hat{\boldsymbol{z}},t)u(t)+\boldsymbol{l}_{n+1}\left[y(t)-\boldsymbol{c}^{\top}_{n+1}\hat{\boldsymbol{z}}(t)\right], (9)

where the observer gain vector 𝒍n+1=[l1l2ln+1]n+1subscript𝒍𝑛1superscriptdelimited-[]subscript𝑙1subscript𝑙2subscript𝑙𝑛1topsuperscript𝑛1\boldsymbol{l}_{n+1}=[l_{1}\ l_{2}\ \ldots\ l_{n+1}]^{\top}\in\mathbb{R}^{n+1} is bandwidth-parametrised (see [10]) with a single parameter ωo>0subscript𝜔𝑜0\omega_{o}>0 such that
其中观测增益向量{0}是带宽参数化的(见[10]),含有一个参数{1},使得

li(n+1)!i!(n+1i)!ωoi,fori{1,,n+1}.formulae-sequencesubscript𝑙𝑖𝑛1𝑖𝑛1𝑖superscriptsubscript𝜔𝑜𝑖for𝑖1𝑛1\displaystyle l_{i}\triangleq\frac{(n+1)!}{i!(n+1-i)!}\omega_{o}^{i},\quad\textrm{for}\ i\in\{1,...,n+1\}. (10)

Now, knowing how to calculate the values of 𝒛^^𝒛\hat{\boldsymbol{z}}, one can introduce a robust active disturbance rejection controller in the form of
现在,掌握了如何计算 𝒛^\hat{\boldsymbol{z}} 的值,便可以引入一种稳健的主动干扰抑制控制器

u(t)1b^(𝒆^,t)[𝒌n𝒆^(t)d^(t)],𝑢𝑡1^𝑏^𝒆𝑡delimited-[]subscript𝒌𝑛^𝒆𝑡^𝑑𝑡\displaystyle u(t)\triangleq\frac{1}{\hat{b}(\hat{\boldsymbol{e}},t)}\left[-\boldsymbol{k}_{n}\hat{\boldsymbol{e}}(t)-\hat{d}(t)\right], (11)

where 𝒌n=[k1k2kn]1×nsubscript𝒌𝑛delimited-[]subscript𝑘1subscript𝑘2subscript𝑘𝑛superscript1𝑛\boldsymbol{k}_{n}=[k_{1}\ k_{2}\ \ldots\ k_{n}]\in\mathbb{R}^{1\times n}. All controller gains are bandwidth-parametrised with a single parameter ωc>0subscript𝜔𝑐0\omega_{c}>0 such that
其中 𝒌n=[k1k2kn]1×nsubscriptdelimited-[]subscript1subscript2subscriptsuperscript1\boldsymbol{k}_{n}=[k_{1}\ k_{2}\ \ldots\ k_{n}]\in\mathbb{R}^{1\times n} 。所有控制器增益均以带宽参数化,设定单一参数 ωc>0subscript0\omega_{c}>0 使得

kin!i!(ni)!ωci,fori{1,..,n}.\displaystyle k_{i}\triangleq\frac{n!}{i!(n-i)!}\omega_{c}^{i},\quad\textrm{for}\ i\in\{1,..,n\}. (12)
Remark 7

The presence of the control signal u(t)𝑢𝑡u(t) in the total disturbance d()𝑑d(\cdot), visible in (7), does not cause instability of the system as long as condition (5) is satisfied.


注 7:只要满足条件(5),控制信号 u(t)u(t) 存在于总扰动 d()d(\cdot) 中,如(7)所示,不会导致系统不稳定。

After the application of (9) and (11) in (8) and (6), the subsystems that describe the dynamics of the observation error 𝒛~(t)𝒛(t)𝒛^(t)~𝒛𝑡𝒛𝑡^𝒛𝑡\tilde{\boldsymbol{z}}(t)\triangleq\boldsymbol{z}(t)-\hat{\boldsymbol{z}}(t) and the closed-loop control error 𝒆(t)𝒆𝑡\boldsymbol{e}(t) can be written as
在将式(9)和(11)应用于(8)和(6)之后,描述观测误差 𝒛~(t)𝒛(t)𝒛^(t)\tilde{\boldsymbol{z}}(t)\triangleq\boldsymbol{z}(t)-\hat{\boldsymbol{z}}(t) 和闭环控制误差 𝒆(t)\boldsymbol{e}(t) 动力学的子系统可以写成

{𝒛~˙(t)=(𝑨n+1𝒍n+1𝒄n+1)𝒛~(t)+𝒃n+1d˙(t)𝒍n+1w(t),𝒆˙(t)=(𝑨n𝒃n𝒌n)𝒆(t)+[𝒌n 1]𝒛~(t).cases˙~𝒛𝑡subscript𝑨𝑛1subscript𝒍𝑛1subscript𝒄𝑛1~𝒛𝑡subscript𝒃𝑛1˙𝑑𝑡subscript𝒍𝑛1𝑤𝑡otherwise˙𝒆𝑡subscript𝑨𝑛subscript𝒃𝑛subscript𝒌𝑛𝒆𝑡delimited-[]subscript𝒌𝑛1~𝒛𝑡otherwise\displaystyle\begin{cases}\dot{\tilde{\boldsymbol{z}}}(t)=\left(\boldsymbol{A}_{n+1}-\boldsymbol{l}_{n+1}\boldsymbol{c}_{n+1}\right)\tilde{\boldsymbol{z}}(t)+\boldsymbol{b}_{n+1}\dot{d}(t)-\boldsymbol{l}_{n+1}w(t),\\ \dot{\boldsymbol{e}}(t)=\left(\boldsymbol{A}_{n}-\boldsymbol{b}_{n}\boldsymbol{k}_{n}\right)\boldsymbol{e}(t)+[\boldsymbol{k}_{n}\ 1]\tilde{\boldsymbol{z}}(t).\end{cases} (13)

The theoretical analysis of dynamical systems similar to (13) was studied in [22], [36], and [41], and can be summarised with the following lemmas.
类似(13)的动力系统的理论分析在[22]、[36]和[41]中进行了研究,可以总结如下引理。

Lemma 1

For ωo>1subscript𝜔𝑜1\omega_{o}>1, and under Assumptions 1-6, the observation error subsystem in  (13), parameterised by (10), is input-to-state stable with respect to inputs d˙˙𝑑\dot{d} and w𝑤w, and locally satisfies

𝒛~(t)ωonc1𝒛~(0)exp(c2ωot)+1ωoc3(rd˙+ωon+1c4rw),norm~𝒛𝑡superscriptsubscript𝜔𝑜𝑛subscript𝑐1norm~𝒛0subscript𝑐2subscript𝜔𝑜𝑡1subscript𝜔𝑜subscript𝑐3subscript𝑟˙𝑑superscriptsubscript𝜔𝑜𝑛1subscript𝑐4subscript𝑟𝑤\displaystyle\|\tilde{\boldsymbol{z}}(t)\|\leq\omega_{o}^{n}c_{1}\|\tilde{\boldsymbol{z}}(0)\|\exp{\left(-c_{2}\omega_{o}t\right)}+\frac{1}{\omega_{o}}c_{3}\left(r_{\dot{d}}+\omega_{o}^{n+1}c_{4}r_{w}\right), (14)

for some constants c1,c2,c3,c4>0subscript𝑐1subscript𝑐2subscript𝑐3subscript𝑐40c_{1},c_{2},c_{3},c_{4}>0.
对于某些常数 c1,c2,c3,c4>0subscript1subscript2subscript3subscript40c_{1},c_{2},c_{3},c_{4}>0


引理 1 对于 ωo>1subscript1\omega_{o}>1 ,并且在假设 1-6 下,由(10)参数化的(13)中的观测误差子系统,对于输入 d˙\dot{d}ww ,是输入状态稳定的,并且在局部满足
Lemma 2

For ωc>1subscript𝜔𝑐1\omega_{c}>1, and under Assumptions 1-6, the control error subsystem in (13), parameterised by (12), is input-to-state stable and locally satisfies

𝒆(t)ωcn1c5𝒆(0)exp(c6ωct)+ωcn2c7supt0𝒛~(t),norm𝒆𝑡superscriptsubscript𝜔𝑐𝑛1subscript𝑐5norm𝒆0subscript𝑐6subscript𝜔𝑐𝑡superscriptsubscript𝜔𝑐𝑛2subscript𝑐7subscriptsupremum𝑡0norm~𝒛𝑡\displaystyle\|\boldsymbol{e}(t)\|\leq\omega_{c}^{n-1}c_{5}\|\boldsymbol{e}(0)\|\exp{\left(-c_{6}\omega_{c}t\right)}+\omega_{c}^{n-2}c_{7}\sup_{t\geq 0}\|\tilde{\boldsymbol{z}}(t)\|, (15)

for some c5,c6,c7>0subscript𝑐5subscript𝑐6subscript𝑐70c_{5},c_{6},c_{7}>0. 对于某些 c5,c6,c7>0subscript5subscript6subscript70c_{5},c_{6},c_{7}>0


引理 2 对于 ωc>1subscript1\omega_{c}>1 ,并且在假设 1-6 下,由(12)参数化的(13)中的控制误差子系统是输入状态稳定的,且局部满足

3 Functionalities and parameters of the ADRC Toolbox
ADRC 工具箱的功能和参数

The introduced ADRC Toolbox for MATLAB/Simulink contains a maximally simplistic, user-friendly, and general-purpose function block, that allows engineers to effectively use the ADRC concept, but with less knowledge of the method itself. The goal is to simplify the practical implementation of the architecture presented in Sect. 2. The prepared drag-and-drop ADRC function block is a SISO block, where the input signal is the control error (e𝑒e) and the output signal is the control signal (u𝑢u). In the MATLAB/Simulink environment, the developed block is shown in Fig. 1, and it comes with the GUI presented in Fig. 2.
引入的 ADRC 工具箱(适用于 MATLAB/Simulink)包含一个极度简化的、用户友好且通用的功能模块,使工程师能够更有效地运用 ADRC 理念,同时无需深入了解该方法本身。其目标在于简化为第 2 节中架构的实际应用。 所制备的拖放 ADRC 功能块为单输入单输出块,其中输入信号为控制误差( ee ),输出信号为控制信号( uu )。在 MATLAB/Simulink 环境中,开发的功能块如图 1 所示,并附有图 2 所示的图形用户界面。

Refer to caption
Figure 1: The proposed ADRC Toolbox (left) with the drag-and-drop ADRC function block (right), as seen in MATLAB/Simulink.
图 1:所提出的 ADRC 工具箱(左侧)与在 MATLAB/Simulink 中可拖放的 ADRC 功能模块(右侧)。
Refer to caption
Refer to caption
Refer to caption
Figure 2: The graphical user interface (GUI) for the proposed ADRC function block.
图 2:所提出的 ADRC 功能块的图形用户界面(GUI)。

In the described version of the ADRC function block (ver. 1.1.3), four mandatory parameters must be selected:
在所描述的自抗扰控制功能块(版本 1.1.3)中,必须选择四个强制参数:

  • 1.

    the order of system dynamics n𝑛n – see (1);
    系统动力学顺序 nn – 见(1);

  • 2.

    an estimate of the input gain parameter b^()^𝑏\hat{b}(\cdot) – see (6);
    输入增益参数 b^()\hat{b}(\cdot) 的估计值——参见(6);

  • 3.

    the observer bandwidth ωosubscript𝜔𝑜\omega_{o} – see (9) and (10); and
    观察者带宽 ωosubscript\omega_{o} – 参见(9)和(10);以及

  • 4.

    the controller bandwidth ωcsubscript𝜔𝑐\omega_{c} – see (11) and (12).
    控制器带宽 ωcsubscript\omega_{c} – 参见 (11) 和 (12)。

Additionally, the ADRC function block enables two practically important functionalities, specifically, the control signal saturation and an anti-peaking mechanism. A thorough description of the aforementioned parameters and functionalities, together with the heuristics and interpretations concerning tuning, are provided in the following subsections.
此外,ADRC 功能块实现两个实际重要的功能,即控制信号饱和处理和抗尖峰机制。下文各小节将详述上述参数与功能,并辅以调参相关的启发式原则及解读。

3.1 Order of system dynamics n𝑛n
3.1 系统动力学顺序 nn

The dynamics order n𝑛n determines the dimensions of the observer state vector 𝒛^^𝒛\hat{\boldsymbol{z}}, and thus influences the number of observer equations. In practice, it is sometimes possible to achieve satisfactory control precision, even with an inappropriately set value n𝑛n for the ADRC controller (especially while following slowly varying trajectories)l; however, this is not recommended, because it can easily lead to system instability when changing other parameters. Hence, order n𝑛n should reflect the user’s best knowledge of the relative order of the controlled system dynamics.
动态阶次 nn 决定了观测器状态向量 𝒛^\hat{\boldsymbol{z}} 的维度,进而影响观测器方程的数量。在实际应用中,有时即便不恰当地设置了 nn 的值,ADRC 控制器也能达到令人满意的控制精度(尤其是在跟踪缓慢变化轨迹时);然而,不建议这样做,因为改变其他参数时很容易导致系统不稳定。 因此,指令 nn 应反映用户对受控系统动态相对顺序的最佳认知。

From a theoretical point of view, according to Lemmas 1 and 2, the higher the order n𝑛n, the more fragile the control structure is with respect to measurement noise (rwsubscript𝑟𝑤r_{w} multiplied by ωon+1superscriptsubscript𝜔𝑜𝑛1\omega_{o}^{n+1}), and the transient stage of the estimation error reaches larger values caused by observer peaking (first component of (14) multiplied by ωonsuperscriptsubscript𝜔𝑜𝑛\omega_{o}^{n}). The order of the system dynamics also determines the range of acceptable input gain assessment b()/b^()𝑏^𝑏b(\cdot)/\hat{b}(\cdot), as discussed in Remark 5. In the case of an unknown system order, a good starting point is setting n𝑛n to 1 or 2, because it represents many real physical systems with an acceptable level of approximation [42].
从理论角度来看,根据引理 1 和引理 2,阶数 nn 越高,控制结构对测量噪声( rwsubscriptr_{w} 乘以 ωon+1superscriptsubscript1\omega_{o}^{n+1} )的脆弱性越大,且估计误差的瞬态阶段因观测器峰值((14)式的第一项乘以 ωonsuperscriptsubscript\omega_{o}^{n} )导致更大数值。系统动力学的阶数还决定了可接受输入增益评估的范围 b()/b^()b(\cdot)/\hat{b}(\cdot) ,如备注 5 中所讨论的。 对于未知系统阶次的情况,一个好的起点是将 nn 设置为 1 或 2,因为这代表了众多实际物理系统,且在可接受的近似水平上[42]。

3.2 Estimate of input gain b^()^𝑏\hat{b}(\cdot)
3.2 输入增益估计 b^()\hat{b}(\cdot)

The approximation range of b()𝑏b(\cdot) is reasonably wide (see Remark 5), which implies a certain level of ADRC robustness with respect to the parametric uncertainty of b()𝑏b(\cdot). However, as much precision as possible is recommended when setting the value b^()^𝑏\hat{b}(\cdot). Not only can it lead to system instability when set outside the aforementioned acceptable range, but it can also cause the total disturbance to be more difficult to estimate, because the difference between the real input gain parameter b()𝑏b(\cdot) and its assumed value b^()^𝑏\hat{b}(\cdot) is incorporated within the total disturbance, represented by (7). Furthermore, when the value b^()^𝑏\hat{b}(\cdot) approaches the boundaries of (5), unwanted oscillations may occur in the system behaviour. The input gain parameter b^()^𝑏\hat{b}(\cdot) is also control signal scaling factor (11). Thus, it also has an impact on the system performance when the admissible range of control signals is limited by a relatively narrow saturation set.
b()b(\cdot) 的近似范围相当广泛(参见备注 5),这表明自抗扰控制(ADRC)在参数不确定性方面的鲁棒性达到一定水平。然而,建议在设置 b^()\hat{b}(\cdot) 值时尽可能追求精确。 不仅当设定超出上述可接受范围时会导致系统不稳定性,还可能使总扰动的估算更为困难,因为实际输入增益参数 b()b(\cdot) 与其假定值 b^()\hat{b}(\cdot) 之间的差异已融入总扰动中,如(7)所示。此外,当值 b^()\hat{b}(\cdot) 接近(5)的界限时,系统行为中可能会出现不期望的振荡。 输入增益参数 b^()\hat{b}(\cdot) 也是控制信号的缩放因子(11)。因此,当控制信号的允许范围受限于相对狭窄的饱和集时,它也会对系统性能产生影响。

3.3 Observer bandwidth ωosubscript𝜔𝑜\omega_{o}
3.3 观测器带宽 ωosubscript\omega_{o}

With the chosen bandwidth-parameterisation described by (10), a single parameter, ωosubscript𝜔𝑜\omega_{o}, determines the values of all observer gains. Such an approach places each pole of the observation error dynamics state matrix (see (13)) as
通过选择带宽参数化描述,如式(10)所示,一个单一参数 ωosubscript\omega_{o} 决定了所有观测器增益的取值。此方法将观测误差动力学状态矩阵的每个极点(见式(13))置于

eigi(𝑨n+1𝒍n+1𝒄n+1)=ωo,fori{1,,n+1}.formulae-sequencesubscripteig𝑖subscript𝑨𝑛1subscript𝒍𝑛1superscriptsubscript𝒄𝑛1topsubscript𝜔𝑜for𝑖1𝑛1\displaystyle\textrm{eig}_{i}\left(\boldsymbol{A}_{n+1}-\boldsymbol{l}_{n+1}\boldsymbol{c}_{n+1}^{\top}\right)=-\omega_{o},\quad\textrm{for}\ i\in\{1,...,n+1\}. (16)

In addition to its simplistic form, this approach results in relatively good performance, even when compared to situations in which the eigenvalues are selected separately (see [22]).
除了其简化的形式外,这种方法在性能上也相对出色,甚至在与特征值单独选择的情况相比时亦是如此(参见[22])。

According to the theoretical results from Lemma 1, relatively higher values of observer bandwidth have several effects on the system performance:
根据引理 1 的理论结果,相对较高的观测器带宽对系统性能有如下几个影响:

  • 1.

    the estimation error of the extended state is less affected by the derivative of total disturbance influencing dynamics (8), since the component connected with d˙˙𝑑\dot{d} is multiplied by 1/ωo1subscript𝜔𝑜1/\omega_{o};
    扩展状态的估计误差受影响总扰动对动力学导数的影响较小(公式 8),因为与 d˙\dot{d} 相关的分量乘以了 1/ωo1subscript1/\omega_{o}

  • 2.

    the performance of the estimation system with respect to the measurement noise is highly influenced, because the impact of noise w𝑤w is multiplied by ωonsuperscriptsubscript𝜔𝑜𝑛\omega_{o}^{n}; and
    估计系统在测量噪声方面的性能受到高度影响,因为噪声 ww 的影响被 ωonsuperscriptsubscript\omega_{o}^{n} 倍增;

  • 3.

    the peaking phenomenon reaches higher values due to the multiplier of the first component in (14) equal to ωonsuperscriptsubscript𝜔𝑜𝑛\omega_{o}^{n}, but does not last as long, because the speed of exponential decay that is connected with the peaking phenomenon is proportional to ωosubscript𝜔𝑜\omega_{o}.
    峰值现象由于方程 (14) 中第一分量的倍增效应达到更高数值,但由于与峰值现象相关的指数衰变速率与 ωosubscript\omega_{o} 成正比,持续时间并不长久。

Here, it is worth mentioning that the observer bandwidth should be significantly larger than the controller bandwidth (i.e. ωoωcmuch-greater-thansubscript𝜔𝑜subscript𝜔𝑐\omega_{o}\gg\omega_{c}), because one of the controller goals is to compensate for the total disturbance d()𝑑d(\cdot) which, if done properly, needs to be estimated in a much quicker manner. In [10], through simulation and experimentation, it was found that setting ωo=5~10ωcsubscript𝜔𝑜5~10subscript𝜔𝑐\omega_{o}=5\raisebox{-3.87495pt}{\~{}}10\omega_{c} is a reasonable compromise between the convergence speed and noise sensitivity in many control scenarios; hence, it is a good starting point for further fine-tuning. Moreover, as seen in Lemma 2, the precision of estimation (highly correlated with the value of ωosubscript𝜔𝑜\omega_{o}) determines the magnitude of the perturbation that affects the upper and lower bounds of the control error.
这里,值得一提的是,观测器带宽应显著大于控制器带宽(即 ωoωcmuch-greater-thansubscriptsubscript\omega_{o}\gg\omega_{c} ),因为控制目标之一是对总扰动 d()d(\cdot) 进行补偿,而这若执行得当,需要以更快速度进行估计。 在[10]中,通过仿真与实验发现,设置 ωo=5~10ωcsubscript510subscript\omega_{o}=5\raisebox{-3.87495pt}{\~{}}10\omega_{c} 在多数控制场景中是收敛速度与噪声敏感性之间的合理折中;因此,它是一个良好的起点以供进一步微调。此外,如引理 2 所示,估计精度(与 ωosubscript\omega_{o} 值高度相关)决定了影响控制误差上下限的扰动大小。

3.4 Controller bandwidth ωcsubscript𝜔𝑐\omega_{c}
3.4 控制器带宽 ωcsubscript\omega_{c}

In the process of controller tuning (12), the same bandwidth-parameterisation concept is used as in the case of the observer, but this time, the eigenvalues of the state matrix are placed in the closed-loop control error subsystem (13), that is,
在控制器调优过程中(12),与观察者情况类似,采用了相同的带宽参数化概念,但这次,状态矩阵的特征值被置于闭环控制误差子系统(13)中,即

eigi(𝑨n𝒃n𝒌n)=ωc,fori{1,,n}.formulae-sequencesubscripteig𝑖subscript𝑨𝑛subscript𝒃𝑛subscript𝒌𝑛subscript𝜔𝑐for𝑖1𝑛\displaystyle\textrm{eig}_{i}\left(\boldsymbol{A}_{n}-\boldsymbol{b}_{n}\boldsymbol{k}_{n}\right)=-\omega_{c},\quad\textrm{for}\ i\in\{1,...,n\}. (17)

The increase in parameter ωcsubscript𝜔𝑐\omega_{c} causes a faster convergence of the control error from the initial conditions 𝒆(0)𝒆0\boldsymbol{e}(0), but also possibly causes a higher overshoot because the first component of (15) is multiplied by ωcn1superscriptsubscript𝜔𝑐𝑛1\omega_{c}^{n-1}. Looking at the second component of (15), higher values of ωcsubscript𝜔𝑐\omega_{c} may also have, depending on the dynamics order n𝑛n, a negative impact on the influence of estimation errors on the control performance; thus, one should guarantee a fast and precise extended state estimation by selecting ωoωcmuch-greater-thansubscript𝜔𝑜subscript𝜔𝑐\omega_{o}\gg\omega_{c} to reduce the impact of 𝒛~(t)norm~𝒛𝑡\|\tilde{\boldsymbol{z}}(t)\| on 𝒆(t)norm𝒆𝑡\|\boldsymbol{e}(t)\|.
参数 ωcsubscript\omega_{c} 的增加使得控制误差从初始条件 𝒆(0)0\boldsymbol{e}(0) 更快地收敛,但也可能导致更高的超调,因为(15)式的第一部分乘以了 ωcn1superscriptsubscript1\omega_{c}^{n-1} 。 观察(15)的第二个组成部分,较高的 ωcsubscript\omega_{c} 值在动态阶数 nn 的影响下,可能会对估算误差对控制性能的影响产生负面作用;因此,应通过选择 ωoωcmuch-greater-thansubscriptsubscript\omega_{o}\gg\omega_{c} 来确保快速的精确扩展状态估计,以减少 𝒛~(t)norm\|\tilde{\boldsymbol{z}}(t)\|𝒆(t)norm\|\boldsymbol{e}(t)\| 的影响。

It is also worth noting that the transients of d𝑑d are faster with higher values of ωcsubscript𝜔𝑐\omega_{c}, making it more difficult for the ESO to estimate them. Here again, a good starting point for controller bandwidth selection is the heuristic ωo=5~10ωcsubscript𝜔𝑜5~10subscript𝜔𝑐\omega_{o}=5\raisebox{-3.87495pt}{\~{}}10\omega_{c}, as discussed in [10].
同样值得注意的是, dd 的瞬态响应随 ωcsubscript\omega_{c} 值的增大而加快,这使得 ESO 对其估计更为困难。此处再次强调,控制器带宽选择的良好起点仍是启发式 ωo=5~10ωcsubscript510subscript\omega_{o}=5\raisebox{-3.87495pt}{\~{}}10\omega_{c} ,如[10]中所讨论的那样。

3.5 Control signal saturation
3.5 控制信号饱和

When one knows the physical limitations of the controlled plant, enabling the control signal saturation function in the provided ADRC function block may have an enormous impact on the control performance. When this functionality is disabled (default setting), the observer treats unsaturated control u𝑢u as the signal that affects the system dynamics, whereas in reality, the dynamic system may be subject only to its saturated value. Such a situation may result in a virtual change in b()𝑏b(\cdot) from the observer perspective and cause aggressive and unpredictable transients. In the worst case, it can lead to control system instability owing to the divergence from the range discussed in Remark 5. Depending on the selected saturation function status in the ADRC function block, the control signal takes the following form:
当了解被控对象的物理限制后,在所提供的 ADRC 功能块中启用控制信号饱和功能对控制性能可能产生巨大的影响。当此功能被禁用(默认设置)时,观测器将未饱和的控制 uu 视为影响系统动态的信号,而实际上,动态系统可能仅受其饱和值的影响。 这种情况可能导致从观察者角度看来 b()b(\cdot) 发生实质性变化,并引发激进而不可预测的瞬态现象。在最坏的情况下,由于偏离了备注 5 中讨论的范围,可能导致控制系统失稳。根据 ADRC 功能块中选定的饱和函数状态,控制信号采取以下形式:

u(t)={u(t),when saturation OFF (default);{umin,foru(t)<umin,u(t),foruminu(t)umax,umax,foru(t)>umax,when saturation ON,𝑢𝑡casessuperscript𝑢𝑡when saturation OFF (default)casessubscript𝑢minforsuperscript𝑢𝑡subscript𝑢minsuperscript𝑢𝑡forsubscript𝑢minsuperscript𝑢𝑡subscript𝑢maxsubscript𝑢maxforsuperscript𝑢𝑡subscript𝑢maxwhen saturation ONu(t)=\begin{cases}u^{*}(t),&\text{when saturation OFF (default)};\\ \begin{cases}u_{\text{min}},&\textrm{for}\quad u^{*}(t)<u_{\text{min}},\\ u^{*}(t),&\textrm{for}\quad u_{\text{min}}\leq u^{*}(t)\leq u_{\text{max}},\\ u_{\text{max}},&\textrm{for}\quad u^{*}(t)>u_{\text{max}},\end{cases}&\text{when saturation ON},\end{cases} (18)

where the auxiliary variable u(t)1b^(𝒆^,t)[𝒌n𝒆^(t)d^(t)]superscript𝑢𝑡1^𝑏^𝒆𝑡delimited-[]subscript𝒌𝑛^𝒆𝑡^𝑑𝑡u^{*}(t)\triangleq\frac{1}{\hat{b}(\hat{\boldsymbol{e}},t)}\left[-\boldsymbol{k}_{n}\hat{\boldsymbol{e}}(t)-\hat{d}(t)\right] is the originally defined control signal resulting from (11).
其中辅助变量 u(t)1b^(𝒆^,t)[𝒌n𝒆^(t)d^(t)]superscript1delimited-[]subscriptu^{*}(t)\triangleq\frac{1}{\hat{b}(\hat{\boldsymbol{e}},t)}\left[-\boldsymbol{k}_{n}\hat{\boldsymbol{e}}(t)-\hat{d}(t)\right] 是根据(11)得出的原始定义控制信号。

Remark 8

It should be noted that introduction of the saturation function (18) in the ADRC algorithm, derived in its nominal form in Sect. 2, is not consistent with Lemmas 1 and 2 (both of which consider saturation-less cases). Although true, the presence of a saturation function in disturbance observer-based control designs (especially in the context of stability) has already been addressed in the literature (e.g., [43, 44]). Additionally, the saturation of the control signal is most frequently encountered in the initial transient stage of the control experiments, after which the control signal does not reach saturation and acts according to (11), which is in line with Lemmas 1 and 2.


注记 8 应注意到,引入饱和函数(18)于 ADRC 算法中,该算法在其标准形式下推导于第 2 节,这与引理 1 和 2(两者均考虑无饱和情况)不一致。尽管如此,干扰观测器型控制设计中存在的饱和函数(尤其是在稳定性背景下)已在文献中予以探讨(例如,[43, 44])。 此外,控制信号的饱和现象最常出现在控制试验的初始瞬态阶段,在此之后控制信号不再达到饱和并按照(11)行动,这符合引理 1 和引理 2 所述。

3.6 Anti-peaking 3.6 反峰值

The existence of the peaking phenomenon in the operation of high-gain observers is a well-known issue that can reduce the control system performance, especially at the beginning of the observation process [45]. Although many methods can be used within the observer structure to address this issue (e.g. [46, 47]), here, a method that deals with the peaking by temporarily disabling the control action at the beginning of the control process (i.e. the control signal is being calculated but not applied to the controlled plant), allows the peaking to simply pass. This approach was successfully used in [34, 36]. The specific anti-peaking logic implemented in the ADRC function block affects the control signal in the following manner:
高增益观测器运行中峰值现象的存在是一个众所周知的问题,会降低控制系统性能,特别是在观测过程开始时[45]。尽管在观测器结构内有许多方法可用于解决此问题(例如[46, 47]),但此处采用的方法是在控制过程开始时暂时禁用控制动作,以此处理峰值现象。 控制信号正在计算但尚未施加到被控对象上,使得峰值现象得以简单通过。这种方法在[34, 36]中得到了成功应用。ADRC 功能块中实现的特定抗峰值逻辑以如下方式影响控制信号:

u(t)={u(t),when anti-peaking OFF (default);{0for 0tTd;u(t)fort>Td;when anti-peaking ON,𝑢𝑡casessuperscript𝑢𝑡when anti-peaking OFF (default)cases0for 0𝑡subscript𝑇𝑑otherwisesuperscript𝑢𝑡for𝑡subscript𝑇𝑑otherwisewhen anti-peaking ONu(t)=\begin{cases}u^{*}(t),&\text{when anti-peaking OFF (default)};\\ \begin{cases}0\leavevmode\nobreak\ \text{for}\leavevmode\nobreak\ 0\leq t\leq T_{d};\\ u^{*}(t)\leavevmode\nobreak\ \text{for}\leavevmode\nobreak\ t>T_{d};\end{cases}&\text{when anti-peaking ON},\end{cases} (19)

where Td>0subscript𝑇𝑑0T_{d}>0 is the time that must pass before applying the control signal, and u(t)superscript𝑢𝑡u^{*}(t) is the auxiliary variable that represents the control signal after passing the saturation logic defined in (18).
其中 Td>0subscript0T_{d}>0 表示应用控制信号前必须经过的时间, u(t)superscriptu^{*}(t) 则是表示经过(18)中所定义的饱和逻辑后的控制信号的辅助变量。

Remark 9

Here, similar to Remark (8), which discusses the control signal saturation, the use of the anti-peaking mechanism (19) in the considered ADRC algorithm is inconsistent with Lemmas 1 and 2 (both derived for the case without anti-peaking). The theoretical ramifications of this have been studied before, for example, in [47, 46], where it was shown that under certain conditions, which are relatively easy to satisfy in practice, the stability of the system can be retained.


注记 9 此处,类似于注记 (8),讨论了控制信号饱和问题,而在所考虑的自抗扰控制(ADRC)算法中使用防尖峰机制 (19) 与引理 1 和 2(均为针对无防尖峰情形推导得出)并不一致。关于此的理论影响此前已有研究,例如在[47, 46]中表明,在满足某些相对容易实践的条件时,系统的稳定性仍可得以维持。

3.7 Overview 3.7 概述

A simplified diagram showing the insights of the introduced ADRC function block is shown in Fig. 3, and the scope of its current functionalities is summarised in Table 1. Depending on the function block configuration, it can be seen that b^^𝑏\hat{b} can be chosen to be either constant (realised internally through the provided GUI, Fig. 2) or supplied externally as a time-dependent value from outside the function block, which is illustrated by the switching mechanisms in Fig. 3. The default configuration in the ADRC function block is the constant b^^𝑏\hat{b}. One can change its source in the GUI to external and then provide (in each sample time) information about the varying value of b^^𝑏\hat{b}. A variety of techniques can be used to calculate b^(t)^𝑏𝑡\hat{b}(t) on-line, for example, a genetic algorithm [48] or extremum-seeking algorithm [49]. Regardless of the chosen type of b^^𝑏\hat{b} in the function block, its value must satisfy (5). In the cases of ωcsubscript𝜔𝑐\omega_{c} and ωosubscript𝜔𝑜\omega_{o}, a similar approach is applied. By default, these values are to be set as a constant in the ADRC function block, or alternatively provided as external time-dependent values. In the latter case, their specific values can be calculated, for example, using a neural network [22], genetic algorithm [50], nonlinear function [9], or time-varying [51] function.
图 3 展示了一个简化图,描述了所引入 ADRC 功能模块的内部构思,其当前功能范围汇总于表 1 中。根据功能模块的配置,可以看出, b^\hat{b} 既可选择为常数(通过提供的 GUI 在内部实现,如图 2 所示),也可由外部提供随时间变化的数值输入——此机制在图 3 中的切换功能中得以体现。 ADRC 功能块中的默认设置为常量 b^\hat{b} 。用户可以通过图形用户界面(GUI)将其源更改为外部,然后在每个采样时间提供关于变量 b^\hat{b} 的信息。可以采用多种技术在线计算 b^(t)\hat{b}(t) ,例如遗传算法[48]或极值搜索算法[49]。无论功能块中选择何种类型的 b^\hat{b} ,其值都必须满足公式(5)。 在 ωcsubscript\omega_{c}ωosubscript\omega_{o} 的情况下,采用了类似的方法。默认情况下,这些值将在 ADRC 功能块中设为常数,或者可以选择提供为随时间变化的外部值。在后一种情况下,它们的特定值可以通过神经网络[22]、遗传算法[50]、非线性函数[9]或时变[51]函数等方法进行计算。

Refer to caption
Figure 3: Schematic diagram of the ADRC function block (available in the developed ADRC Toolbox; cf. Fig. 1).
图 3:ADRC 功能模块示意图(可在开发的 ADRC 工具箱中获取;参见图 1)。

To summarise, Fig. 4 shows the design steps for deploying the proposed ADRC function block.
总结来说,图 4 展示了部署所提出 ADRC 功能块的设计步骤。

Table 1: Overview of parameters and functionalities of the ADRC function block.
表 1:ADRC 功能块的参数与功能概览。
Parameter/Functionality 参数/功能 Symbol 符号 Selection 选择 Variations 变异 Admissible value 可容许值
Order of system dynamics (Sect. 3.1)
系统动力学次序(第 3.1 节)
n𝑛n Mandatory 强制 Constant 常数 n𝑛n\in\mathbb{Z}
Estimate of input gain (Sect. 3.2)
输入增益估计(第 3.2 节)
b^^𝑏\hat{b} Mandatory 强制 Constant / Time-dependent
恒定/时变
b^/{0}^𝑏0\hat{b}\in\mathbb{R}/\{0\}
Observer bandwidth (Sect. 3.3)
观测带宽(第 3.3 节)
ωosubscript𝜔𝑜\omega_{o} Mandatory 强制 Constant / Time-dependent
恒定/时变
ωoωcmuch-greater-thansubscript𝜔𝑜subscript𝜔𝑐\omega_{o}\gg\omega_{c}
Controller bandwidth (Sect. 3.4)
控制器带宽(第 3.4 节)
ωcsubscript𝜔𝑐\omega_{c} Mandatory 强制 Constant / Time-dependent
恒定/时变
ωc>0subscript𝜔𝑐0\omega_{c}>0
Control signal saturation (Sect. 3.5)
控制信号饱和(第 3.5 节)
n/a (源文本为空,无法进行翻译。) Optional 选择性的 Upper limit, Lower limit 上限, 下限 umin<umaxsubscript𝑢minsubscript𝑢maxu_{\text{min}}<u_{\text{max}}
Anti-peaking (Sect. 3.6)
反激化(第 3.6 节)
n/a (源文本为空,无法进行翻译。) Optional 选择性的 Constant 常数 Td>0subscript𝑇𝑑0T_{d}>0
Refer to caption
Figure 4: Design steps for deploying the proposed ADRC function block.
图 4:部署所提出 ADRC 功能块的设计步骤。

4 Validation 4 验证

To verify the efficacy of the proposed ADRC Toolbox with its ADRC function block, a set of tests was conducted in Examples #1 through #5. The tests, described in Table 2, utilise a group of systems from various control areas that differ from each other in terms of order, type, and structure of the controlled dynamics as well as type of external disturbance. Some of the control examples were performed in simulation, whereas others were realized in hardware. In contrast to simulation studies, physical benchmarks also consider real process characteristics such as discrete sampling intervals, communication overhead related to the process, requirements to meet a cycle time, and mathematical modelling mismatches. Such diversified group was purposefully selected to test the ADRC Toolbox in various control scenarios. Moreover, the experimental part of the validation was conducted using only hardware components that are relatively cheap and easily accessible. The choice of testing the proposed ADRC Toolbox exclusively using commercial off-the-shelf hardware systems was deliberate because it allows the Toolbox users to reproduce the results shown later in this paper. The tuning methodology in all the upcoming examples is based on the guidelines from Sect. 3.
为了验证所提出的 ADRC 工具箱及其 ADRC 功能模块的有效性,在例#1 至#5 中进行了一系列测试。如表 2 所述,这些测试利用了来自不同控制领域的一系列系统,这些系统在受控动力学的阶数、类型和结构以及外部扰动类型方面各不相同。部分控制示例通过仿真实现,而其他则通过硬件实现。 与仿真研究不同,物理基准还考虑了实际过程特征,如离散采样间隔、与过程相关的通信开销、满足循环时间的要求以及数学建模的不匹配。这样多样化的群体被有意选择,以在各种控制场景中测试 ADRC 工具箱的性能。 此外,验证实验部分仅使用了相对廉价且易于获得的硬件组件进行。之所以选择仅使用商用现成的硬件系统来测试所提出的 ADRC 工具箱,是出于有意为之,因为这使得工具箱用户能够重现本文后述的结果。所有后续示例中的调优方法均基于第 3 节所述指南。

Table 2: Methodology of ADRC Toolbox validation.
表 2:ADRC 工具箱验证的方法论。
Example no. 示例编号: Plant 植物 Criterion 标准
Order (n𝑛n)
订单( nn
Type 类型 Structure 结构 Ext. disturb. (dsuperscript𝑑d^{*})
外部干扰。( dsuperscriptd^{*}
Control area 控制区域 Validation 验证
#1 (Sect. 4.1) #1(第 4.1 节) Generic plant 通用植物 4 Linear 线性 SISO Step 步骤 n/a (源文本为空,无法进行翻译。) Simulation 模拟
#2 (Sect. 4.2) #2(第 4.2 节) Coupled tanks 耦合罐 1 Nonlinear 非线性 MIMO Step 步骤 Process 过程 Simulation 模拟
#3 (Sect. 4.3) #3(节 4.3) Power converter 电力变换器 2 Linear 线性 SISO Harmonic 谐波 Power 力量 Simulation 模拟
#4 (Sect. 4.4) #4 (第 4.4 节) DC motor 直流电机 2 Linear 线性 SISO None Source Text is null, please input valid text for translation Motion 运动 Experiment 实验
#5 (Sect. 4.5) #5 (第 4.5 节) Heaters 加热器 1 Nonlinear 非线性 MIMO None Source Text is null, please input valid text for translation Process 过程 Experiment 实验

4.1 Example #1: Generic plant control
4.1 示例#1:通用植物控制

The first considered system is expressed in form of (1) as
所考虑的第一个系统以式(1)形式表达为

{x(4)(t)=f(x,x˙,x¨,x(3),t)+bu(t)+d(t),y(t)=x(t)+w(t),casessuperscript𝑥4𝑡absentsuperscript𝑓𝑥˙𝑥¨𝑥superscript𝑥3𝑡superscript𝑏𝑢𝑡superscript𝑑𝑡superscript𝑦𝑡absent𝑥𝑡𝑤𝑡\displaystyle\begin{cases}x^{(4)}(t)&=f^{*}\left(x,\dot{x},\ddot{x},x^{(3)},t\right)+b^{*}u(t)+d^{*}(t),\\ y^{*}(t)&=x(t)+w(t),\end{cases} (20)

where f(x,x˙,x¨,x(3),t)=4x(3)6x¨4x˙xsuperscript𝑓𝑥˙𝑥¨𝑥superscript𝑥3𝑡4superscript𝑥36¨𝑥4˙𝑥𝑥f^{*}\left(x,\dot{x},\ddot{x},x^{(3)},t\right)=-4x^{(3)}-6\ddot{x}-4\dot{x}-x, b=1superscript𝑏1b^{*}=1, and d(t)=70𝟙(t10)superscript𝑑𝑡701𝑡10d^{*}(t)=70\cdot\mathbbm{1}(t-10).
其中 f(x,x˙,x¨,x(3),t)=4x(3)6x¨4x˙xsuperscriptsuperscript34superscript364f^{*}\left(x,\dot{x},\ddot{x},x^{(3)},t\right)=-4x^{(3)}-6\ddot{x}-4\dot{x}-xb=1superscript1b^{*}=1 ,以及 d(t)=70𝟙(t10)superscript70110d^{*}(t)=70\cdot\mathbbm{1}(t-10)

The control objective here is to generate the control signal u𝑢u so the output signal x𝑥x tracks the desired trajectory xdsubscript𝑥𝑑x_{d}, despite the presence of an external disturbance and the parametric uncertainty of the model. Additionally, two scenarios are considered in this study: without sensor noise (w(t)0𝑤𝑡0w(t)\equiv 0) and with sensor noise w(t)𝒩(0,1012)similar-to𝑤𝑡𝒩0superscript1012w(t)\sim\mathcal{N}\left(0,10^{-12}\right). The ADRC function block (from the proposed ADRC Toolbox) is implemented with design parameters n=4𝑛4n=4, b^=0.8^𝑏0.8\hat{b}=0.8, ωc=5subscript𝜔𝑐5\omega_{c}=5, ωo=50subscript𝜔𝑜50\omega_{o}=50, and the anti-peaking functionality turned off (default setting). Two additional scenarios are considered: with the saturation turned off (default setting) and with the saturation turned on, with lower and upper limits umin=100subscript𝑢min100u_{\text{min}}=-100 and umax=100subscript𝑢max100u_{\text{max}}=100. With (20) expressed in the form of (1) and the ADRC parameters and functionalities configured, the remaining equations of the ADRC algorithm (3)-(13) can now be straightforwardly derived for the above system, which is omitted here to avoid redundancy.
此处控制目标为生成控制信号 uu ,使输出信号 xx 能够跟踪期望轨迹 xdsubscriptx_{d} ,尽管存在外部扰动和模型参数不确定性。此外,本研究还考虑了两种情况:无传感器噪声( w(t)00w(t)\equiv 0 )和有传感器噪声 w(t)𝒩(0,1012)similar-to0superscript1012w(t)\sim\mathcal{N}\left(0,10^{-12}\right) 。 ADRC 功能块(来自拟议的 ADRC 工具箱)采用设计参数 n=44n=4b^=0.80.8\hat{b}=0.8ωc=5subscript5\omega_{c}=5ωo=50subscript50\omega_{o}=50 实现,并关闭了反峰值功能(默认设置)。考虑了两种附加情景:关闭饱和(默认设置)以及开启饱和,设定上下限为 umin=100subscript100u_{\text{min}}=-100umax=100subscript100u_{\text{max}}=100 。 将式(20)表示为式(1)的形式,并配置 ADRC 的参数与功能后,现在可以为上述系统直接推导出 ADRC 算法其余部分的方程(3)-(13),此处为避免冗余而省略。

The block diagram of the implemented ADRC-based system in MATLAB/Simulink is shown in Fig. 5, where G(s)=1/(s4+4s3+6s2+4s+1)𝐺𝑠1superscript𝑠44superscript𝑠36superscript𝑠24𝑠1G(s)=1/\left(s^{4}+4s^{3}+6s^{2}+4s+1\right). The results of using the proposed ADRC Toolbox in the above control problem are shown in Fig. 6. From the obtained results, one can conclude that the applied ADRC function block managed to realise the given control objective in a satisfactory manner for all tested scenarios. The implemented robust controller drove the control error toward zero and performance recovered after the appearance of the external disturbance at t=10𝑡10t=10s. One can also see the influence of the saturation mechanism and the measurement noise. In the case of the saturation, the control error converges faster when the saturation is off, except for the effects of the initial oscillatory behaviour of the output and control signal peaks, reaching the magnitude of u106𝑢superscript106u\approx 10^{6} in the initial transient, which would probably not be feasible for most real-world controllers. In the case of measurement noise, owing to the particular structure of the observer and the controller (both utilising the output signal), the noise is clearly manifested in the control signal. At the same time, for the considered system, the noise in the control signal is mostly filtered by the plant dynamics and does not have a significant impact on the controlled variable.
图 5 展示了在 MATLAB/Simulink 中实现的基于 ADRC 的系统框图,其中 G(s)=1/(s4+4s3+6s2+4s+1)1superscript44superscript36superscript241G(s)=1/\left(s^{4}+4s^{3}+6s^{2}+4s+1\right) 。图 6 展示了在使用上述控制问题中提出的 ADRC 工具箱的结果。从获得的结果可以得出结论,应用的 ADRC 功能块在所有测试场景中均成功实现了给定的控制目标,表现令人满意。 所实施的鲁棒控制器将控制误差驱动至零,并且在 t=1010t=10 秒处出现外部扰动后,性能得以恢复。同时,亦可见饱和机制和测量噪声的影响。 在饱和情况下,除了输出和控制信号峰值的初始振荡行为外,当饱和关闭时,控制误差收敛更快,在初始瞬态时达到 u106superscript106u\approx 10^{6} 的大小,这可能对大多数实际控制器来说并不可行。 在测量噪声的情况下,由于观测器和控制器的特殊结构(两者均利用输出信号),噪声显然会体现在控制信号中。同时,对于所考虑的系统,控制信号中的噪声主要由被控对象的动态特性所滤除,对被控变量的影响并不显著。

Refer to caption
Figure 5: Block diagram of the generic control system (Example #1) with the ADRC function block from the proposed ADRC Toolbox.
图 5:通用控制系统(示例#1)的框图,包含从建议的 ADRC 工具箱中提取的 ADRC 功能模块。
Refer to caption
Refer to caption
Refer to caption
(a) case without sensor noise (w(t)0𝑤𝑡0w(t)\equiv 0)
(a) 无传感器噪声的情境( w(t)00w(t)\equiv 0 )
Refer to caption
Refer to caption
Refer to caption
(b) case with sensor noise w(t)𝒩(0,1012)similar-to𝑤𝑡𝒩0superscript1012w(t)\sim\mathcal{N}\left(0,10^{-12}\right)
(b)传感器噪声存在的情况 w(t)𝒩(0,1012)similar-to0superscript1012w(t)\sim\mathcal{N}\left(0,10^{-12}\right)
Figure 6: Simulation results of Example #1.
图 6:例#1 的仿真结果。

4.2 Example #2: Coupled tanks level control
4.2 示例#2:耦合罐液位控制

This example considers a hydraulic system, which consists of two tanks connected by a flow channel and two independent inlet flows, one for each tank. The fluid levels in the tanks are considered as the system outputs; hence, the resultant multi-input, multi-output (MIMO) system model can be expressed as
此例分析了一个液压系统,该系统由两个通过流动通道相连的储罐和两个各自独立的进水流构成。储罐内的液位被视为系统输出;因此,这个多输入、多输出(MIMO)系统模型可以表示为:

{dh1(t)dt=ac2gh1(t)acsign(ϵh(t))2g|ϵh(t)|+1cu1(t)+d1(t),y1(t)=h1(t)+w1(t),dh2(t)dt=ac2gh2(t)+acsign(ϵh(t))2g|ϵh(t)|+1cu2(t)+d2(t),y2(t)=h2(t)+w2(t),cases𝑑subscript1𝑡𝑑𝑡absent𝑎𝑐2𝑔subscript1𝑡𝑎𝑐signsubscriptitalic-ϵ𝑡2𝑔subscriptitalic-ϵ𝑡1𝑐subscript𝑢1𝑡subscriptsuperscript𝑑1𝑡superscriptsubscript𝑦1𝑡absentsubscript1𝑡subscript𝑤1𝑡𝑑subscript2𝑡𝑑𝑡absent𝑎𝑐2𝑔subscript2𝑡𝑎𝑐signsubscriptitalic-ϵ𝑡2𝑔subscriptitalic-ϵ𝑡1𝑐subscript𝑢2𝑡superscriptsubscript𝑑2𝑡superscriptsubscript𝑦2𝑡absentsubscript2𝑡subscript𝑤2𝑡\displaystyle\begin{cases}\frac{dh_{1}(t)}{dt}&=-\frac{a}{c}\sqrt{2gh_{1}(t)}-\frac{a}{c}\text{sign}(\epsilon_{h}(t))\sqrt{2g|\epsilon_{h}(t)|}+\frac{1}{c}u_{1}(t)+d^{*}_{1}(t),\\ y_{1}^{*}(t)&=h_{1}(t)+w_{1}(t),\\ \frac{dh_{2}(t)}{dt}&=-\frac{a}{c}\sqrt{2gh_{2}(t)}+\frac{a}{c}\text{sign}(\epsilon_{h}(t))\sqrt{2g|\epsilon_{h}(t)|}+\frac{1}{c}u_{2}(t)+d_{2}^{*}(t),\\ y_{2}^{*}(t)&=h_{2}(t)+w_{2}(t),\end{cases} (21)

where u1subscript𝑢1u_{1}[m3/s] and u2subscript𝑢2u_{2}[m3/s] are the inlet flows (control signals) for the first and second tanks, respectively; y1superscriptsubscript𝑦1y_{1}^{*}[m] and y2superscriptsubscript𝑦2y_{2}^{*}[m] are the measured system outputs, which consist of, respectively, first and second tank fluid levels h1subscript1h_{1}[m] and h2subscript2h_{2}[m] and the corresponding sensor noises w1subscript𝑤1w_{1}[m] and w2subscript𝑤2w_{2}[m]; the auxiliary variable ϵh:=h1h2assignsubscriptitalic-ϵsubscript1subscript2\epsilon_{h}:=h_{1}-h_{2} represents the fluid level difference; g𝑔g[m/s2] is the gravitational acceleration; a𝑎a[m2] is the cross-sectional area of the pipes; and c𝑐c[m2] is the cross-sectional area of the tanks. It is assumed that the system model (21) has the same parameters for both tanks and pipelines. The parameters of the system model used in the simulation were c=1.2102𝑐1.2superscript102c=1.2\cdot 10^{-2}m2, a=7.5105𝑎7.5superscript105a=7.5\cdot 10^{-5}m2, and g=9.81𝑔9.81g=9.81m/s2. Referring to the generalised form of the system description from (1), one can assign x(t):=h1(t)assign𝑥𝑡subscript1𝑡x(t):=h_{1}(t), f(x,t)=ac2gx(t)acsign(ϵh(t))2g|ϵh(t)|superscript𝑓𝑥𝑡𝑎𝑐2𝑔𝑥𝑡𝑎𝑐signsubscriptitalic-ϵ𝑡2𝑔subscriptitalic-ϵ𝑡f^{*}(x,t)=-\frac{a}{c}\sqrt{2gx(t)}-\frac{a}{c}\text{sign}(\epsilon_{h}(t))\sqrt{2g|\epsilon_{h}(t)|}, and b=1csuperscript𝑏1𝑐b^{*}=\frac{1}{c} for the first tank dynamics and x(t):=h2(t)assign𝑥𝑡subscript2𝑡x(t):=h_{2}(t), f(x,t)=ac2gx(t)+acsign(ϵh(t))2g|ϵh(t)|superscript𝑓𝑥𝑡𝑎𝑐2𝑔𝑥𝑡𝑎𝑐signsubscriptitalic-ϵ𝑡2𝑔subscriptitalic-ϵ𝑡f^{*}(x,t)=-\frac{a}{c}\sqrt{2gx(t)}+\frac{a}{c}\text{sign}(\epsilon_{h}(t))\sqrt{2g|\epsilon_{h}(t)|}, and b=1csuperscript𝑏1𝑐b^{*}=\frac{1}{c} for the second tank dynamics.
其中, u1subscript1u_{1} [m³/s] 和 u2subscript2u_{2} [m³/s] 分别为第一和第二储罐的入口流量(控制信号); y1superscriptsubscript1y_{1}^{*} [m] 和 y2superscriptsubscript2y_{2}^{*} [m] 为系统测量输出,分别表示第一和第二储罐的液位 h1subscript1h_{1} [m] 和 h2subscript2h_{2} [m],以及相应的传感器噪声 w1subscript1w_{1} [m] 和 w2subscript2w_{2} [m];辅助变量 ϵh:=h1h2assignsubscriptsubscript1subscript2\epsilon_{h}:=h_{1}-h_{2} 表示液位差; gg [m/s²] 为重力加速度; aa [m²] 为管道的横截面积且 cc [m2] 是储罐的横截面积。假设系统模型(21)在储罐和管道中具有相同的参数。在仿真中使用的系统模型参数为 c=1.21021.2superscript102c=1.2\cdot 10^{-2} m2、 a=7.51057.5superscript105a=7.5\cdot 10^{-5} m2 和 g=9.819.81g=9.81 m/s2。参照系统描述的广义形式(1),可以为第一个储罐的动力学分配 x(t):=h1(t)assignsubscript1x(t):=h_{1}(t)f(x,t)=ac2gx(t)acsign(ϵh(t))2g|ϵh(t)|superscript2subscript2subscriptf^{*}(x,t)=-\frac{a}{c}\sqrt{2gx(t)}-\frac{a}{c}\text{sign}(\epsilon_{h}(t))\sqrt{2g|\epsilon_{h}(t)|}b=1csuperscript1b^{*}=\frac{1}{c} ,并为第二个储罐的动力学分配 x(t):=h2(t)assignsubscript2x(t):=h_{2}(t)f(x,t)=ac2gx(t)+acsign(ϵh(t))2g|ϵh(t)|superscript2subscript2subscriptf^{*}(x,t)=-\frac{a}{c}\sqrt{2gx(t)}+\frac{a}{c}\text{sign}(\epsilon_{h}(t))\sqrt{2g|\epsilon_{h}(t)|}b=1csuperscript1b^{*}=\frac{1}{c}

The control objective here is to manipulate two inlet flows u1/2subscript𝑢12u_{1/2} to make the output levels h1/2subscript12h_{1/2} track the respective reference set points xd1/d2subscript𝑥𝑑1𝑑2x_{d1/d2}[m]. The control process should be carried out despite external disturbances d1(t)=1.4104𝟙(t90)superscriptsubscript𝑑1𝑡1.4superscript1041𝑡90d_{1}^{*}(t)=-1.4\cdot 10^{-4}\cdot\mathbbm{1}(t-90) and d2(t)=0.7104𝟙(t130)superscriptsubscript𝑑2𝑡0.7superscript1041𝑡130d_{2}^{*}(t)=-0.7\cdot 10^{-4}\cdot\mathbbm{1}(t-130), the parametric uncertainty of the model, and Gaussian sensor noise w1/2𝒩(0,0.81010)similar-tosubscript𝑤12𝒩00.8superscript1010w_{1/2}\sim\mathcal{N}\left(0,0.8\cdot 10^{-10}\right). It is worth noting that, in this example, the tanks are treated as two independent systems; therefore, two independent ADRC function blocks are used, one to govern each input-to-output channel of the MIMO system. In such a configuration, the influence of the cross-couplings is treated as part of the total disturbance of the system.
此处的控制目标是操作两个入口流量 u1/2subscript12u_{1/2} ,使输出水平 h1/2subscript12h_{1/2} 追踪各自的目标设定点 xd1/d2subscript12x_{d1/d2} [m]。控制过程应在存在外部干扰 d1(t)=1.4104𝟙(t90)superscriptsubscript11.4superscript104190d_{1}^{*}(t)=-1.4\cdot 10^{-4}\cdot\mathbbm{1}(t-90)d2(t)=0.7104𝟙(t130)superscriptsubscript20.7superscript1041130d_{2}^{*}(t)=-0.7\cdot 10^{-4}\cdot\mathbbm{1}(t-130) 、模型参数不确定性的情况下进行,同时应对高斯传感器噪声 w1/2𝒩(0,0.81010)similar-tosubscript1200.8superscript1010w_{1/2}\sim\mathcal{N}\left(0,0.8\cdot 10^{-10}\right) 。 值得注意的是,在此例中,各储罐被视为两个独立的系统;因此,采用了两个独立的 ADRC 功能块,分别控制 MIMO 系统中的每个输入-输出通道。在这种配置下,交叉耦合的影响被视为系统总扰动的一部分。

In this example, the two ADRC blocks are implemented with design parameters n=2𝑛2n=2, b^=0.8^𝑏0.8\hat{b}=0.8, ωc=0.3subscript𝜔𝑐0.3\omega_{c}=0.3, and ωo=3subscript𝜔𝑜3\omega_{o}=3 for the first tank, and n=2𝑛2n=2, b^=1^𝑏1\hat{b}=1, ωc=0.12subscript𝜔𝑐0.12\omega_{c}=0.12, and ωo=1.2subscript𝜔𝑜1.2\omega_{o}=1.2 for the second tank. The control signal saturation is turned on with limits umin=0subscript𝑢min0u_{\text{min}}=0 and umax=4104subscript𝑢max4superscript104u_{\text{max}}=4\cdot 10^{-4} (where the latter value corresponds to the fluid flow rate of 144014401440l/h) and the anti-peaking function is turned off (default setting). The block diagram of the implemented ADRC-based system in MATLAB/Simulink is shown in Fig. 7, and the results of using the ADRC Toolbox in the above control problem are shown in Fig. 8.
在本例中,两个 ADRC 模块分别采用设计参数 n=22n=2b^=0.80.8\hat{b}=0.8ωc=0.3subscript0.3\omega_{c}=0.3ωo=3subscript3\omega_{o}=3 (用于第一个水箱)和 n=22n=2b^=11\hat{b}=1ωc=0.12subscript0.12\omega_{c}=0.12ωo=1.2subscript1.2\omega_{o}=1.2 (用于第二个水箱)实现。控制信号饱和功能已开启,其限值为 umin=0subscript0u_{\text{min}}=0umax=4104subscript4superscript104u_{\text{max}}=4\cdot 10^{-4} (其中后者对应于流速 144014401440 升/小时),而抗峰值功能则保持关闭(默认设置)。图示为在 MATLAB/Simulink 中实现的基于 ADRC 系统的框图。 图 7 显示了在上述控制问题中使用 ADRC 工具箱的结果。

Refer to caption
Figure 7: Block diagram of the coupled tank control system (Example #2) with the ADRC function blocks (from the proposed ADRC Toolbox), each controls one degree of freedom.
图 7:耦合水箱控制系统(例 2)的框图,包含 ADRC 功能模块(来自所提出的 ADRC 工具箱),每个模块控制一个自由度。
Refer to caption
Refer to caption
Refer to caption
Figure 8: Simulation results of Example #2.
图 8:案例#2 的仿真结果。

In this figure, one can see that the ADRC scheme successfully realises the control task in both control channels of the considered multidimensional system. After the transient stages, both tank levels are maintained at the desired predefined values, and the implemented ADRC controllers manage to quickly and accurately compensate for the influence of external disturbances before they have a visible effect on the process variables. However, the impact of d1superscriptsubscript𝑑1d_{1}^{*} and d2superscriptsubscript𝑑2d_{2}^{*} is clearly seen in the control signals u1/2subscript𝑢12u_{1/2} at t=90𝑡90t=90s and t=130𝑡130t=130s, when they are abruptly forced by the control structure to generate more energy to handle the disturbances in real time. Interestingly, the ADRC block parameters for governing the first tank dynamics have higher tuning parameter values ωcsubscript𝜔𝑐\omega_{c} and ωosubscript𝜔𝑜\omega_{o} and lower estimated input gain values b^^𝑏\hat{b}, when compared to those for the second tank. This results in faster convergence of the control error for the first tank, but also creates larger noise amplification in the control signal, which could be potentially problematic in real-world implementations. These observations directly correspond to the theoretical findings described for b^^𝑏\hat{b}, ωosubscript𝜔𝑜\omega_{o}, and ωcsubscript𝜔𝑐\omega_{c} in Sects. 3.2, 3.3, and 3.4, respectively.
在此图中,可以看到 ADRC 方案成功实现了所考虑的多维系统两个控制通道的控制任务。经过暂态阶段后,两个水箱液位均维持在预设的期望值上,且所实现的 ADRC 控制器能够在外部扰动对过程变量产生可见影响之前迅速而精确地进行补偿。 然而, d1superscriptsubscript1d_{1}^{*}d2superscriptsubscript2d_{2}^{*} 的影响在 t=9090t=90 秒和 t=130130t=130 秒的控制信号 u1/2subscript12u_{1/2} 中清晰可见,此时控制结构迫使它们急剧增加能量以实时应对干扰。有趣的是,与第二个储罐相比,用于调节第一个储罐动态的 ADRC 模块参数具有更高的调谐参数值 ωcsubscript\omega_{c}ωosubscript\omega_{o} ,以及较低的估计输入增益值 b^\hat{b} 。 这使得第一个罐的控制误差更快收敛,但也在控制信号中产生了较大的噪声放大,这在实际应用中可能成为问题。这些观察结果直接对应于第 3.2、3.3 和 3.4 节分别对 b^\hat{b}ωosubscript\omega_{o}ωcsubscript\omega_{c} 描述的理论发现。

4.3 Example #3: Power converter voltage control
4.3 示例#3:功率转换器电压控制

The system is a DC-DC buck converter, which is a common component in power electronics. Following [36, 52], the average second-order dynamic model can be formulated as
该系统是一个直流-直流降压转换器,这是电力电子学中的常见组件。依据[36, 52]的研究,可以构建其平均二阶动态模型为

{d2vo(t)dt2=1CRdvo(t)dt1CLvo(t)+VinCLu(t)+d(RL(t),t),y(t)=vo(t)+w(t),casessuperscript𝑑2subscript𝑣𝑜𝑡𝑑superscript𝑡2absent1𝐶𝑅𝑑subscript𝑣𝑜𝑡𝑑𝑡1𝐶𝐿subscript𝑣𝑜𝑡subscript𝑉in𝐶𝐿𝑢𝑡superscript𝑑subscript𝑅𝐿𝑡𝑡superscript𝑦𝑡absentsubscript𝑣𝑜𝑡𝑤𝑡\begin{cases}\frac{d^{2}v_{o}(t)}{dt^{2}}&=-\frac{1}{CR}\frac{dv_{o}(t)}{dt}-\frac{1}{CL}v_{o}(t)+\frac{V_{\text{in}}}{CL}u(t)+d^{*}(R_{L}(t),t),\\ y^{*}(t)&=v_{o}(t)+w(t),\end{cases} (22)

where u[0,1]𝑢01u\in[0,1] is the duty ratio (control signal); ysuperscript𝑦y^{*}[V] is the measured system output, which consists of the average capacitor voltage vosubscript𝑣𝑜v_{o}[V] and the sensor noise w𝑤w[V]; R𝑅R[ΩΩ\Omega] is the load resistance of the circuit; L𝐿L[H] is the filter inductance; C𝐶C[F] is the filter capacitance; Vinsubscript𝑉inV_{\text{in}}[V] is the input voltage source; and the external disturbance dsuperscript𝑑d^{*} is dependent on the time-varying load resistance RLsubscript𝑅𝐿R_{L}[ΩΩ\Omega]. The parameters of the power converter used in the simulation were taken from a real system that was utilised in [36, 52] and are Vin=20subscript𝑉in20V_{\text{in}}=20V, L=0.01𝐿0.01L=0.01H, C=0.001𝐶0.001C=0.001F, and R=50Ω𝑅50ΩR=50\Omega. Referring to the generalised form of the system description in (1), we can assign x(t):=vo(t)assign𝑥𝑡subscript𝑣𝑜𝑡x(t):=v_{o}(t), f(x,x˙,t)=1CRx˙(t)1CLx(t)superscript𝑓𝑥˙𝑥𝑡1𝐶𝑅˙𝑥𝑡1𝐶𝐿𝑥𝑡f^{*}(x,\dot{x},t)=-\frac{1}{CR}\dot{x}(t)-\frac{1}{CL}x(t), and b=VinCLsuperscript𝑏subscript𝑉in𝐶𝐿b^{*}=\frac{V_{\text{in}}}{CL}.
其中, u[0,1]01u\in[0,1] 为占空比(控制信号); ysuperscripty^{*} [V] 为测量系统输出,由平均电容电压 vosubscriptv_{o} [V] 及传感器噪声 ww [V] 组成; RR [ Ω\Omega ] 为电路的负载电阻; LL [H] 为滤波电感; CC [F] 为滤波电容; VinsubscriptV_{\text{in}} [V] 为输入电压源;外部扰动 dsuperscriptd^{*} 则取决于时变负载电阻 RLsubscriptR_{L} [ Ω\Omega ]。 仿真中所用功率变换器的参数取自[36, 52]中实际使用的系统,分别为 Vin=20subscript20V_{\text{in}}=20 V、 L=0.010.01L=0.01 H、 C=0.0010.001C=0.001 F 和 R=50Ω50R=50\Omega 。参考公式(1)中系统的广义描述形式,我们可以指定 x(t):=vo(t)assignsubscriptx(t):=v_{o}(t)f(x,x˙,t)=1CRx˙(t)1CLx(t)superscript11f^{*}(x,\dot{x},t)=-\frac{1}{CR}\dot{x}(t)-\frac{1}{CL}x(t)b=VinCLsuperscriptsubscriptb^{*}=\frac{V_{\text{in}}}{CL}

The control objective here is to generate the control signal u𝑢u that will make vosubscript𝑣𝑜v_{o} track a reference capacitor output voltage trajectory xdsubscript𝑥𝑑x_{d}[V] despite the unknown external disturbance related to load resistance RL=85sin(40πt)+100subscript𝑅𝐿8540𝜋𝑡100R_{L}=85\sin(40\pi t)+100, the presence of sensor noise w𝒩(0,5105)similar-to𝑤𝒩05superscript105w\sim\mathcal{N}(0,5\cdot 10^{-5}), and the parametric uncertainty of the internal model dynamics.
此处控制目标在于生成控制信号 uu ,使得 vosubscriptv_{o} 能够追踪参考电容输出电压轨迹 xdsubscriptx_{d} [V],尽管存在与负载电阻 RL=85sin(40πt)+100subscript8540100R_{L}=85\sin(40\pi t)+100 相关的未知外部扰动、传感器噪声 w𝒩(0,5105)similar-to05superscript105w\sim\mathcal{N}(0,5\cdot 10^{-5}) 以及内部模型动力学的参数不确定性。

In this example, the ADRC function block is implemented with the design parameters n=2𝑛2n=2, b^=2106^𝑏2superscript106\hat{b}=2\cdot 10^{6}, ωc=500subscript𝜔𝑐500\omega_{c}=500, and ωo=3000subscript𝜔𝑜3000\omega_{o}=3000, the anti-peaking mechanism turned off (default setting), and the saturation of the control signal turned on, with umin=0subscript𝑢min0u_{\text{min}}=0 and umax=1subscript𝑢max1u_{\text{max}}=1. A block diagram of the implemented ADRC-based system in MATLAB/Simulink is shown in Fig. 9, and the results of using the proposed ADRC Toolbox in the above control problem are shown in Fig. 10. The obtained results show that the applied ADRC function block can realise the given control objective by providing satisfactory results for output voltage tracking. Although the influence of the harmonic load resistance (RLsubscript𝑅𝐿R_{L}) has a visible effect on the shape of the control signal and the resultant output voltage, which is manifested through abrupt spikes of ±0.2plus-or-minus0.2\pm 0.2V, the average value of the control error remained within a practically acceptable range. This example demonstrates that although ADRC is a powerful, robust control scheme, it has limitations. The challenging form of the external disturbance, on the one hand, invites the ADRC user to increase the observer and controller bandwidths to achieve better disturbance rejection and reference tracking, but on the other hand, it precludes obtaining high control performance owing to plant restrictions (e.g. finite actuation capabilities, sampling time) and ADRC function block limitations (e.g. the particular structure of the implemented observer; see [52, 38]). Hence, a compromise between the two should be found in engineering practice.
在此示例中,ADRC 功能块通过设计参数 n=22n=2b^=21062superscript106\hat{b}=2\cdot 10^{6}ωc=500subscript500\omega_{c}=500ωo=3000subscript3000\omega_{o}=3000 实现,抗峰值机制关闭(默认设置),控制信号饱和开启,参数为 umin=0subscript0u_{\text{min}}=0umax=1subscript1u_{\text{max}}=1 。图 9 展示了在 MATLAB/Simulink 中实现的基于 ADRC 的系统框图,图 10 则展示了在上述控制问题中使用所提出的 ADRC 工具箱的结果。 所得结果表明,所应用的 ADRC 功能块能够通过提供令人满意的输出电压跟踪结果来实现给定的控制目标。尽管谐波负载电阻( RLsubscriptR_{L} )的影响在控制信号的形状和产生的输出电压上呈现出明显的效应,表现为 ±0.2plus-or-minus0.2\pm 0.2 V 的突变尖峰,但控制误差的平均值仍保持在实际可接受的范围内。 此例表明,尽管 ADRC 是一种强大而稳健的控制方案,但它亦有其局限性。外部干扰的复杂形式一方面促使 ADRC 用户提高观测器与控制器的带宽,以期获得更佳的扰动抑制与参考信号追踪效果;另一方面,却因系统限制(如有限执行能力、采样时间等)及 ADRC 功能块自身局限(如... 所实现的观察器的特定结构[参见文献 52, 38]。因此,在工程实践中应找到两者的折中方案。

Refer to caption
Figure 9: Block diagram of the DC-DC buck power converter control system (Example #3) with the ADRC function block from the proposed ADRC Toolbox.
图 9:具有所提出 ADRC 工具箱中 ADRC 功能块的直流-直流降压功率变换器控制系统(示例#3)的框图。
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 10: Simulation results of Example #3.
图 10:例 3 的仿真结果。

4.4 Example #4: Motor velocity control
4.4 示例 #4:电机速度控制

In this example, the controlled system is a Pololu 3240 gearmotor444https://www.pololu.com/product/3240 (last visit: 20.09.2021), which consists of a 12V DC motor, 34:1 gearbox, and 48 CPR (counts per revolution) quadrature encoder integrated on the motor shaft. The system is governed by an Arduino MKR WiFi 1010 board with a dedicated Arduino MKR motor carrier with a sampling frequency of 100100100Hz. The complete experimental setup is shown in Fig. 11. Such a low-cost, DIY-style configuration allows for rapid prototyping of various motion control applications.
在此示例中,被控系统是一个 Pololu 3240 齿轮电机,其包括一个 12V 直流电机、34:1 的减速箱以及集成在电机轴上的 48CPR(每转计数)正交编码器。该系统由 Arduino MKR WiFi 1010 板控制,配备专用 Arduino MKR 电机载板,采样频率为 100100100 Hz。完整的实验装置如图 11 所示。 这种低成本的 DIY 风格配置可以快速制作各种运动控制应用的原型。

Refer to caption
Figure 11: The experimental setup used in Example #4.
图 11:示例#4 中使用的实验装置。

A simplified mathematical model describing the gearmotor dynamics can be formulated as a combination electrical and mechanical motor parts:
描述齿轮电机动力学的简化数学模型可以构建为电气和机械部件的结合:

{d2ω(t)dt2=RaJ+LabfLaJdω(t)dtRabf+kϕ2LaJω(t)+kϕLaJu(t)+d(t),y(t)=ω(t)+w(t),casessuperscript𝑑2𝜔𝑡𝑑superscript𝑡2absentsubscript𝑅𝑎𝐽subscript𝐿𝑎subscript𝑏𝑓subscript𝐿𝑎𝐽𝑑𝜔𝑡𝑑𝑡subscript𝑅𝑎subscript𝑏𝑓superscriptsubscript𝑘italic-ϕ2subscript𝐿𝑎𝐽𝜔𝑡subscript𝑘italic-ϕsubscript𝐿𝑎𝐽𝑢𝑡superscript𝑑𝑡superscript𝑦𝑡absent𝜔𝑡𝑤𝑡\begin{cases}\frac{d^{2}\omega(t)}{dt^{2}}&=-\frac{R_{a}J+L_{a}b_{f}}{L_{a}J}\frac{d\omega(t)}{dt}-\frac{R_{a}b_{f}+k_{\phi}^{2}}{L_{a}J}\omega(t)+\frac{k_{\phi}}{L_{a}J}u(t)+d^{*}(t),\\ y^{*}(t)&=\omega(t)+w(t),\end{cases} (23)

where u𝑢u[V] is the source voltage (control signal); dsuperscript𝑑d^{*} is the external disturbance; ysuperscript𝑦y^{*}[rad/s] is the measured system output, which consists of the motor shaft angular velocity ω𝜔\omega[rad/s] and the sensor noise w𝑤w[rad/s]; Rasubscript𝑅𝑎R_{a}[ΩΩ\Omega] is the armature resistance; Lasubscript𝐿𝑎L_{a}[H] is the armature inductance; J𝐽J[kg\cdotm2] is the rotor inertia; bfsubscript𝑏𝑓b_{f}[Nm/rad] is the friction coefficient; and kϕsubscript𝑘italic-ϕk_{\phi}[Vs/rad] is the constant design parameter. Referring to the generalised form of the system description in (1), we can assign x(t):=ω(t)assign𝑥𝑡𝜔𝑡x(t):=\omega(t), f(x,x˙,t)=RaJ+LabfLaJdω(t)dtRabf+kϕ2LaJω(t)superscript𝑓𝑥˙𝑥𝑡subscript𝑅𝑎𝐽subscript𝐿𝑎subscript𝑏𝑓subscript𝐿𝑎𝐽𝑑𝜔𝑡𝑑𝑡subscript𝑅𝑎subscript𝑏𝑓superscriptsubscript𝑘italic-ϕ2subscript𝐿𝑎𝐽𝜔𝑡f^{*}(x,\dot{x},t)=-\frac{R_{a}J+L_{a}b_{f}}{L_{a}J}\frac{d\omega(t)}{dt}-\frac{R_{a}b_{f}+k_{\phi}^{2}}{L_{a}J}\omega(t), and b=kϕLaJsuperscript𝑏subscript𝑘italic-ϕsubscript𝐿𝑎𝐽b^{*}=\frac{k_{\phi}}{L_{a}J}.
其中, uu [V] 为源电压(控制信号); dsuperscriptd^{*} 为外部扰动; ysuperscripty^{*} [rad/s] 为测得的系统输出,包含电机轴角速度 ω\omega [rad/s] 和传感器噪声 ww [rad/s]; RasubscriptR_{a} [ Ω\Omega ] 为电枢电阻; LasubscriptL_{a} [H] 为电枢电感; JJ [kg \cdot m2] 为转子惯量; bfsubscriptb_{f} [Nm/rad] 为摩擦系数; kϕsubscriptk_{\phi} [Vs/rad] 为恒定设计参数。 参考(1)中系统的广义形式描述,我们可以赋予 x(t):=ω(t)assignx(t):=\omega(t)f(x,x˙,t)=RaJ+LabfLaJdω(t)dtRabf+kϕ2LaJω(t)superscriptsubscriptsubscriptsubscriptsubscriptsubscriptsubscriptsuperscriptsubscript2subscriptf^{*}(x,\dot{x},t)=-\frac{R_{a}J+L_{a}b_{f}}{L_{a}J}\frac{d\omega(t)}{dt}-\frac{R_{a}b_{f}+k_{\phi}^{2}}{L_{a}J}\omega(t)b=kϕLaJsuperscriptsubscriptsubscriptb^{*}=\frac{k_{\phi}}{L_{a}J}

The control objective here is to apply the control input u𝑢u that will make ω𝜔\omega track a reference motor shaft angular velocity xdsubscript𝑥𝑑x_{d}[imp/sec] despite the presence of sensor noise and parametric uncertainty of the internal model dynamics.
此处控制目标为施加控制输入 uu ,使得 ω\omega 跟踪参考电机轴角速度 xdsubscriptx_{d} [脈波/秒],尽管存在传感器噪声及内部模型动态参数的不确定性。

In this example, the ADRC function block is implemented with the design parameters n=2𝑛2n=2, b^=600^𝑏600\hat{b}=600, ωc=40subscript𝜔𝑐40\omega_{c}=40, and ωo=90subscript𝜔𝑜90\omega_{o}=90, the anti-peaking mechanism turned off (default setting), and the saturation of the control signal turned on, with limits umin=100subscript𝑢min100u_{\text{min}}=-100 and umax=100subscript𝑢max100u_{\text{max}}=100. The block diagram of the implemented ADRC-based system in MATLAB/Simulink is shown in Fig. 12, and the results of using the proposed ADRC Toolbox in the above control problem are shown in Fig. 13. The obtained experimental results demonstrate the effectiveness of the ADRC function block in hardware applications. The motor output signal tracks the desired trajectory, which is a combination of a unit step and a harmonic function. As expected, both the control signal and the control error exhibited rapid changes when the system responded to the step change. Such an abrupt reaction, although kept at bay by the activated saturation mechanism, could be further minimised, for example, by adding a smoothing function, as was done in Example #3. Here, however, the step function was left deliberately to check how the control system performs in the case of an instantaneous change in the target signal (which often happens in engineering practice). It should be noted that the ADRC has not completely compensated for the harmonic component, which is present in both the control signal and the control error (inherited from the reference signal). Although the obtained control performance may be considered satisfactory, the implemented control structure causes the control error to oscillate around ±1plus-or-minus1\pm 1rad/s. Here again, similar to Example #3, one could point to several specialised methods that would further increase the harmonic disturbance rejection. However, this is beyond the proposed ADRC Toolbox, at least in its current form.
在此示例中,ADRC 功能块采用设计参数 n=22n=2b^=600600\hat{b}=600ωc=40subscript40\omega_{c}=40ωo=90subscript90\omega_{o}=90 实现,反峰值机制关闭(默认设置),控制信号饱和功能开启,限制为 umin=100subscript100u_{\text{min}}=-100umax=100subscript100u_{\text{max}}=100 。图 12 展示了在 MATLAB/Simulink 中实现的基于 ADRC 系统的框图,而图 13 则显示了在上述控制问题中使用所提出的 ADRC 工具箱的结果。 所得实验结果证实了 ADRC 功能块在硬件应用中的有效性。电机输出信号成功追踪了期望轨迹,该轨迹由单位阶跃和谐波函数组合而成。如预期般,在系统对阶跃变化作出响应时,控制信号和控制误差均呈现快速变化。 这种突如其来的反应,虽有激活的饱和机制加以抑制,但仍可通过增加平滑功能(如示例#3 中所为)进一步减小。然而,在此情况中,步骤函数被刻意保留,以检验控制系统在目标信号瞬时变化(这在工程实践中常有发生)情况下的表现。 值得注意的是,自抗扰控制(ADRC)并未完全补偿存在于控制信号及控制误差(源自参考信号)中的谐波成分。尽管所获得的控制性能可能被认为是令人满意的,但所实施的控制结构导致控制误差在约 6 rad/s 范围内波动。 在这里再次与例 #3 相似,可以指出几种专门方法来进一步提高谐波干扰抑制。然而,这超出了所提议的 ADRC 工具箱范畴,至少在其当前形式下是如此。

Refer to caption
Figure 12: Block diagram of the DC motor control system (Example #4) with the ADRC function block from the proposed ADRC Toolbox.
图 12:直流电机控制系统(示例#4)的方框图,带有来自所提出的 ADRC 工具箱的 ADRC 功能模块。
Refer to caption
Refer to caption
Refer to caption
Figure 13: Experimental results of Example #4.
图 13:示例#4 的实验结果。
Remark 10

TO run and repeat the results from this hardware example, two MATLAB add-ons need to be installed: ”MATLAB Support Package for Arduino Hardware” and ”Simulink Support Package for Arduino Hardware”.


注释 10:要运行并重复此硬件示例的结果,需要安装两个 MATLAB 附加组件:“MATLAB 支持的 Arduino 硬件包”和“Simulink 支持的 Arduino 硬件包”。

4.5 Example #5: Temperature control
4.5 示例#5:温度控制

The system considered here is the ”Temperature Control Lab” (TCLab)555http://apmonitor.com/heat.htm (last visit: 20.09.2021), which is a commercially available, portable, low-cost, Arduino-based temperature control kit [53]. The TCLab consists of two heaters and two temperature sensors. The experimental setup is shown in Fig. 14. In this specific example, a configuration with two operating heaters is used, which constitutes a MIMO control structure. The two heater units are placed in close proximity to each other to transfer heat by convection and thermal radiation. The system is governed with a sampling frequency of 101010Hz.
此处所考虑的系统是“温度控制实验室”(TCLab),它是一款商业化可用、便携、低成本的基于 Arduino 的温度控制套件[53]。TCLab 包含两个加热器和两个温度传感器。实验装置如图 14 所示。在具体示例中,采用了双操作加热器的配置,这形成了一个多输入多输出(MIMO)控制结构。 两个加热装置紧靠放置,以通过对流和热辐射传递热量。该系统的采样频率为 101010 赫兹。

Based on [54], such a system can be described with the following nonlinear mathematical model, developed based on energy balance equations that represent the dynamics between the input power to each transistor and the temperature sensed by each thermistor.
基于[54],该系统可用如下非线性数学模型描述,该模型基于能量平衡方程,反映了每个晶体管输入功率与每个热敏电阻感测温度之间的动态关系。

{dT1(t)dt=f1(T1,T2,t)+b1u1+d1(t),y1(t)=T1(t)+w1(t),dT2(t)dt=f2(T1,T2,t)+b2u2+d2(t),y2(t)=T2(t)+w2(t),cases𝑑subscript𝑇1𝑡𝑑𝑡absentsuperscriptsubscript𝑓1subscript𝑇1subscript𝑇2𝑡superscriptsubscript𝑏1subscript𝑢1superscriptsubscript𝑑1𝑡superscriptsubscript𝑦1𝑡absentsubscript𝑇1𝑡subscript𝑤1𝑡𝑑subscript𝑇2𝑡𝑑𝑡absentsuperscriptsubscript𝑓2subscript𝑇1subscript𝑇2𝑡superscriptsubscript𝑏2subscript𝑢2superscriptsubscript𝑑2𝑡superscriptsubscript𝑦2𝑡absentsubscript𝑇2𝑡subscript𝑤2𝑡\begin{cases}\frac{dT_{1}(t)}{dt}&=f_{1}^{*}(T_{1},T_{2},t)+b_{1}^{*}u_{1}+d_{1}^{*}(t),\\ y_{1}^{*}(t)&=T_{1}(t)+w_{1}(t),\\ \frac{dT_{2}(t)}{dt}&=f_{2}^{*}(T_{1},T_{2},t)+b_{2}^{*}u_{2}+d_{2}^{*}(t),\\ y_{2}^{*}(t)&=T_{2}(t)+w_{2}(t),\\ \end{cases} (24)

where u1subscript𝑢1u_{1}[W] and u2subscript𝑢2u_{2}[W] are the output energy (control signals) from the first and second heaters, respectively; y1superscriptsubscript𝑦1y_{1}^{*}[℃] and y2superscriptsubscript𝑦2y_{2}^{*}[℃] are the measured system outputs, which consist of the first and second heater temperatures T1subscript𝑇1T_{1}[℃] and T2subscript𝑇2T_{2}[℃] and corresponding sensor noises w1subscript𝑤1w_{1}[℃] and w2subscript𝑤2w_{2}[℃]; d1superscriptsubscript𝑑1d_{1}^{*} and d2superscriptsubscript𝑑2d_{2}^{*} are the external disturbances that affect particular channels; and the functions fi()=1mCp[UA(T(t)Ti(t))+ϵσA(T4(t)Ti4(t))+Q12(t)]superscriptsubscript𝑓𝑖1𝑚subscript𝐶𝑝delimited-[]𝑈𝐴subscript𝑇𝑡subscript𝑇𝑖𝑡italic-ϵ𝜎𝐴superscriptsubscript𝑇4𝑡superscriptsubscript𝑇𝑖4𝑡subscript𝑄12𝑡f_{i}^{*}(\cdot)=\frac{1}{mC_{p}}\left[UA(T_{\infty}(t)-T_{i}(t))+\epsilon\sigma A(T_{\infty}^{4}(t)-T_{i}^{4}(t))+Q_{12}(t)\right] and bi=αimCpsuperscriptsubscript𝑏𝑖subscript𝛼𝑖𝑚subscript𝐶𝑝b_{i}^{*}=\frac{\alpha_{i}}{mC_{p}} for i{1,2}𝑖12i\in\{1,2\}. In addition, Cpsubscript𝐶𝑝C_{p}[J/kg-K] is the heat capacity, Tsubscript𝑇T_{\infty}[℃] is the ambient temperature, U𝑈U[W/m2-K] is the heat transfer coefficient, A𝐴A[m2] is the surface area not between the heaters, Assubscript𝐴𝑠A_{s}[m2] is the surface area between the heaters, ϵitalic-ϵ\epsilon is the emissivity, m𝑚m[kg] is the mass, σ𝜎\sigma[W/m2-K4] is the Boltzmann constant, and αisubscript𝛼𝑖\alpha_{i}[W/(% heater)] is the i𝑖i-th heater factor. The heat transfer exchange Q12subscript𝑄12Q_{12} between the heaters is a combination of convective heat transfer QC12=UAs(T2T1)subscript𝑄𝐶12𝑈subscript𝐴𝑠subscript𝑇2subscript𝑇1Q_{C12}=UA_{s}(T_{2}-T_{1}) and radiative heat transfer QR12=ϵσA(T24T14)subscript𝑄𝑅12italic-ϵ𝜎𝐴superscriptsubscript𝑇24superscriptsubscript𝑇14Q_{R12}=\epsilon\sigma A(T_{2}^{4}-T_{1}^{4}), defined as Q12=QC12+QR12subscript𝑄12subscript𝑄𝐶12subscript𝑄𝑅12Q_{12}=Q_{C12}+Q_{R12}. A detailed derivation of the structure and parameters of (24) using physics-based and data-driven techniques can be found in [54].
其中 u1subscript1u_{1} [W] 和 u2subscript2u_{2} [W] 分别为第一和第二加热器的输出能量(控制信号); y1superscriptsubscript1y_{1}^{*} [℃] 和 y2superscriptsubscript2y_{2}^{*} [℃] 为系统输出,包括第一和第二加热器温度 T1subscript1T_{1} [℃] 和 T2subscript2T_{2} [℃],以及相应的传感器噪声 w1subscript1w_{1} [℃] 和 w2subscript2w_{2} [℃]; d1superscriptsubscript1d_{1}^{*}d2superscriptsubscript2d_{2}^{*} 是影响特定通道的外部扰动;函数 fi()=1mCp[UA(T(t)Ti(t))+ϵσA(T4(t)Ti4(t))+Q12(t)]superscriptsubscript1subscriptdelimited-[]subscriptsubscriptsuperscriptsubscript4superscriptsubscript4subscript12f_{i}^{*}(\cdot)=\frac{1}{mC_{p}}\left[UA(T_{\infty}(t)-T_{i}(t))+\epsilon\sigma A(T_{\infty}^{4}(t)-T_{i}^{4}(t))+Q_{12}(t)\right]bi=αimCpsuperscriptsubscriptsubscriptsubscriptb_{i}^{*}=\frac{\alpha_{i}}{mC_{p}} 用于 i{1,2}12i\in\{1,2\} 。 此外, CpsubscriptC_{p} [J/kg-K]为热容, TsubscriptT_{\infty} [℃]为环境温度, UU [W/m²-K]为传热系数, AA [m²]为加热器间非接触表面积, AssubscriptA_{s} [m²]为加热器间接触表面积, ϵ\epsilon 为发射率, mm [kg]为质量, σ\sigma [W/m²-K⁴]为玻尔兹曼常数, αisubscript\alpha_{i} [W/(% heater)]为第 ii 个加热器因子。 加热器之间的传热交换 Q12subscript12Q_{12} 是导热传热 QC12=UAs(T2T1)subscript12subscriptsubscript2subscript1Q_{C12}=UA_{s}(T_{2}-T_{1}) 和辐射传热 QR12=ϵσA(T24T14)subscript12superscriptsubscript24superscriptsubscript14Q_{R12}=\epsilon\sigma A(T_{2}^{4}-T_{1}^{4}) 的结合,定义为 Q12=QC12+QR12subscript12subscript12subscript12Q_{12}=Q_{C12}+Q_{R12} 。基于物理学和数据驱动技术对公式(24)的结构和参数进行详细推导的过程可见于[54]。

Referring to the generalised form of the system description in (1), one can assign x(t):=T1(t)assign𝑥𝑡subscript𝑇1𝑡x(t):=T_{1}(t), f(x,t)=1mCp[UA(T(t)T1(t))+ϵσA(T4(t)T14(t))+Q12(t)]superscript𝑓𝑥𝑡1𝑚subscript𝐶𝑝delimited-[]𝑈𝐴subscript𝑇𝑡subscript𝑇1𝑡italic-ϵ𝜎𝐴superscriptsubscript𝑇4𝑡superscriptsubscript𝑇14𝑡subscript𝑄12𝑡f^{*}(x,t)=\frac{1}{mC_{p}}\left[\right.UA(T_{\infty}(t)-T_{1}(t))+\epsilon\sigma A(T_{\infty}^{4}(t)-T_{1}^{4}(t))+Q_{12}(t)\left.\right], and b=α1mCpsuperscript𝑏subscript𝛼1𝑚subscript𝐶𝑝b^{*}=\frac{\alpha_{1}}{mC_{p}} for the first heater dynamics and x(t):=T2(t)assign𝑥𝑡subscript𝑇2𝑡x(t):=T_{2}(t), f(x,t)=1mCp[UA(T(t)T2(t))+ϵσA(T4(t)T24(t))Q12(t)]superscript𝑓𝑥𝑡1𝑚subscript𝐶𝑝delimited-[]𝑈𝐴subscript𝑇𝑡subscript𝑇2𝑡italic-ϵ𝜎𝐴superscriptsubscript𝑇4𝑡superscriptsubscript𝑇24𝑡subscript𝑄12𝑡f^{*}(x,t)=\frac{1}{mC_{p}}\left[\right.UA(T_{\infty}(t)-T_{2}(t))+\epsilon\sigma A(T_{\infty}^{4}(t)-T_{2}^{4}(t))-Q_{12}(t)\left.\right], and b=α2mCpsuperscript𝑏subscript𝛼2𝑚subscript𝐶𝑝b^{*}=\frac{\alpha_{2}}{mC_{p}} for the second heater dynamics.
参考系统描述的广义形式(1),可以将 x(t):=T1(t)assignsubscript1x(t):=T_{1}(t)f(x,t)=1mCp[UA(T(t)T1(t))+ϵσA(T4(t)T14(t))+Q12(t)]superscript1subscriptdelimited-[]subscriptsubscript1superscriptsubscript4superscriptsubscript14subscript12f^{*}(x,t)=\frac{1}{mC_{p}}\left[\right.UA(T_{\infty}(t)-T_{1}(t))+\epsilon\sigma A(T_{\infty}^{4}(t)-T_{1}^{4}(t))+Q_{12}(t)\left.\right]b=α1mCpsuperscriptsubscript1subscriptb^{*}=\frac{\alpha_{1}}{mC_{p}} 分配给第一个加热器的动态特性,将 x(t):=T2(t)assignsubscript2x(t):=T_{2}(t)f(x,t)=1mCp[UA(T(t)T2(t))+ϵσA(T4(t)T24(t))Q12(t)]superscript1subscriptdelimited-[]subscriptsubscript2superscriptsubscript4superscriptsubscript24subscript12f^{*}(x,t)=\frac{1}{mC_{p}}\left[\right.UA(T_{\infty}(t)-T_{2}(t))+\epsilon\sigma A(T_{\infty}^{4}(t)-T_{2}^{4}(t))-Q_{12}(t)\left.\right]b=α2mCpsuperscriptsubscript2subscriptb^{*}=\frac{\alpha_{2}}{mC_{p}} 分配给第二个加热器的动态特性。

Refer to caption
Figure 14: The experimental setup used in Example #5.
图 14:示例#5 中使用的实验设置。

In this example, the control objective is to adjust both heater power outputs u1/2subscript𝑢12u_{1/2} and transfer the thermal energy from the heaters to the temperature sensors to ensure that T1/2subscript𝑇12T_{1/2} maintains the desired temperature set points xd1/d2subscript𝑥𝑑1𝑑2x_{d1/d2}, despite the parametric uncertainty of the system model and sensor noise.
在此示例中,控制目标是调整两个加热器功率输出 u1/2subscript12u_{1/2} ,并将热能从加热器传递到温度传感器,以确保 T1/2subscript12T_{1/2} 维持所需温度设定点 xd1/d2subscript12x_{d1/d2} ,尽管系统模型存在参数不确定性及传感器噪声。

The block diagram of the implemented ADRC-based system in MATLAB/Simulink is shown in Fig. 15. One can see that in the performed example, the heaters are treated as two independent systems. The equations (1) are therefore derived independently for each degree of freedom of the system (24). Consequently, two ADRC function blocks are used, each to govern one input-to-output channel of the system. In such a configuration, the unmodelled influence of the cross-couplings is treated as part of the total disturbance of the system.
图 15 所示为在 MATLAB/Simulink 中实现的基于 ADRC 系统的框图。观察可知,在本案例中,加热器被视为两个独立的系统。因此,式(1)针对系统(24)的每一个自由度独立推导。由此,采用了两个 ADRC 功能块,分别用于控制系统中的每个输入-输出通道。 在这种配置中,交叉耦合的未建模影响被视为系统总扰动的一部分。

The two ADRC function blocks are implemented here with design parameters n=1𝑛1n=1, b^=3^𝑏3\hat{b}=3, ωc=6subscript𝜔𝑐6\omega_{c}=6, and ωo=15subscript𝜔𝑜15\omega_{o}=15 for the first heater, and n=1𝑛1n=1, b^=5^𝑏5\hat{b}=5, ωc=6subscript𝜔𝑐6\omega_{c}=6, ωo=15subscript𝜔𝑜15\omega_{o}=15 for the second heater. Both function blocks have the anti-peaking mechanisms turned off (default setting), and the saturation of the control signals turned on, with user-defined limits umin=0subscript𝑢min0u_{\text{min}}=0 and umax=100subscript𝑢max100u_{\text{max}}=100. The results of using the proposed ADRC Toolbox to the above control problem are shown in Fig. 16. The experimental results validate the control structure with multiple ADRC function blocks as a viable solution for the considered cross-coupled MIMO plant. For the chosen tuning parameters, the target temperature set points were tracked with acceptable margins of error. Without the necessity of precise system modelling, the implemented robust ADRC approach managed to deal with plant modelling uncertainties, including the cross-couplings between the system’s degrees of freedom. By comparing the selected ADRC parameters, one can see that a smaller estimated input gain (b^^𝑏\hat{b}) was selected for the first heater. As a result, a steeper slope of convergence to the desired values was observer for the first heater output, which also resulted in a signal overshoot of approximately 333℃. This is an expected result, which stems from the fact that b^^𝑏\hat{b} is also a scaling factor for the entire control signal (see (11) and discussion thereof in Sect. 3.2). Regarding the control effort, one can see that the user-defined reference temperatures became challenging for the governed plant and pushed the control signals to extremes. This justifies the incorporation of the saturation mechanism in the proposed ADRC function block and shows the importance of activating saturation if the admissible range of the control signal is known. This is especially important in hardware experiments, where the control signals usually operate within certain physically limited bounds. It is also important for the considered observer-based control algorithm, which works correctly only if it is given accurate information about the input-output behaviour of the system (for details see Sect. 3.5).
两个 ADRC 功能模块在此分别采用设计参数 n=11n=1b^=33\hat{b}=3ωc=6subscript6\omega_{c}=6ωo=15subscript15\omega_{o}=15 用于第一个加热器,以及 n=11n=1b^=55\hat{b}=5ωc=6subscript6\omega_{c}=6ωo=15subscript15\omega_{o}=15 用于第二个加热器。两功能模块均关闭了抗尖峰机制(默认设置),并开启了控制信号的饱和限制,用户定义的上限为 umin=0subscript0u_{\text{min}}=0umax=100subscript100u_{\text{max}}=100 。图 16 展示了将所提出的 ADRC 工具箱应用于上述控制问题的结果。 实验结果验证了采用多个 ADRC 功能模块的控制结构作为所考虑的交叉耦合 MIMO 系统的可行解决方案。对于所选的调参参数,目标温度设定值被追踪到的误差在可接受范围。无需精确的系统建模,实施的鲁棒 ADRC 方法有效地处理了系统建模不确定性,包括各自由度间的交叉耦合。 通过对选取的 ADRC 参数进行比较,可以看出第一个加热器的估计输入增益( b^\hat{b} )较小。因此,第一个加热器输出在趋近期望值时表现出更陡峭的收敛斜率,同时也导致了约 333 ℃的信号超调。这是预期结果,因为 b^\hat{b} 同样是整个控制信号的缩放因子(见(11)及第 3.2 节中的相关讨论)。 关于控制力度,可以看出用户自定义的参考温度给被控对象带来了挑战,并将控制信号推向极端。这证明了在所提出的 ADRC 功能块中纳入饱和机制的合理性,并凸显了在已知控制信号允许范围时启动饱和的重要性。 这在硬件实验中尤为重要,因为控制信号通常在某些物理限制范围内运行。对于所考虑的基于观测器的控制算法而言,这也至关重要,该算法仅在提供了系统的输入-输出行为的准确信息时才能正常工作(详见第 3.5 节)。

Refer to caption
Figure 15: Block diagram of the temperature control lab control system (Example #5) with the ADRC function blocks (from the proposed ADRC Toolbox), each of which controls one degree of freedom.
图 15:温度控制实验室控制系统(示例#5)的框图,包含提议的 ADRC 工具箱中的 ADRC 功能块,每个功能块控制一个自由度。
Refer to caption
Refer to caption
Refer to caption
Figure 16: Experimental results of Example #5.
图 16:示例#5 的实验结果。
Remark 11

To run and repeat the results from this hardware example, extra MATLAB add-ons need to be installed (see Remark 10) as well as dedicated TCLab libraries (available under the MIT licence at the producer website, mentioned earlier).


注 11 要运行并复现此硬件示例的结果,除了需额外安装 MATLAB 附加组件(见注 10),还需部署专用的 TCLab 库(该库可在生产商网站上以 MIT 许可证获得,前文已提及)。

5 Software development and licensing
5 软件开发与授权

The presented ADRC algorithm (Sect. 2), toolbox parameters and functionalities (Sect. 3), and validation tests (Sect. 4) shown in this paper are for ADRC Toolbox version 1.1.3, which was current at the time of this paper’s publication. The latest version of the ADRC Toolbox can be downloaded from https://www.mathworks.com/matlabcentral/fileexchange/102249-active-disturbance-rejection-control-adrc-toolbox and installed in MATLAB/Simulink by following the instructions therein. In addition to the necessary installation file, the website also contains contact information for the ADRC Toolbox developers and Q&A section. The ADRC Toolbox can also be installed as an add-on directly from MATLAB using the ”Add-On Explorer” function.
本文中展示的 ADRC 算法(第 2 节)、工具箱参数及功能(第 3 节)以及验证测试(第 4 节)均为 ADRC Toolbox 版本 1.1.3 的内容,这是本文发表时的最新版本。最新版本的 ADRC Toolbox 可从 https://www.mathworks.com/matlabcentral/fileexchange/102249-active-disturbance-rejection-control-adrc-toolbox 下载,并按照说明安装在 MATLAB/Simulink 中。 除了必需的安装文件外,该网站还包含 ADRC 工具箱开发者的联系信息以及问答部分。还可以通过 MATLAB 的“附加功能浏览器”功能直接安装 ADRC 工具箱作为附加组件。

Regarding software development of the ADRC Toolbox, all related files, including MATLAB code, data, apps, examples, and documentation, are packaged in a single installation file (.mltbx), which greatly simplifies the sharing and installation of the ADRC Toolbox. This form of software development is convenient for end users, who can install the ADRC Toolbox without being concerned with the MATLAB path or other installation details, because the provided .mltbx file manages these details.
关于 ADRC 工具箱的软件开发,所有相关文件,包括 MATLAB 代码、数据、应用程序、示例及文档,均打包在一个安装文件(.mltbx)中,极大简化了 ADRC 工具箱的分享与安装。这种开发形式方便了终端用户,他们无需顾虑 MATLAB 路径或其他安装细节,因为所提供的.mltbx 文件已全权处理这些事项。

6 Conclusions 6 结论

This work demonstrated the effectiveness and ease of use of the developed ADRC Toolbox for numerical simulations and hardware experiments performed in the MATLAB/Simulink software environment. The ADRC Toolbox is proposed to address the recent interest in the ADRC methodology and the growing use of MATLAB/Simulink in both academia and industry. Through a variety of case studies, it has been shown that the developed ADRC function block can be used for various applications and may be easily integrated with existing Simulink models. The implemented functionalities can help create custom ADRC applications swiftly and in a straightforward manner, thus potentially decreasing the time and effort usually required. The improvements on the implementation side of ADRC, introduced through the development of the ADRC Toolbox, are expected to make ADRC an even more compelling choice for solving real-world control problems.
本研究展示了开发的 ADRC 工具箱在 MATLAB/Simulink 软件环境中进行数值模拟和硬件实验的有效性和易用性。该 ADRC 工具箱旨在应对当前对 ADRC 方法论的广泛兴趣,以及 MATLAB/Simulink 在学术界和工业界的日益普及。 通过多种案例研究,已证明所开发的 ADRC 功能块适用于各种应用,且可轻松集成到现有的 Simulink 模型中。实现的这些功能有助于快速并直接地创建定制 ADRC 应用,从而可能减少通常所需的时间和努力。 通过 ADRC 工具箱的开发所带来的 ADRC 实现层面的改进,预计会使 ADRC 在解决现实世界控制问题时成为更加引人注目的选择。

The developed ADRC Toolbox is available to end users as open-source software. It is planned to be further developed with new functionalities based on feedback from the control community. Importantly, the ADRC Toolbox is an open-source project that is freely available to interested users. The current version of the ADRC Toolbox can be downloaded from https://www.mathworks.com/matlabcentral/fileexchange/102249-active-disturbance-rejection-control-adrc-toolbox.
开发的 ADRC 工具箱作为开源软件向终端用户开放。计划根据控制社区的反馈进一步开发新功能。重要的是,ADRC 工具箱是一个免费向感兴趣用户提供的开源项目。当前版本的 ADRC 工具箱可从 https://www.mathworks.com/matlabcentral/fileexchange/102249-active-disturbance-rejection-control-adrc-toolbox 下载。

Acknowledgements 致谢

  • 1.

    The hardware setups used in the conducted experimental tests were purchased by R. Madonski and K. Łakomy with their private funds.
    所进行的实验测试中使用的硬件设备由 R. Madonski 和 K. Łakomy 使用个人资金购买。

  • 2.

    R. Madonski was financially supported by the Fundamental Research Funds for the Central Universities project no. 21620335.
    R. Madonski 在中央高校基本科研业务费专项资金资助项目编号 21620335 下获得财务支持。

  • 3.

    W. Giernacki and J. Michalski were financially supported as a statutory work of the Poznan University of Technology, Poland (no. 0214/SBAD/0229).
    W. Giernacki 和 J. Michalski 得到了波兰波兹南工业大学法定工作的财务支持(编号:0214/SBAD/0229)。

  • 4.

    The example ’tclab_temp_control’, provided alongside the ADRC Toolbox, uses a Simulink function block called ’Temperature Control Lab’ as well as the ’TCLab’ hardware platform, both available at http://apmonitor.com/heat.htm
    与 ADRC 工具箱一同提供的示例‘tclab_temp_control’,利用了名为‘Temperature Control Lab’的 Simulink 功能模块以及‘TCLab’硬件平台,二者均可在 http://apmonitor.com/heat.htm 获取。

Appendix 附录

Table 3: Parameters of systems used in Examples #2, #3, and #5.
表 3:用例 #2、#3 和 #5 中系统的参数。
Example #2 示例 #2
Symbol 符号 Unit 单元 Value 价值 Name 姓名
a𝑎a [m2] [平方米] 7.51057.5superscript1057.5\cdot 10^{-5} pipes cross-section area 管道横截面积
c𝑐c [m2] [平方米] 1.21021.2superscript1021.2\cdot 10^{-2} tanks cross-section area 坦克横截面积
g𝑔g [m/s2] [米/秒²] 9.81 gravitational acceleration
重力加速度
Example #3 示例 #3
Symbol 符号 Unit 单元 Value 价值 Name 姓名
Vinsubscript𝑉inV_{\text{in}} [V] 20 input voltage source 输入电压源
L𝐿L [H] Translated Text: [H] 0.01 filter inductance 滤波电感
C𝐶C [F] 0.001 filter capacitance 滤波电容
R𝑅R [ΩΩ\Omega] 请提供需要翻译的源文本内容 50 load resistance 负载电阻
Example #5 示例 #5
Symbol 符号 Unit 单元 Value 价值 Name 姓名
α1subscript𝛼1\alpha_{1} [W] 0.01 heater 1 factor 加热器 1 因子
α2subscript𝛼2\alpha_{2} [W] 0.01 heater 2 factor 加热器二因子
Cpsubscript𝐶𝑝C_{p} [J/kg-K] [焦耳/千克-开尔文] 500 heat capacity 热容量
A𝐴A [cm2] [平方厘米] 10 surface area not between heaters
表面区域未在加热器之间
Assubscript𝐴𝑠A_{s} [cm2] [平方厘米] 2 surface area between heaters
加热器之间的表面积
m𝑚m [kg] [公斤] 0.004 mass 质量
U𝑈U [W/m2-K] [瓦/平方米-开尔文] 10 overall heat transfer coefficient
总体传热系数
ϵitalic-ϵ\epsilon - 0.9 emissivity 辐射率
σ𝜎\sigma [W/m2-K4] [瓦特/平方米-开尔文四次方] 5.671085.67superscript1085.67\cdot 10^{-8} Boltzmann constant 玻尔兹曼常数

References

  • [1] B. Ninness, A. Wills, A. Mills, UNIT: a freely available system identification toolbox, Control Engineering Practice 21 (5) (2013) 631–644. doi:10.1016/j.conengprac.2012.10.007.
  • [2] J. Löfberg, YALMIP: a toolbox for modeling and optimization in MATLAB, in: Proc. Computer Aided Control Systems Design International Symposium, 2004, pp. 284–289. doi:10.1109/CACSD.2004.1393890.
  • [3] B. Andritsch, M. Horn, S. Koch, H. Niederwieser, M. Wetzlinger, M. Reichhartinger, The robust exact differentiator toolbox revisited: filtering and discretization features, in: Proc. IEEE International Conference on Mechatronics, 2021, pp. 1–6. doi:10.1109/ICM46511.2021.9385675.
  • [4] H. Chang, H. Kim, G. Park, H. Shim, DO-DAT: a MATLAB toolbox for design & analysis of disturbance observer, IFAC-PapersOnLine 51 (25) (2018) 340–345. doi:10.1016/j.ifacol.2018.11.130.
  • [5] A. Tepljakov, E. Petlenkov, J. Belikov, FOMCON: a MATLAB toolbox for fractional-order system identification and control, International Journal of Microelectronics and Computer Science 2 (2) (2011) 51–62.
  • [6] S. Kode, Y. Shtessel, A. Levant, J. Rakoczy, M. Hannan, J. Orr, Development of relative degree based aerospace sliding mode control matlab toolbox with case studies, IEEE Aerospace and Electronic Systems Magazine (2022). doi:10.1109/MAES.2022.3177576.
  • [7] T. E. Lechekhab, S. Manojlovic, M. Stankovic, R. Madonski, S. Simic, Robust error-based active disturbance rejection control of a quadrotor, Aircraft Engineering and Aerospace Technology 93 (1) (2021) 89–104. doi:10.1108/AEAT-12-2019-0266.
  • [8] Z. Gao, Y. Huang, J. Han, An alternative paradigm for control system design, in: Proc. IEEE Conference on Decision and Control, Vol. 5, 2001, pp. 4578–4585. doi:10.1109/CDC.2001.980926.
  • [9] J. Han, From PID to Active Disturbance Rejection Control, IEEE Transactions on Industrial Electronics 56 (3) (2009) 900–906. doi:10.1109/TIE.2008.2011621.
  • [10] Z. Gao, Scaling and bandwidth-parameterization based controller tuning, in: Proc. American Control Conference, 2003, pp. 4989–4996. doi:10.1109/ACC.2003.1242516.
  • [11] Z. Gao, On the centrality of disturbance rejection in automatic control, ISA Transactions 53 (4) (2014) 850–857. doi:10.1016/j.isatra.2013.09.012.
  • [12] C. Aguilar-Ibanez, H. Sira-Ramirez, J. A. Acosta, Stability of active disturbance rejection control for uncertain systems: a lyapunov perspective, International Journal of Robust and Nonlinear Control 27 (18) (2017) 4541–4553. doi:10.1002/rnc.3812.
  • [13] X. Zhang, X. Zhang, W. Xue, B. Xin, An overview on recent progress of extended state observers for uncertain systems: methods, theory and applications, Advanced Control for Applications (2021). doi:10.1002/adc2.89.
  • [14] Q. Zheng, Z. Gao, Active disturbance rejection control: some recent experimental and industrial case studies, Control Theory and Technology 16 (4) (2018) 301–313. doi:10.1007/s11768-018-8142-x.
  • [15] Z. Wu, T. He, Y. Liu, D. Li, Y. Chen, Physics-informed energy-balanced modeling and active disturbance rejection control for circulating fluidized bed units, Control Engineering Practice 116 (2021) 104934. doi:10.1016/j.conengprac.2021.104934.
  • [16] G. Herbst, Transfer function analysis and implementation of active disturbance rejection control, Control Theory and Technology 19 (1) (2021) 19–34. doi:10.1007/s11768-021-00031-5.
  • [17] E. Sariyildiz, R. Oboe, K. Ohnishi, Disturbance observer-based robust control and its applications: 35th anniversary overview, IEEE Transactions on Industrial Electronics 67 (3) (2020) 2042–2053. doi:10.1109/TIE.2019.2903752.
  • [18] W.-H. Chen, J. Yang, L. Guo, S. Li, Disturbance-observer-based control and related methods - an overview, IEEE Transactions on Industrial Electronics 63 (2) (2016) 1083–1095. doi:10.1109/TIE.2015.2478397.
  • [19] R. Madonski, P. Herman, Survey on methods of increasing the efficiency of extended state disturbance observers, ISA Transactions 56 (2015) 18–27. doi:10.1016/j.isatra.2014.11.008.
  • [20] G. Herbst, A minimum-footprint implementation of discrete-time ADRC, in: European Control Conference, 2021, pp. 107–112. doi:10.23919/ECC54610.2021.9655120.
  • [21] W. Xue, R. Madonski, K. Łakomy, Z. Gao, Y. Huang, Add-on module of active disturbance rejection for set-point tracking of motion control systems, IEEE Transactions on Industry Applications 53 (4) (2017) 4028–4040. doi:10.1109/TIA.2017.2677360.
  • [22] P. Kicki, K. Łakomy, K. M. B. Lee, Tuning of extended state observer with neural network-based control performance assessment, European Journal of Control 64 (2022) 100609. doi:10.1016/j.ejcon.2021.12.004.
  • [23] L. Wang, L. Qing, C. Tong, Y. Yin, J. Li, S. Song, Active disturbance rejection control simulation toolbox in open-source software Scilab/Xcos, in: Proc. IEEE International Workshop on Open-source Software for Scientific Computation, 2011, pp. 71–76. doi:10.1109/OSSC.2011.6184697.
  • [24] S. Zhao, Z. Gao, Modified active disturbance rejection control for time-delay systems, ISA Transactions 53 (4) (2014) 882–888. doi:10.1016/j.isatra.2013.09.013.
  • [25] R. Madonski, M. Nowicki, P. Herman, Practical solution to positivity problem in water management systems - an ADRC approach, in: Proc. American Control Conference, 2016, pp. 1542–1547. doi:10.1109/ACC.2016.7525135.
  • [26] P. Nowak, K. Stebel, T. Klopot, J. Czeczot, M. Fratczak, P. Laszczyk, Flexible function block for industrial applications of active disturbance rejection controller, Archives of Control Sciences 28 (3) (2018) 379–400. doi:10.24425/acs.2018.124708.
  • [27] P. Grelewicz, P. Nowak, J. Czeczot, J. Musial, Increment count method and its PLC-based implementation for autotuning of reduced-order ADRC with Smith Predictor, IEEE Transactions on Industrial Electronics 68 (12) (2021) 12554–12564. doi:10.1109/TIE.2020.3045696.
  • [28] L. Sun, J. Dong, D. Li, Y. Kwang, A practical multivariable control approach based on inverted decoupling and decentralized active disturbance rejection control, Industrial & Engineering Chemistry Research 55 (7) (2016) 2008–2019. doi:10.1021/acs.iecr.5b03738.
  • [29] S. Ma, M. Sun, Z. Chen, Interactive ADRC design for flight attitude control, in: Proc. Data Driven Control and Learning Systems, 2017, pp. 611–616. doi:10.1109/DDCLS.2017.8068142.
  • [30] B. Martínez, J. Sanchis, S. García-Nieto, M. M., Control por rechazo activo de perturbaciones: guía de diseño y aplicación (in Spanish), Revista Iberoamericana de Automática e Informática Industrial 18 (2021) 201–217. doi:10.4995/riai.2020.14058.
  • [31] H.-J. Hu, Z. Zhu, Modeling and simulation of linear active disturbance rejection controller in Simulink, in: Proc. International Conference on Electronic, Control, Automation and Mechanical Engineering, 2017, pp. 547–552. doi:10.12783/dtetr/ecame2017/18451.
  • [32] P. Jiang, J. Hao, X. Zong, P. Wang, Modeling and simulation of active-disturbance-rejection controller with Simulink, in: Proc. International Conference on Machine Learning and Cybernetics, 2010, pp. 927–931. doi:10.1109/ICMLC.2010.5580604.
  • [33] M. Kia, P. Mansouri, A. Javdani, Modeling and simulation of a single gain tuning ADRC controller in Matlab/Simulink, in: Proc. International Symposium on Industrial Electronics, 2020, pp. 154–159. doi:10.1109/ISIE45063.2020.9152398.
  • [34] K. Łakomy, R. Madonski, Cascade extended state observer for active disturbance rejection control applications under measurement noise, ISA Transactions 109 (2021) 1–10. doi:10.1016/j.isatra.2020.09.007.
  • [35] Y. Huang, W. Xue, Active disturbance rejection control: methodology and theoretical analysis, ISA Transactions 53 (4) (2014) 963–976. doi:10.1016/j.isatra.2014.03.003.
  • [36] K. Łakomy, R. Madonski, B. Dai, J. Yang, P. Kicki, M. Ansari, S. Li, Active disturbance rejection control design with suppression of sensor noise effects in application to DC–DC buck power converter, IEEE Transactions on Industrial Electronics 69 (1) (2022) 816–824. doi:10.1109/TIE.2021.3055187.
  • [37] R. Madonski, S. Shao, H. Zhang, Z. Gao, J. Yang, S. Li, General error-based active disturbance rejection control for swift industrial implementations, Control Engineering Practice 84 (2019) 218–229. doi:10.1016/j.conengprac.2018.11.021.
  • [38] R. Madonski, M. Stanković, S. Shao, Z. Gao, J. Yang, S. Li, Active disturbance rejection control of torsional plant with unknown frequency harmonic disturbance, Control Engineering Practice 100 (2020) 104413. doi:10.1016/j.conengprac.2020.104413.
  • [39] W. Xue, Y. Huang, Performance analysis of 2-DOF tracking control for a class of nonlinear uncertain systems with discontinuous disturbances, International Journal of Robust and Nonlinear Control 28 (4) (2018) 1456–1473. doi:10.1002/rnc.3972.
  • [40] S. Chen, Y. Huang, Z. Zhao, The necessary and sufficient condition for the uncertain control gain in active disturbance rejection control (2020). arXiv:2006.11731.
  • [41] K. Łakomy, R. Patelski, D. Pazderski, ESO architectures in the trajectory tracking ADR controller for a mechanical system: a comparison, in: A. Bartoszewicz, J. Kabziński, J. Kacprzyk (Eds.), Advanced, Contemporary Control, Springer, 2020, pp. 1323–1335. doi:10.1007/978-3-030-50936-1_110.
  • [42] H. Sira-Ramirez, A. Luviano-Juarez, M. Ramirez-Neria, E. Zurita-Bustamante, Active Disturbance Rejection Control of Dynamic Systems: a Flatness Based Approach, Butterworth-Heinemann, 2017.
  • [43] L. B. Freidovich, H. K. Khalil, Performance recovery of feedback-linearization-based designs, IEEE Transactions on Automatic Control 53 (10) (2008) 2324–2334. doi:10.1109/TAC.2008.2006821.
  • [44] M. Ran, Q. Wang, C. Dong, Stabilization of a class of nonlinear systems with actuator saturation via active disturbance rejection control, Automatica 63 (2016) 302–310. doi:10.1016/j.automatica.2015.10.010.
  • [45] H. K. Khalil, L. Praly, High-gain observers in nonlinear feedback control, International Journal of Robust and Nonlinear Control 24 (6) (2014) 993–1015. doi:10.1002/rnc.3051.
  • [46] D. Astolfi, L. Marconi, L. Praly, A. R. Teel, Low-power peaking-free high-gain observers, Automatica 98 (2018) 169–179. doi:10.1016/j.automatica.2018.09.009.
  • [47] M. Ran, J. Li, L. Xie, A new extended state observer for uncertain nonlinear systems, Automatica 131 (2021) 109772. doi:10.1016/j.automatica.2021.109772.
  • [48] R. Madonski, A. Piosik, P. Herman, High-gain disturbance observer tuning seen as a multicriteria optimization problem, in: Proc. Mediterranean Conference on Control and Automation, 2013, pp. 1411–1416. doi:10.1109/MED.2013.6608905.
  • [49] R. Madonski, Z. Gao, K. Łakomy, Towards a turnkey solution of industrial control under the active disturbance rejection paradigm, in: Proc. Annual Conference of the Society of Instrument and Control Engineers of Japan, 2015, pp. 616–621. doi:10.1109/SICE.2015.7285478.
  • [50] B. DeBoon, S. Nokleby, C. Rossa, Multi-objective gain optimizer for a multi-input active disturbance rejection controller: application to series elastic actuators, Control Engineering Practice 109 (2021) 104733. doi:10.1016/j.conengprac.2021.104733.
  • [51] W. Wei, W. Xue, D. Li, On disturbance rejection in magnetic levitation, Control Engineering Practice 82 (2019) 24–35. doi:10.1016/j.conengprac.2018.09.018.
  • [52] R. Madonski, K. Łakomy, M. Stankovic, S. Shao, J. Yang, S. Li, Robust converter-fed motor control based on active rejection of multiple disturbances, Control Engineering Practice 107 (2021) 104696. doi:10.1016/j.conengprac.2020.104696.
  • [53] P. de Moura Oliveira, J. D. Hedengren, J. Rossiter, Introducing digital controllers to undergraduate students using the TCLab Arduino kit, IFAC-PapersOnLine 53 (2) (2020) 17524–17529, IFAC World Congress. doi:10.1016/j.ifacol.2020.12.2662.
  • [54] J. Park, R. A. Martin, J. D. Kelly, J. D. Hedengren, Benchmark temperature microcontroller for process dynamics and control, Computers & Chemical Engineering 135 (2020) 106736. doi:10.1016/j.compchemeng.2020.106736.