matlab 混沌系统lorenz实现自抗扰控制
Posted studyer_domi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 混沌系统lorenz实现自抗扰控制相关的知识,希望对你有一定的参考价值。
1、内容简介
略
535-可以交流、咨询、答疑
2、内容说明
略
3、仿真分析
clc
close all
clear
% parameter
sigma = 10;
rou = 28;
b = 8/3;
delta = 10; % fal function parameter
beta01 = 1000;
beta02 = 3000000;
beta03 = 8000000;
% time define
tstep = 0.001;
tstart = 0;
tend = 100;
t = tstart:tstep:tend;
% init x
x1_0 = -4.47;
x2_0 = -0.505;
x3_0 =28.02;
% define the x
x1 = zeros(1,length(t));
x1(1) = x1_0;
x2 = zeros(1,length(t));
x2(1) = x2_0;
x3 = zeros(1,length(t));
x3(1) = x3_0;
y1 = zeros(1,length(t));
y1(1) = x1(1);
y2 = zeros(1,length(t));
y2(1) = sigma*(x2(1)-x1(1));
y3 = zeros(1,length(t));
y3(1) = 380*x1(1)-110*x2(1)-10*x1(1)*x3(1);
z1 = zeros(1,length(t));
z1(1) = y1(1);
z2 = zeros(1,length(t));
z2(1) = y2(1);
z3 = zeros(1,length(t));
z3(1) = y3(1);
for i=1:length(t)-1
% Euler method
x1(i+1)=tstep*sigma*(x2(i)-x1(i))+x1(i);
x2(i+1)=tstep*(rou*x1(i)-x2(i)-x1(i)*x3(i))+x2(i);
x3(i+1)=tstep*(-b*x3(i)+x1(i)*x2(i))+x3(i);
% y3(i+1)=tstep*(-6880*x1(i)+3910*x2(i)+236.67*x1(i)*x3(i)-100*x2(i)*x3(i)+10*x1(i)^2*x2(i))+y3(i);
% y2(i+1)=tstep*y3(i)+y2(i);
% y1(i+1)=tstep*y2(i)+y1(i);
y1(i+1) = x1(i+1);
y2(i+1) = sigma*(x2(i+1)-x1(i+1));
y3(i+1) = 380*x1(i+1)-110*x2(i+1)-10*x1(i+1)*x3(i+1);
e = z1(i)-y1(i);
alpha1 = 0.5;
if e<=delta
fe1 = e/delta^(1-alpha1);
else
fe1 = abs(e)^alpha1*sign(e);
end
alpha2 = 0.25;
if e<=delta
fe2 = e/delta^(1-alpha2);
else
fe2 = abs(e)^alpha2*sign(e);
end
z3(i+1)=tstep*(-1*beta03*fe2)+z3(i);
z2(i+1)=tstep*(z3(i)-beta02*fe1)+z2(i);
z1(i+1)=tstep*(z2(i)-beta01*e)+z1(i);
end
figure
plot(t,x1)
xlabel 时间/s
ylabel x_1
grid on
figure
plot(t,x2)
xlabel 时间/s
ylabel x_2
grid on
figure
plot(t,x3)
xlabel 时间/s
ylabel x_3
grid on
figure
plot3(x1,x2,x3)
xlabel x_1
ylabel x_2
zlabel x_3
grid on
figure
plot(t,y1)
xlabel 时间/s
ylabel y_1
grid on
figure
plot(t,y2)
xlabel 时间/s
ylabel y_2
grid on
figure
plot(t,y3)
xlabel 时间/s
ylabel y_3
grid on
figure
plot(t,z1)
xlabel 时间/s
ylabel z_1
grid on
figure
plot(t,z2)
xlabel 时间/s
ylabel z_2
grid on
figure
plot(t,z3)
xlabel 时间/s
ylabel z_3
grid on
err11 = y1-z1;
err21 = y2-z2;
figure
plot(t,y1,t,z1)
xlabel 时间/s
ylabel y_1
grid on
legend('y','z')
figure
plot(t,y2,t,z2)
xlabel 时间/s
ylabel y_2
grid on
legend('y','z')
figure
plot(t,err11)
xlabel 时间/s
ylabel err1
grid on
figure
plot(t,err21)
xlabel 时间/s
ylabel err2
grid on
4、参考论文
自抗扰控制技术-韩京清.pdf
以上是关于matlab 混沌系统lorenz实现自抗扰控制的主要内容,如果未能解决你的问题,请参考以下文章
MATLAB教程案例86通过matlab实现lorenz混沌系统