永发信息网

P=(1e+5)*ones(n+1) 和 P=(1e+5)*eye(n+1) 是什么意思?谢谢啦

答案:2  悬赏:0  手机版
解决时间 2021-01-11 06:23
P=(1e+5)*ones(n+1) 和 P=(1e+5)*eye(n+1) 是什么意思?谢谢啦
最佳答案
P=(1e+5)*ones(n+1)表示10的5次方乘n+1阶的单位阵;P=(1e+5)*eye(n+1) 表示10的5次方乘n+1阶的对角阵,以下为程序
n=2;P=(1e+5)*ones(n+1)

P =

100000 100000 100000
100000 100000 100000
100000 100000 100000

>> n=2;P=(1e+5)*eye(n+1)

P =

100000 0 0
0 100000 0
0 0 100000
全部回答
clear
%disp('单变量系统的隐式广义预测控制算法的研究')
%disp('广义预测控制算法初始值')
nn=6; %时域长度p
n=6; %预测长度n
m=2; %控制长度m
t0=0.8; %控制加权系数lamda
a=0.3; %柔化系数
%disp ('最小二乘公式初始值')
t1=1; %input('遗忘因子lamda1=')
d1=1; %(n+1)阶方阵P的形式:0对角阵,1方阵
d2=1; %(n+1)阶方阵P的初始值:0自动赋值1e+5,1键盘输入
if(d1==1)
if(d2==1)
P=6;
else
P=(1e+5)*ones(n+1);
end
else
if(d2==1)
P=6;
P=diag(P);
else
P=(1e+5)*eye(n+1);
end
end
%参数初始值
uuu=0;yyy=0;
uu=zeros(n,1);u=zeros(m,1);
yy=zeros(n,1);y1=zeros(n,1);
Q=zeros(n+1,1);Q(1,1)=1;Q(n+1,1)=1;
%产生周期为100,时间T,幅值为1的方波信号的给定值
T=300;[yr0,t]=gensig('step',100,T,1); %pulse sine
d3=0; %('输出曲线是否去掉前100步:0-不,1-去掉:');
nm=length(t); %确定循环次数
for ij=2:nm
yr=yr0(ij)+1; %产生周期为100,时间为T,幅值在1和2之间变化的方波信号的给定值
%根据系统模型,计算k时刻的输出值y(k)
y=1.49*yy(n,1)-0.49*yy(n-1,1)+0.5*uu(n-1,1);
%(nn=6,n=6,m=2;t0=0.8;a=0.3;t1=1) %example9-1
%y=2.001676*yy(n,1)-1.24339*yy(n-1,1)+0.24171*yy(n-2,1)+0.23589*uu(n,1); %example9-2
%产生均匀分布的白噪声
a9=0;
for i=1:1
a9=a9+rand;
end
a8=0.01*(a9-6);
%保存k时刻及以前的n个输出值y(k),y(k-1),...,y(k-n),以供模型运算
for i=1:n-1
yy(i,1)=yy(i+1,1);
end
yy(n,1)=y;
yyy=[yyy;y]; %保存个k时刻的nm个输出量以便绘图
%根据最小二乘公式,由y(k)计算G阵的各元素值g0,g1,...,gn
for i=1:n
X(1,i)=uu(i,1);
end
X(1,n+1)=1;
K=P*X'*inv(t1+X*P*X');
P=(eye(n+1)-K*X)*P/t1;
Q=Q+K*(y-X*Q);
%根据元素值g0,g1,...gn,求G阵
for j=1:m
for i=n:-1:j
i1=n-i+j;
G(i1,j)=Q(i,1);
end
end
%求nn维y0向量(y1为上一时刻的y0向量)
y0(1:nn-1,1)=y1(2:nn,1);y0(nn,1)=y1(nn,1);
y0=y0+(y-y1(1,1));
for i=1:n
y1(i,1)=y0(i,1)+u(1,1)*Q(n+1-i,1);
end
for i=n+1:nn
y1(i,1)=y1(n,1);
end
%根据y0,求n维f向量f(k+1),...f(k+n)
f(1:n,1)=y0(1:n,1);
%由当前k时刻的输出值y(k)和给定值yr,求k时刻以后的n个参考轨迹w(k+1),...w(k+n)
w=a*y+(1-a)*yr;
for i=2:n
w=[w;a^i*y+(1-a^i)*yr];
end
%计算k时刻及以后的m个控制增量Du(k),...Du(k+m)
u=inv(G'*G+t0*eye(m))*G'*(w-f);
%保存k时刻集以后的n个控制增量,以供模型运算
for i=1:n-1
uu(i,1)=uu(i+1,1);
end
uu(n,1)=u(1,1);
uuu=[uuu;u(1,1)]; %保存各k时刻的nm个控制增量以便绘图
%控制量限幅
if(u(1,1)>1)
u(1,1)=1;
end
if(u(1,1)<-1)
u(1,1)=-1;
end
end
%绘制给定值、输出值和控制增量曲线
if(d3==1)
%绘制去掉前100步的给定值、输出值和控制增量曲线
yyy1(1:(T-100),1)=yyy(101:T,1);
uuu1(1:(T-100),1)=yyy(101:T,1);
t1(1:(T-100),1)=t(101:T,1)-100;
yr01(1:(T-100),1)=yr0(101:T,1);
subplot(2,1,1):plot(t1,(yr01+1),t1,yyy1,'-');
axis([0,nm-100,0,2.5]);
xlabel('t'); ylabel('yr,y');
subplot(2,1,2):plot(t1,uuu1,'*');
axis([0,nm-100,-1.5,1.5]);
legend('yr','-';'y','*');
xlabel('t'); ylabel('u')

else
% 绘制完整的给定值、输出值和控制增量曲线
subplot(2,1,1):plot(t,(yr0+1),t,yyy);
axis([0,nm,0,2.5]);
xlabel('t'); ylabel('yr,y'); legend('yr,y')
subplot(2,1,2):plot(t,uuu);
axis([0,nm,-1.5,1.5]);
xlabel('t'); ylabel('u')
end
??? Output argument "u" (and maybe others) not assigned during call to "D:\Program Files\MATLAB71\toolbox\control\control\gensig.m (gensig)".
Error in ==> gensig at 21
ni = nargin;追问李国勇 智能预测控制及其MATLAB实现
你也用这个程序仿真吗 我用ex9-3.m 出来的图和书里给的不一样 也许是参数设置的原因 请教啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
制作啤酒烤鸭的香精是什么香精
ios11能用影音先锋么.
青少年卧室适合什么绿色涂料图片
用蒸面器蒸白醋,对面部皮肤会有害吗?
1-氯-1-溴己烯的结构式
芜湖市哪里有道教祠堂,如钟离庙,三清观什么
猜成语薪火答案是什么
鼻子上长黑头,是什么原因,怎么去除?
#司机#司机工作到底怎么样
数据库系统概论第五版答案谁有
下列地理事物属于东南亚某些国家的是A.“母亲
我想看中央一套的新闻,有什么软件可以看?
65除6,除怎么除??
为什么有时候梦到跑步感觉没力气,跑不动?
喝水加什么东西可以美白男
推荐资讯
此题要求改正所给短文中的错误。对标有题号的
乐视x528和乐视2一样吗
实习想提前结束
单选题2012年3月2日来自山西的人大代表申纪兰
为什么说爱德森山脊是整个瓜岛战役中最关键,
有什么气体能在特定条件下瞬间变成冰的
安和托管中心地址在什么地方,想过去办事
在武汉加盟宁波陆龙兄弟行吗...
中国居民在国外发生的借贷受国内法律
留学澳洲体检怎么会缺尿检
台湾木字旁一个曾的繁体字
云南出版集团名师测控数学答案
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?