资源简介
迭代学习控制机械手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函数实现图像缩放
评论
共有 条评论