目录
ADRC算法数学公式详解
1. 扩张状态观测器(ESO)
2. 跟踪微分器(TD)
3. 线性状态误差反馈(LSEF)
ADRC算法数学公式详解
⎩⎨⎧ESO:TD:LSEF:⎩⎨⎧e=z1−yz˙1=z2−β1ez˙2=z3−β2e+b0uz˙3=−β3e{v˙1=v2v˙2=−r0(v1−v0)−c0v2⎩⎨⎧e1=z1−v1e2=z2−v2u0=−k1e1−k2e2u=b0u0−z3
线性ADRC通常更容易调整参数,但在大扰动下可能性能不如非线性ADRC。
1. 扩张状态观测器(ESO)
⎩⎨⎧e=z1−yz˙1=z2−β1ez˙2=z3−β2e+b0uz˙3=−β3e
这组公式表示ESO的动态过程:
- e=z1−y:观测误差,即状态估计值与实际测量值的差
- z˙1=z2−β1e:z1的变化率,用于跟踪系统的位置状态(角度)
- z˙2=z3−β2e+b0u:z2的变化率,跟踪系统的速度状态(角速度)
- z˙3=−β3e:z3的变化率,用于估计系统中的"总扰动"
其中:
- y 是系统输出(实测角度)
- z1,z2,z3 是观测器状态变量
- β1,β2,β3 是观测器增益参数
- b0 是控制输入增益
- u 是控制输入
ESO的关键作用是在不知道具体扰动模型的情况下,通过观测系统的输入输出关系,实时估计系统状态和"总扰动"。
2. 跟踪微分器(TD)
{v˙1=v2v˙2=−r0(v1−v0)−c0v2
TD的作用是生成光滑过渡过程:
- v˙1=v2:v1的变化率等于v2,其中v1是跟踪信号
- v˙2=−r0(v1−v0)−c0v2:v2的变化率由误差和阻尼项组成
其中:
- v0 是目标设定值(例如角度0)
- v1 是对v0的平滑跟踪
- v2 是v1的微分(速度)
- r0 控制跟踪速度
- c0 提供阻尼作用,防止振荡
TD避免了指令信号的突变给系统带来的冲击,实现了对设定点的平滑跟踪。
3. 线性状态误差反馈(LSEF)
⎩⎨⎧e1=z1−v1e2=z2−v2u0=−k1e1−k2e2u=b0u0−z3
LSEF计算控制信号:
- e1=z1−v1:位置(角度)跟踪误差
- e2=z2−v2:速度(角速度)跟踪误差
- u0=−k1e1−k2e2:基于误差的线性反馈控制律
- u=b0u0−z3:最终控制量,包含扰动补偿
其中:
- k1,k2 是控制增益参数
- z3 是ESO估计的总扰动
- b0 是控制输入增益的估计值
LSEF的核心思想是:
- 使用状态反馈稳定系统
- 使用z3补偿系统中的未知扰动和动态
- 通过b01进行控制量归一化
ADRC的关键在于"总扰动"概念,它将系统内外部的未知因素统一视为一个扰动,通过ESO实时观测并补偿,实现了控制系统的鲁棒性和自适应性。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。
许可协议。转载请注明出处!