Active Disturbance Rejection Control
库:
Simulink Control Design /
Adaptive Control
描述
使用 Active Disturbance Rejection Control 模块,您可以为具有未知动态特性以及内外部扰动的被控对象设计自抗扰控制 (ADRC)。ADRC 是一种无模型控制方法,它只需逼近被控对象动态特性,即可设计提供稳健抗扰性能的控制器。
该模块使用已知系统动态特性的一阶或二阶模型逼近以及建模为被控对象的扩张状态的未知动态特性和扰动。通常,您可以根据工作范围内被控对象的开环阶跃响应来确定此阶数。
一阶逼近 -
二阶逼近 -
其中:
y(t) 是被控对象输出。
u(t) 是输入信号。
b0 是临界增益,它是描述被控对象对输入 u(t) 的响应的估计增益。
f(t) 是总扰动,包括未知动态特性扰动和其他扰动。
该模块使用扩张状态观测器 (ESO) 来估计 f(t),并通过减少估计的扰动对模型逼近已知部分的影响来实现抗扰控制。为了调节 ADRC,需要设置适当的时域、模型类型和临界增益、控制器和观测器带宽以及初始条件。
有关详细信息,请参阅自抗扰控制。
示例
Design Active Disturbance Rejection Control for Boost Converter
Design ADRC for a boost converter model and compare performance against a PID controller tuned on a linearized model.
Design Active Disturbance Rejection Control for BLDC Speed Control Using PWM
Design ADRC for a brushless DC motor speed controller using pulse width modulation.
端口
输入
r — 参考信号
标量
提供受控系统要跟随的参考信号。
y — 被控对象输出
标量
提供被控对象的输出信号。
输出
u — 控制输入
标量
将控制输入信号连接到被控对象输入。
xhat — 估计的扩张状态
向量
从扩张状态观测器估计的被控对象模型的扩张状态。
如果模型类型为一阶,xhat 是长度为 2 的向量,估计的状态为 和 。
如果模型类型为二阶,xhat 是长度为 3 的向量,估计的状态为 、 和 。
依存关系
要启用此输出端口,请选择估计的扩张状态参数。
参数
“参数”选项卡
时域 — 控制器时域
离散时间 (默认) | 连续时间
指定控制器时域。
当您选择离散时间时,请使用采样时间参数指定采样时间。
编程用法
模块参数:'time_domain' |
类型:字符向量 |
值:'discrete-time' | 'continuous-time' |
默认值:'discrete-time' |
采样时间 — 控制器采样时间
0.01
(默认) | 有限正标量
指定离散时间控制器的采样时间值。
依存关系
要启用此参数,请将时域参数设置为离散时间。
编程用法
模块参数:'Ts' |
类型:字符向量 |
值:有限正标量 |
默认值:'0.01' |
模型类型 — 被控对象阶数类型
一阶 (默认) | 二阶
将被控对象的模型类型指定为以下项之一。
一阶 - 如果您的被控对象表现出一阶动态系统行为,请选择此选项。
二阶 - 如果您的被控对象表现出二阶动态系统行为,请选择此选项。
编程用法
模块参数:'model_type' |
类型:字符向量 |
值:'first-order' | 'second-order' |
默认值:'first-order' |
临界增益 — 临界增益
1
(默认) | 有限非零标量
指定描述模型行为的临界增益 b0。
编程用法
模块参数:'b0' |
类型:字符向量 |
值:有限非零标量 |
默认值:'1' |
控制器带宽(弧度/秒) — 控制器带宽
1
(默认) | 有限正标量
指定控制器带宽。此参数可确定控制器响应的速度。一般情况下,更快的响应需要更大的控制器带宽。
编程用法
模块参数:'wc' |
类型:字符向量 |
值:有限正标量 |
默认值:'1' |
观测器带宽(弧度/秒) — 观测器带宽
10
(默认) | 有限正标量
指定观测器带宽。通常,将此项设置为控制器带宽的 5 到 10 倍,以便观测器比控制器收敛得要快。
编程用法
模块参数:'wo' |
类型:字符向量 |
值:有限正标量 |
默认值:'10' |
“模块”选项卡
初始条件 — 扩张状态观测器的初始状态值
0
(默认) | 标量 | 向量
将扩张状态观测器的初始状态值指定为长度为 n 的标量或向量。
如果模型类型为一阶,则 n = 2。否则,n = 3。
编程用法
模块参数:'x0' |
类型:字符向量 |
值:有限标量 | 向量 |
默认值:'0' |
限制输出(u) — 将模块输出限制到指定的饱和界限
off
(默认) | on
用于将模块输出限制到指定的饱和界限的选项。使用上限和下限参数指定输出饱和界限。
编程用法
模块参数:'ulim_checkbox' |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
上限 — 模块输出的饱和上限
inf
(默认) | 标量
指定模块输出的上限。一旦模块输出超出此值,就会保持为该值。
依存关系
要启用此参数,请选择限制输出参数。
编程用法
模块参数:'umax' |
类型:字符向量 |
值:标量 |
默认值:'inf' |
下限 — 模块输出的饱和下限
–inf
(默认) | 标量
指定模块输出的下限。一旦模块输出低于此值,就会保持为该值。
依存关系
要启用此参数,请选择限制输出参数。
编程用法
模块参数:'umin' |
类型:字符向量 |
值:标量 |
默认值:'–inf' |
估计的扩张状态(xhat) — 从观测器输出估计的状态
off
(默认) | on
用于从扩张状态观测器输出状态的选项。
如果模型类型为一阶,则模块输出 和 。
如果模型类型为二阶,则模块输出 、 和 。
编程用法
模块参数:'xhat_checkbox' |
类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
版本历史记录
在 R2022b 中推出R2023b: 库位置已更改
Active Disturbance Rejection Control 模块现在位于 Simulink Control Design/Adaptive Control 子库中。
在 R2023b 中,当您打开使用上一版本保存的模型时,Active Disturbance Rejection Control 模块的库链接会自动更新。
另请参阅
主题
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)