⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 辨识主程序.m

📁 系统辨识与参数估计源代码。可以对一个未知模型做出估计。
💻 M
字号:
clear;
L=3000;
fid1=fopen('c:\MATLAB\work\zfq.01.data','r');  %导入数据进行建模
    data=fscanf(fid1,'%f')';
   data=reshape(data,4,3000)';
    t=data(:,1);
    k=t+3;
    u=data(:,2);
    z=data(:,4);
    fclose(fid1);
    v=randn(1,3003); 
figure(1);
subplot(3,1,1);
stem(u),grid on;
subplot(3,1,2);
plot(v),grid on;
subplot(3,1,3);
plot(z),grid on;
z=zeros(7,L);zs=zeros(7,L);zm=zeros(7,L);zmd=zeros(7,L);
z(2)=0;z(1)=0;zs(2)=0;zs(1)=0;zm(2)=0;zm(1)=0;zmd(2)=0;zmd(1)=0;
c0=[0.001 0.001 0.001 0.001 0.001 0.001 0.001]';
p0=10^6*eye(7,7);
E=0.0000000000000005;
c=[c0,zeros(7,14)];
e=zeros(7,15);
for k=4:L;
    a=k
   z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-2)+0.5*u(k-3)+v(k)+0.9*v(k-1)+0.7*v(k-2);
   h1=[-z(k-1),-z(k-2),u(k-2),u(k-3),v(k),v(k-1),v(k-2)]'
   
   x=h1'*p0*h1+1;
   x1=inv(x);
   k1=p0*h1*x1;
 
   d1=z(k)-h1'*c0;

   c1=c0+k1*d1
   
   zs(k)=-1.5*z(k-1)+0.7*z(k-2)+u(k-2)+0.5*u(k-3);

    zm(k)=[-z(k-1),-z(k-2),u(k-2),u(k-3)]*[c1(1);c1(2);c1(3);c1(4)];
    zmd(k)=h1'*c1;
    e1=c1-c0;e2=e1;
    e(:,k)=e2;
    c0=c1;
    c(:,k)=c1;
    p1=p0-k1*k1'*[h1'*p0*h1+1];
    p0=p1;
    if e2<=E
        break;
    end


end

⌨️ 快捷键说明

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