MATLAB - 自抗扰控制(Active Disturbance Rejection Control)

简介: MATLAB - 自抗扰控制(Active Disturbance Rejection Control)

前言

自抗扰控制 (ADRC) 是一种无模型控制方法,适用于为具有未知动态特性以及内部和外部扰动的被控对象设计控制器。此算法只需要对被控对象动态特性进行逼近,即可设计具有稳健抗扰功能的无超调的控制器。

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

image.png

其中:

  • y(t) 是被控对象输出。
  • u(t) 是输入信号。
  • b0 是临界增益,它是描述被控对象对输入 u(t) 的响应的估计增益。
  • f(t) 是总扰动,包括未知动态特性扰动和其他扰动。

该模块使用扩张状态观测器 (ESO) 来估计 f(t),并通过减少估计的扰动对模型逼近已知部分的影响来实现抗扰控制。

您可以实现离散时间和连续时间控制器。设置控制器时域和采样时间以匹配被控对象模型的时域。

一、控制器结构

1.1 一阶逼近

404be68ca01ed27f471563b77856f6f2.png image.png

image.png

1.2 二阶逼近

image.png


image.png image.png

二、指定控制器参数

为了对您的被控对象实现 ADRC,您必须为被控对象逼近的临界增益值 b0 提供合理的估计值。为此,可采用以下方法。

  1. 使用幅值为 uOL 的阶跃信号,在工作范围内对开环被控对象进行仿真。
  2. 记录较短持续时间内被控对象输出的变化。

image.png

然后,要调节控制器响应,请分别使用控制器带宽和观测器带宽指定 ωc 和 ωo 值。这些值取决于控制器的性能要求。一般情况下,更快的响应需要更大的控制器带宽。观测器还需要比控制器收敛得更快。因此,请将观测器带宽设置为控制器带宽的 5 到 10 倍。


此外,该模块允许您指定状态的初始条件,限制控制器输出,并输出估计的状态值。

参考

[1] Han, Jingqing. “From PID to Active Disturbance Rejection Control.” IEEE Transactions on Industrial Electronics 56, no. 3 (March 2009): 900–906. https://doi.org/10.1109/TIE.2008.2011621.


[2] Herbst, Gernot. “A Simulative Study on Active Disturbance Rejection Control (ADRC) as a Control Tool for Practitioners.” Electronics 2, no. 3 (August 15, 2013): 246–79. https://doi.org/10.3390/electronics2030246.


[3] Zhiqiang Gao. “Scaling and Bandwidth-Parameterization Based Controller Tuning.” In Proceedings of the 2003 American Control Conference, 2003, 6:4989–96. Denver, CO, USA: IEEE, 2003. https://doi.org/10.1109/ACC.2003.1242516.

目录
相关文章
|
2月前
|
机器学习/深度学习 算法 自动驾驶
MATLAB - 最优控制(Optimal Control)
MATLAB - 最优控制(Optimal Control)
19 0
|
2月前
|
机器学习/深度学习 资源调度 算法
MATLAB - 模型参考自适应控制(Model Reference Adaptive Control)
MATLAB - 模型参考自适应控制(Model Reference Adaptive Control)
32 0
|
2月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
123 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
2月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
94 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
2月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
71 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
5月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
5月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
5月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
5月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)

热门文章

最新文章

下一篇
无影云桌面