資源簡介
迭代學習控制機械手PD matlab程序

代碼片段和文件信息
clear?all;
close?all;
m=20;
n=100;
gama=0.9;
x1(1:m1:n)=0;
x2(1:m1:n)=0;
u(1:m1:n)=0;
y(1:m1:n)=0;
e(1:m1:n)=0;
err(1:m1:n)=0;
%?b=beronulli(110001);
%?w=randn(mn)/5;
for?n=1:100??
????y_d(n)?=?sin(8*(n-1)/50);?
%y_d(n)?=?5*sin(n*pi/100)+0.3*cos(n*pi/100);???
%?????if?n<=300
%?????????y_d(n)?=5*(-1).^round(n/100);?
%?????else?if?n<=700??
%?????????y_d(n)?=?5*sin(n*pi/100)+0.3*cos(n*pi/100);????
%?????else????
%?????????y_d(n)?=5*(-1).^round(n/100);
%?????end
%?????end
????????????
???%y_d(n)=12*n.^2*(n-1);
???%y_d(n)?=?sin(2*pi*n/50);
end
for?k=1:m
????
????for?t=2:n-1???
??????x1(kt)=(-0.8*x1(kt-1))-0.22*x2(kt-1)+0.5*u(kt-1);
??????x2(kt)=x1(kt-1)+u(kt-1);
??????y(kt-1)=(x1(kt-1)+0.5*x2(kt-1));
??????e(kt-1)=y_d(t-1)-y(kt-1);
??????err(kt-1)=abs(e(kt-1)).^2;??????
????end
????for?t=2:n-1??
????????u(k+1t-1)=u(kt-1)+gama*e(kt)+0.3*e(kt-1);????
????end
????errn(k)=max(err(k:));
end
?plot(y_d(1:90)‘-r‘);hold?on
?plot(y(11:90));hold?on;
?plot(y(21:90));hold?on;
?plot(y(31:90));hold?on;
?plot(y(51:90));hold?on;
%?plot(y(81:90));hold?on;
%plot(y(101:90));hold?on;
%plot(y(151:90));hold?on;
figure?
plot(err(51:90));
%plot(err(121:20));hold?on
%plot(err(151:20));hold?on
k=1:20;
figure;plot(kerrn(k))
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1307??2009-06-03?16:46??PD.m
- 上一篇:計算bpsk的循環累積量
- 下一篇:自編Matlab函數實現圖像縮放
評論
共有 條評論