基于最小二乘法的系统辨识的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
---------------------------------------------------------------最新资料推荐------------------------------------------------------ 基于最小二乘法的系统辨识的设计与实现课程(论文)题目:
基于最小二乘法的系统辨识摘要:
最小二乘法是一种经典的数据处理方法。
最小二乘的一次性完成辨识算法(也称批处理算法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。
在系统辨识领域中, 最小二乘法是一种得到广泛应用的估计方法, 可用于动态系统, 静态系统, 线性系统, 非线性系统。
在随机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的统计特性。
关键词:
最小二乘法;系统辨识;参数估计 1 引言最小二乘理论是有高斯( K.F.Gauss)在 1795 年提出:
未知量的最大可能值是这样一个数值,它使各次实际观测值和计算值之间的差值的平方乘以度量其精度的数值以后的和最小。
这就是最小二乘法的最早思想。
最小二乘辨识方法提供一个估算方法,使之能得到一个在最小方差意义上与实验数据最好拟合的数学模型。
递推最小二乘法是在最小二乘法得到的观测数据的基础上,用新引入的数据对上一次估计的结果进行修正递推出下一个参数估计值,直到估计值达到满意的精确度为止。
1 / 10
对工程实践中测得的数据进行理论分析,用恰当的函数去模拟数据原型是一类十分重要的问题,最常用的逼近原则是让实测数据和估计数据之间的距离平方和最小,这即是最小二乘法。
最小二乘法是一种经典的数据处理方法。
在随机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的统计特性。
2 最小二乘法的系统辨识设单输入单输出线性定常系统的差分方程为:
1),()()() 1()(01knkubkubnkxakxakxnn ( 1)上式中:
)(ku为输入信号;)(kx为理论上的输出值。
)(kx只有通过观测才能得到,在观测过程中往往附加有随机干扰。
)(kx的观测值)(ky可表示为
( 2)将式( 2)代入式( 1)得
1()()() 1()(101kubkubnkyakyakyn
(3) 我们可能不知道)(kn的统计特性,在这种情况下,往往把)(kn看做均值为 0 的白噪声。
设
( 4)则式( 3)可以写成
(5) 在测量)(ku时也有测量误差,系统内部也可能有噪声,应当
---------------------------------------------------------------最新资料推荐------------------------------------------------------
3 / 10 考虑它们的影响。
因 此假定不仅包含了)(kx 的测量误差, 而且还包含了)(ku 的测量误差和系统内部噪声。
假定是不相关舱机序列(实际上是相关随机序列)。
分别测出 n+N 个输出
输入值
)(,),2 (u),1 (u),(),2 (y),1
则可以写出 N
个方程,
即
2()
上述 N 个方程可写
成向
量矩阵形式
2
(u) 2()
2
(y) 1() 1 (u) 1() 1 (
6) 设
1() 2 (u) 2() 2 (y) 1() 1 (u) 1() 1
则式(6)可以写成
上式中:
y 为 n 维输出向量;为 N 维噪声向量;为( 2n+1)维参数向量;为测量矩阵。
因此 N2n+1,方程数少于未知数数目,则方程组的解是不定的,不能唯一的确定参数向量。
如果 N=2n+1,方程数正好与未知数数目相等,当噪声
时,就能准确的解出
如果噪声,则
从上式可以看出噪声对参数估计有影响,为了尽量减小噪声对估值的影响,应取N(2n+1),即方程数大于未知数数目。
在这种情况下,不能用解方程的办法来求,而要采用数理统计的办法,以便减小噪声对估值的影响。
在给定输出向量 y 和测量矩阵的条件下求系统参数的估值,这就是系统辨识问题。
可用最小二乘法来就的估值。
---------------------------------------------------------------最新资料推荐------------------------------------------------------
5 / 10
3 最小二乘法的原理 3. 1 最小二乘法一次完成推导 本文中以一个 SISO 系统为例说明最小二乘法的原理。
假设一个 SISO 系统如下图所示:
其离散传递函数为:
3.1
输入输出的关系为:
3.2 进一步, 我们可以得到:
3.3 其中, 扰动量)(ke 为均值为 0,
不相关的白噪声。
将式 3.3
写成差分方程的形式:
)()() 2()
3.4
令
则式
3.4 可以写为:
3.5 将上述式子扩展到 N 个输入、 输出观测值{)(),(kyku},
k=1,2,, N+n。
将其代入到式 3.5 中,写成矩阵的形式为:
取泛函
为
ineYJTTN 最小二乘法原理既是使最小,对其求极值得:
由此可得系统的
最小二乘法估计值为:
这样,我们就得到了系统的最小二乘估计值。
4 最小二乘法系统辨识的应用举例系统辨识是通过建立动态系统模型,在模型输入输出数据的基础上,运用辨识方法对模型参数进行辨识,从而得到一个与所观测的系统在实际特性上等价的系统。
应用最小二乘法对系统模型参数进行辨识的方法有离线辨识和在线辨识两种。
离线辨识是在采集到系统模型所需全部输入输出数据后,用最小二乘法对数据进行集中处理,从而获得模型参数的估计值;而在线辨识是一种在系统运行过程中进行的递推辨识方法,所应用的数据是实时采集的系统输入输出数据,应用递推算法对参数估计值进
---------------------------------------------------------------最新资料推荐------------------------------------------------------ 行不断修正,以取得更为准确的参数估计值。
由于在线辨识方法具有实时采集系统输入输出数据,实时辨识模型参数,且占据计算机存储量小的优点,因此与离线辨识相比,在线辨识方法得到了更为广泛的应用。
在线辨识的参数估计的最小二乘其最优性准则函数为:
其中m 为数据采集的次数, e 为残差向量。
由于上述递推算法无法反映参数随时间变化的特点,新数据被大量的老数据所淹没,对于慢时变参数的辨识来说,这必然得不到跟踪参数变化的实时估计,因此又进一步有了改进的最小二乘递推算法,即带遗忘因子的渐消记忆的递推算法,该算法贬低老数据的作用,强调新数据的作用,选取遗忘因子,得到渐消记忆的最小二乘递推算法如下:
5 参考文献 [1]. 郭利辉,朱励洪,基于 MATLAB 的最小二乘法系统辨识与仿真,许昌学院学报,第 29 卷第 2期, 2010 年 [2]. 程婵娟,系统辨识的线性规划方法研究, 2009 年 [3]. 吴进华,基于 BP 神经网络的非线性动态系统辨识方法, 2009 年[4]. 刘静纨,最小二乘法在系统辨识中的应用,北京建筑工程学院学报,第 20 卷第 3 期, 2004 年9 月 [5]. 王浩宇等,系统辨识及自适应控制系统算法仿真实现,控制工程,第 15 卷增刊,2008 年 [6]. 徐洪泽等,基于遗传算法的系统辨识方法可靠性分
7 / 10
析,模式识别与人工智能,第 13 卷第 4 期,2019 年 [7]. 黄
文梅等,系统分析与仿真,长沙:
国防科技大学出版社, 1999 年 [8]. 李言俊,张科,系统
辨识理论及应用,北京:
国防工业出版社,2009 年参考程序%待辨识系统
z(k)=0.1*z(k-1)-0.5*z(k-2)+0.6*z(k-3)+u(k-1)+0.5*u(k-2)-0.2
*u(k-3)+v(k)/800% clc clear %清理工作间
变量L=300; % M序列的周期
x1=1;x2=1;x3=1;x4=0;x5=1;x6=0; %四个移位积存器的输出初
始值for k=1:L; %开始循环,长度为L u(k)=xor(x3,x4); %第一个移位积存器的输入是第3个与第4个
移位积存器的输出的或
x6=x5;x5=x4;x4=x3;x3=x2;x2=x1;x1=u(k);
end %大循环结束,产生输入信号u plot(u) %绘图M序列 v=randn(300,1); %随
机误差干扰z=zeros(1,300); for k=4:300 z(k)=0.10*z(k-1)+0.55*z(k-2)+0.40*z(k-3)+0.70*u(k-1)+0.90*u
(k-2)-3.50*u(k-3)+v(k)/400; %用理想输出值作为观测值end
H=zeros(300,6); %定义一个H0 矩阵 for i=4:300 H(i,:)=[-z(i-1) -z(i-2) -z(i-3) u(i-1) u(i-2) u(i-3)];%用循
环产生H矩阵 z1(i,:)=[z(i)]; %用循环产生z矩阵
end %计算参数% c=inv(H’*H)*H’*z1%带入公式书上 3.1.23
---------------------------------------------------------------最新资料推荐------------------------------------------------------
a1=c(1),a2=c(2),a3=c(3),b1=c(4),b2=c(5),b3=c(6)%辨识出参
数 %系统阶次辨识AIC算法% bb=zeros(5,1); n=1; %假
设为1阶for i=2:300 H1(i,:)=[-z(i-1) u(i-1)]; zz1(i,:)=[z(i)]; end aa1=inv(H1’*H1)*H1’*zz1
bb(1)=(zz1-H1*aa1)’*(zz1-H1*aa1)/L;
AIC(1)=L*log(bb(1))+4*n; n=2; %假设为2阶 for
i=3:300 H2(i,:)=[-z(i-1) -z(i-2) u(i-1) u(i-2)]; zz2(i,:)=[z(i)]; end aa2=inv(H2’*H2)*H2’*zz2
bb(2)=(zz2-H2*aa2)’*(zz2-H2*aa2)/L;
AIC(2)=L*log(bb(2))+4*n; n=3; %假设为3阶 for
i=4:300 H3(i,:)=[-z(i-1) -z(i-2) -z(i-3) u(i-1) u(i-2)
u(i-3)]; zz3(i,:)=[z(i)]; end aa3=inv(H3’*H3)*H3’*zz3
bb(3)=(zz3-H3*aa3)’*(zz3-H3*aa3)/L;
AIC(3)=L*log(bb(3))+4*n; n=4; %假设为4阶 for
i=5:300 H4(i,:)=[-z(i-1) -z(i-2) -z(i-3) -z(i-4) u(i-1)
u(i-2) u(i-3) u(i-4)]; zz4(i,:)=[z(i)]; end
aa4=inv(H4’*H4)*H4’*zz4
bb(4)=(zz4-H4*aa4)’*(zz4-H4*aa4)/L;
AIC(4)=L*log(bb(4))+4*n; n=5; %假设为5阶 for
i=6:300 H5(i,:)=[-z(i-1) -z(i-2) -z(i-3) -z(i-4) -z(i-5)
u(i-1) u(i-2) u(i-3) u(i-4) u(i-5)]; zz5(i,:)=[z(i)]; end
9 / 10
aa5=inv(H5’*H5)*H5’*zz5
bb(5)=(zz5-H5*aa5)’*(zz5-H5*aa5)/L;
AIC(5)=L*log(bb(5))+4*n; x=min(AIC) for i=1:5 if(AIC(i)==x) N=i %所辨识出
的阶次N end end plot(1:5,[AIC(1) AIC(2) AIC(3) AIC(4)
AIC(5)]) 6 实验结果:
c = -0.1000 -0.5500 -0.4000 0.6998
0.8999 -3.5001 a1 = -0.1000 a2 = -0.5500 a3 = -0.4000 b1 = 0.6998 b2 = 0.8999 b3 = -3.5001。