0 原理图

Note:

(1)适用对象:二阶系统;

(2)对象形式:

(0)y¨=f(t)+bu.

1 跟踪微分器 Tracking Differentiator

主要算法:

(1){v1(k+1)=v1(k)+hv2(k)v2(k+1)=v2(k)+hfh    fh=fhan(v1v0,v2,r,h1)h1=αh

fhan函数:

%% fhan函数
function fh=fhan( x1, x2, r ,h1)
        
    
    d=r*h1;
    d0=h1*d;
    y=x1+h0*x2;
    a0=sqrt( d^2+8*r*abs(y) );
    if(abs(y)>d0)
        a=x2+sign(y)*(a0-d)/2;
    else
        a=x2+y/h1;
    end
    
    if(abs(a)>d)
        fh=-r*sign(a);
    else
        fh=-r*a/d;
    end
    
end

1.2 参数测试评估

TD仿真文件,输入信号v=1+0.2*sin(100t)

(1)r=20, alpha=1,h=0.01

(2)r=20, alpha=10,h=0.01

图形对比表明增大h1(alpha)可以提升滤波效果;

(3)对比低通滤波器

仿真结果如下图:

对比表明低通滤波器可以达到同样的效果,但是低通滤波器可能导致正弦信号的幅值连续衰减两次;

2 非线性扩张状态观测器 Extended State Observer

主要算法:

(2){z1(k+1)=z1(k)+h(z2(k)β01e)z2(k+1)=z2(k)+h(z3(k)β02fe1+b0u)z3(k+1)=z3(k)+h(β03fe2)fe1=fal(e,0.5,h)fe2=fal(e,0.25,h)

fal函数:

%% fal函数描述
function fe=fal(e, alpha, delta)
    if( abs(e)<=delta )
        pt=delta^(alpha-1);
        fe=e/pt;
    else
        fe=sign(e)*abs(e)^alpha;
    end
    
end

ESO系数的计算公式【连系时间步长h】

(2.1)β01=1h,β02=13h2,β03=132h3,β04=5133h4.

3 非线性反馈控制器 Nonlinear Feedback Controller

主要算法有多种,其中一种如下:

(3){e1=v1z1e2=v2z2u0=fhan(e1,ce2,r,h2)u=u0z3b0h2=γh

4 参数说明&调节规律

(1)TD的参数r是快速因子,根据过渡过程的快慢和系统的承受能力决定的,r越大,跟踪速度越快,系统对阻尼因子c敏感;

(2)快速因子r增大到一定程度后对系统没有影响;

(3)r越大,跟踪速度越快,但是噪声放大越厉害;

(4)参数h1是滤波因子,积分步长h确定时,扩大滤波因子h1可以增强滤波效果;

(5)h1越大,滤波效果越好,但是跟踪信号的相位损失也越大,TD跟踪信号的速度也越慢

(6)积分步长h的缩小对抑制噪声放大起很大作用,并且缩小h可以提高控制精度;

(7)时间步长h一定要和Simulink仿真步长保持一致;

(8)控制器输入系数b0非常重要,要接近系统的输入系数b;

(9)alpha, gamma一般是大于等于1的整数;

(10)时间步长对控制效果影响很大,建议取h=0.001;

(11)反馈控制器中的阻尼因子c,精度因子h2;

(12)阻尼因子c太大,导致系统输出调节时间过长,阻尼因子c太小,导致系统输出曲线振荡;

(13)公式(2.1)给出的ESO的参数形式,有时行不通,需要注意;

备选项beta=[100, 300, 1000 ]

(14)调参时,首先保证TD的参数是正确的,输出结果符合预期;

5 控制实例一

(1)搭建模型

(2)控制效果

(3)参数列表

6 控制实例二

(1)封装模型

(2)仿真结果

(3)参数列表

——2021.04.29——

7 控制实例三

仿真结果

——2021.05.13——