基于最小二乘法的系统辨识的设计与实现.docx
《基于最小二乘法的系统辨识的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于最小二乘法的系统辨识的设计与实现.docx(4页珍藏版)》请在冰豆网上搜索。
基于最小二乘法的系统辨识的设计与实现
基于最小二乘法的系统辨识的设计与实现
课程(论文)题目:
基于最小二乘法的系统辨识摘要:
最小二乘法是一种经典的数据处理方法。
最小二乘的一次性完成辨识算法(也称批处理算法),他的特点是直接利用已经获得的所有(一批)观测数据进行运算处理。
在系统辨识领域中,最小二乘法是一种得到广泛应用的估计方法,可用于动态系统,静态系统,线性系统,非线性系统。
在随机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的统计特性。
关键词:
最小二乘法;系统辨识;参数估计1引言最小二乘理论是有高斯(K.F.Gauss)在1795年提出:
未知量的最大可能值是这样一个数值,它使各次实际观测值和计算值之间的差值的平方乘以度量其精度的数值以后的和最小。
这就是最小二乘法的最早思想。
最小二乘辨识方法提供一个估算方法,使之能得到一个在最小方差意义上与实验数据最好拟合的数学模型。
递推最小二乘法是在最小二乘法得到的观测数据的基础上,用新引入的数据对上一次估计的结果进行修正递推出下一个参数估计值,直到估计值达到满意的精确度为止。
对工程实践中测得的数据进行理论分析,用恰当的函数去模拟数据原型是一类十分重要的问题,最常用的逼近原则是让实测数据和估计数据之间的距离平方和最小,这即是最小二乘法。
最小二乘法是一种经典的数据处理方法。
在随机的环境下,利用最小二乘法时,并不要求观测数据提供其概率统计方面的信息,而其估计结果,却有相当好的统计特性。
2最小二乘法的系统辨识设单输入单输出线性定常系统的差分方程为:
3,2,1),()()()1()(01knkubkubnkxakxakxnn
(1)上式中:
)(ku为输入信号;)(kx为理论上的输出值。
)(kx只有通过观测才能得到,在观测过程中往往附加有随机干扰。
)(kx的观测值)(ky可表示为)()()(knkxky
(2)将式
(2)代入式
(1)得)1()()()1()(101kubkubnkyakyakynininiknaknnkub1)()()((3)我们可能不知道)(kn的统计特性,在这种情况下,往往把)(kn看做均值为0的白噪声。
设)()()(1iknaknknii(4)则式(3)可以写成)1()()()1()(101kubkubnkyakyakyn)()(knkubn(5)在测量)(ku时也有测量误差,系统内部也可能有噪声,应当考虑它们的影响。
因此假定)(k不仅包含了)(kx的测量误差,而且还包含了)(ku的测量误差和系统内部噪声。
假定)(k是不相关舱机序列(实际上)(k是相关随机序列)。
分别测出n+N个输出输入值)(,),2(u),1(u),(),2(y),1(yNnuNny,则可以写出N个方程,即)1(y)1()()1(21anyanyanyn)1()1(u)()1(10nbnubnubn)2(y)()1()2(21anyanyanyn)2()2(u)1()2(10nbnubnubn)()2()1()(21NyaNnyaNnyaNnyn)()()1()(10NnNubNnubNnubn上述N个方程可写成向量矩阵形式)()2()1(Nnynyny=y)()()()1()2(u)2()2(y)1()1(u)1()1(y)(NuNnuNyNnynunnuny)()2()1(01Nnnnbbbann(6)设y=)()2()1(Nnynyny,nnbbba01,=)()2()1(Nnnn=y)()()()1()2(u)2()2(y)1()1(u)1()1(y)(NuNnuNyNnynunnuny则式(6)可以写成y(7)上式中:
y为n维输出向量;为N维噪声向量;为(2n+1)维参数向量;为)12(nN测量矩阵。
因此N2n+1,方程数少于未知数数目,则方程组的解是不定的,不能唯一的确定参数向量。
如果N=2n+1,方程数正好与未知数数目相等,当噪声=0时,就能准确的解出y1如果噪声0,则11y从上式可以看出噪声对参数估计有影响,为了尽量减小噪声对估值的影响,应取N(2n+1),即方程数大于未知数数目。
在这种情况下,不能用解方程的办法来求,而要采用数理统计的办法,以便减小噪声对估值的影响。
在给定输出向量y和测量矩阵的条件下求系统参数的估值,这就是系统辨识问题。
可用最小二乘法来就的估值。
3最小二乘法的原理3.1最小二乘法一次完成推导本文中以一个SISO系统为例说明最小二乘法的原理。
假设一个SISO系统如下图所示:
其离散传递函数为:
3.1bzA1)(nnnnzazazazbzbzzBzG21212211111)()(输入输出的关系为:
)()()()(1kykezGku3.2进一步,我们可以得到:
)()()()()(11kezBkuzAky3.3其中,扰动量)(ke为均值为0,不相关的白噪声。
将式3.3写成差分方程的形式:
)()()2()1()()2()1()(2121kenkubkubkubnkyakyakyakynn3.4令Tnkukukunkykykyk])()2()1()()2()1([)(][2121nnbbbaaa则式3.4可以写为:
)()()(kekkyT3.5将上述式子扩展到N个输入、输出观测值{)(),(kyku},k=1,2,,N+n。
将其代入到式3.5中,写成矩阵的形式为:
eY3.6取泛函)(J为)()()()()(212iYYeeineYJTTN最小二乘法原理既是使)(J最小,对其求极值得:
ny)()()()1()()2(u)1()2(y)()1()1(u)()1(y)1()(NuNnuNyNnyNnynuynnunyny由此可得系统的最小二乘法估计值为:
YTTT)(这样,我们就得到了系统的最小二乘估计值。
4最小二乘法系统辨识的应用举例系统辨识是通过建立动态系统模型,在模型输入输出数据的基础上,运用辨识方法对模型参数进行辨识,从而得到一个与所观测的系统在实际特性上等价的系统。
应用最小二乘法对系统模型参数进行辨识的方法有离线辨识和在线辨识两种。
离线辨识是在采集到系统模型所需全部输入输出数据后,用最小二乘法对数据进行集中处理,从而获得模型参数的估计值;而在线辨识是一种在系统运行过程中进行的递推辨识方法,所应用的数据是实时采集的系统输入输出数据,应用递推算法对参数估计值进行不断修正,以取得更为准确的参数估计值。
由于在线辨识方法具有实时采集系统输入输出数据,实时辨识模型参数,且占据计算机存储量小的优点,因此与离线辨识相比,在线辨识方法得到了更为广泛的应用。
在线辨识的参数估计的最小二乘其最优性准则函数为:
0)]()[(YYJTJ=)(12iemi其中m为数据采集的次数,e为残差向量。
由于上述递推算法无法反映参数随时间变化的特点,新数据被大量的老数据所淹没,对于慢时变参数的辨识来说,这必然得不到跟踪参数变化的实时估计,因此又进一步有了改进的最小二乘递推算法,即带遗忘因子的渐消记忆的递推算法,该算法贬低老数据的作用,强调新数据的作用,选取遗忘因子,得到渐消记忆的最小二乘递推算法如下:
5参考文献[1].郭利辉,朱励洪,基于MATLAB的最小二乘法系统辨识与仿真,许昌学院学报,第29卷第2期,2010年[2].程婵娟,系统辨识的线性规划方法研究,2009年[3].吴进华,基于BP神经网络的非线性动态系统辨识方法,2009年[4].刘静纨,最小二乘法在系统辨识中的应用,北京建筑工程学院学报,第20卷第3期,2004年9月[5].王浩宇等,系统辨识及自适应控制系统算法仿真实现,控制工程,第15卷增刊,2008年[6].徐洪泽等,基于遗传算法的系统辨识方法可靠性分析,模式识别与人工智能,第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%clcclear%清理工作间变量L=300;%M序列的周期x1=1;x2=1;x3=1;x4=0;x5=1;x6=0;%四个移位积存器的输出初始值fork=1:
L;%开始循环,长度为Lu(k)=xor(x3,x4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的或x6=x5;x5=x4;x4=x3;x3=x2;x2=x1;x1=u(k);end%大循环结束,产生输入信号uplot(u)%绘图M序列v=randn(300,1);%随机误差干扰z=zeros(1,300);fork=4:
300z(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;%用理想输出值作为观测值endH=zeros(300,6);%定义一个H0矩阵fori=4:
300H(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.23a1=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阶fori=2:
300H1(i,:
)=[-z(i-1)u(i-1)];zz1(i,:
)=[z(i)];endaa1=inv(H1’*H1)*H1’*zz1bb
(1)=(zz1-H1*aa1)’*(zz1-H1*aa1)/L;AIC
(1)=L*log(bb
(1))+4*n;n=2;%假设为2阶fori=3:
300H2(i,:
)=[-z(i-1)-z(i-2)u(i-1)u(i-2)];zz2(i,:
)=[z(i)];endaa2=inv(H2’*H2)*H2’*zz2bb
(2)=(zz2-H2*aa2)’*(zz2-H2*aa2)/L;AIC
(2)=L*log(bb
(2))+4*n;n=3;%假设为3阶fori=4:
300H3(i,:
)=[-z(i-1)-z(i-2)-z(i-3)u(i-1)u(i-2)u(i-3)];zz3(i,:
)=[z(i)];endaa3=inv(H3’*H3)*H3’*zz3bb(3)=(zz3-H3*aa3)’*(zz3-H3*aa3)/L;AIC(3)=L*log(bb(3))+4*n;n=4;%假设为4阶fori=5:
300H4(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)];endaa4=inv(H4’*H4)*H4’*zz4bb(4)=(zz4-H4*aa4)’*(zz4-H4*aa4)/L;AIC(4)=L*log(bb(4))+4*n;n=5;%假设为5阶fori=6:
300H5(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)];endaa5=inv(H5’*H5)*H5’*zz5bb(5)=(zz5-H5*aa5)’*(zz5-H5*aa5)/L;AIC(5)=L*log(bb(5))+4*n;x=min(AIC)fori=1:
5if(AIC(i)==x)N=i%所辨识出的阶次Nendendplot(1:
5,[AIC
(1)AIC
(2)AIC(3)AIC(4)AIC(5)])6实验结果:
c=-0.1000-0.5500-0.40000.69980.8999-3.5001a1=-0.1000a2=-0.5500a3=-0.4000b1=0.6998b2=0.8999b3=-3.5001