24小时热门版块排行榜    

查看: 1648  |  回复: 1

a7063888

新虫 (初入文坛)

[求助] 咨询下子空间辨识的MATLAB程序问题

[npdat,nyp]=size(yp);
[mpdat,nup]=size(up);
[rpdat,nrp]=size(rf);
if npdat~=mpdat
    error('Y and U have different length.')
end
i=10;
% block Hankel matrix
N=npdat-i+1;
Yp = zeros(N*nyp,i);
Up = zeros(N*nup,i);
sN=sqrt(N);
syp=yp';%/sN;
sup=up';%/sN;
for s=1:i
    for h=1:N
    Yp((h-1)*nyp+1:h*nyp,s)=syp(:,s+h-1);
    Up((h-1)*nup+1:h*nup,s)=sup(:,s+h-1);
    end
end
[nfdat,nyf]=size(yf);
[mfdat,nuf]=size(uf);
[rfdat,nrf]=size(rf);
if nfdat~=mfdat
    error('Y and U have different length.')
end
[ndat,ny]=size(y');
[mdat,nu]=size(u');
% block Hankel matrix
N=nfdat-i+1;
Yf = zeros(N*nyf,i);
Uf = zeros(N*nuf,i);
Rf = zeros(N*nrf,i);
sN=sqrt(N);
syf=yf';%/sN;
suf=uf';%/sN;
srf=rf';%/sN;
for s=1:i
    for h=1:N
    Yf((h-1)*nyf+1:h*nyf,s)=syf(:,s+h-1);
    Uf((h-1)*nuf+1:h*nuf,s)=suf(:,s+h-1);
    Rf((h-1)*nrf+1:h*nrf,s)=srf(:,s+h-1);
    end
end
%QR

%Z= wf/wpr
%Z=wf*wpr'*inv(wpr*wpr')*wpr;
%Z= wf/wp
Z=wf*wp'*inv(wp*wp')*wp;

[U,S,V]=svd(Z);
SS=diag(S);
%figure(2)
% bar(SS);
[mU,nU]=size(U);
U2=U(:,nU-q*N+n+1:nU);
Py=U2(1:q*i,;
Pu=U2(q*i+1:end,;
orderZ=rank(Z);
orderU=rank(U);
%Gam=null(Py);
% gam equal Py orthogonal complement
%[pm,pn]=size(Py);
%[Q,R]=qr(Py);
%gam=Q(:,pn+1:pm);
% gam equal Py orthogonal complement
gam = orthcomp(Py);
C=gam(1:ny,;
A=gam(1:ny*(i-1),\gam(ny+1:i*ny,;





我写了一下matlab 的程序,为啥运行的不对呢。  gam 为扩展能观性矩阵, 这个gam应该怎么求?
望懂得老师们讲解以下。谢谢各位了
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

a7063888

新虫 (初入文坛)

2楼2017-03-24 20:47:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 a7063888 的主题更新
信息提示
请填处理意见