收藏 分销(赏)

Matlab-系统辨识-应用例子.doc

上传人:快乐****生活 文档编号:3560821 上传时间:2024-07-09 格式:DOC 页数:24 大小:389KB
下载 相关 举报
Matlab-系统辨识-应用例子.doc_第1页
第1页 / 共24页
Matlab-系统辨识-应用例子.doc_第2页
第2页 / 共24页
Matlab-系统辨识-应用例子.doc_第3页
第3页 / 共24页
Matlab-系统辨识-应用例子.doc_第4页
第4页 / 共24页
Matlab-系统辨识-应用例子.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、例1、考虑仿真对象 其中,是服从正态分布的白噪声N。输入信号采用4阶M序列,幅度为1。选择如下形式的辨识模型 设输入信号的取值是从k =1到k =16的M序列,则待辨识参数为=。其中,被辨识参数、观测矩阵的表达式为: 程序框图如图1所示。Matlab仿真程序如下:赋输入信号初值u定义输出观测值的长度并计算系统的输出值画出输入和输出观测值的图形给样本矩阵HL和zL赋值根据公式计算参数从中分离出并显示出被辨识参数a1, a2, b1, b2结束图1 最小二乘一次完成算法程序框图%二阶系统的最小二乘一次完成算法辨识程序,文件名:LS.mu=-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,

2、-1,1,1; %系统辨识的输入信号为一个周期的M序列z=zeros(1,16); %定义输出观测值的长度for k=3:16 z(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的径线图形subplot(3,1,2) %画三行一列图形窗口中的第二个图形i=1:1:16; %横坐标范围是1到16,步长为1plot(i,z) %图形的横坐标是采样时刻i, 纵坐标是输出观测值z, 图形格式为连续曲线subplot(3,1,3) %画三行

3、一列图形窗口中的第三个图形stem(z),grid on %画出输出观测值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(1

4、1) 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) %给样本矩阵赋值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) % 给样本矩阵z L赋值%Calculating Parameters c1=HL*HL; c2=inv(c1); c3=HL*ZL; c=c2*c3 %计算并显示%Display Paramete

5、rs a1=c(1), a2=c(2), b1=c(3),b2=c(4) %从中分离出并显示a1 、a2、 b1、 b2%End程序运行结果: u = -1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1z = 0,0,0.5000,0.2500,0.5250,2.1125, 4.3012,6.4731,6.1988,3.2670,-0.9386, -3.1949,-4.6352,6.2165,-5.5800,-2.5185HL = 0 0 1.0000 -1.0000 -0.5000 0 -1.0000 1.0000 -0.2500 -0.5000 1.0000 -1.0

6、000 -0.5250 -0.2500 1.0000 1.0000 -2.1125 -0.5250 1.0000 1.0000 -4.3012 -2.1125 1.0000 1.0000 -6.4731 -4.3012 -1.0000 1.0000 -6.1988 -6.4731 -1.0000 -1.0000 -3.2670 -6.1988 -1.0000 -1.0000 0.9386 -3.2670 1.0000 -1.0000 3.1949 0.9386 -1.0000 1.0000 4.6352 3.1949 -1.0000 -1.0000 6.2165 4.6352 1.0000 -

7、1.0000 5.5800 6.2165 1.0000 1.0000ZL = 0.5000,0.2500,0.5250,2.1125,4.3012,6.4731,6.1988,3.2670,-0.9386,-3.1949, -4.6352,-6.2165,-5.5800,-2.5185Tc = -1.5000,0.7000,1.0000,0.5000Ta1 = -1.5000a2 = 0.7000b1 = 1.0000b2 =0.5000 图2 最小二乘一次完成算法仿真实例中输入信号和输出观测值从仿真结果表1可以看出,由于所用的输出观测值没有任何噪声成分,所以辨识结果也无任何误差。真 值 -1

8、.5 0.7 1.0 0.5估计值 -1.5 0.7 1.0 0.5参 数 a1 a2 b1 b2表1 最小二乘一次完成算法的辨识结果例2 根据热力学原理,对给定质量的气体,体积V与压力P之间的关系为,其中和为待定参数。经实验获得如下一批数据, V的单位为立方英寸,P的单位为帕每平方英寸。 V 54.3 61.8 72.4 88.7 118.6 194.0 P 61.2 49.5 37.6 28.4 19.2 10.1试用最小二乘一次完成算法确定参数和。 首先要写出系统的最小二乘表达式。为此,把体积V与压力P之间的关系改为对数关系,即,。此式与式,对比可得:,。 例2的Matlab6.0程序如

9、下。%实际压力系统的最小二乘辨识程序,文件名:LS2.mclear %工作间清零V=54.3,61.8,72.4,88.7,118.6,194.0,P=61.2,49.5,37.6,28.4,19.2,10.1 %赋初值并显示V、P%logP=-alpha*logV+logbeita=-logV,1alpha,log(beita)=HL*sita %注释P、V之间的关系for i=1:6; Z(i)=log(P(i); %循环变量的取值为从1到6,系统的采样输出赋值End %循环结束ZL=Z % z L赋值HL=-log(V(1),1;-log(V(2),1;-log(V(3),1;-log(

10、V(4),1;-log(V(5),1;-log(V(6),1 %HL赋值%Calculating Parameters c1=HL*HL; c2=inv(c1); c3=HL*ZL; c4=c2*c3 %计算被辨识参数的值%Separation of Parameters alpha=c4(1) %为c4的第一个元素beita=exp(c4(2) %为以自然数为底的c4的第二个元素的指数程序运行结果:V = 54.3000, 61.8000, 72.4000, 88.7000, 118.6000, 194.0000P = 61.2000, 49.5000, 37.6000, 28.4000,

11、19.2000, 10.1000ZL = 4.1141, 3.9020, 3.6270, 3.3464, 2.9549, 2.3125HL = -3.9945 1.0000 -4.1239 1.0000 -4.2822 1.0000 -4.4853 1.0000 -4.7758 1.0000 -5.2679 1.0000c4 = 1.4042 9.6786alpha = 1.4042beita = 1.5972e+004 仿真结果表明,用最小二乘一次完成算法可以迅速辨识出系统参数,即=1.4042,=1.5972e+004。例3 考虑图3所示的仿真对象,图中, 是服从N分布的不相关随机噪声。且

12、 , ,经过计算,得到系统真实的模型: 选择图3所示的辨识模型。仿真对象选择如下的模型结构 其中,是服从正态分布的白噪声N。输入信号采用4位移位寄存器产生的M序列,幅度为0.03。+e(k) 图3 最小二乘递推算法辨识实例结构图y(k)u(k)z(k)v(k) 最小二乘递推算法辨识的Malab6.0程序流程如图4所示。下面给出具体程序。%最小二乘递推算法辨识程序, 在光盘中的文件名: RL3.mclear %清理工作间变量L=15; % M序列的周期y1=1;y2=1;y3=1;y4=0; %四个移位寄存器的输出初始值for i=1:L;%开始循环,长度为L x1=xor(y3,y4); %第

13、一个移位寄存器的输入是第三个与第四个移位寄存器的输出的“或” x2=y1; %第二个移位寄存器的输入是第一个移位寄存器的输出 x3=y2; %第三个移位寄存器的输入是第二个移位寄存器的输出 x4=y3; %第四个移位寄存器的输入是第三个移位寄存器的输出 y(i)=y4; %取出第四个移位寄存器的幅值为0和1的输出信号,即M序列 if y(i)0.5,u(i)=-0.03; %如果M序列的值为1, 辨识的输入信号取“-0.03” else u(i)=0.03; %如果M序列的值为0, 辨识的输入信号取“0.03” end %小循环结束 y1=x1;y2=x2;y3=x3;y4=x4; %为下一次

14、的输入信号做准备end %大循环结束,产生输入信号u figure(1); %第一个图形stem(u),grid on %显示出输入信号径线图并给图形加上网格z(2)=0;z(1)=0; %设z的前两个初始值为零for k=3:15; %循环变量从3到15 z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2); %输出采样信号 endY工作间清零产生输出采样信号给被辨识参数和P赋初值按照式(4.94)的第三式计算P(k)计算被辨识参数的相对变化量参数收敛满足要求?结束按照式(4.95)的第二式计算K(k)按照式(4.96)的第一式计算(k)第四个移位寄存器的

15、输出取反,并将幅值变为0.03得到辨识系统的输入信号样本值给M序列的长度L和移位寄存器的输入赋初始值画出被辨识参数的各次递推估计值图形分离参数画出被辨识参数的相对误差的图形画出辨识的输入信号径线图形图4 最小二乘递推算法辨识的Malab6.0程序流程图N %RLS递推最小二乘辨识c0=0.001 0.001 0.001 0.001; %直接给出被辨识参数的初始值,即一个充分小的实向量p0=106*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005; %取相对误差E=0.000000005c=c0,zeros(4,14); %被辨识参数矩阵的初始值及

16、大小e=zeros(4,15); %相对误差的初始值及大小for k=3:15; %开始求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; %把当前相对变化的列向量加入误差矩阵的第k列 c0=c1; %新获得的参数作为下一次递推的旧参数 c(:,k)=c1; %把辨识参数c 列向

17、量加入辨识参数矩阵的第k列 p1=p0-k1*h1*p0; %求出 p(k)的值 p0=p1; %给下次用 if e2c = 0.0010 0 0.0010 -0.4984 -1.2328 -1.4951 -1.4962 -1.4991 -1.4998 -1.4999 0.0010 0 0.0010 0.0010 -0.2350 0.6913 0.6941 0.6990 0.6998 0.6999 0.0010 0 0.2509 1.2497 1.0665 1.0017 1.0020 1.0002 0.9999 0.9998 0.0010 0 -0.2489 0.7500 0.5668 0.5

18、020 0.5016 0.5008 0.5002 0.5002图5 最小二乘递推算法的参数辨识仿真-1.5000 -1.5000 -1.5000 -1.4999 -1.49990.7000 0.7000 0.7000 0.7000 -0.70000.9999 0.9999 0.9999 0.9999 0.99990.5000 0.5000 0.5000 0.5000 0.5000e = 0 0 0 -499.4200 1.4734 0.2128 0.0007 0.0020 0.0004 0.0000 0 0 0 0 -235.9916 -3.9416 0.0042 0.0070 0.0012

19、0.0001 0 0 249.8612 3.9816 -0.1466 -0.0607 0.0003 -0.0018 -0.0003 -0.0001 0 0 -249.8612 -4.0136 -0.2443 -0.1143 -0.0007 -0.0016 -0.0012 -0.00010.0001 0.0000 -0.0000 -0.0000 0.00000.0001 -0.0000 0.0000 0.0000 0.00000.0001 0.0000 0.0000 0.0000 -0.0000-0.0004 0.0000 -0.0000 0.0000 -0.0000表2 最小二乘递推算法的辨识

20、结果参 数 a1 a2 b1 b2真 值 -1.5 0.7 1.0 0.5 估计值 -1.4999 0.7 0.9999 0.5000仿真结果表明,大约递推到第十步时,参数辨识的结果基本达到稳定状态,即a1=-1.4999, a2= 0.7000, b1=0.9999, b2=0.5000。此时,参数的相对变化量E0.000000005。从整个辨识过程来看,精度的要求直接影响辨识的速度。虽然最终的精度可以达到很小,但开始阶段的相对误差会很大。 例四:考虑图4所示的仿真对象,图中, 是服从N分布的不相关随机噪声。+y(k)u(k)e(k) z(k)+v(k)图4 增广最小二乘法辨识实例结构图 +

21、 且 , ,NY停机工作间清零产生输出采样信号给被辨识参数和P赋初值按照式(4-154)的第三式递推计算P(k)计算被辨识参数的相对变化量收敛满足要求?按照式(4-153)的第二式递推计算K(k)按照式(4-152)的第一式递推计算(k)用4位移位寄存器产生幅值为1的输入信号计算系统的实际输出响应及模型的响应给M序列的长度L赋值画出被辨识参数的各次估计值及其误差显示被辨识参数、辨识精度、输出采样、系统实际输出、模型输出画出系统的实际输出、输出采样及模型输出画出输入信号径线图形及随机噪声图形产生随机噪声信号图 增广最小二乘递推算法辨识的Malab6.0程序流程图模型结构选用如下形式:增广最小二乘

22、辨识程序流程上图所示。Matlab6.0程序如下。%增广最小二乘辨识程序 clearL=60; %4位移位寄存器产生的M序列的周期y1=1;y2=1;y3=1;y4=0; %4个移位寄存器的输出初始值for i=1:L; x1=xor(y3,y4); %第一个移位寄存器的输入信号 x2=y1; %第二个移位寄存器的输入信号x3=y2; %第三个移位寄存器的输入信号 x4=y3; %第四个移位寄存器的输入信号 y(i)=y4; %第四个移位寄存器的输出信号,M序列, 幅值0和1, if y(i)0.5,u(i)=-1; %M序列的值为1时,辨识的输入信号取“-1” else u(i)=1; %M

23、序列的值为0时,辨识的输入信号取“1” end y1=x1;y2=x2;y3=x3;y4=x4; %为下一次的输入信号准备endfigure(1); %画第一个图形subplot(2,1,1); %画第一个图形的第一个子图stem(u),grid on %画出M序列输入信号v=randn(1,60); %产生一组60个正态分布的随机噪声subplot(2,1,2); %画第一个图形的第二个子图plot(v),grid on; %画出随机噪声信号u ,v %显示输入信号和噪声信号z=zeros(7,60);zs=zeros(7,60);zm=zeros(7,60);zmd=zeros(7,60)

24、; %输出采样矩阵、不考虑噪声时系统输出矩阵、不考虑噪声时模型输出矩阵、模型输出矩阵的大小z(2)=0; z(1)=0; zs(2)=0; zs(1)=0; zm(2)=0; zm(1)=0; zmd(2)=0; zmd(1)=0; %输出采样、不考虑噪声时系统输出、不考虑噪声时模型输出、模型输出的初值c0=0.001 0.001 0.001 0.001 0.001 0.001 0.001; %直接给出被辨识参数的初始值,即一个充分小的实向量p0=106*eye(7,7); %直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.00000000005; %相对误差E=0.000000005

25、c=c0,zeros(7,14); %被辨识参数矩阵的初始值及大小e=zeros(7,15); %相对误差的初始值及大小for k=3:60; %开始求K z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+v(k)-v(k-1)+0.2*v(k-2); %系统在M序列输入下的输出采样信号 h1=-z(k-1),-z(k-2),u(k-1),u(k-2),v(k),v(k-1),v(k-2); %为求K(k)作准备 x=h1*p0*h1+1; x1=inv(x); k1=p0*h1*x1; %K d1=z(k)-h1*c0; c1=c0+k1*d1; %辨

26、识参数c zs(k)=-1.5*z(k-1)+0.7*z(k-2)+u(k-1)+0.5*u(k-2); %系统在M序列的输入下的输出响应 zm(k)=-z(k-1),-z(k-2),u(k-1),u(k-2)*c1(1);c1(2);c1(3);c1(4); %模型在M序列的输入下的输出响应 zmd(k)=h1*c1; %模型在M序列的输入下的输出响应e1=c1-c0; e2=e1./c0; %求参数误差的相对变化 e(:,k)=e2; c0=c1; %给下一次用 c(:,k)=c1; %把递推出的辨识参数c 的列向量加入辨识参数矩阵 p1=p0-k1*k1*h1*p0*h1+1; %fin

27、d p(k) p0=p1; %给下次用 if e2 u =1,-1,-1,-1,-1,1,1,1,-1,1,1,-1,-1,1,-1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,-1,1,-1,1,-1,-1,-1,-1,1,1,1,-1,1,1,-1,-1,1,-1,1,-1, -1,-1,-1,1,1,1,-1,1,1,-1,-1,1,-1v =1.1418,1.5519,1.3836,-0.7581,0.4427,0.9111,-1.0741,0.2018,0.7629,-1.2882,-0.9530,0.7782,-0.0063,0.5245,1.3643,0.4820

28、,-0.7871,0.7520,-0.1669,-0.8162,2.0941,0.0802,-0.9373,0.6357,1.6820,0.5936,0.7902,0.1053,-0.1586,0.8709,-0.1948,0.0755,-0.5266,-0.6855,-0.2684,-1.1883,0.2486,-0.1025,-0.0410,-2.2476,-0.5108, 0.2492 0.3692,0.1792,-0.0373,-1.6033,0.3394,-0.1311,0.4852,0.5988,-0.0860,0.3253,-0.3351,-0.3224,-0.3824,-0.9

29、534, 0.2336,1.2352,-0.5785,-0.5015c =0.0010 0 0.0010 -0.2789 -0.9025 -0.9390 -0.8620 -1.1236 -1.5000 -1.5000 -1.50000.0010 0 0.0010 0.0010 -0.0734 -0.2661 -0.1199 0.3259 0.7000 0.7000 0.70000.0010 0 0.0592 0.4560 0.5300 0.5293 0.9458 0.5402 1.0000 1.0000 1.00000.0010 0 0.0572 0.8186 0.8500 0.8639 1.

30、1157 1.2957 0.5000 0.5000 0.50000.0010 0 0.0796 0.7342 0.5417 0.5516 0.3847 0.2459 1.0000 1.0000 1.00000.0010 0 -0.0894 -0.5981 -0.3420 -0.4456 -0.4044 -0.8443 -1.0000 -1.0000 -1.00000.0010 0 -0.0655 -0.7795 -0.8572 -0.7412 -0.4506 -0.1974 0.2000 0.2000 0.2000e =0 0 0 -279.9426 2.2355 0.0404 -0.0820

31、 0.3035 0.3350 0.0000 0.00000 0 0 0 -74.3764 2.6263 -0.5495 -3.7189 1.1479 -0.0000 0.00000 0 58.2212 6.7007 0.1622 -0.0013 0.7868 -0.4289 0.8512 0.0000 0.00000 0 -58.2212 -15.3052 0.0384 0.0163 0.2915 0.1613 -0.6141 -0.0000 -0.00000 0 -80.5566 -10.2283 -0.2621 0.0183 -0.3027 -0.3607 3.0663 0.0000 0.

32、00000 0 -90.3556 5.6936 -0.4282 0.3029 -0.0925 1.0880 0.1844 -0.0000 0.00000 0 -66.4754 10.9059 0.0996 -0.1354 -0.3920 -0.5619 -2.0130 0.0000 0.0000z =0,0,-0.4400,-3.9913,-5.7014,-6.9415,-7.8178,-3.9097,1.4543,2.4075,3.5810,6.6598,6.0079,3.5364,2.4376, -0.0964,-2.3472,-2.3178,-4.4100,-6.9915,-6.0233

33、,-5.8181,-3.6094,1.7476,5.5068,6.5756,8.0416,6.3933,2.3550, 0.6078,-2.3342,-2.9824,-3.9807,-5.5271,-6.6924,-8.7267,-6.5221,-2.5583,2.1343,2.3062,4.1939,6.4870, 6.3125,3.2878,0.8703,-3.0262,-2.7133,-3.2428,-3.7807,-4.8137,-6.6618,-5.5921,-2.9025,1.1385,3.1125,3.7363,6.0362,6.7499,2.6324,0.0478zs =0,0

34、,-0.5000,-0.8401,4.1789,4.2583,6.9212,8.3677,1.8920,-5.4182,-2.0932,-2.1863,-7.9830,-5.8500,-0.5991, -1.6810,2.3509,2.9533,0.3337,3.4925,5.9002,4.6409,6.0108,2.8415,-5.6480,-6.5369,-4.5087,-7.9595,-5.4608, 1.4428,0.2369,4.4268,2.3396,2.3834,4.0042,4.6696,8.9054,5.1745,0.7719,-5.4923,-1.4653,-3.1765,

35、-7.2947,-6.4279,-0.0129,0.4961,5.6486,1.4516,1.4649,1.9010,3.0741,7.1232,5.2248,1.9393,-4.2395,-3.3718,-1.9258, 6.9389,-7.3995,1.2763 zm =0,0,-0.4400,-3.9913,-5.7014,-6.9415,-7.8178,-3.9097,1.4543,2.4075,3.5810,6.6598,6.0079,3.5364,2.4376, -0.0964,-2.3472,-2.3178,-4.4100,-6.9915,-6.0233,-5.8181,-3.6

36、094,1.7476,5.5068,6.5756,8.0416,6.3933,2.3550, 0.6078,-2.3342,-2.9824,-3.9807,-5.5271,-6.6924,-8.7267,-6.5221,-2.5583,2.1343,2.3062,4.1939,6.4870,6.3125, 3.2878,0.8703,-3.0262,-2.7133,-3.2428,-3.7807,-4.8137,-6.6618,-5.5921,-2.9025,1.1385,3.1125,3.7363, 6.0362,6.7499,2.6324,0.0478图5 增广最小二乘递推算法辨识仿真表3 增广最小二乘递推算法的辨识结果参 数 a1 a2 b1 b2

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服