




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
系统辨识大作业最小二乘法及其相关估值方法应用学院:自动化学院专业:信息工程学号:2007302171姓名:马志强日期:2010.11.14基于最小二乘法的多种系统辨识方法研究1. 最小二乘法的引出在系统辨识中用得最广泛的估计方法是最小二乘法(ls)。设单输入-单输出线性定长系统的差分方程为(5.1.1)式中:为随机干扰;为理论上的输出值。只有通过观测才能得到,在观测过程中往往附加有随机干扰。的观测值可表示为(5.1.2)式中:为随机干扰。由式(5.1.2)得(5.1.3)将式(5.1.3)带入式(5.1.1)得(5.1.4)我们可能不知道的统计特性,在这种情况下,往往把看做均值为0的白噪声。设(5.1.5)则式(5.1.4)可写成(5.1.6)在观测时也有测量误差,系统内部也可能有噪声,应当考虑它们的影响。因此假定不仅包含了的测量误差,而且包含了的测量误差和系统内部噪声。假定是不相关随机序列(实际上是相关随机序列)。现分别测出个随机输入值,则可写成个方程,即上述个方程可写成向量-矩阵形式(5.1.7)设则式(5.1.7)可写为(5.1.8)式中:为维输出向量;为维噪声向量;为维参数向量;为测量矩阵。因此式(5.1.8)是一个含有个未知参数,由个方程组成的联立方程组。如果,方程数少于未知数数目,则方程组的解是不定的,不能唯一地确定参数向量。如果,方程组正好与未知数数目相等,当噪声时,就能准确地解出(5.1.9)如果噪声,则(5.1.10)从上式可以看出噪声对参数估计是有影响的,为了尽量较小噪声对估值的影响。在给定输出向量和测量矩阵的条件下求系统参数的估值,这就是系统辨识问题。可用最小二乘法来求的估值,以下讨论最小二乘法估计。2. 最小二乘法估计算法设表示的最优估值,表示的最优估值,则有(5.1.11)写出式(5.1.11)的某一行,则有(5.1.12)设表示与之差,即-(5.1.13)式中成为残差。把分别代入式(5.1.13)可得残差。设则有(5.1.14)最小二乘估计要求残差的平方和为最小,即按照指数函数(5.1.15)为最小来确定估值。求对的偏导数并令其等于0可得(5.1.16)(5.1.17)由式(5.1.17)可得的最小二乘估计(5.1.18)3.递推最小二乘法为了实现实时控制,必须采用递推算法,这种辨识方法主要用于在线辨识。设已获得的观测数据长度为,将式(5.1.8)中的和分别用来代替,即(5.3.1)用的最小二乘估计,则(5.3.2)设(5.3.5)于是(5.3.6)如果再获得1组新的观测值和,则又增加1个方程(5.3.7)式中将式(5.3.1)和式(5.3.7)合并,并写成分块矩阵形式,可得(5.3.8)根据上式可得到新的参数估值(5.3.9)式中根据矩阵求逆引理可以求得递推最小二乘法辨识公式(5.3.19)(5.3.20)(5.3.21)由于进行递推计算需要给出和初值和,通过计算证明,可以取初值:,c是充分大的常数,为单位矩阵,则经过若干次递推之后能够得到较好的参数估计。3. 辅助变量法辅助变量法是一种可克服最小二乘有偏估计的一种方法,对于原辨识方程(5.4.1)当是不相关随机序列时,最小二乘法可以得到参数向量的一致无偏估计。但是,在实际应用中往往是相关随机序列。假定存在着一个的矩阵满足约束条件(5.4.2)式中是非奇异的。用乘以式(5.4.1)等号两边得(5.4.3)由上式得(5.4.4)如果取(5.4.5)作为估值,则称为辅助变量估值,矩阵成为辅助变量矩阵,中的元素称为辅助变量。常用的辅助变量法有递推辅助变量参数估计法,自适应滤波法,纯滞后等。4. 广义最小二乘法广义最小二乘法是能克服最小二乘法有偏估计的另一种方法,这种方法计算比较复杂但效果比较好。下面直接介绍广义最小二乘法的计算步骤:(1)应用得到的输入和输出数据和,按模型求出的最小二乘估计(2)计算残差(3)用残差代替,计算(4)计算和(5)应用得到的和按模型用最小二乘法重新估计,得到的第2次估值。然后按步骤(2)计算残差,按步骤(3)重新估计,得到估值。再按照步骤(4)计算和,按照步骤(5)求的第3次估值。重复上述循环,之道的估值收敛为止。5. 一种交替的广义最小二乘法求解技术(夏式法)这种方法是夏天长提出来的,又称夏式法。以上讨论过的广义最小二乘法的特点在于系统的输入和输出信号反复过滤。一下介绍的夏式法是一种交替的广义最小二乘法求解技术,它不需要数据反复过滤,因而计算效率较高。这种方法可消去最小二乘估计中的偏差,而且由这种方法导出的计算方法也比较简单。基于以上的几种方法,有(5.7.1)因而有(5.7.2)应用最小二乘法可得到参数估值(5.7.3)可以推出(5.7.11)上式中的第1项是最小二乘估计,第2项是偏差项,所以必须准确计算。为了准确计算,可采用迭代的方法。6. 专题解答设但输入-单输出系统的差分方程为取真实值,输入数据如下所示ku(k)ku(k)ku(k)11.14711-0.958210.48520.201120.810221.6333-0.78713-0.044230.0434-1.159140.947241.3265-1.05215-1.474251.70660.86616-0.71926-0.34071.15217-0.086270.89081.57318-1.099281.14490.626191.450291.177100.433201.15130-0.390用的真实值利用查分方程求出作为测量值,为均值为0,方差为0.1,0.5的不相关随机序列。(1) 用最小二乘法估计参数。(2) 用递推最小二乘法估计。(3) 用辅助变量法估计参数。(4) 设,用广义最小二乘法估计参数。(5) 用夏式法估计参数。(6) 详细分析和比较所获得的参数辨识结果,并说明上述参数便是方法的优缺点。根据题目要求的解法,利用matlab编程实现系统辨识的估值利用最小二乘法估计的结果如下:最小二乘法方差0.00011.62800.70280.39713.4491.63160.70590.39470.34941.63540.71200.39180.34631.63620.70820.39700.35271.63600.71650.39060.35341.62890.70460.39080.34370.0011.15430.67660.40640.33041.55770.63710.38680.32491.60500.68600.37370.32441.60600.68160.35830.31671.61950.70300.39070.33661.56700.65720.37520.31400.011.35380.50100.34860.17090.89560.16370.42370.06971.00080.20360.42360.12681.34030.47070.38260.26151.05740.22890.36820.13171.12310.29630.35920.15060.11.14240.27100.32840.22161.02550.17360.37660.18440.88960.11090.38930.08130.81820.11140.42980.09230.81000.01530.41220.13520.77150.13110.47140.06400.50.97510.10170.02710.07920.89380.07400.34840.16340.19270.01970.37620.15210.55060.03920.65100.05840.75600.04940.33720.14370.94590.13770.38150.1853部分程序运行结果递推最小二乘法方差0.00011.67540.67870.52070.39241.30760.29000.00750.32841.51460.69631.14010.16391.57330.77820.41490.71101.16020.47530.67360.31591.20910.31920.52770.02750.0011.47670.40400.26790.55121.62590.75940.32530.37801.53930.47570.12680.43461.15480.17000.19260.82510.88580.07600.33850.04061.41290.31270.09920.83800.011.34850.34450.31940.37101.16390.32960.78130.21621.99461.23231.48520.03041.39240.35430.33190.45721.39820.36080.77730.31521.63460.72290.57800.39470.11.56240.71320.44220.41121.73350.71520.08440.63991.47630.53660.32550.31161.44770.34890.22180.22651.62160.70820.65950.42751.51050.40000.01130.22130.51.79270.94110.27300.34711.55560.88770.59720.12171.78681.25381.12480.21001.57330.74340.35890.13871.31930.60841.29710.30291.59590.53860.01410.6947部分程序运行结果:辅助变量法方差0.00011.77990.85880.41470.40461.30760.29000.00750.32841.67350.75780.40600.34841.58120.65460.37710.36111.66570.74690.37720.35611.52810.65090.36450.33020.0011.62950.67750.40820.35011.64250.73050.39370.35431.55950.60520.35630.33621.41450.49250.40210.28731.63710.72700.36810.34181.35390.47330.39060.24890.011.34510.47000.38220.26801.36570.48930.43490.24961.37020.50090.43880.26111.18840.37070.34570.15211.36360.53300.41350.20641.31580.48360.45620.21690.11.55450.61670.41040.35121.59000.66480.40980.36641.66100.70290.40010.34951.51040.60140.39680.32561.56200.64960.39500.30971.44180.57060.41830.27830.51.49520.57040.37690.34831.55920.65410.43870.33301.36370.53020.38650.19161.55430.63240.32080.29291.53850.59940.36610.35761.35110.48390.34120.2208部分程序运行结果:广义最小二乘法方差0.00011.64510.71820.38950.35031.64680.72050.38660.34921.63080.70380.38520.34571.64670.71880.38980.35441.64110.71560.38980.34771.64410.71850.38960.34880.0011.70270.76780.40590.37611.64770.71660.39730.36431.63910.71130.38360.35041.65860.71660.37910.36721.68310.74720.39940.37311.59640.68500.36550.32310.011.68260.74690.38590.36001.72450.76960.35650.36421.65770.71860.39100.38201.66560.72630.34250.34131.69030.73920.36330.38381.69420.74390.38340.38800.10.89960.15150.44350.06041.03800.30440.34100.04641.65710.65690.45890.42591.21800.45840.31520.10300.19570.09740.21640.10351.68590.72320.41440.44040.51.40530.67030.36720.13721.57830.61480.35120.41731.02330.06580.20350.40601.59730.81030.35440.21311.61910.67090.31110.48661.08040.22100.75000.5185部分程序运行结果:夏式法方差0.00011.63670.70900.39100.35111.64510.71840.38760.34721.36180.21590.82050.58511.62910.70750.39110.34641.61730.69290.39550.34391.63070.70660.39120.34490.0011.53140.64070.40160.30921.56320.65750.42040.33191.61720.69460.39250.32581.56700.64890.40160.32331.53260.62430.39950.30701.62510.69460.36210.33600.010.88150.10890.37340.04401.37630.49720.41210.26541.50270.59520.38540.32771.34210.42680.39780.27901.24540.30240.36690.25251.33610.47410.49990.29000.10.66390.10740.68470.08271.14060.31540.42590.23670.17910.29160.94540.21261.20680.38270.74600.32200.64120.07040.58020.08771.03840.28780.74930.37930.50.93300.07520.97410.58820.62910.16860.46790.78690.59860.27920.26050.20080.44410.80330.74421.76670.62160.14400.58210.49060.65760.09991.00020.0263部分程序运行结果:结论:通过编程计算,获得在噪声方差比较小的情况下,各种方法所获得的估值比较理想,但随着噪声方差的增大,估值的偏差随之增大,横向比较看来夏式法与广义最小二乘法能够更好地还原参数值,当观测值足够多时,各种方法都能很好地反映参数真实值。matlab源程序:%最小二乘估计% clear u= 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.626 0.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.450 1.151 0.485 1.633 0.043 1.326 1.706 -0.340 0.890 0.144 1.177 -0.390; n=normrnd(0, sqrt(0.1), 1, 31); z=zeros(1,30);for k=3:31 z(k)=-1.642*z(k-1)-0.715*z(k-2)+0.39*u(k-1)+0.35*u(k-2)+n(k)+1.642*n(k-1)+0.715*n(k-2);end h0=-z(2) -z(1) u(2) u(1); hlt=h0,zeros(4,28);for k=3:30 h1=-z(k) -z(k-1) u(k) u(k-1); hlt(:,k-1)=h1;end hl=hlt; y=z(3);z(4);z(5);z(6);z(7);z(8);z(9);z(10);z(11);z(12);z(13);z(14);z(15);z(16);z(17);z(18);z(19);z(20);z(21);z(22);z(23);z(24);z(25);z(26);z(27);z(28);z(29);z(30);z(31);%求出fai c1=hl*hl; c2=inv(c1); c3=hl*y; c=c2*c3;%display(方差=0.1时,最小二乘法估计辨识参数如下:); a1=c(1); a2=c(2); b1=c(3); b2=c(4); clear%递推最小二乘法估计 u= 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.626 0.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.450 1.151 0.485 1.633 0.043 1.326 1.706 -0.340 0.890 0.144 1.177 -0.390; z(2)=0; z(1)=0;n=normrnd(0, sqrt(0.1), 1, 31);for k=3:31 z(k)=-1.642*z(k-1)-0.715*z(k-2)+0.39*u(k-1)+0.35*u(k-2)+n(k)+1.642*n(k-1)+0.715*n(k-2);end c0=0.001 0.001 0.001 0.001; %直接给出被辨识参数的初始值,即一个充分小的实向量 p0=106*eye(4,4); %直接给出初始状态p0,即一个充分大的实数单位矩阵 e=0.000000005; %取相对误差e=0.000000005 c=c0,zeros(4,30); %被辨识参数矩阵的初始值及大小 e=zeros(4,30); %相对误差的初始值及大小for k=3:30; %开始求k h1=-z(k-1),-z(k-2),u(k-1),u(k-2); x=h1*p0*h1+1; x1=inv(x); %开始求k(k) k1=p0*h1*x1;%求出k的值 d1=z(k)-h1*c0; c1=c0+k1*d1; %求被辨识参数c e1=c1-c0; %求参数当前值与上一次的值的差值 e2=e1./c0; %求参数的相对变化 e(:,k)=e2; %把当前相对变化的列向量加入误差矩阵的最后一列 c0=c1; %新获得的参数作为下一次递推的旧参数 c(:,k)=c1; %把辨识参数c 列向量加入辨识参数矩阵的最后一列 p1=p0-k1*k1*h1*p0*h1+1; %求出 p(k)的值 p0=p1; %给下次用 if e2=e break; %如果参数收敛情况满足要求,终止计算 endend%display(方差为0.0001递推最小二乘法辨识后的结果是:); a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:);%display(a1,a2,b1,b2经过递推最小二乘法辨识的结果是:);for i=3:31; if(c(1,i)=0) q1=c(1,i-1); break; endendfor i=3:31; if(c(2,i)=0) q2=c(2,i-1); break; endendfor i=3:31; if(c(3,i)=0) q3=c(3,i-1); break; endendfor i=3:31; if(c(4,i)=0) q4=c(4,i-1); break; endend a1=q1; a2=q2; b1=q3 ; b2=q4;%clear%辅助变量递推最小二乘法估计 na=2; nb=2; siitt=1.642 0.715 0.39 0.35; siit0=0.001*eye(na+nb,1); p=106*eye(na+nb); siit(:,1)=siit0; y(2)=0;y(1)=0; x(1)=0;x(2)=0; j=0; u= 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.626 0.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.450 1.151 0.485 1.633 0.043 1.326 1.706 -0.340 0.890 0.144 1.177 -0.390; n=normrnd(0, sqrt(0.01), 1, 31);for k=3:31; h=-y(k-1),-y(k-2),u(k-1),u(k-2); y(k)=h*siitt+n(k)+1.642*n(k-1)+0.715*n(k-2); hx=-x(k-1),-x(k-2),u(k-1),u(k-2); kk=p*hx/(h*p*hx+1); p=eye(na+nb)-kk*h*p; siit(:,k-1)=siit0+kk*y(k)-h*siit0; x(k)=hx*siit(:,k-1); j=j+(y(k)-h*1.642 0.715 0.39 0.35)2; e=max(abs(siit(:,k-1)-siit0)./siit0); ess(:,k-2)=siit(:,k-1)-siitt; siit0=siit(:,k-1); end a1=siit0(1); a2=siit0(2); b1=siit0(3); b2=siit0(4); clear%广义最小二乘估计 clear; nn = normrnd(0,sqrt(0.5),1,31); uk=1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.626 0.433 -0.958 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.450 1.151 0.485 1.633 0.043 1.326 1.706 -0.340 0.890 1.144 1.177 -0.390; yk(1)=0; yk(2)=0;for i=1:29; yk(i+2)=-1.642*yk(i+1)-0.715*yk(i)+0.39*uk(i+1)+0.35*uk(i)+nn(i+2)+1.642*nn(i+1)+0.715*nn(i);end;for i=1:29; a(i,:)=-yk(i+1) -yk(i) uk(i+1) uk(i);end siit=inv(a*a)*a*(yk(3:31)+nn(2:30); e(1)=yk(1); e(2)=yk(2)+siit(1)*yk(1)-siit(3)*uk(1);for i=3:31; e(i)=yk(i)+siit(1)*yk(i-1)+siit(2)*yk(i-2)-siit(3)*uk(i-1)-siit(4)*uk(i-2);endfor i=1:29; fai(i,:)=-e(i+1) -e(i);end f=inv(fai*fai)*fai*e(3:31);for i=3:31; yk(i)=yk(i)+f(1)*yk(i-1)+f(2)*yk(i-2);end yk(2)=yk(2)+f(1)*yk(1);for i=3:30; uk(i)=uk(i)+f(1)*uk(i-1)+f(2)*uk(i-2);end uk(2)=uk(2)+f(1)*uk(1);for j=1:30for i=1:29; a(i,:)=-yk(i+1) -yk(i) uk(i+1) uk(i);end siit=inv(a*a)*a*yk(3:31); e(1)=yk(1); e(2)=yk(2)+siit(1)*(yk(1)-siit(3)*uk(1);for i=3:31; e(i)=yk(i)+siit(1)*(yk(i-1)+siit(2)*(yk(i-2)-siit(3)*uk(i-1)-siit(4)*uk(i-2);endfor i=1:29; fai(i,:)=-e(i+1) -e(i);end f=inv(fai*fai)*fai*e(3:31); k1(j)=f(1); k2(j)=f(2);for i=3:31; yk(i)=yk(i)+f(1)*(yk(i-1)+f(2)*(yk(i-2); endyk(2)=yk(2)+f(1)*yk(1);for i=3:30 uk(i)=uk(i)+f(1)*uk(i-1)+f(2)*uk(i-2);end uk(2)=uk(2)+f(1)*uk(1);end siit;%用夏氏偏差修正法估计参数 clear; u= 1.147 0.201 -0.787 -1.589 -1.052 0.866 1.152 1.573 0.626 0.433 -0.985 0.810 -0.044 0.947 -1.474 -0.719 -0.086 -1.099 1.450 1.151 0.485 1.633 0.043 1.326 1.706 -0.340 0.890 0.144 1.177 -0.390; n=normrnd(0, sqrt(0.5), 1, 31); z=zeros(1,30);for k=3:31 z(k)=-1.642*z(k-1)-0.715*z(k-2)+0.39*u(k-1)+0.35*u(k-2)+n(k)+1.642*n(k-1)+0.715*n(k-2);end h0=-z(2) -z(1) u(2) u(1); hlt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生菜出售合同协议书
- 幼儿园厨房食材采购一日工作流程
- 低年级数学基础强化计划
- 市场拓展经理工作职责
- 小学团体心理疏导技术推广计划
- 混合地产可持续性-洞察及研究
- 高层建筑消防安全培训教育计划
- 2025年普通话考试科技类经典话题范文
- 语文复习课阅读理解流程
- 2025年运送货物协议书
- 变电站新进人员培训课件
- 医院伦理培训课件
- 2025年小学道德与法治学科教师专业素质真题考试试题及答案
- 化工机械法兰连接课件
- (高清版)DB34∕T 5154-2025 基于云制造的工业互联网架构要求
- 党校中青班入学考试试题及答案
- 三支一扶培训
- 2025年中国儿童游乐设施产业深度调研与投资机遇研究报告
- 新生儿42天体检要点解析
- 煤矿联网课题题目及答案
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人笔试参考题库附带答案详解析集合
评论
0/150
提交评论