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

📄 flch4gaeg1.m

📁 关于系统辨识的一些仿真程序
💻 M
字号:
%FLch4GAeg1
clear
u=[-1,-1,-1,-1,1,1,1,-1,1,1,-1,-1,1,-1,1,-1,-1,-1,-1,1];
y=[0,-2,-6,-7,-7,-3,5,7,3,-1,5,3,-5,-3,1,-1,1,-5,-7,-7];
%画出u和y图形
figure(1), subplot(2,1,1), stem(u), subplot(2,1,2), stem(y), hold on
k=1:20
plot(k,y)
%给出初始值
h1=[-1,0,0]';h2=[-1,-1,0]';g=[0,0,0]';I=[1,0,0;0,1/2,0;0,0,1/4];
h=[h1,h2,zeros(3,16)];
%计算输入样本数据h(k)
for k=3:18
    h(:,k)=[u(k),u(k-1),u(k-2)]';
end
%计算出权矩阵R(k)和估计值g
for k=1:18
a=h(1,k)^2+(h(2,k)^2)/2+(h(3,k)^2)/4;%按照式(4.45)开始计算权矩阵
a1=1/a;
R=a1*I;%按照式(4.45)计算出权矩阵
g(:,k+1)=g(:,k)+R*h(:,k)*(y(k+1)-h(:,k)'*g(:,k));%按照式(4.44)计算脉冲响应估计值
end
%画出图形
g1=g(1,:); g2=g(2,:); g3=g(3,:);
figure(2)
k=1:19;
subplot(121)
plot(k,g1,'r',k,g2,'g',k,g3,'b'),grid on
%计算模型输出值ym及系统输出与模型输出之间的误差Ey
for k=1:18
ym(k)=h(:,k)'*g(:,k); Ey(k)=y(k+1)-ym(k);
end
k=1:18;
subplot(122)
plot(k,Ey),grid on
g, ym, Ey %显示脉冲响应估计值、模型输出值及系统输出与模型输出之间的误差
figure(3)%画出脉冲响应曲线
x=0:1:3;y=[0,g(1,18),g(2,18),g(3,18)];
xi=linspace(0,3);
yi=interp1(x,y,xi,'cubic');%三次插值
plot(x,y,'o',xi,yi,'m'),grid on%画出脉冲响应估计值及其三次插值曲线

⌨️ 快捷键说明

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