z(k)1.5z(k1)0.7z(k2)u(k1)0.5u(k2)v(k)
其中,v(k)是服从正态分布的白噪声N(0,1)。输入信号采用4阶M序列,幅度为1。选择如下形式的辨识模型
z(k)a1z(k1)a2z(k2)b1u(k1)b2u(k2)v(k)
ˆ设输入信号的取值是从k =1到k =16的M序列,则待辨识参数θLSˆ=(T)1Tz。其中,被辨识参数θˆ、观测矩阵的表达式为: 为θLSLSˆθLSz(2)z(1)u(2)u(1)z(3)a1z(3)z(2)u(3)u(2)z(4)az2 b1z(15)z(14)u(15)u(14)z(16)b2程序框图如图1所示。Matlab仿真程序如下:
赋输入信号初值u 定义输出观测值的长度并计算系统的输出值 画出输入和输出观测值的图形 给样本矩阵HL和zL赋值 ˆ 根据公式计算参数θLSˆ中分离出并显示出被辨识参数a1, a2, b1, b2 从θLS结束 图1 最小二乘一次完成算法程序框图
%二阶系统的最小二乘一次完成算法辨识程序,文件名:LS.m
u=[-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-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); %用理想输出值作为观测值 end
subplot(3,1,1) %画三行一列图形窗口中的第一个图形 stem(u) %画输入信号u的径线图形
subplot(3,1,2) %画三行一列图形窗口中的第二个图形 i=1:1:16; %横坐标围是1到16,步长为1
plot(i,z) %图形的横坐标是采样时刻i, 纵坐标是输出观测值z, 图形格式为连续曲线
subplot(3,1,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(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)] %给样本矩阵赋值
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 %计算并显示θLS%Display Parameters
ˆ中分离出并显示a1 、a1=c(1), a2=c(2), b1=c(3),b2=c(4) %从θa2、 b1、 LSb2 %End
程序运行结果:
>>
u =[ -1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1]
z =[ 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.5185] HL =
0 0 1.0000 -1.0000
-0.5000 0 -1.0000 1.0000 -0.2500 -0.5000 1.0000 -1.0000
-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 -1.0000
5.5800 6.2165 1.0000 1.0000
ZL =[ 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.5185]T
c =[ -1.5000,0.7000,1.0000,0.5000]T a1 = -1.5000 a2 = 0.7000 b1 = 1.0000 b2 =0.5000
>>
10STEM PLOT OF INPUT M SERIES -1100WAVE OF MEASUREMENTS OF OUTPUT-10100-10STEM PLOT OF MEASUREMENTS OF OUTPUT02468101214160246810121416051015
图2 最小二乘一次完成算法仿真实例中输入信号和输出观测值
从仿真结果表1可以看出,由于所用的输出观测值没有任何噪声成分,所以辨识结果也无任何误差。
表1 最小二乘一次完成算法的辨识结果
参 数 a1 a2 b1 b2 真 值 -1.5 0.7 1.0 0.5 估计值 -1.5 0.7 1.0 0.5
例2 根据热力学原理,对给定质量的气体,体积V与压力P之间的关系为PV,其中和为待定参数。经实验获得如下一批数据, V的单位为立方英寸,P的单位为帕每平方英寸。 V .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之间的关系PV改为对数关系,即,logPlogVlog。此式与式对比可得:z(k)logP,h(k)[logVz(k)h(k)θe(k),
例2的Matlab6.0程序如下。
%实际压力系统的最小二乘辨识程序,文件名:LS2.m clear %工作间清零
V=[.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
θ[1], log]。
%logP=-alpha*logV+logbeita=[-logV,1][alpha,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(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 = [.3000, 61.8000, 72.4000, 88.7000, 118.6000, 194.0000]P = [61.2000, 49.5000, 37.6000, 28.4000, 19.2000, 10.1000]ZL = [4.1141, 3.9020, 3.6270, 3.34, 2.99, 2.3125] HL =
-3.9945 1.0000 -4.1239 1.0000 -4.2822 1.0000 -4.4853 1.0000 -4.7758 1.0000 -5.2679 1.0000 c4 = 1.4042 9.6786 alpha = 1.4042 beita = 1.5972e+004
>>
仿真结果表明,用最小二乘一次完成算法可以迅速辨识出系统参数,
即=1.4042,=1.5972e+004。
例3 考虑图3所示的仿真对象,图中, v(k)是服从N(0,1)分布的不相关随机噪声。且
1G(z1)B(z)A(z1) ,N(z11)D(z)C(z1) ,
A(z1)11.5z10.7z2C(z1)112B(z)1.0z0.5z 1D(z)1经过计算,得到系统真实的模型:
z(k)1.5z(k1)0.7z(k2)u(k1)0.5u(k2)v(k)
选择图3所示的辨识模型。仿真对象选择如下的模型结构
z(k)a1z(k1)a2z(k2)b1u(k1)b2u(k2)v(k)
其中,v(k)是服从正态分布的白噪声N(0,1)。输入信号采用4位移位寄存器产生的M序列,幅度为0.03。
v(k) N(z1)e(k) G(z1)+ y(k) z(k) u(k) 图3 最小二乘递推算法辨识实例结构图
最小二乘递推算法辨识的Malab6.0程序流程如图4所示。下面给出具体程序。
%最小二乘递推算法辨识程序, 在光盘中的文件名: RL3.m clear %清理工作间变量 L=15; % M序列的周期
y1=1;y2=1;y3=1;y4=0; %四个移位寄存器的输出初始值 for i=1:L;%开始循环,长度为L
x1=xor(y3,y4); %第一个移位寄存器的输入是第三个与第四个移
位寄存器的输出的“或”
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; %为下一次的输入信号做准备 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); %输出采样信号
end
N 参数收敛满足要求?
画出被辨识参数的相对误差的图形 画出被辨识参数的各次递推估计值图形 Y 分离参数 计算被辨识参数的相对变化量 按照式(4.94)的第三式计算P(k) 按照式(4.96)的第一式计算(k) 按照式(4.95)的第二式计算K(k) 给被辨识参数和P赋初值 产生输出采样信号 画出辨识的输入信号径线图形 第四个移位寄存器的输出取反,并将幅值变为0.03得到辨识系统的输入信号样本值 给M序列的长度L和移位寄存器的输入赋初始值 工作间清零 结束 图4 最小二乘递推算法辨识的Malab6.0程序流程图
%RLS递推最小二乘辨识
c0=[0.001 0.001 0.001 0.001]'; %直接给出被辨识参数的初始值,即一个充分小的实向量
p0=10^6*eye(4,4); %直接给出初始状态P0,即一个充分大的实数单位矩阵
E=0.000000005; %取相对误差E=0.000000005 c=[c0,zeros(4,14)]; %被辨识参数矩阵的初始值及大小 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 列向量加入辨识参数矩阵的第k列 p1=p0-k1*h1'*p0; %求出 p(k)的值 p0=p1; %给下次用
if e2<=E break; %如果参数收敛情况满足要求,终止计算 end %小循环结束 end %大循环结束
c,e %显示被辨识参数及其误差(收敛)情况 %分离参数
a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:); ea1=e(1,:); ea2=e(2,:); eb1=e(3,:); eb2=e(4,:);
figure(2); %第二个图形 i=1:15; %横坐标从1到15
plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':') %画出a1,a2,b1,b2的各次辨识结果
title('Parameter Identification with Recursive Least Squares Method') %图形标题
figure(3); %第三个图形 i=1:15; %横坐标从1到15
plot(i,ea1,'r',i,ea2,'g',i,eb1,'b',i,eb2,'r:') %画出a1,a2,b1,b2的各次辨识结果的收敛情况
title('Identification Precision') %图形标题
程序运行结果: >>
c =
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.24 0.7500 0.5668 0.5020 0.5016 0.5008 0.5002 0.5002
0.030.020.010-0.01-0.02-0.0305Fig.1 Input Signal 1015
1.5b1 10.5b2 0a2 -0.5a1 -1-1.5051015Fig. 2 Parameter Identification with Recursive Least Squares Method Identification Precision
300200Convergence of b1 1000Convergence of a2 -100-200-300-400-500Convergence of b2 Convergence of a1 0510Fig.3 Identification Error 15
图5 最小二乘递推算法的参数辨识仿真
-1.5000 -1.5000 -1.5000 -1.4999 -1.4999 0.7000 0.7000 0.7000 0.7000 -0.7000 0.9999 0.9999 0.9999 0.9999 0.9999 0.5000 0.5000 0.5000 0.5000 0.5000 e =
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 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.0001 0.0001 0.0000 -0.0000 -0.0000 0.0000 0.0001 -0.0000 0.0000 0.0000 0.0000 0.0001 0.0000 0.0000 0.0000 -0.0000
-0.0004 0.0000 -0.0000 0.0000 -0.0000
表2 最小二乘递推算法的辨识结果
参 数 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所示的仿真对象,图中, v(k)是服从N(0,1)分布的不相关随机噪声。
v(k) + u(k) G(z1)N(z1)
+ y(k) e(k) + z(k) 图4 增广最小二乘法辨识实例结构图 且
1G(z1)B(z)A(z1) ,N(z11)D(z)C(z1) ,
A(z1)11.5az10.7z2C(z1)1112B(z)1.0z0.5z 112D(z)1z0.2z
画出系统的实际输出、输出采样及模型输出 画出被辨识参数的各次估计值及其误差 N 收敛满足要求? Y 显示被辨识参数、辨识精度、输出采样、系统实际输出、模型输出 计算被辨识参数的相对变化量 计算系统的实际输出响应及模型的响应 按照式(4-1)的第三式递推计算P(k) 按照式(4-153)的第二式递推计算K(k) 给被辨识参数和P赋初值 产生输出采样信号 画出输入信号径线图形及随机噪声图形 产生随机噪声信号 用4位移位寄存器产生幅值为1的输入信号 给M序列的长度L赋值 工作间清零 按照式(4-152)的第一式递推计算
停机 图 增广最小二乘递推算法辨识的Malab6.0程序流程图 模型结构选用如下形式:
z(k)a1z(k1)a2(k2)b1u(k1)b2u(k2)v(k)d1v(k1)d2(v(k2)
增广最小二乘辨识程序流程上图所示。Matlab6.0程序如下。
%增广最小二乘辨识程序 clear
L=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序列的值为\"0\"时,辨识的输入信号取“1” end
y1=x1;y2=x2;y3=x3;y4=x4; %为下一次的输入信号准备 end
figure(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); %输出采样矩阵、不考虑噪声时系统输出矩阵、不考虑噪声时模型输出矩阵、模型输出矩阵的大小
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=10^6*eye(7,7); %直接给出初始状态P0,即一个充分大的实数单位矩阵
E=0.; %相对误差E=0.000000005
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; %辨识参数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]; %find p(k) p0=p1; %给下次用
if e2<=E break; %若收敛情况满足要求,终止计算 end %判断结束 end %循环结束
c, e, %显示被辨识参数及参数收敛情况
z, zs, zm %显示输出采样值、系统实际输出值、模型输出值 %分离变量
a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:); %分离出a1、 a2、 b1、 b2 d1=c(5,:); d2=c(6,:); d3=c(7,:); %分离出d1、 d2、 d3
ea1=e(1,:); ea2=e(2,:); eb1=e(3,:); eb2=e(4,:); %分离出a1、 a2、 b1、 b2的收敛情况
ed1=e(5,:); ed2=e(6,:); ed3=e(7,:); %分离出d1 、d2 、d3的收敛情况
figure(2); %画第二个图形
i=1:60;plot(i,a1,'r',i,a2,'r:',i,b1,'b',i,b2,'b:',i,d1,'g',i,d2,'g:',i,d3,'g+') %画出各个被辨识参数
title('Parameter Identification with Recursive Least Squares Method') %标题
figure(3); i=1:60; %画出第三个图形
plot(i,ea1,'r',i,ea2,'r:',i,eb1,'b',i,eb2,'b:',i,ed1,'g',i,ed2,'g:',i,ed2,'r+') %画出各个参数收敛情况
title('Identification Precision') %标题
figure(4); subplot(4,1,1); %画出第四个图形,第一个子图
i=1:60;plot(i,zs(i),'r') %画出被辨识系统在没有噪声情况下的实际输出响应
subplot(4,1,2); i=1:60;plot(i,z(i),'g') %第二个子图,画出被辨识系统的采样输出响应
subplot(4,1,3); i=1:60;plot(i,zm(i),'b') %第三个子图,画出模型含有噪声的输出响应
subplot(4,1,4); i=1:60;plot(i,zs(i),'b') %第四个子图,画出模型去除噪声后的输出响应 程序执行结果:
>> 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,-1] v =
[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.33,0.4820,-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.9534, 0.2336,1.2352,-0.5785,-0.5015] c =
0.0010 0 0.0010 -0.27 -0.9025 -0.9390 -0.8620 -1.1236 -1.5000 -1.5000 -1.5000
0.0010 0 0.0010 0.0010 -0.0734 -0.2661 -0.1199 0.3259 0.7000 0.7000 0.7000
0.0010 0 0.0592 0.4560 0.5300 0.5293 0.9458 0.02 1.0000 1.0000 1.0000
0.0010 0 0.0572 0.8186 0.8500 0.8639 1.1157 1.2957 0.5000 0.5000 0.5000
0.0010 0 0.0796 0.7342 0.17 0.5516 0.3847 0.2459 1.0000 1.0000 1.0000
0.0010 0 -0.04 -0.5981 -0.3420 -0.4456 -0.4044 -0.8443 -1.0000 -1.0000 -1.0000
0.0010 0 -0.0655 -0.7795 -0.8572 -0.7412 -0.4506 -0.1974 0.2000 0.2000 0.2000
e =
0 0 0 -279.9426 2.2355 0.0404 -0.0820 0.3035 0.3350 0.0000 0.0000
0 0 0 0 -74.37 2.6263 -0.95 -3.71 1.1479 -0.0000 0.0000
0 0 58.2212 6.7007 0.1622 -0.0013 0.7868 -0.42 0.8512 0.0000 0.0000
0 0 -58.2212 -15.3052 0.0384 0.0163 0.2915 0.1613 -0.6141 -0.0000 -0.0000
0 0 -80.5566 -10.2283 -0.2621 0.0183 -0.3027 -0.3607 3.0663 0.0000 0.0000
0 0 -90.3556 5.6936 -0.4282 0.3029 -0.0925 1.0880 0.1844 -0.0000 0.0000
0 0 -66.47 10.9059 0.0996 -0.13 -0.3920 -0.5619 -2.0130 0.0000 0.0000
z =
[0,0,-0.4400,-3.9913,-5.7014,-6.9415,-7.8178,-3.9097,1.43,2.4075,3.5810,6.6598,6.0079,3.53,2.4376, -0.09,-2.3472,-2.3178,-4.4100,-6.9915,-6.0233,-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.0478] zs =
[0,0,-0.5000,-0.8401,4.17,4.2583,6.9212,8.3677,1.20,-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.09,6.0108,2.8415,-5.80,-6.5369,-4.5087,-7.9595,-5.4608, 1.4428,0.2369,4.4268,2.3396,2.3834,4.0042,4.6696,8.90,5.1745,0.7719,-5.4923,-1.4653,-3.1765,-7.2947,-6.4279,-0.0129,0.4961,5.86,1.4516,1.49,1.9010,3.0741,7.1232,5.2248,1.9393,-4.2395,-3.3718,-1.9258, 6.93,-7.3995,1.2763 ] zm =
[0,0,-0.4400,-3.9913,-5.7014,-6.9415,-7.8178,-3.9097,1.43,2.4075,3.5810,6.6598,6.0079,3.53,2.4376, -0.09,-2.3472,-2.3178,-4.4100,-6.9915,-6.0233,-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.0478]
10.50-0.5-1010203040Fig.1(1) Input Signal of M Series 5060420-2-4010203040Fig.1(2) Stochastic Noises v 5060
1.5b1&d1 1a2 0.5b2 d3 0-0.5d2 -1a1 -1.50102030405060Fig.2 Parameter Identification With Recursive Least Squares Method
1000Error of a2 500Error of b2 Error of a1 Errorm of d1 0Error of b1 Error of d2 Error of d3 -500010203040Fig.3 Identification Error5060
100-10100-10100-10200-20010203040Fig.4 Responses 506001020Model Response Without Noise 3040506001020Model Response With Noises 3040506001020System Response With Noises 30405060System Response Without Noises
图5 增广最小二乘递推算法辨识仿真
表3 增广最小二乘递推算法的辨识结果 参 数 a1 a2 b1 b2 d1 d2 d3 真 值 -1.5 0.7 1.0 0.5 1.0 -1.0 0.2 估计值 -1.5 0.7 1.0 0.5 1.0 -1.0 0.2 仿真结果表明,递推到第9步时,参数辨识的结果基本达到稳定状态,即a1= -1.5000, a2= 0.7000, b1=1.0000, b2=0.5000, d1=1.0000, d2=-1.0000, d3=0.2000。此时,辨识参数的相对变化量E0.000000005。与最小二乘递推算法相比,增广最小二乘递推算法虽
clear all; N=1000;
A=[1 -1.5 0.705]; B=[0 0.65 0.48 -0.008]; C=[ 1 -0.527 0.1]; M1=idpoly(A,B,C); step(M1,[0 100]); grid; %
U=iddata([] ,idinput(N,'prbs')); % E=iddata([],idinput(N,'rgs')); Y1=sim(M1,[U,E]); %output data Z=iddata(Y1,U); %ARMAX order guji
NN=struc(1:2,1:4,1:4); Loss_fun=arxstruc(Z,Z,NN); order=selstruc(Loss_fun,'aic'); order=[order(1),order(2),1,order(3)] %ARMAX prameters guji Model_para=armax(Z,order); present(Model_para); compare(Z,Model_para);
clear
U = [ 0, 0.84, 0.14, - 0.96, - 0.28, 0.93,0.99, 0.41 ]'; Z = [ 0, 0.195, 0.513, - 0.272, - 0.42, 0.058,0.263, 0.45 ]'; %system input output inital value m = iddata ( Z, U ) ;
V = arx (m, [1 1 1 ] ); %based on basic LS present(V ) %display LS xinxi V1 = iv4 (m, [1 1 1 ] );
%4 jie fu zhu bianliangfa canshu bianshi present(V1 ) %xianshi
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- hids.cn 版权所有 赣ICP备2024042780号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务