📄 linectrlok5512iinv.m
字号:
%单变量非线性动态系统控制器
clear;
m=2;
n=200;
k=n;
for i=1:100;
xi(i,1)=1;
end
for i=101:200;
xi(i,1)=0.3;
end
v=zeros(k,1);
w11=rand(1,n);
ww11=zeros(1,n);
w13=rand(1,n);
ww13=zeros(1,n);
w12=rand(1,n);
ww12=zeros(1,n);
w21=rand(1,n);
ww21=zeros(1,n);
w23=rand(1,n);
ww23=zeros(1,n);
w22=rand(1,n);
ww22=zeros(1,n);
wjh1=ones(1,n);
wwjh1=zeros(1,n);
wjh2=ones(1,n);
wwjh2=zeros(1,n);
wjh3=ones(1,n);
wwjh3=zeros(1,n);
w11(1,1)=1;
w13(1,1)=-1;
w12(1,1)=1;
w21(1,1)=0.1;
w23(1,1)=-1;
w22(1,1)=-0.1;
h=1;
wjh1(1,1)=0.1;
wjh2(1,1)=0.1;
wjh3(1,1)=0.1;
j=zeros(1,n);
eta=.0025;
eeta=.0025;
net=ones(3,n);
net(1,1)=w11(1,1)*xi(1,1)+w21(1,1)*v(1,1);
net(2,1)=w12(1,1)*xi(1,1)+w22(1,1)*v(1,1);
net(2,2)=w12(1,1)*xi(2,1)+w22(1,1)*v(2,1);
net(3,1)=w13(1,1)*xi(1,1)+w23(1,1)*v(1,1);
upie(1,1)=net(1,1);
upie(2,1)=net(2,1);
upie(2,2)=upie(2,1)+net(2,2);
upie(3,1)=net(3,1);
upie(3,2)=net(3,2)-net(3,1);
uliangpie=zeros(1,n);
uliangpie(1,1)=wjh1(1,1)*upie(1,1)+wjh2(1,2)*upie(2,1)+wjh3(1,3)*upie(3,1);
i=1;
mmax=10;
mmax=ones(200,2);
for r=1:150
for k=2:n
for j=1:3
if j==1
net(j,k)=w11(1,k)*xi(k,1)+w21(1,k)*v(k,1);
upie(j,k)=w11(1,k)*xi(k,i)+w21(1,k)*v(k,i);
if upie(j,k)>1
upie(j,k)=1;
elseif upie(j,k)<-1
upie(j,k)=-1;
end
elseif j==2
net(j,k)=w12(1,k)*xi(k,1)+w22(1,k)*v(k,1);
upie(j,k)=sum(net(j,k-1));
if upie(j,k)>1
upie(j,k)=1;
elseif upie(j,k)<-1
upie(j,k)=-1;
end
else
upie(j,k)=w13(1,k)*xi(k,i)+w23(1,k)*v(k,i)-w13(1,k-1)*xi(k-1,i)-w23(1,k-1)*v(k-1,i);
net(j,k)=w13(1,k)*xi(k,1)+w23(1,k)*v(k,1);
if upie(j,k)>1
upie(j,k)=1;
elseif upie(j,k)<-1
upie(j,k)=-1;
end
end
end
end
for k=3:n
uliangpie(1,k)=wjh1(1,k)*upie(1,k)+wjh2(1,k)*upie(2,k)+wjh3(1,k)*upie(3,k);
v(k,1)=1.0212*v(k,1)-3.0486*v(k-1,1)-0.1423*uliangpie(1,k)+0.4404*uliangpie(1,k-1);
end
for j=1:3
if j==1
for k=2:n
wwjh1(1,k)=wjh1(1,k)+eeta*(2/n*(xi(k,i)-v(k,1)))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*upie(j,k);
wjh1(1,k)=wwjh1(1,k);
end
elseif j==2
for k=2:n
wwjh2(1,k)=wjh2(1,k)+eeta*(2/n*(xi(k,i)-v(k,1)))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*upie(j,k);
wjh2(1,k)=wwjh2(1,k);
end
elseif j==3
for k=2:n
wwjh3(1,k)=wjh3(1,k)+eeta*(2/n*(xi(k,i)-v(k,1)))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*upie(j,k);
wjh3(1,k)=wwjh3(1,k);
end
end
end
for k=2:n
ww11(1,k)=w11(1,k)+eta*(2/n*(xi(k,i)-v(k,1))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*wjh1(1,k)*sign((upie(1,k)-upie(1,k-1)))*sign((net(1,k)-net(1,k-1)))*xi(k,i));
w11(1,k)=ww11(1,k);
ww12(1,k)=w12(1,k)+eta*(2/n*(xi(k,i)-v(k,1))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*wjh2(1,k)*sign((upie(2,k)-upie(2,k-1)))*sign((net(2,k)-net(2,k-1)))*xi(k,i));
w12(1,k)=ww12(1,k);
ww13(1,k)=w13(1,k)+eta*(2/n*(xi(k,i)-v(k,1))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*wjh3(1,k)*sign((upie(3,k)-upie(3,k-1)))*sign((net(3,k)-net(3,k-1)))*xi(k,i));
w13(1,k)=ww13(1,k);
ww21(1,k)=w21(1,k)+eta*(2/n*(xi(k,i)-v(k,1))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*wjh1(1,k)*sign((upie(1,k)-upie(1,k-1)))*sign((net(1,k)-net(1,k-1)))*v(k,i));
w21(1,k)=ww21(1,k);
ww22(1,k)=w22(1,k)+eta*(2/n*(xi(k,i)-v(k,1))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*wjh2(1,k)*sign((upie(2,k)-upie(2,k-1)))*sign((net(2,k)-net(2,k-1)))*v(k,i));
w22(1,k)=ww22(1,k);
ww23(1,k)=w23(1,k)+eta*(2/n*(xi(k,i)-v(k,1))*sign(v(k,1)-v(k-1,1))*sign(uliangpie(1,k)-uliangpie(1,k-1))*wjh3(1,k)*sign((upie(3,k)-upie(3,k-1)))*sign((net(3,k)-net(3,k-1)))*v(k,i));
w23(1,k)=ww23(1,k);
end
for k=3:n
uliangpie(1,k)=wjh1(1,k)*upie(1,k)+wjh2(1,k)*upie(2,k)+wjh3(1,k)*upie(3,k);
v(k,1)=1.0212*v(k,1)-3.0486*v(k-1,1)-0.1423*uliangpie(1,k)+0.4404*uliangpie(1,k-1);
j(1,k)=(xi(k,i)-v(k,1))^2;
end
j(1,1)=0.3;
j(1,200)=0;
dj=max(abs(j));
mmax=max(dj');
o(1,r)=sum(j)/200;
r
end
i=1:1:n-1;
plot(i,xi(i,1),'r',i,v(i,1),'black');
ylabel('red is refrence,black is output');
xlabel('time');
title('With The ANN-PID Control system of SISO ');
figure(2)
i=1:r;
plot(i,o(1,i));
ylabel('Eeror');
xlabel('Step');
title('With The ANN-PID Control system of SISO ');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -