1、实验4 递推最小二乘法的实现实验报告哈尔滨工业大学航天学院控制科学与工程系专业: 自动化 班级: 1040101 姓名: 日期: 2013 年 10 月 23 日1实验题目: 递推最小二乘法的实现 2实验目的:熟悉并掌握递推最小二乘法的算法原理。3实验主要原理给定系统 (1)其中,为待辨识的未知参数,是不相关随机序列。为系统的输出,为系统的输入。分别测出个输出、输入值,则可写出个方程,具体写成矩阵形式,有 (2)设,则式(2)可写为 (3)式中:y为N维输出向量;为N维噪声向量;为维参数向量;为测量矩阵。为了尽量减小噪声对估值的影响,应取,即方程数目大于未知数数目。的最小二乘估计为 (4)为了
2、实现实时控制,必须采用递推算法,这种辨识方法主要用于在线辨识。设已获得的观测数据长度为N,将式(3)中的、和分别用来代替,即 (5)用表示的最小二乘估计,则 (6)令,则 (7)如果再获得一组新的观测值和,则又增加一个方程 (8)式中将式(5)和式(8)合并,并写成分块矩阵形式,可得 (9) 于是,类似地可得到新的参数估值 (10)式中 (11) 应用矩阵求逆引理,从求得与的递推关系式出发,经过一系列的推导,最终可求得递推最小二乘法辨识公式: (12) (13) (14)为了进行递推计算,需要给出和的初值和。推荐取值方法为:假定,c是充分大的常数,I为单位矩阵,则经过若干次递推之后能得到较好的
3、参数估计。4实验对象或参数给定系统 (15)即。假设实际系统的参数为,但是不已知,即不可测。取的零均值白噪声。输入信号取为 (16) 要求编制MATLAB程序,运用递推最小二乘法对这一系统的参数进行在线辨识,并将辨识结果与实际参数进行对比。5程序框图6程序代码4function shiyan4Y(1)=0;Y(2)=0;n=2;theta=2;1.3;0.4;0.88;2.2; c=1000;U(1)=1.5*sin(0.2*1);U(2)=1.5*sin(0.2*2);U(3)=1.5*sin(0.2*3); Pn0=c*c*eye(5); Tn0=zeros(5,1); num=30; d
4、ata=zeros(num,5); %生成白噪声M=2147483647;a=65539;b=10000;X=;R=;X(1)=35;nn=12*(num+5);for j=1:1:nn x0=(a*X(j)+b); X(j+1)=mod(x0,M); R(j)=X(j+1)/M;endv=;for jj=0:1:num+4 jj1=jj*12+1;jj2=jj*12+11;x2=R(jj1); for ii=jj1:1:jj2 x2=x2+R(ii+1); end v(jj+1)=x2-6; V(jj+1)=v(jj+1)/30;end%递推函数while(num=0) HL(1)=-Y(n
5、);HL(2)=-Y(n-1); HL(3)=U(n+1);HL(4)=U(n);HL(5)=U(n-1); Y(n+1)=HL*theta+V(n+1); K=Pn0*HL*(inv(1+HL*Pn0*HL); Pn=Pn0-K*HL*Pn0; Tn=Tn0+K*(Y(n+1)-HL*Tn0); data(n-1,:)=Tn; Pn0=Pn; Tn0=Tn; n=n+1; KK=Tn(2)-16 Tn(1)-4; U(n+1)=KK*Y(n);Y(n-1)+Tn(3) Tn(4) Tn(5)*1.5*sin(0.2*(n+1);1.5*sin(0.2*n);1.5*sin(0.2*(n-1)
6、; num=num-1; end data%画图a1=data(:,1);a2=data(:,2);b0=data(:,3);b1=data(:,4);b2=data(:,5);k=0:1:length(a1)-1;subplot(2,1,1);stairs(k,a1,r-);xlabel(time k);ylabel(a1);subplot(2,1,2);stairs(k,a2,r-);xlabel(time k);ylabel(a2);subplot(3,1,1);stairs(k,b0,r-);xlabel(time k);ylabel(b0);subplot(3,1,2);stairs
7、(k,b1,r-);xlabel(time k);ylabel(b1);subplot(3,1,3);stairs(k,b2,r-);xlabel(time k);ylabel(b2);7实验结果及分析本实验给定系统为要求运用递推最小二乘法对所给系统参数进行在线识别,其主要目的是设计状态反馈控制律,因此首先采用状态空间分析法对系统进行分析。闭环系统原理图如下图所示。根据系统辨识模型,对于该二阶系统,不妨设状态量,所以该系统状态空间表达式为:其中:,。暂不考虑干扰信号,设状态反馈控制律为:为反馈增益系数矩阵,为系统参考输入,则状态反馈闭环系统的状态空间表达式为闭环系统传递函数:设期望闭环极点,解
8、得,。通过最小二乘法辨识出、,即可以得到实际控制律: 在实验给定的系统辨识模型以及参数下,按照实验要求的正弦信号参考输入与白噪以及理论计算获得的控制律基础上进行MATLAB仿真,具体得到以下结果分析。输出data:下面为循环次数为25,c为1000时的参数收敛情况:由上图可知,在第14步时,参数基本稳定。当c取不同值的时候,探索对系统辨识的影响。如下表:C收敛步数00120.01202.01.300.400.8802.200.1182.01.300.400.8802.201162.01.300.400.8802.2010142.01.300.400.8802.20100142.01.300.4
9、00.8802.201000142.01.300.400.8802.2010000142.01.300.400.8802.20100000142.01.300.400.8802.20 从表中可以看出,无论 c 取多大的值,最终都能得到系统参数真实值,参数收敛的快慢不同,c 较小时所需步数较多,c 较大时所需步数较少。当 c 达到一定程度之后,收敛递推步数逐渐稳定,但是不可能小于N=2n+1=5 步。方程个数 N只需要满足 N=2n+1 的条件即可以获得方程的解;同样的,在递推最小二乘法中,递推步数同样要大于 2n+1才能获得较为准确的结果。8结论本实验中,递推最小二乘法的在线算法需要设计状态反馈控制规律。经过状态反馈后,无论c取值多少,都能在一定的步数后得到真实的辨识参数。c值越大,收敛越迅速。但是收敛步数不可能小于N=2n+1=5 步。相对最小二乘法,递推最小二乘法可以实现实时控制,所需要的数据量较少。经过这次实验,不仅最小二乘法的递推过程更加熟悉,而且认识了状态反馈控制规律在辨识中的重大作用。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2