使用扩张状态观测器进行控制设计和扰动补偿
扩张状态观测器 (ESO) 是一种状态估计方法,允许您基于被控对象的输入和输出来估计被控对象的状态和扰动。该算法将扰动建模为被控对象的扩张状态来执行估计。当您想要补偿控制系统中的未知扰动时,此方法非常有用。这些扰动代表了总扰动,包括未知动态特性以及内部扰动和外部扰动。
Extended State Observer 模块
您可以在 Simulink® 中使用 Extended State Observer 模块来实现 ESO。该模块要求您用以下形式指定系统动态特性。
其中:
x 是被控对象状态。
是连续时间下的状态导数,x+ 是离散时间下的状态更新 x[k+1]。
A、Bu 和 Cm 是被控对象动态特性。
ym 是可测量被控对象输出。
Bd 是扰动输入矩阵。对于匹配不确定性,该模块允许您以 Bd = k×Bu 的形式指定扰动矩阵,其中 k 是使用模块参数指定的增益。对于非匹配不确定性,您也可将 Bd 指定为模块输入 [1]。
d 模型中的总扰动,包括未知动态特性以及内部扰动和外部扰动。
通常,您可从被控对象的物理表示或近似模型获得这些系统动态特性。该模块并不要求您提供被控对象的实际模型。因此,估计的准确度将取决于被控对象近似模型的准确度。基于这些被控对象输入 u 和输出 ym,该模块返回估计的状态 和扰动 。利用这些估计的状态和扰动,您可以实现状态反馈或扰动补偿控制方法。

要调节观测器响应,请使用带宽(弧度/秒) 和间距(弧度/秒) 参数。利用这些参数,该模块可确定极点的位置和间距,并计算观测器增益矩阵。您也可以将观测器增益矩阵指定为模块输入。
有关示例,请参阅应用扩张状态观测器实现 DC 电机的参考跟踪。
Disturbance Compensator 模块
使用 Disturbance Compensator 模块可修改标称控制器的控制动作,以抑制和补偿模型中的扰动。为了补偿扰动,Disturbance Compensator 模块使用 ESO 来估计模型中的总扰动,并返回修改后的控制器动作,您可以将其用作被控对象输入。
该模块对上一节中描述的 ESO 实现进行了如下扩展。
其中:
u 是修改后的控制器动作。
u0 是标称控制器动作。
Kd 是补偿增益矩阵。
典型结构如下图所示。突出显示的部分展示了 Disturbance Compensator 模块如何生成补偿信号。

与 Extended State Observer 模块类似,要调节观测器响应,请使用带宽(弧度/秒) 和间距(弧度/秒) 参数。利用这些参数,该模块可确定极点的位置和间距,并计算观测器增益矩阵和补偿增益矩阵 Kd。您也可以将增益矩阵指定为模块输入。
Kd 的计算依赖于时域。有关详细信息,请参阅 [1] 和 [2]。
有关示例,请参阅Compensate for Disturbances in Spring-Mass-Damper System。
参考
[1] Li, Shihua, Jun Yang, Wen-Hua Chen, and Xisong Chen. “Generalized Extended State Observer Based Control for Systems With Mismatched Uncertainties.” IEEE Transactions on Industrial Electronics 59, no. 12 (December 2012): 4792–4802. https://doi.org/10.1109/TIE.2011.2182011.
[2] Zhang, Pengcheng, Jianyu Wang, Yun Cheng, and Shiyu Jiao. “Reduced-Order Generalized Extended State Observer Based Control for Discrete-Time Systems.” In 2022 International Conference on Cyber-Physical Social Intelligence (ICCSI), 670–75. Nanjing, China: IEEE, 2022. https://doi.org/10.1109/ICCSI55536.2022.9970623.
另请参阅
Extended State Observer | Disturbance Compensator | Active Disturbance Rejection Control