您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 带遗忘因子的递推最小二乘法
带遗忘因子的递推最小二乘法%开环系统参数辨识,带遗忘因子的递推最小二乘估计法(FFRLS),系统为单入单出的CAR(带控制量的自回归模型)模型,三阶系统clearallclca=[1-1.10.60.1];b=[10.7];d=4;%实际模型系数矩阵与纯迟延L=1000;%仿真长度na=length(a)-1;nb=length(b)-1;%na,nb为输出输入系数矩阵A,B的阶数yk=zeros(na,1);%输出矩阵初始化yk_m=zeros(na,1);%模型输出uk=zeros(nb+d,1);%输入矩阵初始化theta_e0=zeros(na+nb+1,1);%theta_e0为估计参数初值,a1,a2....an,b0,b1,...bn,共na+nb+1个phi=zeros(na+nb+1,1);%phi为当前实际输出输入构成的矩阵P=10^6*eye(na+nb+1);%修正系数初值beta=0.99;%遗忘因子,在0.95到1之间u=randn(L,1);%输入信号,方差为1的白噪声序列omega=sqrt(0.1)*randn(L,1);%干扰信号,方差为0.1的白噪声序列fori=1:Ltheta(:,i)=[a(2:na+1),b]';%系统实际参数值phi=[-yk;uk(d:d+nb)];%系统输出输入矩阵phi_e=[-yk_m;uk(d:d+nb)];%模型输出输入矩阵y(i)=phi'*theta(:,i)+omega(i);%系统实际输出y_m(i)=phi_e'*theta_e0;%模型输出%递推公式K=P*phi/(beta+phi'*P*phi);theta_e(:,i)=theta_e0+K*(y(i)-phi'*theta_e0);P=(eye(na+nb+1)-K*phi')*P/beta;%数据更新theta_e0=theta_e(:,i);forj=na:-1:2yk(j)=yk(j-1);yk_m(j)=yk_m(j-1);endyk(1)=y(i);yk_m(1)=y_m(i);forj=(nb+d):-1:2uk(j)=uk(j-1);enduk(1)=u(i);endfigurex=[1:L];plot(x,theta_e,x,theta,'k:');legend('a1','a2','a3','b1','b2');axis([0L-22]);figureplot(x,y,x,y_m,'r');legend('实际输出','模型输出');axis([0L-2020]);gridon;
本文标题:带遗忘因子的递推最小二乘法
链接地址:https://www.777doc.com/doc-5471003 .html