基于最小二乘递推算法的系统参数辨识matlab仿真

73 阅读2分钟

1.程序功能描述 基于最小二乘递推算法的系统参数辨识。对系统的参数a1,b1,a2,b2分别进行估计,计算估计误差以及估计收敛曲线,然后对比不同信噪比下的估计误差。

2.测试软件版本以及运行结果展示 MATLAB2022a版本运行

1.jpeg

2.jpeg

3.jpeg

3.核心程序

`for i=(LEN0+4):LEN z(i,1)=-A1z(i-1,1)-A2z(i-2,1)+B1Xin(i-1,1)+B2Xin(i-2,1)+Noise(i,1); for j=1:N z1(i-3,j) = z(N+i-3-j+idx0,1); u1(i-3,j) = Xin(N+i-3-j+idx0,1); end h =[-z1(i-3,1) -z1(i-3,2) u1(i-3,1) u1(i-3,2)]'; K = Ph/(h'Ph+1); P =(eye(2N)-K*h')P; Pest = Pest+K[z(i,1)-h'*Pest]; Pest2(:,i) = Pest;
end

figure subplot(221); k=1:LEN; semilogy(k,e1,'b'); xlabel('k'); ylabel('error'); title('误差曲线') grid on

subplot(222); k=1:LEN; semilogy(k,e2,'b'); xlabel('k'); ylabel('error'); title('误差曲线') grid on

subplot(223); k=1:LEN; semilogy(k,e3,'b'); xlabel('k'); ylabel('error'); title('误差曲线') grid on

subplot(224); k=1:LEN; semilogy(k,e4,'b'); xlabel('k'); ylabel('error'); title('误差曲线') grid on 33 `

4.本算法原理 最小二乘递推算法是一种在线估计模型参数的方法,特别适用于实时、连续的数据流中进行系统的动态参数辨识。RLS算法的核心思想是利用最新的观测数据不断更新对系统参数的估计,以期达到最小化预测误差平方和的目的。

4.png

5.png

   通过这种递推的方式,RLS可以在每次得到新的观测数据后迅速调整参数估计,并保持计算复杂度相对较低,适合实时应用场合。