自抗扰和PID的对比Matlab仿真

按照文献上的原理搭建

《从PID技术到“自抗扰控制”技术》韩京清 

acd8308a725046a6aa69f60696db3ea3.png

 一、安排过渡过程:00f0934e35d74938adf5f6d9779ff8b1.png

 

 

其中的fst函数:

 7e2ec0b9f7ed462389499f487b0a8f1f.png

function y = fst(x1,x2,r,h)
    d = r*h;
    d0 = d*h;
    y = x1+h*x2;
    a0 = sqrt(d^2+8*r*abs(y));

    %a的表达式 分段函数
    if(abs(y)>d0)
        a = x2+0.5*(a0-d)*sgn(y);%%%%%  注:有文章说 a=x2+(a0-d)/2*sgn(y)
    else
        a = x2+y/h;
    end
    %fst的表达式 分段函数    
    if(abs(a)<=d)
        fst = -r*a/d;
    else
        fst = -r*sgn(a);
    end
y = fst;
end

注意:代码中a和图片中的公式不一样,学习过程中发现其他文献都是*sgn(y)。 

为了调用符合函数sgn,需要重建一个.m文件写子函数:

function y=sgn(x)
    if x>0
        y=1;
    elseif x<0;
        y=-1;
    else 
        y=0;
    end
end

 

 二、非线性反馈:

 80fb42a72b78490f9748fe600743b9a2.png

其中的fal函数:

function y = fal(e,alpha,delta)
    fal=1;
    if(abs(e)>delta)
        fal = abs(e)^alpha*sgn(e);
    else
        fal = e/delta^(1-alpha);
    end
y = fal;
end

 

三、ESO扩张观测器:

 5f465f446b1a426b83849e7a62894800.png

fal函数和上面的一样,只是输入不同。 

 

 四、参数设置2e8342f41a834f85a9e1f10c3d207905.png

 

参数调节经验:

可以单独先调过渡过程的r,观看v1和v2的输出,再调其他部分。

0a47f8e4f8ff41a2988e611fb33a5014.png

来自:我的ADRC调参经验总结-CSDN博客

博主总结的很好,我觉得很有用,收藏了。

ADRC参数整定经验

TD:有两个参数r、h
r越大,快速性越好,但是容易超调和引发振荡
h越大,静态误差越小,刚开始带来的“超调”越小,初始的误差越小;但会导致上升过慢,快速性不好

ESO:有6个参数bata01;beta02;beta03;b;T=0.0015;alpha1;alpha2;delta_Eso;
一般alpha1=0.5;alpha2=0.25;delta_Eso=0.01;是固定参数,只需要调节其他三个参数:
bata01和1/h是同一个数量级,过大会带来振荡甚至发散;
beta02过小会带来发散,过大会产生高频噪声;
beta03过大会产生振荡;过小会降低跟踪速度;

Nolinear_PD:三个参数:Kp、Kd、delt
Kp越大,会减少误差,但是会降低快速性
Kd越大,增加快速性,但是过大会产生振荡
delt的值基本不影响输出,但是一般在0.01~0.1之间选取,过大会产生振荡

最终参数:
r = 30;h =0.01;Kp = 500;Kd = 25;delt = 0.01;
bata01=100;beta02=300;beta03=1500;alpha1=0.5;alpha2=0.25;delta_Eso=0.01;b=5;T=0.0015;
 

 我的仿真:

 输出23f4e7a0eb324acaaa4c268fa92345af.png

 

与PID的对比:

2045ff5769b04bb5b0f501e9c270a33b.png

 

加入白噪声: 

a68b8ed949474f3899f407f0f9b24183.png

结果:ADRC比PID更快到达目标值,且几乎没有超调;加入白噪声模拟外部干扰,ADRC抗扰性能更加。 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值