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

📄 hankel.m

📁 根据脉冲序列
💻 M
字号:
function [Gz,Gs]=Hankel(G,T)      %用Hankel矩阵和脉冲响应数据,辨识脉冲传递函数
clear all
G=[7.157039 9.491077 8.563889 5.930506 2.845972 0.144611];
T=0.05;
k=max(size(G));
n=k/2;
n1=n;
n2=n;
n3=n;
n8=n;

i1=1;
i2=0;
i3=n+1;
i4=1;
i6=n;

j1=1;
j2=0;
j3=1;

%构造矩阵H
for i=1:n
    for j=j1:n
       H(i,j-j2)=G(j);
    end 
    j1=j1+1;
    j2=j2+1;
    n=n+1;
end

%构造矩阵g1
for i8=1:n8
     g1(i8)=G(i8);
end

%构造矩阵g2
for i4=1:n
    if (i3<=k)
       g2(i4)=G(i3);
       i3=i3+1;
    end
  
end
a1=-inv(H)*g2';

%构造矩阵a
for i5=1:n
    if (i6>=1)
       a2(i5)=a1(i6);
       i6=i6-1;
end
end
a=a2';

%构造矩阵A
A1=zeros(n2);
for j3=1:n
    for i7=i1:n2
        if(i7-i2<n2-i2)
             A1(i7+1,j3)=a(i7-i2);
         end
     end
     i1=i1+1;
     i2=i2+1;
end
A2=eye(n2);
A=A1+A2;
b=A*g1';


%求出脉冲传递函数的估计值
den1=ones(1,n3+1);
for i9=1:n3
    den1(i9+1)=a(i9);
end
den=den1;
num=b';
Gz1=tf(num,den,T)
%连续传递函数的估计值
Gs=d2c(Gz1,'tustin')

⌨️ 快捷键说明

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