ADRC简介 ADRC全称active disturbance rejection control ,是指自抗扰控制。 所谓“自抗扰”,就是要主动从被控对象的输 入输出信号中提取扰动信息, 然后尽快地用 控制信号把它消除, 从而大大降低它对被控 量的影响. 两个概念 状态空间法 观测器 状态空间法 𝑥 = 𝐴𝑥 + 𝐵𝑢 𝑦 = 𝐶𝑥 + 𝐷𝑢 其中,u为输入,y为输出,x表示对象的状态。 利用状态空间法可以比较容易的表示输入与输出的关系。 观测器 𝑥 =𝐴𝑥 + 𝐵𝑢 + 𝑙 𝑦 − 𝑦 𝑦 = 𝐶𝑥 利用观测器可以在对象的输入与输出已知的情况下估计出对象的 状态。 现在我们进行一阶eso的推导 对象的微分方程表示如下: 𝑦 = 𝑓 + 𝑏𝑢 为了消掉干扰f,可以构造𝑢 = (1) −𝑓+𝑢𝑜 ,代入(1)式得: 𝑏 𝑦 = 𝑢𝑜 + (𝑓 − 𝑓) ≈ 𝑢𝑜 (2) eso是指状态扩张观测器(extended state observer) 系统的结构框图如下图所示: −𝑓 + 𝑢𝑜 𝑢= 𝑏 为了实现框图中的方法,我们需要求出观测器中的参数。 𝑢𝑜 = 𝑘𝑝(𝑟 − 𝑦) 𝑦 = 𝑓 + 𝑏𝑢 (1) 𝑦 = 𝑢𝑜 + (𝑓 − 𝑓) ≈ 𝑢𝑜 (2) 令𝑥1 = 𝑦, 𝑥2 = 𝑓,由(1)式很容易得到: 𝑥1 = 𝑥2 + 𝑏𝑢 = 0 × 𝑥1 +1 × 𝑥2 + 𝑏 × 𝑢 + 0 × ℎ 𝑥2 = 𝑓 = ℎ = 0 × 𝑥1 +0 × 𝑥2 + 0 × 𝑢 + 1 × ℎ 用状态空间法可以表示成如下形式: 𝑥1 0 𝑥= = 0 𝑥2 𝑥1 𝑏 0 + 𝑢+ ℎ 𝑥2 0 1 𝑥1 𝑦 = 𝑥1 = 1 0 𝑥 2 1 0 对象输入输出关系的方程: 𝑥1 = 𝑥2 + 𝑏𝑢 𝑥2 = 𝑓 = ℎ (3) 𝑥 =𝐴𝑥 + 𝐵𝑢 + 𝑙 𝑦 − 𝑦 𝑦 = 𝐶𝑥 (4) 观测器的方程: 我们希望通过观测器利用对象输入输出的数据估计出对象的状态,由 (3)式、(4)式得: 𝑥1 = 𝑥2 + 𝑏𝑢 + 𝑙1 (𝑦 − 𝑦) 𝑥2 = 𝑙2 (𝑦 − 𝑦) (5) 𝑥1 = 𝑥2 + 𝑏𝑢 + 𝑙1 (𝑦 − 𝑦) 𝑥2 = 𝑙2 (𝑦 − 𝑦) (5) 因为𝑥1 = 𝑦,所以𝑦 = 𝑥1 ,代入(5)式得: 𝑥1 = 𝑥2 + 𝑏𝑢 + 𝑙1 𝑦 − 𝑦 = −𝑙1 𝑥1 + 1𝑥2 + 𝑏𝑢 + 𝑙1 𝑦 𝑥2 = 𝑙2 𝑦 − 𝑦 = −𝑙2 𝑥1 + 0𝑥2 + 0𝑢 + 𝑙2 𝑦 (6) 令观测器 的输出𝑥 = 𝑌,那么观测器的状态空间描述如下: 𝑥1 −𝑙1 1 𝑥1 𝑏 𝑙1 𝑢 = + −𝑙2 0 𝑥2 0 𝑙2 𝑦 𝑥2 𝑥 1 0 𝑥1 0 0 𝑢 𝑌=𝑥= 1 = + 𝑥2 0 1 𝑥2 0 0 𝑦 𝑥= (7) 𝑥1 −𝑙1 1 𝑥1 𝑏 𝑙1 𝑢 = + −𝑙2 0 𝑥2 0 𝑙2 𝑦 𝑥2 𝑥 1 0 𝑥1 0 0 𝑢 𝑌=𝑥= 1 = + 𝑥2 0 1 𝑥2 0 0 𝑦 𝑥= 则系数矩阵A= −𝑙1 −𝑙2 1 𝑏 ,B= 0 0 𝑙1 1 ,C= 𝑙2 0 (7) 0 0 ,D= 1 0 0 0 参数𝑙1 、𝑙2 可以通过系数矩阵A的特征根来求得: 𝜆𝐸 − 𝐴 = 𝜆 + 𝑤𝑜 2 所以 𝜆𝐸 − 𝐴 = 𝜆 + 𝑙1 𝑙2 −1 =𝜆 𝜆 + 𝑙1 + 𝑙2 =𝜆2 + 𝑙1 𝜆 + 𝑙2 = 𝜆 + 𝑤𝑜 2 𝜆 由待定系数法得:𝑙1 = 2𝑤𝑜,𝑙2 = 𝑤𝑜2 非常感谢高志强老师在北京化工大学的讲 座,通过讲座,我了解到自抗扰控制。 希望有更多的志同道合的朋友一起研究这 种方法,这种理论。 另外,我所介绍的推导过程有不对的地方 希望大家批评指正。