系统辨识实验指导书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

04444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444《系统辨识实验》实验指导书赵英凯1南京工业大学自动化学院2006-04-17目录实验一基于OLS法的系统辨识数字仿真实验···················2实验二基于RLS法的系统辨识数字仿真实验···················72实验一基于OLS法的系统辨识数字仿真实验一、实验目的1、深入理解系统辨识中相关分析法及最小二乘法的相关内容。2、学会用Matlab或C语言等进行系统辨识的仿真研究二、实验设备装有相应软件的计算机。三、实验原理(请见教材,次处从略)四、实验内容1.伪随机二位式信号(PRBS)的生成。2.用普通最小二乘法(OLS)法辨识对象数学模型。五、实验要求1.熟悉系统辨识中的相关内容。2.掌握Matlab或C语言等进行系统辨识仿真研究的一般步骤。3.实验前基本应完成相关的编程任务,实验时调试相应程序。4.修改相应参数与随机噪声幅度,观察并分析结果。5.软件包人机界面的开发与设计。(选做)六、.实验步骤实验步骤:1、运行matlab1)File-New-M-File打开M文件编辑窗口2)输入自己编写的程序3)点击run按钮,如果程序出错则调试程序,如果运行正常的话则观察程序的运行结果3具体的实验步骤:1.伪随机二位式信号(PRBS)的生成:X1=1;X2=0;X3=1;X4=0;%移位寄存器输入Xi初态(0101),Yi为移位寄存器各级输出m=60;%置M序列总长度fori=1:mY4=X4;Y3=X3;Y2=X2;Y1=X1;X4=Y3;X3=Y2;X2=Y1;X1=xor(Y3,Y4);%异或运算ifY4==0U(i)=-1;elseU(i)=Y4;endendM=U%绘图i1=ik=1:1:i1;plot(k,U,k,U,'rx')xlabel('k')ylabel('M序列')title('移位寄存器产生的M序列')注:这是一个采用四级移位寄存器产生prbs信号的程序,同学们可以将这个程序编写的更具通用性,使得移位寄存器的级数可以选择。2.用普通最小二乘法(OLS)法辨识对象数学模型选择的仿真对象的数学模型如下)()2(5.0)1()2(7.0)1(5.1)(kvkukukzkzkz其中,)(kv是服从正态分布的白噪声N)1,0(。输入信号采用4阶M序列,幅度为1。选择如下形式的辨识模型4)()2()1()2()1()(2121kvkubkubkzakzakz设输入信号的取值是从k=1到k=16的M序列,则待辨识参数LSθˆ为LSθˆ=LτL1LτLzH)HH(。其中,被辨识参数LSθˆ、观测矩阵zL、HL的表达式为2121ˆbbaaLSθ,)16()4()3(zzzLz,)14()2()1()15()3()2()14()2()1()15()3()2(uuuuuuzzzzzzLH程序框图如下所示:参考程序:%olsu=[-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1];%系统辨识的输入信号为一个周期的M序列z=zeros(1,16);%定义输出观测值的长度fork=3:16z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2);%用理想输出值作为观测值endsubplot(3,1,1)%画三行一列图形窗口中的第一个图形stem(u)%画出输入信号u的经线图形赋输入信号初值u定义输出观测值的长度并计算系统的输出值画出输入和输出观测值的图形给样本矩阵HL和zL赋值根据公式计算参数LSθˆ从LSθˆ中分离出并显示出被辨识参数a1,a2,b1,b2停机图2最小二乘一次完成算法程序框图5subplot(3,1,2)%画三行一列图形窗口中的第二个图形i=1:1:16;%横坐标范围是1到16,步长为1plot(i,z)%图形的横坐标是采样时刻i,纵坐标是输出观测值z,图形格式为连续曲线subplot(3,1,3)%画三行一列图形窗口中的第三个图形stem(z),gridon%画出输出观测值z的经线图形,并显示坐标网格u,z%显示输入信号和输出观测信号%L=14%数据长度HL=[-z(2)-z(1)u(2)u(1);-z(3)-z(2)u(3)u(2);-z(4)-z(3)u(4)u(3);-z(5)-z(4)u(5)u(4);-z(6)-z(5)u(6)u(5);-z(7)-z(6)u(7)u(6);-z(8)-z(7)u(8)u(7);-z(9)-z(8)u(9)u(8);-z(10)-z(9)u(10)u(9);-z(11)-z(10)u(11)u(10);-z(12)-z(11)u(12)u(11);-z(13)-z(12)u(13)u(12);-z(14)-z(13)u(14)u(13);-z(15)-z(14)u(15)u(14)]%给样本矩阵HL赋值ZL=[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)]%给样本矩阵zL赋值%calculatingparameters%计算参数c1=HL'*HL;c2=inv(c1);c3=HL'*ZL;c=c2*c3%计算并显示%DISPLAYPARAMETERSa1=c(1),a2=c(2),b1=c(3),b2=c(4)%从中分离出并显示a1、a2、b1、b2%End注:由于输出观测值没有任何噪音成分,所以辨识结果也无任何误差,同学们可以在输出观测值中添加噪音,观察ols的辨识效果。同时,可以尝试增加输入信号的数量,看辨识结果有何变化。七、实验报告要求1、整理分析实验结果与程序,并打印之。2、小结调试程序的方法,并提出改进意见。3、上交相关软盘或将程序与电子文档通过EMAIL发给老师。6八.实验思考题:1、用C语言编程实现递推最小二乘法和对象阶的辨识的编程。2、用F检验法来进行对象阶的辨识。3、修改相应参数与随机噪声幅度,观察并分析结果4、编制系统辨识的软件包,制作良好的用户界面。(选作)5、自己可选取一个具体的对象(如某化工厂的加热炉)进行建模。7实验二基于RLS法的系统辨识数字仿真实验一、实验目的1、深入理解系统辨识中相关分析法及最小二乘法的相关内容。2、学会用Matlab或C语言等进行系统辨识的仿真研究二、实验设备装有相应软件的计算机。三、实验原理1.考虑如下图所示的仿真对象:图中,)(kv是服从N)1,0(分布的不相关随机噪声。且)(1zG)()(11zAzB,)(1zN)()(11zCzD,(1)1)(5.00.1)()(7.05.11)(121112111zDzzzBzCzzazA选择上图所示的辨识模型。仿真对象选择如下的模型结构:)()2()1()2()1()(2121kvkubkubkzakzakz(2)其中,)(kv是服从正态分布的白噪声N)1,0(。输入信号采用4位移位寄存器产生的M序列,幅度为0.03。按式(3))()2(5.0)1()2(7.0)1(5.1)(kvkukukzkzkz(3)++e(k)图1递推最小二乘算法辨识实例结构图y(k)u(k)z(k)v(k))(1zN)(1zG8构造h(k);加权阵取单位阵IΛL;利用如下公式计算K(k)、)(ˆkθ和P(k),计算各次参数辨识的相对误差,精度满足要求后停机。递推最小二乘法的推导公式如下:(1)()()(1)(1)1(1)()(1)(1)()(1)(1)()(1)()(1)[][1](1)TkkkkkTkkkkkkTkkkkkkyxKPxxPxPPkkxP(4)2.阶的辨识前面所讨论的系统辨识方法,都是假定模型的阶次是已知的,因此仅仅要求估计差分方程的系数。但实际上,系统的阶次是很难被准确知道的。因为对阶次的理解程度是直接与一个线性差分方程的准确结构有关的,所以有关阶次的确定也可以称为系统结构的确定。经验指出,一个模型的阶次不准,就可能在控制系统设计时发生严重问题。故在辨识过程中,模型的阶次是否合适是必须加以检验的。一般阶的方法中,常用的有这么几种:零极点相消法、目标函数法和F检验法。下面只介绍其中的目标函数法。当我们用不同阶的模型给系统的输入——输出观测数据进行最小二乘拟合时,会得到不同的估计误差:因此利用J极小化确定阶是很自然的。实验表明,假设模型具有大于1而小于maxN的阶n,当n取1,2,…时,若随着n的增加,在ˆn(阶的估计量)-1时,J最后一次出现陡峭的下降,往后J就近似地保持不变或者只有微小的下降(见下图),则取ˆnn。也就是说,模型阶次的确定可以直接依次计算阶次n=1,2,…时的最小二乘估计ˆn以及相应的损失函数J,然后选择当J下降不明显时的阶次作为合适的模型阶次n,这种方法也叫确定阶的估计准则方法,有很广的应用。NkTEEkeJ12)(9Jˆnn四、实验内容1.用递推最小二乘法(RLS)法辨识对象数学模型。2.对象阶的辨识。五、实验要求1.熟悉系统辨识中的相关内容。2.掌握Matlab或C语言等进行系统辨识仿真研究的一般步骤。3.实验前基本应完成相关的编程任务,实验时调试相应程序。4.修改相应参数与随机噪声幅度,观察并分析结果。5.软件包人机界面的开发与设计。(选做)六、实验步骤1.首先要熟悉一下MATLAB的运行环境:1)File-New-M-File打开M文件编辑窗口2)输入自己编写的程序3)点击run按钮,如果程序出错则调试程序,如果运行正常的话则观察程序的运行结果2.用递推最小二乘法(RLS)法辨识对象数学模型在这个实验中,我们采用以下模型进行仿真:y=1.5*y[k-1]-0.7*y[k-2]+0*u[k]+1.0*u[k-1]+0.5*u[k-2]+e[k](5)10其中u[k]是幅值为1的PRBS信号输入,e[k]是白噪声,即(0,1)的正态分布序列,它的方差时可以调整的。这个系统的采样值y(k)和u(k)作为已知数据,采用实验一的最小二乘法估计这个系统的参数。Y工作间清零产生输出采样信号给被辨识参数和P赋初值计算P(k)计算被辨识参数的相对变化量参数收敛满足要求?停机计算K(k)计算(k)第四个移位寄存器的输出取反,并将幅值变为1.0得到辨识系统的输入信号样本值给M序列的长度L和移位寄存器的输入赋初始值画出被辨识参数的各次递推估计值图形分离参数画出被辨识参数的相对误差的图形画出辨识的输入信号径线图形图2递推最小二乘法算法辨识的Malab程序流程图11下面是递推最小二乘法的流程图:相关程序如下:%RLSclear%清理工作间变量L=15;%M序列的周期y1=1;y2=1;y3=1;y4=0;%四个移位寄存器的输出初始值fori=1:L;%开始循环,长度为Lx1=xor(y3,y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出x3=y2;%第三个移位积存器的输入是第2个移位积存器的输出x4=y3;%第四个移位积存器的输入是第3个移位积存器的输出y(i)=y4;%取出第四个移位积存器幅值为0和1的输出信号,ify(i)0.5,u(i)=-0.03;%如果M序列的值为1时,辨识的输入信号取“-0.03”elseu(i)=0.03;%当M序列

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功