📄 a11202.m
字号:
error_1=0;
error_2=0;
ts=0.001;
t=[1;1;1];
y_1=0;
u_1=0;
kpid=[1;1;1];
net=newff([0 100; 0 100; 0 100; 0 100],[5,3],{'tansig','purelin'},'traingd');
net.trainParam.show = NaN;
net.trainParam.lr = 0.3;
net.trainParam.epochs = 2;
for k=1:1:100
time(k)=k*ts
rin(k)=1.0;
a(k)=1.2*(1-0.8*exp(-0.1*k));
yout(k)=a(k)*y_1/(1+y_1^2)+u_1;
error(k)=rin(k)-yout(k);
xi=[rin(k);yout(k);error(k);1];
x(1)=error(k)-error_1;
x(2)=error(k);
x(3)=error(k)-2*error_1+error_2;
epid=[x(1);x(2);x(3)];
[net,tr]=train(net,xi,kpid);
kpid = sim(net,xi)
du(k)=kpid'*epid
u(k)=u_1+du(k);
if u(k)>=10
u(k)=10;
end
if u(k)<=-10
u(k)=-10;
end
y_1=yout(k);
u_1=u(k);
error_2=error_1;
error_1=error(k);
end
figure(1);
plot(time,rin,'r',time,yout,'b');
xlabel('t');
ylabel('o');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -