资源简介
该MATLAB程序仿真对象是一阶纯滞后对象,程序运行成功。
代码片段和文件信息
%产生周期为200时间为T,幅值为l的方波信号的给定值
T=600;
[yr0t]=gensig(‘square‘200T1);
%plot(tyr0)
nn=input(‘时域长度 nn=‘);
n=input(‘预测长度 n=‘);
m=input(‘控制长度 m=‘);
lmd=input(‘控制加权系数 lmd=‘);
a=input(‘柔化系数 a=‘);
P=(1e+5)*eye(n+1);
%参数初始值
uuu=0;yyy=0;
uu=zeros(n1);u=zeros(m1);
yy=zeros(n1);y1=zeros(n1);
Q=zeros(n+11);
Q(11)=1;
Q(n+11)=1;
t1=1;
nm=length(t);
for ij=2:nm
yr=yr0(ij);
%根据系统模型,计算k时刻的输出值y(k)
% A=yy(n-2)*yy(n-1);
% B=1.2*yy(n-2)^2+0.8*yy(n-1)^2+1;
% y=A./B+0.5*uu(n1);
y=0.1*(2.571*yy(n-11)-2.806*yy(n-21)+2.04*yy(n-31)-1.095*yy(n-41)+...
0.2818*yy(n-51)+0.001283+0.0243*uu(n1)+0.0473*uu(n-11)+...
0.01576*uu(n-21)+0.005498*uu(n-31));
%产生均匀分布的白噪声
%保存k时刻及以前的n个输出值y(k)y(k-1)...y(k-n)
for i=1:n-1
yy(i1)=yy(i+11);
end
yy(n1)=y;
yyy=[yyy;y]; %保存各k时刻的n个输出量以便绘图
%根据最小二乘公式.由y(k)计算G阵的各元素值g0g0...gn
for i=1:n
X(1i)=uu(i1);
end
% a9=0;
% for i=1:1
% a9=a9+rand;
% end
% a8=0.01*(a9-6);
X(1n+1)=1;
K=P*X‘*inv(t1+X*P*X‘);
P=(eye(n+1
评论
共有 条评论