Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Active Disturbance Rejection Control

为具有未知动态特性和扰动的被控对象设计控制器

自 R2022b 起

  • Active Disturbance Rejection Control block

库:
Simulink Control Design / Adaptive Control

描述

使用 Active Disturbance Rejection Control 模块,您可以为具有未知动态特性以及内外部扰动的被控对象设计自抗扰控制 (ADRC)。ADRC 是一种无模型控制方法,它只需逼近被控对象动态特性,即可设计提供稳健抗扰性能的控制器。

该模块使用已知系统动态特性的一阶或二阶模型逼近以及建模为被控对象的扩张状态的未知动态特性和扰动。通常,您可以根据工作范围内被控对象的开环阶跃响应来确定此阶数。

  • 一阶逼近 - y˙(t)=b0u(t)+f(t)

  • 二阶逼近 - y¨(t)=b0u(t)+f(t)

其中:

  • y(t) 是被控对象输出。

  • u(t) 是输入信号。

  • b0 是临界增益,它是描述被控对象对输入 u(t) 的响应的估计增益。

  • f(t) 是总扰动,包括未知动态特性扰动和其他扰动。

该模块使用扩张状态观测器 (ESO) 来估计 f(t),并通过减少估计的扰动对模型逼近已知部分的影响来实现抗扰控制。为了调节 ADRC,需要设置适当的时域、模型类型和临界增益、控制器和观测器带宽以及初始条件。

有关详细信息,请参阅自抗扰控制

示例

端口

输入

全部展开

提供受控系统要跟随的参考信号。

提供被控对象的输出信号。

输出

全部展开

将控制输入信号连接到被控对象输入。

从扩张状态观测器估计的被控对象模型的扩张状态。

如果模型类型一阶xhat 是长度为 2 的向量,估计的状态为 y^f^(t)

如果模型类型二阶xhat 是长度为 3 的向量,估计的状态为 y^y˙^f^(t)

依存关系

要启用此输出端口,请选择估计的扩张状态参数。

参数

全部展开

“参数”选项卡

指定控制器时域。

当您选择离散时间时,请使用采样时间参数指定采样时间。

编程用法

模块参数:'time_domain'
类型:字符向量
值:'discrete-time' | 'continuous-time'
默认值:'discrete-time'

指定离散时间控制器的采样时间值。

依存关系

要启用此参数,请将时域参数设置为离散时间

编程用法

模块参数:'Ts'
类型:字符向量
值:有限正标量
默认值:'0.01'

将被控对象的模型类型指定为以下项之一。

  • 一阶 - 如果您的被控对象表现出一阶动态系统行为,请选择此选项。

  • 二阶 - 如果您的被控对象表现出二阶动态系统行为,请选择此选项。

编程用法

模块参数:'model_type'
类型:字符向量
值:'first-order' | 'second-order'
默认值:'first-order'

指定描述模型行为的临界增益 b0

编程用法

模块参数:'b0'
类型:字符向量
值:有限非零标量
默认值:'1'

指定控制器带宽。此参数可确定控制器响应的速度。一般情况下,更快的响应需要更大的控制器带宽。

编程用法

模块参数:'wc'
类型:字符向量
值:有限正标量
默认值:'1'

指定观测器带宽。通常,将此项设置为控制器带宽的 5 到 10 倍,以便观测器比控制器收敛得要快。

编程用法

模块参数:'wo'
类型:字符向量
值:有限正标量
默认值:'10'

“模块”选项卡

将扩张状态观测器的初始状态值指定为长度为 n 的标量或向量。

如果模型类型一阶,则 n = 2。否则,n = 3。

编程用法

模块参数:'x0'
类型:字符向量
值:有限标量 | 向量
默认值:'0'

用于将模块输出限制到指定的饱和界限的选项。使用上限下限参数指定输出饱和界限。

编程用法

模块参数:'ulim_checkbox'
类型:字符向量
值:'off' | 'on'
默认值:'off'

指定模块输出的上限。一旦模块输出超出此值,就会保持为该值。

依存关系

要启用此参数,请选择限制输出参数。

编程用法

模块参数:'umax'
类型:字符向量
值:标量
默认值:'inf'

指定模块输出的下限。一旦模块输出低于此值,就会保持为该值。

依存关系

要启用此参数,请选择限制输出参数。

编程用法

模块参数:'umin'
类型:字符向量
值:标量
默认值:'–inf'

用于从扩张状态观测器输出状态的选项。

如果模型类型一阶,则模块输出 y^f^(t)

如果模型类型二阶,则模块输出 y^y˙^f^(t)

编程用法

模块参数:'xhat_checkbox'
类型:字符向量
值:'off' | 'on'
默认值:'off'

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2022b 中推出

全部展开

另请参阅