应用最小二乘一次完成法和递推最小二乘法算法的系统辨识讲解
- 格式:doc
- 大小:443.26 KB
- 文档页数:15
1最小二乘法的理论基础1.1最小二乘法设单输入单输出线性定长系统的差分方程表示为:其中δ(k)为服从N(0,1)的随机噪声,现分别测出n+N 个输出输入值y(1),y(2),…,y(n+N),u(1),u(2),…,u(n+N),则可写出N 个方程,写成向量-矩阵形式(4.1.1)()()()()()()()()1201121n n y k a y k a y k a y k n b u k b u k b u k n k ξ=-------++-++-+()()()()()()101122,,n n a y n n y n a n y b y n N n N b ξξθξξ⎡⎤⎢⎥++⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥++⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥++⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦()()()()()()()()()()()()()()()()()()10111121222112n n y n y n y u n u y n y n y u n u y n N y n N y N u n N u N a n a n b n N b ξξξ+--+⎡⎤⎡⎤⎢⎥⎢⎥+-+-+⎢⎥⎢⎥=⨯⎢⎥⎢⎥⎢⎥⎢⎥+-+--+⎢⎥⎢⎥⎣⎦⎣⎦⎡⎤⎢⎥+⎡⎤⎢⎥⎢⎥⎢⎥+⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦则式(1.1.1)可写为 (4.1.2) 式中:y 为N 维输出向量;ξ为N 为维噪声向量;θ为(2n+1)维参数向量;Φ为N ×(2n+1)测量矩阵。
因此,式(4.1.1)是一个含有(2n+1)个未知参数,由N 个方程组成的联立方程组。
11y θφφξ--=-在给定输出向量y 和测量矩阵Φ的条件下求参数θ的估计,这就是系统辨识问题。
设 表示 θ 的估计值,ŷ表示y 的最优估计,则有 (4.1.3) 式中:()()()10ˆˆ1ˆˆ2ˆˆ,ˆˆˆn n ay n a y n y b y n N b θ⎡⎤⎢⎥+⎡⎤⎢⎥⎢⎥⎢⎥+⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦设e(k)=y(k)- ŷ(k), e(k)称为残差,则有e=y- ŷ=y-Φθ 最小二乘估计要求残差的平方和最小,即按照指数函数(4.1.4)求J对 的偏导数并令其等于0可得:(4.1.5)由式(4.1.5)可得的 θ 最小二乘估计:(4.1.6)J 为极小值的充分条件是:即矩阵ΦT Φ为正定矩阵,或者说是非奇异的。
系统辨识之最小二乘法方法一、最小二乘一次性算法:首先对最小二乘法的一次性辨识算法做简要介绍如下:过程的黑箱模型如图所示:其中u(k)和z(k)分别是过程的输入输出,)(1-z G 描述输入输出关系的模型,成为过程模型。
过程的输入输出关系可以描述成以下最小二乘格式:)()()(k n k h k z T +=θ (1)其中z(k)为系统输出,θ是待辨识的参数,h(k)是观测数据向量,n(k)是均值为0的随机噪声。
利用数据序列{z (k )}和{h (k )}极小化下列准则函数:∑=-=Lk T k h k z J 12])()([)(θθ (2)使J 最小的θ的估计值^θ,成为最小二乘估计值。
具体的对于时不变SISO 动态过程的数学模型为 )()()()()(11k n k u z B k z z A +=-- (3)应该利用过程的输入、输出数据确定)(1-z A 和)(1-Z B 的系数。
对于求解θ的估计值^θ,一般对模型的阶次a n ,b n 已定,且b a n n >;其次将(3)模型写成最小二乘格式)()()(k n k h k z T +=θ (4)式中=------=T n n T b a b a b b b a a a n k u k u n k z k z k h ],,,,,,,[)](,),1(),(,),1([)(2121 θ (5)L k ,,2,1 =因此结合式(4)(5)可以得到一个线性方程组L L L n H Z +=θ (6)其中==T L TL L n n n n L z z z z )](),2(),1([)](),2(),1([ (7)对此可以分析得出,L H 矩阵的行数为),max(b a n n L -,列数b a n n +。
在过程的输入为2n 阶次,噪声为方差为1,均值为0的随机序列,数据长度)(b a n n L +>的情况下,取加权矩阵L Λ为正定的单位矩阵I ,可以得出:L T L L T L z H H H 1^)(-=θ (8)其次,利用在Matlab 中编写M 文件,实现上述算法。
1最小二乘法的理论基础1.1最小二乘法设单输入单输出线性定长系统的差分方程表示为:其中δ(k)为服从N(0,1)的随机噪声,现分别测出n+N 个输出输入值y(1),y(2),…,y(n+N),u(1),u(2),…,u(n+N),则可写出N 个方程,写成向量-矩阵形式()()()()()()()()1201121n n y k a y k a y k a y k n b u k b u k b u k n k ξ=-------++-++-+L L ()()()()()()()()()()()()()()()()()()10111121222112n n y n y n y u n u y n y n y u n u y n N y n N y N u n N u N a n a n b n N b ξξξ+--+⎡⎤⎡⎤⎢⎥⎢⎥+-+-+⎢⎥⎢⎥=⨯⎢⎥⎢⎥⎢⎥⎢⎥+-+--+⎢⎥⎢⎥⎣⎦⎣⎦⎡⎤⎢⎥+⎡⎤⎢⎥⎢⎥⎢⎥+⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦LLL L M M MMLL M M M(4.1.1)则式(1.1.1)可写为 (4.1.2)式中:y 为N 维输出向量;ξ为N 为维噪声向量;θ为(2n+1)维参数向量;Φ为N ×(2n+1)测量矩阵。
因此,式(4.1.1)是一个含有(2n+1)个未知参数,由N 个方程组成的联立方程组。
11y θφφξ--=-在给定输出向量y 和测量矩阵Φ的条件下求参数θ的估计,这就是系统辨识问题。
设 表示 θ 的估计值,ŷ表示y 的最优估计,则有 (4.1.3) 式中:()()()10ˆˆ1ˆˆ2ˆˆ,ˆˆˆn n ay n a y n y b y n N b θ⎡⎤⎢⎥+⎡⎤⎢⎥⎢⎥⎢⎥+⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦M M M ()()()()()()()()()()()()()()()()()()101122,,11112221n n a y n n y n a n y b y n N n N b y n y u n u y n y u n u y n N y N u n N u N ξξθξξφ⎡⎤⎢⎥++⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥++⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥++⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦--+⎡⎤⎢⎥-+-+⎢⎥=⎢⎥⎢⎥-+--+⎢⎥⎣⎦M M M M L LL L M MMLL y φθξ=+ˆθˆˆyθ=Φ设e(k)=y(k)- ŷ(k), e(k)称为残差,则有e=y- ŷ=y-Φθ 最小二乘估计要求残差的平方和最小,即按照指数函数(4.1.4)求J对 的偏导数并令其等于0可得:(4.1.5)由式(4.1.5)可得的 θ 最小二乘估计:(4.1.6)J 为极小值的充分条件是:即矩阵ΦT Φ为正定矩阵,或者说是非奇异的。
目录一、系统辨识的定义.................................................................................................................. - 2 -二、最小二乘法的引出.............................................................................................................. - 2 -三、最小二乘法的原理.............................................................................................................. - 3 -3.1 最小二乘法一次完成推导[1]........................................................................................ - 3 -3.2最小二乘法的缺陷[ 5].................................................................................................... - 5 -四、其他系统辨识方法.............................................................................................................. - 5 -4.1 基于BP神经网络的系统辨识方法特点[3]................................................................. - 5 -4.2 基于遗传算法的系统辨识算法................................................................................... - 6 -五、结论...................................................................................................................................... - 7 -六、参考文献.............................................................................................................................. - 7 -系统辨识方法简介摘要:在研究一个控制系统过程中,建立系统的模型十分必要。
最小二乘法的原理及其应用一、研究背景在科学研究中,为了揭示某些相关量之间的关系,找出其规律,往往需要做数据拟合,其常用方法一般有传统的插值法、最佳一致逼近多项式、最佳平方逼近、最小二乘拟合、三角函数逼近、帕德(Pade)逼近等,以及现代的神经网络逼近、模糊逼近、支持向量机函数逼近、小波理论等。
其中,最小二乘法是一种最基本、最重要的计算技巧与方法。
它在建模中有着广泛的应用,用这一理论解决讨论问题简明、清晰,特别在大量数据分析的研究中具有十分重要的作用和地位。
随着最小二乘理论不断的完善,其基本理论与应用已经成为一个不容忽视的研究课题。
本文着重讨论最小二乘法在化学生产以及系统识别中的应用。
二、最小二乘法的原理人们对由某一变量t或多个变量t1…..tn 构成的相关变量y感兴趣。
如弹簧的形变与所用的力相关,一个企业的盈利与其营业额,投资收益和原始资本有关。
为了得到这些变量同y之间的关系,便用不相关变量去构建y,使用如下函数模型,q个相关变量或p个附加的相关变量去拟和。
通常人们将一个可能的、对不相关变量t的构成都无困难的函数类型充作函数模型(如抛物线函数或指数函数)。
参数x是为了使所选择的函数模型同观测值y相匹配。
(如在测量弹簧形变时,必须将所用的力与弹簧的膨胀系数联系起来)。
其目标是合适地选择参数,使函数模型最好的拟合观测值。
一般情况下,观测值远多于所选择的参数。
其次的问题是怎样判断不同拟合的质量。
高斯和勒让德的方法是,假设测量误差的平均值为0。
令每一个测量误差对应一个变量并与其它测量误差不相关(随机无关)。
人们假设,在测量误差中绝对不含系统误差,它们应该是纯偶然误差,围绕真值波动。
除此之外,测量误差符合正态分布,这保证了偏差值在最后的结果y上忽略不计。
确定拟合的标准应该被重视,并小心选择,较大误差的测量值应被赋予较小的权。
并建立如下规则:被选择的参数,应该使算出的函数曲线与观测值之差的平方和最小。
用函数表示为:用欧几里得度量表达为:最小化问题的精度,依赖于所选择的函数模型。
递推最小二乘法辨识与仿真现在有如下的辨识仿真对象:图中, )(k v 是服从N )1,0(分布的不相关随机噪声。
且)(1-zG )()(11--=z A z B ,)(1-z N )()(11--=zC zD , (1)⎪⎪⎩⎪⎪⎨⎧=+==+-=--------1)(5.00.1)()(7.05.11)(121112111z D z zz B z C z z a z A选择上图所示的辨识模型。
仿真对象选择如下的模型结构:)()2()1()2()1()(2121k w k u b k u b k y a k y a k y +-+-=-+-+可得系统模型为:)()2(5.0)1()2(7.0)1(5.1)(k w k u k u k y k y k y +-+-=-+-- 递推最小二乘法的推导公式如下:)]1(ˆ)()()[()1(ˆ)(ˆ--+-=k k k z k k k θh K θθτ )1()]()([)]()()1([)(11--=+-=--k k k k k k k τP h K I h h PP τ1]1)()1()()[()1()(-+--=k k k k k k h P h h P K τ相关程序如下:% exp053 %%递推最小二乘法程序%clear%清理工作间变量L=55;% M序列的周期y1=1;y2=1;y3=1;y4=0;%四个移位寄存器的输出初始值for i=1:L;%开始循环,长度为Lx1=xor(y3,y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出x3=y2;%第三个移位积存器的输入是第2个移位积存器的输出x4=y3;%第四个移位积存器的输入是第3个移位积存器的输出y(i)=y4;%取出第四个移位积存器幅值为"0"和"1"的输出信号,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%大循环结束,产生输入信号uw=normrnd(0, sqrt(0.1), 1, 55);%加入白噪声figure(1);%第1个图形,伪随机序列stem(u),grid on%以径的形式显示出输入信号并给图形加上网格z(2)=0;z(1)=0;%取z的前两个初始值为零for k=3:55;%循环变量从3到55z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+w(k);%给出理想的辨识输出采样信号endc0=[0.001 0.001 0.001 0.001,0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(5,5);%直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005;%相对误差E=0.000000005c=[c0,zeros(5,54)];%被辨识参数矩阵的初始值及大小e=zeros(5,55);%相对误差的初始值及大小for k=3:55; %开始求Kh1=[-z(k-1),-z(k-2),u(k-1),u(k-2),w(k)]'; x=h1'*p0*h1+1; x1=inv(x); %开始求K(k)k1=p0*h1*x1;%求出K的值d1=z(k)-h1'*c0; c1=c0+k1*d1;%求被辨识参数ce1=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;%若参数收敛满足要求,终止计算end%小循环结束end%大循环结束c;%显示被辨识参数e;%显示辨识结果的收敛情况%分离参数a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:);d1=c(5,:);ea1=e(1,:); ea2=e(2,:); eb1=e(3,:); eb2=e(4,:);figure(2);%第2个图形i=1:55;%横坐标从1到55plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':',i,b1,'k') %画出a1,a2,b1,b2的各次辨识结果title('系统辨识结果')%图形标题如果系统中的参数为:⎪⎪⎩⎪⎪⎨⎧+-=+==+-=----------211211121112.01)(5.00.1)()(7.05.11)(z z z D z zz B z C z z a z A 那么系统模型机构为:)2(2.0)1()()2(5.0)1()2(7.0)1(5.1)(-+--+-+-=-+--k w k w k w k u k u k y k y k y 相关程序如下: % exp054.m % %递推最小二乘法编程%clear%清理工作间变量 L=55;% M 序列的周期y1=1;y2=1;y3=1;y4=0;%四个移位寄存器的输出初始值 for i=1:L;%开始循环,长度为Lx1=xor(y3,y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或” x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出 x3=y2;%第三个移位积存器的输入是第2个移位积存器的输出 x4=y3;%第四个移位积存器的输入是第3个移位积存器的输出 y(i)=y4;%取出第四个移位积存器幅值为"0"和"1"的输出信号,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%大循环结束,产生输入信号uw=normrnd(0, sqrt(0.1), 1, 55);figure(1);%第1个图形,伪随机序列stem(u),grid on%以径的形式显示出输入信号并给图形加上网格z(2)=0;z(1)=0;%取z的前两个初始值为零for k=3:55;%循环变量从3到55z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+w(k)-w(k-1)+0.2*w(k-2);%给出理想的辨识输出采样信号endc0=[0.001 0.001 0.001 0.001,0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量p0=10^6*eye(5,5);%直接给出初始状态P0,即一个充分大的实数单位矩阵E=0.000000005;%相对误差E=0.000000005c=[c0,zeros(5,54)];%被辨识参数矩阵的初始值及大小e=zeros(5,55);%相对误差的初始值及大小for k=3:55; %开始求Kh1=[-z(k-1),-z(k-2),u(k-1),u(k-2),w(k),w(k-1),w(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;%求被辨识参数ce1=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;%若参数收敛满足要求,终止计算end%小循环结束end%大循环结束c;%显示被辨识参数e;%显示辨识结果的收敛情况%分离参数a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:);d1=c(5,:);d2=c(6,:);d3=c(7,:); figure(2);%第2个图形i=1:55;%横坐标从1到55plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':',i,d1,'k',i,d2,':',i,d3,'*') %画出a1,a2,b1,b2的各次辨识结果title('系统辨识结果')%图形标题。
目录1引言 (2)1.1概述 (2)1.2辨识的基本步骤 (2)2系统辨识输入信号的产生方法和理论依据 (3)2.1白噪声序列 (3)2.1.1白噪声序列的产生方法 (3)2.2 M序列的产生 (4)2.2..1 伪随机噪声 (4)2.2.2 M序列的产生方法 (4)3应用经典辨识方法的辨识方案。
(6)3.1经典辨识方法概述 (6)3.2经典辨识方法的实现 (6)4最小二乘法的理论基础 (7)4.1最小二乘法 (7)4.1.1最小二乘法估计中的输入信号 (9)4.1.2最小二乘估计的概率性质 (9)4.2递推最小二乘法 (10)5两种算法的实现方案 (11)5.1最小二乘法一次完成算法实现 (11)5.1.1最小二乘一次完成算法程序框图 (11)5.1.2一次完成法程序 (11)5.1.3一次完成算法程序运行结果 (11)5.1.4辨识数据比较 (12)5.1.5程序运行曲线 (12)5.2递推最小二乘法的实现 (12)5.2.1递推算法实现步骤 (12)5.2.2程序编制思路: (13)5.2.3递推最小二乘法程序框图 (14)5.2.4程序运行曲线 (15)5.2.5测试结果 (16)5.2.6递推数据表 (16)6结论 (16)7参考文献 (17)8附录 (17)应用最小二乘一次完成法和递推最小二乘法算法的系统辨识摘要:本题针对一个单输入单输出系统的便是问题,辨识的输入信号采用的是伪随机二位式序列(M序列),系统噪声为独立同分布高斯随机向量序列(白噪声),辨识的算法是递推最小二乘法和广义最小二乘法,本文简单描述应用经典辨识方法的辨识方案,详细描述了输入信号、噪声的产生方法及matlab程序,阐述了用两种不同算法的辨识原理并对它们的推导过程及辨识程序编制思路做了详细的描述。
最后结合真值与估计值对不同辨识算法的优劣进行了比较。
关键词:系统辨识M序列最小二乘法1引言1.1概述系统辨识是现代控制理论中的一个分支,它是根据系统的输入输出时间函数来确定描述系统行为的数学模型。
一、实验目的1. 理解系统辨识的基本概念和原理。
2. 掌握递推最小二乘算法在系统辨识中的应用。
3. 通过实验,验证算法的有效性,并分析参数估计误差。
二、实验原理系统辨识是利用系统输入输出数据,对系统模型进行估计和识别的过程。
在本实验中,我们采用递推最小二乘算法对系统进行辨识。
递推最小二乘算法是一种参数估计方法,其基本思想是利用当前观测值对系统参数进行修正,使参数估计值与实际值之间的误差最小。
递推最小二乘算法具有计算简单、收敛速度快等优点。
三、实验设备1. 电脑一台,装有MATLAB软件。
2. 系统辨识实验模块。
四、实验步骤1. 打开MATLAB软件,运行系统辨识实验模块。
2. 在模块中输入已知的系数a1、a2、b1、b2。
3. 生成输入序列u(t)和噪声序列v(t)。
4. 将输入序列u(t)和噪声序列v(t)加入系统,产生输出序列y(t)。
5. 利用递推最小二乘算法对系统参数进行辨识。
6. 将得到的参数估计值代入公式计算参数估计误差。
7. 仿真出参数估计误差随时间的变化曲线。
五、实验结果与分析1. 实验结果根据实验步骤,我们得到了参数估计值和参数估计误差随时间的变化曲线。
2. 结果分析(1)参数估计值:通过递推最小二乘算法,我们得到了系统参数的估计值。
这些估计值与实际参数存在一定的误差,这是由于噪声和系统模型的不确定性所导致的。
(2)参数估计误差:从参数估计误差随时间的变化曲线可以看出,递推最小二乘算法在短时间内就能使参数估计误差达到较低水平。
这说明递推最小二乘算法具有较好的收敛性能。
(3)参数估计误差曲线:在实验过程中,我们发现参数估计误差曲线在初期变化较快,随后逐渐趋于平稳。
这表明系统辨识过程在初期具有较高的灵敏度,但随着时间的推移,参数估计误差逐渐减小,系统辨识过程逐渐稳定。
六、实验结论1. 递推最小二乘算法在系统辨识中具有较好的收敛性能,能够快速、准确地估计系统参数。
2. 实验结果表明,递推最小二乘算法能够有效减小参数估计误差,提高系统辨识精度。
1最小二乘法的理论基础1.1最小二乘法设单输入单输出线性定长系统的差分方程表示为:其中δ(k)为服从N(0,1)的随机噪声,现分别测出n+N 个输出输入值y(1),y(2),…,y(n+N),u(1),u(2),…,u(n+N),则可写出N 个方程,写成向量-矩阵形式(4.1.1)()()()()()()()()1201121n n y k a y k a y k a y k n b u k b u k b u k n k ξ=-------++-++-+()()()()()()101122,,n n a y n n y n a n y b y n N n N b ξξθξξ⎡⎤⎢⎥++⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥++⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥++⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦()()()()()()()()()()()()()()()()()()10111121222112n n y n y n y u n u y n y n y u n u y n N y n N y N u n N u N a n a n b n N b ξξξ+--+⎡⎤⎡⎤⎢⎥⎢⎥+-+-+⎢⎥⎢⎥=⨯⎢⎥⎢⎥⎢⎥⎢⎥+-+--+⎢⎥⎢⎥⎣⎦⎣⎦⎡⎤⎢⎥+⎡⎤⎢⎥⎢⎥⎢⎥+⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦则式(1.1.1)可写为 (4.1.2) 式中:y 为N 维输出向量;ξ为N 为维噪声向量;θ为(2n+1)维参数向量;Φ为N ×(2n+1)测量矩阵。
因此,式(4.1.1)是一个含有(2n+1)个未知参数,由N 个方程组成的联立方程组。
11y θφφξ--=-在给定输出向量y 和测量矩阵Φ的条件下求参数θ的估计,这就是系统辨识问题。
设 表示 θ 的估计值,ŷ表示y 的最优估计,则有 (4.1.3) 式中:()()()10ˆˆ1ˆˆ2ˆˆ,ˆˆˆn n ay n a y n y b y n N b θ⎡⎤⎢⎥+⎡⎤⎢⎥⎢⎥⎢⎥+⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦⎢⎥⎢⎥⎣⎦设e(k)=y(k)- ŷ(k), e(k)称为残差,则有e=y- ŷ=y-Φθ 最小二乘估计要求残差的平方和最小,即按照指数函数(4.1.4)求J对 的偏导数并令其等于0可得:(4.1.5)由式(4.1.5)可得的 θ 最小二乘估计:(4.1.6)J 为极小值的充分条件是:即矩阵ΦT Φ为正定矩阵,或者说是非奇异的。
1.1.1最小二乘法估计中的输入信号当矩阵ΦT Φ的逆阵存在是,式(1.1.6)才有解。
一般地,如果u(k)是随机序列或伪随机二位式序列,则矩阵ΦT Φ是非奇异的,即(ΦT Φ)-1存在,式(1.1.6)有解。
现在从ΦT Φ必须正定出发,讨论对u(k)的要求。
y φθξ=+ˆθˆˆyθ=Φ()()ˆˆTT J e e y y θθ==-Φ-Φˆθ()ˆ20ˆT J y θθ∂=-Φ-Φ=∂ˆT T y θΦΦ=Φ()1ˆT T y θ-=ΦΦΦ220ˆTJ θ∂=ΦΦ>∂1n N yyyu T+-ΦΦ⎡⎤当N 足够大时有(4.1.8)如果矩阵ΦT Φ正定,则Ru 是是对称矩阵,并且各阶主子式的行列式为正。
当N 足够大时,矩阵Ru 才是是对称的。
由此引出矩阵ΦT Φ正定的必要条件是u(k)为持续激励信号。
如果序列{u(k)}的n+1阶方阵Ru 是正定的,则称{u(k)}的n+1阶持续激励信号。
下列随机信号都能满足Ru 正定的要求 1. 有色随机信号 2. 伪随机信号 3.白噪声序列1.1.2最小二乘估计的概率性质 最小二乘估计的概率性质 1) 无偏性由于输出值y 是随机的,所以θ是随机的,但注意θ不是随机值。
如果{}{}ˆE E θθθ==,则称ˆθ是θ无偏估计 2)一致性估计误差θ的方差矩阵为(4.1.9)上式表明当N →∞时,θ以概率1趋近于θ。
当ξ(k )为不相关随机序列时,最小二乘估计具有无偏性和一致性 3)有效性如果式(1.1.2)中的ξ的均值为0且服从正态分布的白噪声向量,则最小二乘参数估计值 为有效值,参数估计偏差的方差达到Cramer-Rao 不等式的下界,即(4.1.10)式中M 为Fisher 矩阵,且(4.1.11)4)渐近正态性如果式(4.1.2)中的ξ是均值为0且服从正态分布的白噪声向量,则最小二乘参数估计值ˆθ服从正态分布,即..11y uy W P T yu u R R R R R N ⎡⎤ΦΦ−−−→=⎢⎥⎣⎦121ˆT Var E NN σθ-⎧⎫⎪⎪⎛⎫=ΦΦ⎨⎬⎪⎝⎭⎪⎪⎩⎭21ˆlim lim 0,..1N N Var R w p Nσθ-→∞→∞==ˆθ(){}121ˆT Var E M θσ--=ΦΦ=()()ˆˆln /ln /ˆˆTp y p y M E θθθθ⎧⎫⎡⎤⎡⎤∂∂⎪⎪⎢⎥⎢⎥=⎨⎬⎢⎥⎢⎥∂∂⎪⎪⎣⎦⎣⎦⎩⎭12ˆT -1.2递推最小二乘法为了实现实时控制,必须采用递推算法,这种辨识方法主要用于在线辨识 设已获得的观测数据长度为N ,则估计方差矩阵为 式中 于是如果再获得1组新的观测值,则又增加1个方程得新的参数估计值 式中应用矩阵求逆引理,可得1N P +和N P 的递推关系式矩阵求逆引理 设A 为n ×n 矩阵,B 和C 为n ×m 矩阵,并且A ,A +BCT 和I+CTA-1B 都是非奇异矩阵,则有矩阵恒等式(4.2.2)得到递推关系式由于1TN N N P ψψ+是标量,因而上式可以写成(4.2.3)最后,得最小二乘法辨识公式(4.2.4)有2种给出初值的办法(1)设N0(N0>n )为N 的初始值,可算出(4.2.5)N N NY θξ=Φ+()1ˆNT T N N N NY θ-=ΦΦΦ()122T N NN Var P θσσ-=ΦΦ=()1T N N N P -=ΦΦˆNT N N N P Yθ=Φ111T N N N y ψθξ+++=+()1111ˆT N N N N N N P Y y θψ++++=Φ+()11111111TN N TT T N N N N N N P P ψψψψ---+++++⎧⎫ΦΦ⎡⎤⎡⎤⎪⎪==+⎨⎬⎢⎥⎢⎥⎣⎦⎣⎦⎪⎪⎩⎭()()111111T T T A BC A A B I C A B C A ------+=-+()11111T TN N N N N N N N NP P P I P P ψψψψ-++++=-+()111111T T N N N N N N N N NP P P P P ψψψψ-++++=-+()10000000ˆ,TT N N N N N N N P P Y θ-=ΦΦ=Φ()1111ˆˆˆT N N N N N NK y θθψθ++++=+-()11111T N N N N N N K P P ψψψ-+++=+()1111111T T N N N N N N N N NP P P P P ψψψψ-+++++=-+(4.2.1)(2)假定200ˆ0,,P c I θ==C 是充分大的常数,I 为(2n+1) ×(2n+1)单位矩阵,则经过若干次递推之后能得到较好的参数估计。
[1][2][4]2两种算法的实现方案2.1最小二乘法一次完成算法实现如果把式(1.1.6)中的ˆθ取好足够的输入—输出数据以后一次计算出来,那么这种算法就式最小二乘法的一次完成法。
2.1.1最小二乘一次完成算法程序框图2.1.2一次完成法程序 具体程序参见附录42.1.3一次完成算法程序运行结果 ans =1.5000 0.7000 1.0000 0.5000 a1 = 1.5000 a2 = 0.7000 b1 =1.00002.1.4辨识数据比较2.1.5程序运行曲线-101输入u (k )0102030405060-505输出z (k)0102030405060-505离散输出z (k )2.2递推最小二乘法的实现2.2.1递推算法实现步骤1)输入M 序列的产生程序,可以参见3.2当中M 序列产生方法(具体程序见附录。
) 2)初始化。
一种简单的方法是选择ˆ0nθ=和2n P C I =,其中C 为尽量大的数,然后以它们为起始值进行计算(参照式2.2.3)。
可以证明,当C →∞时,按照递推公式算得的将与上面用批处理算法求得的结果相同,当N 很大时,C 的选择便无关紧要了。
3)递推算法的停机标准:()()()1ˆˆ1maxˆi i iik k k θθεθ-∀--<,ε是适当小的数。
4)最小二乘估计的递推算法系统参数的步骤如下:(1)产生系统输入信号M 序列,输入系统阶次,计算输入和输出数据u (i ),y (i ),i=1,2,…,n;(2)置N=n ,10ˆ0,10N NP I θ==(I …单位矩阵); (3)形成行向量[]1()(1)()(1N y n y N n u N u N n ψ+=--+-+-(4)计算()()()111111;TTN N N K P N N P N ψψψ-+⎡⎤=++++⎣⎦(5)输入新测量数据y ( N+1 )和u (N+1);(6)计算()11ˆˆˆ(1)1;N N N NK y N N θθψθ++⎡⎤=++-+⎣⎦(7)计算[]111;N N N N P I K P ψ+++=- (8)输出1ˆN θ+和1N P +; (9)N ←N+1,转(3); 2.2.2程序编制思路:(1)产生M 序列,通过计算,依据算出输出值,设定递推初始值,采用4.2.4方法2设定辨识参数初值,0ˆθ为一个很小的量,P0为一个很大值的4×4矩阵,设定误差量,作为停机标准。
(2)依据设定,计算[]1(2)(1)(1)(2)Ty y u u ψ=--,1011T P ψψ⨯⨯+可以算出为一标量,依据式4.2.5算出K1,K1为4×1矩阵。
(3)依据式4.2.5计算出1ˆθ,和1P ,加入估计参数矩阵; (4)计算误差大小,求出相对变化率,加入误差矩阵第一列。
(5)再以1ˆθ和1P 为已知参数,重复(2)-(3)计算出参数2ˆθ,并加入估计参数矩阵。
(6)如此循环,计算出参数估计ˆnθ。
(7)判断误差变化率满足要求否,如果满足,则退出循坏,不再进行计算。
(8)分离估计参数,绘出图形。
2.2.3递推最小二乘法程序框图如下所示:具体程序参见附录2.2.4程序运行曲线-0.5-0.4-0.3-0.2-0.100.10.20.30.40.5图6M 序列信号的波形102030405060708090100-0.4-0.200.20.40.60.811.21.41.6Parameter Identification with Recursive Least Squares Method0102030405060708090100-400-2000200400600800100012001400Identification Precision2.2.5测试结果 见附录62.2.6地退数据表差的分布趋势。