递归最小二乘法、增广最小二乘法、带遗忘因子的递归增广最小二乘法

一、递归最小二乘法

递推最小二乘法:当矩阵维数增加时,矩阵求逆运算计算量过大,而且不适合在线辨识。为了减少计算量,并且可以实时地辨识出动态系统的特性,可以将最小二乘法转换成参数递推的估计。

取前N组数据,然后从N+1项后向后迭代,当前估计值=上一次估计值+修正值

给定过程:
在这里插入图片描述式中,理想的系数值a1=1.5,a2=0.7,b1=1.0b2=0.5V(k)服从N(0,1)的随机噪声。

clear all
close all
clc
%产生N(0,1)正态分布的随机噪声
randn('seed',100);
v=randn(1,60); %产生M序列
L=60;% M序列的周期
y1=1;y2=1;y3=1;y4=0;%四个移位积存器的输出初始值
for i=1:L;
x1=xor(y3,y4);
x2=y1;x3=y2;x4=y3;y(i)=y4;if y(i)>0.5,u(i)=-5;%M序列的幅值为5else u(i)=5;endy1=x1;y2=x2;y3=x3;y4=x4;
end 
figure(1);
stem(u),grid on
% 递推最小二乘辨识程序
z(2)=0;z(1)=0;
%观测值由理想输出值加噪声
for k=3:60;%循环变量从315   z(k)=-1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+0.5*v(k); 
end
%RLS递推最小二乘辨识
c0=[0.001 0.001 0.001 0.001]';
p0=10^3*eye(4,4);
E=0.000000005;%相对误差
c=[c0,zeros(4,59)];%被辨识参数矩阵的初始值及大小
e=zeros(4,60);%相对误差的初始值及大小
lamt=1;
for k=3:60; h1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]';k1=p0*h1*inv(h1'*p0*h1+1*lamt);%求出K的值new=z(k)-h1'*c0; c1=c0+k1*new;%求被辨识参数cp1=1/lamt*(eye(4)-k1*h1')*p0;e1=(c1-c0)./c0;%求参数当前值与上一次的值的差值e(:,k)=e1; %把当前相对变化的列向量加入误差矩阵的最后一列    c(:,k)=c1;%把辨识参数c 列向量加入辨识参数矩阵的最后一列 c0=c1;%新获得的参数作为下一次递推的旧参数p0=p1;if norm(e1)<=E break;%若参数收敛满足要求,终止计算end
end
%分离参数
a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:); 
ea1=e(1,:); ea2=e(2,:); eb1=e(3,:); eb2=e(4,:); 
figure(2);
i=1:60;
plot(i,a1,'k',i,a2,'b',i,b1,'r',i,b2,'g') %画出辨识结果
legend('a1','a2','b1','b2');
title('递推最小二乘参数辨识')
figure(3); 
i=1:60; 
plot(i,ea1,'k',i,ea2,'b',i,eb1,'r',i,eb2,'g') %画出辨识结果的收敛情况
legend('a1','a2','b1','b2');
title('辨识精度')

在这里插入图片描述

二、增广最小二乘法

增广最小二乘法:当噪声均值为0时,最小二乘法参数估计算法为无偏估计,为了解决最小二乘法参数估计的有偏性,将噪声模型的辨识同时考虑进去,就是增广最小二乘法。

增广最小二乘法相当于参数向量和数据向量维数扩大了的最小二乘法,它能在有色噪声(可用平均滑动模型来表示)情况下给出参数的一致估计量,同时可以把噪声模型也辨识出来。

给定过程:
在这里插入图片描述
式中,理想的系数值a1=1.5,a2=0.7,b1=1.0b2=0.5,c1=1.2,c2=-1.0,c3=0.2V(k)服从正态分布的白噪声N(0,1),输入信号采用4M序列,其幅值为1

clear all
close all
clc% M序列、噪声信号产生及其显示程序 
L=60;%四位移位积存器产生的M序列的周期
y1=1;y2=1;y3=1;y4=0;
for i=1:L;x1=xor(y3,y4);x2=y1;x3=y2;x4=y3;y(i)=y4;if y(i)>0.5,u(i)=-1;else u(i)=1;endy1=x1;y2=x2;y3=x3;y4=x4;
end
figure(1);
stem(u),grid on%画出M序列输入信号
randn('seed',100)
v=randn(1,60); %产生一个N(0,1)的随机噪声
%增广递推最小二乘辨识
z(2)=0;z(1)=0;
theat0=[0.001 0.001 0.001 0.001 0.001 0.001 0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量
p0=10^4*eye(7,7);%初始状态P0
theat=[theat0,zeros(7,59)];%被辨识参数矩阵的初始值及大小
for k=3:60; z(k)=-1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+1.2*v(k)-v(k-1)+0.2*v(k-2)  h1=[-z(k-1),-z(k-2),u(k-1),u(k-2),v(k),v(k-1),v(k-2)]';x=h1'*p0*h1+1;x1=inv(x); k1=p0*h1*x1; %Kd1=z(k)-h1'*theat0; theat1=theat0+k1*d1;%辨识参数c theat0=theat1;%给下一次用theat(:,k)=theat1;%把辨识参数c 列向量加入辨识参数矩阵 p1=p0-k1*k1'*[h1'*p0*h1+1];%find p(k)p0=p1;%给下次用end%循环结束%分离变量a1=theat(1,:); a2=theat(2,:); b1=theat(3,:); b2=theat(4,:);c1=theat(5,:); c2=theat(6,:); c3=theat(7,:); 
i=1:60;    
figure(2);
plot(i,z)
figure(3)
plot(i,a1,'r',i,a2,'b',i,b1,'k',i,b2,'y',i,c1,'g',i,c2,'c',i,c3,'m')%画出各个被辨识参数
title('增广递推最小二乘辨识方法')%标题

在这里插入图片描述

三、带遗忘因子的递归增广最小二乘法的参数估计

遗忘因子算法的基本思想为:对老数据乘以遗忘因子,以降低老数据所提供的信息量,增加新数据的信息量。前一时刻的数据乘以较小的权,后一时刻的数据乘以较大的权,表示对新的数据较为重视,对老数据所起的作用逐渐削弱。
在这里插入图片描述

%开环系统参数辨识,带遗忘因子的递推最小二乘估计法(FFRLS),系统为单入单出的CAR(带控制量的自回归模型)模型,三阶系统
clear all
clc
a=[1 -1.1 0.6 0.1];b=[1 0.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.951之间
u=randn(L,1);                     %输入信号,方差为1的白噪声序列
omega=sqrt(0.1)*randn(L,1);       %干扰信号,方差为0.1的白噪声序列for i=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);for j=na:-1:2yk(j)=yk(j-1);yk_m(j)=yk_m(j-1);endyk(1)=y(i);yk_m(1)=y_m(i);for j=(nb+d):-1:2uk(j)=uk(j-1);enduk(1)=u(i);
endfigure
x=[1:L];
plot(x,theta_e,x,theta,'k:');
legend('a1','a2','a3','b1','b2');
axis([0 L -2 2]);
figure
plot(x,y,x,y_m,'r');
legend('实际输出','模型输出');
axis([0 L -20 20]);
grid on;

在这里插入图片描述
在这里插入图片描述

参考文献:

[1]方桂花,王鹤川,高旭.基于动态遗忘因子递推最小二乘法的永磁同步电机参数辨识算法[J].计算机应用与软件,2021,38(01):280-283.
[2]冯亦奇,陈勇.基于遗忘因子的UKF车辆状态参数估计算法[J].合肥工业大学学报(自然科学版),2020,43(11):1450-1455+1499.
[3]焦慧方,陈希亮,高敏,马忠玲.基于带遗忘因子交替广义最小二乘法的多变量耦合系统参数辨识[J].咸阳师范学院学报,2018,33(02):49-53.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1382325.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ICLR2019 | 模型训练会发生了大量的、反复的样本遗忘现象,如何解决?

每天给你送来NLP技术干货&#xff01; 来自&#xff1a;SimpleAI 标题&#xff1a;An Empirical Study of Example Forgetting during Deep Neural Network Learning会议&#xff1a;ICLR-2019机构&#xff1a;CMU&#xff0c;MSR&#xff0c;MILA 一句话总结&#xff1a;学了忘…

艾宾浩斯遗忘曲线PHP,【干货】~~~艾宾浩斯遗忘曲线~~~

原标题&#xff1a;【干货】~~~艾宾浩斯遗忘曲线~~~ 双11活动你心动了吗&#xff1f;(点击查看 ) 0.6折起&#xff01;11.11狂欢价&#xff01;最高直降4.2k&#xff01; 为什么越到考试&#xff0c;记忆越不给力&#xff1f; 今天复习的内容是教师招聘考试中的高频考点——保持…

灾难性遗忘/增量学习的研究现状

灾难性遗忘/增量学习的研究现状 一. 灾难性遗忘(catastrophic forgetting)为什么会发生&#xff1f;二. 增量学习的概念2.1. 研究领域2.1. 增量学习的上下限 三. 增量学习的方法3.1. 基于正则化的增量学习&#xff08;基于Loss&#xff09; --《Learning without Forgetting》 …

遗忘因子递推最小二乘法估计

%遗忘因子递推最小二乘参数估计&#xff08;FFRLS&#xff09; clear all; close all; a[1 -1.5 0.7]’; b[1 0.5]’; d3; %对象参数 nalength(a)-1; nblength(b)-1; %na、nb为A、B阶次 L1000; %仿真长度 ukzeros(dnb,1); %输入初值&#xff1a;uk(i)表示u(k-i) ykzeros(na,1…

怎样利用遗忘曲线来进行有效复习?

遗忘曲线由德国心理学家艾宾浩斯(H.Ebbinghaus)研究发现&#xff0c;描述了人类大脑对新事物遗忘的规律。人体大脑对新事物遗忘的循序渐进的直观描述&#xff0c;人们可以从遗忘曲线中掌握遗忘规律并加以利用&#xff0c;从而提升自我记忆能力。该曲线对人类记忆认知研究产生了…

计算机修改人类记忆曲线,遗忘曲线

遗忘曲线由德国心理学家艾宾浩斯(H.Ebbinghaus)研究发现&#xff0c;描述了人类大脑对新事物遗忘的规律。人体大脑对新事物遗忘的循序渐进的直观描述&#xff0c;人们可以从遗忘曲线中掌握遗忘规律并加以利用&#xff0c;从而提升自我记忆能力。该曲线对人类记忆认知研究产生了…

【AndV】ant-design-vue中select使用mode=“combobox“无效:

文章目录 一、问题:二、解决: 一、问题: Warning: [antdv: Select] The combobox mode of Select is deprecated,it will be removed in next major version,please use AutoComplete instead 二、解决: 将mode"combobox"改为mode"SECRET_COMBOBOX_MODE_DO_NOT_…

编程语言的类型

解释型语言和编译型语言 解释型语言是把源代码的每一条语句在运行时通过解释器编译成机器语言&#xff08;按语句编译&#xff0c;边说边翻译&#xff09; 编译型语言是将整个源程序代码一次性编译成机器码&#xff0c;机器最直接读这个机器码文件&#xff08;一次性编译&…

学生的第一门编程语言应该是什么?

“学生第一次开始学习计算机科学(computer science&#xff0c;CS)时&#xff0c;应该从哪种编程语言开始学习?”这一问题一直让教育工作者备受困扰。来自密歇根大学的计算机科学教授 Mark Guzdial 也对此进行了大量思考与研究&#xff0c;然而其近期发表在《ACM 通讯》上的一…

编程语言是怎么发展的?

说到编程语言&#xff0c;我们通常会想到JAVA、C#之类的。不知道你有没有好奇过&#xff0c;编程语言到底是怎么发展而来的。别急&#xff0c;听小编慢慢道来。 编程语言的定义为计算机和人都能识别的语言&#xff0c;通过编程语言&#xff0c;程序员将指令发给计算机&#xf…

什么是 Python 编程语言?

Python&#xff1a;是世界上最流行的解释型编程语言之一。Python 由 Guido van Rossum 设计&#xff0c;作为“ABC”编程语言的继承者&#xff0c;于 1991 年首次发布。它是一种高级通用语言&#xff0c;其设计理念是通过使用缩进来强调代码的可读性。Python 的语言结构旨在帮助…

Python 编程语言

&#x1f482; 个人网站: 海拥 —— 一个乐于分享技术与快乐的博主&#x1f91f; 版权: 本文由【海拥】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦&#x1f485; 想寻找共同摸鱼的小伙伴&#xff0c;…

编程语言应该如何选择?

我们到底该选择学习哪一门语言?&#xff08;观点仅供参考) 关于编程语言的选择&#xff0c;我一直认为你选择了什么样的编程语言&#xff0c;就会在以后大概率走上什么样的道路。如果你一开始就把编程语言选错了&#xff0c;你将会走许多弯路&#xff0c;最后不得不回到“正确…

第一门编程语言选谁?

Are You Ready? Go! ——第一门编程语言选谁&#xff1f; 金旭亮 说明&#xff1a; 这篇文章是专门针对大学低年级学生&#xff08;和其他软件开发初学者&#xff09;写的&#xff0c;如果你己经是研究生或本科高年级学生&#xff0c;请将这篇文章转发给你的师弟或师妹&…

【雕爷学编程】Arduino动手做(09)---火焰传感器模块5

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

异常处理:从生活中的插曲到代码中的挑战

文章目录 1. 异常&#xff1a;生活中与代码中的无奈2. 异常的体系结构&#xff1a;错误与异常3. 异常处理&#xff1a;抓取异常&#xff0c;保障稳定3.1 throw 和 throws3.2 try...catch3.3 finally 4. 自定义异常&#xff1a;灵活应对特定问题结语 在人类的日常生活和编程世界…

刘涛入职阿里,年薪超过欧阳娜娜!揭秘阿里巴巴的明星员工和职级薪资!

【文末有送书福利&#xff01;】 来 源&#xff1a;网络整合 继前段时间欧阳娜娜加入阿里之后&#xff0c;现又有刘涛入职阿里成为了聚划算官方优选官&#xff01; 一时&#xff0c;阿里巴巴的职级薪资体系引起广泛关注&#xff0c;不少HR看到后纷纷表示&#xff1a;马云要HR吗…

移动硬盘在电脑上的设备和驱动器中没有读出来,另一台电脑上是好的

今天不知道怎么回事&#xff0c;移动硬盘插到台式机上&#xff0c;设备和驱动器突然就没有读出来&#xff0c;以前都能读出来的&#xff0c;但是右下角硬盘的设备标志显示出来了。 插到另一台电脑上又可以读出来。 不放弃的反复试了几次还是一样。 网上描述的也跟我的情况不一…

关于电脑雷电3、雷电4、USB3.1/3.2全功能Type-C接口能否直接连接Type-C耳机做出如下解释

关于电脑Type-C接口能否直接连接Type-C耳机做出如下解释 1、电脑Type-C接口大多数未配置音频解码器&#xff08;物理设备&#xff09;&#xff0c;所以直接连接电脑无任何反应&#xff08;这是硬件问题&#xff0c;不是安装一个驱动能解决的&#xff0c;不管是雷电3、雷电4、U…

计算机控制菜单在哪里,电脑菜单在哪里

电脑菜单根据系统会分布在不同位置&#xff0c;如果是Windows系统&#xff0c;位置在屏幕左下角&#xff0c;点击之后可查看最近使用的程序&#xff0c;以及文档、图片、音乐等等;如果是macos系统&#xff0c;电脑菜单在屏幕左上角&#xff0c;点击苹果图标后可查看系统信息、系…