lstest.m

来自「用得到的已知输入输出数据」· M 代码 · 共 56 行

M
56
字号
clear
lsload
U=DataU;
ParamA=[-1.5;0.7];
ParamB=[1.0;0.5];
ParamC=[-1;0.2];
Na=size(ParamA,1);
Nb=size(ParamB,1);
Nc=size(ParamC,1);
Y=[];E=[];
for t=1:200
    temp1=[];temp2=[];temp3=[];
    for i=1:Na
        if t-i>1
            temp1=[temp1;-Y(t-i)];
        else
            temp1=[temp1;0];
        end
    end
    for i=1:Nb
        if t-i>1
            temp2=[temp2;U(t-i)];
        else
            temp2=[temp2;0];
        end
    end
    for i=1:Nc
        if t-i>1
            temp3=[temp3;E(t-i)];
        else
            temp3=[temp3;0];
        end
    end
    y=ParamA'*temp1+ParamB'*temp2+ParamC'*temp3;
    e=randn(1);
    y=y+e;
    Y=[Y;y];
    E=[E;e];
end

        
DATA=[DataY,DataU];
for i=1:5
    DATAi=DATA(6-i:200,:);      
    %从第六个数据开始辨识
    %长度195
    R=zgls(DATAi,[i,i,1])
    pause
    Res(i)=R.Resdue;
end
L=195;
for i=2:5
    t(i)=(Res(i-1)-Res(i))/Res(i);
    t(i)=t(i)*(L-2*i)/2;
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?