(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版

在这里先声明一下,级联CESO由美国学者Rafal Madonski的论文
《Cascade extended state observer for active disturbance rejection control 
applications under measurement noise》提出,本人只是将他给的模型给中国学者研究,
模型适用于各个行业,以供参考。

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版

  • 一、论文介绍
  • 二、ADRC介绍
  • 三、simulink仿真介绍
    • 1:Reference signal(参考信号)
    • 2:Observer(观测器)
      • 单个三阶ESO
      • 2个级联3阶ESO
      • 3个级联3阶ESO
    • 3:Process disturbance(扰动信号)
    • 4:ADRC controller(ADRC控制器)
    • 5:Plant(研究模型)
  • 四、噪声
  • 五、仿真结果
    • 单个三阶ESO
    • 2个级联3阶ESO
    • 3个级联3阶ESO
  • 六、结论
  • 七、请大家仔细看程序含义
  • 希望大家可以关注一下啦,或者点点赞,又或者打赏几块钱让我开心一下,哈哈哈!

一、论文介绍

扩展状态观测器(ESO)在非线性系统反馈控制设计中起着重要作用。然而,当输出测量被不可忽略的高频噪声破坏时,它的高增益特性在工程实践中产生了挑战。这种噪声的存在限制了观测器的增益可以有多高,这迫使在状态估计的快速收敛和控制任务实现的质量之间进行权衡。在这项工作中,提出了一种新的观测器设计,以提高存在噪声时的估计性能。特别地,开发了一种独特的ESO级联组合,能够快速、准确地重构信号,同时避免了测量噪声的过度放大。作为自抗扰控制(ADRC)方案的一部分,验证了所引入的观测器结构的有效性。对新的观测器结构进行了数值验证和理论分析,结果表明该观测器结构在噪声衰减方面优于标准方案。
下面的框图是这篇论文的总体控制介绍:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第1张图片
plant是你的模型,controller是你的控制器,中间由多个ESO级联,state selector是观测状态量,z1,z2,z3.

二、ADRC介绍

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第2张图片
这方面可以参考其他博主的文章和论文,不再介绍。

三、simulink仿真介绍

下面将对论文的simulink仿真模型介绍,同学们可以对比ADRC框图和论文的总体控制框图做对比。
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第3张图片

大家可以看到总共包括5个部分:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第4张图片
1:Reference signal(参考信号)
2:Observer(观测器)
3:Process disturbance(扰动信号)
4:ADRC controller(ADRC控制器)
5:Plant(研究模型)

1:Reference signal(参考信号)

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第5张图片
其中的step:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第6张图片
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第7张图片

2:Observer(观测器)

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第8张图片
观测器总共由三个部分,单个三阶ESO,2个级联3阶ESO,3个级联3阶ESO

单个三阶ESO

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第9张图片
其中Interpreted MATLAB Fcn模块:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第10张图片
名字是esoObserver,输出维度为3维度。
其中esoObserver.m文件为:

function [ z_hat_p ] = esoObserver( input )
    
    b_hat = 1;
    w0 = 400;
    L = [3*w0, 3*w0^2, w0^3]';

    z_hat = input(1:3);
    y = input(4);
    u = input(5);

    Ao = [0 1 0;...
         0 0 1;...
         0 0 0];
    Bo = [0; -b_hat; 0];

    z_hat_p = Ao*z_hat + Bo*u + L*(y - z_hat(1));
end


2个级联3阶ESO

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第11张图片
第一个是:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第12张图片
名字是newEsoObserverFirstStage,输出维度为3维度。
其中newEsoObserverFirstStage.m文件为:

function [ z_hat_p ] = newEsoObserverFirstStage( input )
    
    w01 = 460/4;
    b_hat = 1;
    L = [3*w01, 3*w01^2, w01^3]';

    z_hat = input(1:3);
    y = input(4);
    u = input(5);

    Ao = [0 1 0;...
         0 0 1;...
         0 0 0];
    Bo = [0; -b_hat; 0];

    z_hat_p = Ao*z_hat + Bo*u + L*(y - z_hat(1));
end


第二个是:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第13张图片
名字是newEsoObserverSecondStage,输出维度为3维度。
其中newEsoObserverSecondStage.m文件为:

function [ z_hat2_p ] = newEsoObserverSecondStage( input )
    
    alpha = 2;
    w01 = 460/4;
    w02 = alpha*w01;
    b_hat = 1;
    L = [3*w02, 3*w02^2, w02^3]';

    z_hat2 = input(1:3);
    z_hat = input(4:6);
    u = input(7);

    Ao = [0 1 0;...
         0 0 1;...
         0 0 0];
    Bo = [0; -b_hat; 0];

    z_hat2_p = Ao*z_hat2 + Bo*u - Bo*1/b_hat*z_hat(3) + L*(z_hat(1) - z_hat2(1));
end


第三个是:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第14张图片
名字是extendedStateSelectorN2,输出维度为3维度。
其中extendedStateSelectorN2.m文件为:

function [z_hat] = extendedStateSelectorN2(input)

z_hat_1 = input(1:3);
z_hat_2 = input(4:6);

z_hat = [z_hat_2(1:2); z_hat_1(3)+z_hat_2(3)];
end


3个级联3阶ESO

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第15张图片
第一个是:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第16张图片
名字是newEsoObserverFirstStage,输出维度为3维度。
其中newEsoObserverFirstStage.m文件为:

function [ z_hat_p ] = newEsoObserverFirstStage( input )
    
    w01 = 460/4;
    b_hat = 1;
    L = [3*w01, 3*w01^2, w01^3]';

    z_hat = input(1:3);
    y = input(4);
    u = input(5);

    Ao = [0 1 0;...
         0 0 1;...
         0 0 0];
    Bo = [0; -b_hat; 0];

    z_hat_p = Ao*z_hat + Bo*u + L*(y - z_hat(1));
end


第二个是:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第17张图片
名字是newEsoObserverSecondStage,输出维度为3维度。
其中newEsoObserverSecondStage.m文件为:

function [ z_hat2_p ] = newEsoObserverSecondStage( input )
    
    alpha = 2;
    w01 = 460/4;
    w02 = alpha*w01;
    b_hat = 1;
    L = [3*w02, 3*w02^2, w02^3]';

    z_hat2 = input(1:3);
    z_hat = input(4:6);
    u = input(7);

    Ao = [0 1 0;...
         0 0 1;...
         0 0 0];
    Bo = [0; -b_hat; 0];

    z_hat2_p = Ao*z_hat2 + Bo*u - Bo*1/b_hat*z_hat(3) + L*(z_hat(1) - z_hat2(1));
end


第三个:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第18张图片
名字是newEsoObserverThirdStage,输出维度为3维度。
其中newEsoObserverThirdStage.m文件为:

function [ z_hat3_p ] = newEsoObserverThirdStage( input )
    
    alpha = 2;
    w01 = 460/4;
    w02 = alpha*w01;
    w03 = alpha*w02;
    b_hat = 1;
    L = [3*w03, 3*w03^2, w03^3]';

    z_hat3 = input(1:3);
    z_hat = input(4:6);
    z_hat2 = input(7:9);
    u = input(10);

    Ao = [0 1 0;...
         0 0 1;...
         0 0 0];
    Bo = [0; -b_hat; 0];

    z_hat3_p = Ao*z_hat3 + Bo*u - Bo*1/b_hat*(z_hat(3)+z_hat2(3)) + L*(z_hat2(1) - z_hat3(1));
end


第四个:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第19张图片
名字是extendedStateSelectorN3,输出维度为3维度。
其中extendedStateSelectorN3.m文件为:

function [z_hat] = extendedStateSelectorN3(input)

z_hat_1 = input(1:3);
z_hat_2 = input(4:6);
z_hat_3 = input(7:9);

z_hat = [z_hat_3(1:2); z_hat_1(3)+z_hat_2(3)+z_hat_3(3)];
end


3:Process disturbance(扰动信号)

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第20张图片
名字是processDisturbanceGenerator,输出维度为3维度。
其中processDisturbanceGenerator.m文件为:

哦,突然发现代码不见了,改天我重新写一份吧,不好意思啦

4:ADRC controller(ADRC控制器)

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第21张图片
名字是adrc,输出维度为1维度。
其中adrc.m文件为:

function [u] = adrc(input)
    
    b_hat = 1;
    K = [2^2 2*2];

    z_hat = input(1:3);

    u = 1/b_hat*(z_hat(3)+K*z_hat(1:2));
end

5:Plant(研究模型)

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第22张图片
其中Interpreted MATLAB Fcn模块:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第23张图片
名字是transferFunctionTimeVarying,输出维度为3维度。
其中transferFunctionTimeVarying.m文件为:

function [ out ] = transferFunctionTimeVarying( input )
    
    A = [0 1;...
    -1 -2];
    C = [1 0];

    x = input(1:2);
    u = input(3);
    t = input(4);
    
    B =[0  (1+0.2*tanh((t-2)))/(abs(x(1))+1)]';

    xp = A*x+B*u;

    out = xp;
end


四、噪声

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第24张图片

五、仿真结果

单个三阶ESO

参考值和估计值:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第25张图片
u的值:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第26张图片

2个级联3阶ESO

参考值和估计值:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第27张图片
u的值:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第28张图片

3个级联3阶ESO

参考值和估计值:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第29张图片
u的值:
(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版_第30张图片

六、结论

这下就把所有的模块都介绍完了,我希望大家不要轻易问我要模型,自己搭建,不会的在评论区下面留言,我一天之内会解答

七、请大家仔细看程序含义

希望大家可以关注一下啦,或者点点赞,又或者打赏几块钱让我开心一下,哈哈哈!

你可能感兴趣的:(人工智能,python,算法)