系统辨识大作业汇总

发布 2021-05-05 15:56:28 阅读 4794

一、 问题描述。

考虑**对象:

式中,u(k)和z(k)是输入输出数据,v(k)是零均值、方差为1的不相关的随机噪声;u(k)采用与e(k)不相关的随机序列。

1. 设计实验,产生输入输出数据;

2. 使用基本最小二乘法估计参数;

3. 考虑其他适用于有色噪声的辨识方法估计参数;

4. 模型验证。

二、 问题分析。

对于单输入单输出系统(single input single output, siso),如图 1所示,将待辨识的系统看作“灰箱”,它只考虑系统的输入输出特性,而不强调系统的内部机理。图 1中,输入u(k)和输出z(k)是可以测量的,是系统模型,用来描述系统的输入输出特性,y(k)是系统的实际输出。是噪声模型,v(k)是均值为零的不相关随机噪声,e(k)是有色噪声。

图 1 siso系统的“灰箱”结构。

对于siso随机系统,被辨识模型为:

其相应的差分方程为。

若考虑被辨识系统或观测信息中含有噪声,被辨识模型可改写为。

式中,z(k)为系统输出量的第k次观测值;y(k)为系统输出量的第k次真值,y(k-1)为系统输出量的第k-1次真值,以此类推;u(k)为系统的第k个输入值,u(k-1)为系统的第k-1个输入值;v(k)为均值为0的不相关随机噪声。

1. 数据生成。

本部分需要生成系统的输入输出数据以及噪声数据。

1) 白噪声的生成。

辨识数据通常包含有噪声,如果该噪声相关性较弱或者强度很小,可近似看作白噪声。本次实验问题中,即服从标准正态分布,可以将噪声看作为服从正态分布的白噪声过程,在matlab中可以由randn函数生成。

2) 输入数据的生成。

伪随机二进制序列(pseudo random binary sequence, prbs)是广泛应用的一种伪随机序列,所谓“二进制”是指序列中每个随机变量只有“0”或“1”两种逻辑状态。伪随机二进制序列可由多级线性反馈移位寄存器组成的随机信号发生器产生,其中具有最长循环周期的线性移位寄存器序列是伪随机二进制序列最常见的一种形式,简称m序列(maximal length sequence)。m序列由于具有近似白噪声的性质,而且工程上易于实现,能够保证较好的系统辨识精度,是普遍采用的一种辨识用输入信号。

图 2 线性反馈移位寄存器产生伪随机二进制序列结构图。

以一个4级线性反馈移位寄存器产生伪随机二进制序列为例,如图 2所示。假设4个移位寄存器输出的初态非全零,移位寄存器的工作原理是:一个移位脉冲来到后,每级移位寄存器的输出移到下一级移位寄存器作为输入,最末一级移位寄存器的输出即为伪随机二进制序列。

3) 输出数据的生成。

根据给定的siso系统,可以求出z(k)的表达式:

其理想系数值为。

可以根据生成的白噪声序列和输入序列,以及必要的0初始值,带入表达式即可得到采样输出数据。

2. 差分模型阶检验。

在实际场景中,辨识模型的阶数和纯时延往往是未知的,在很多情况下仅仅依靠猜测。在模型的阶数和纯时延不确定时,设系统模型为。

其中n为模型的阶数,

模型的阶估计可以采用多种方法,本实验采用比较简单易行的损失函数检验法。定义预报误差(噪声方差的估计值)的平方和为损失函数,即。

当n从小增大时,应随之减小,当n增大到某一值时,应近似白噪声过程。采用以下的检验原则:在n-1这一点,最后一次出现陡峭的下降,此后就近似地保持不变或只有微小的下降,则取。

3. 参数辨识模型。

在系统辨识和参数估计领域中,最广泛的估计方法时最小二乘法和极大似然估计法。最小二乘法作为一种最基本的估计方法应用极为广泛,其他的大多数估计算法都与最小二乘法有关。它既可用于动态系统,也可用于静态系统;可用于线性系统,也可用于非线性系统;可用于离线估计,也可用于**估计。

在随机环境下利用最小二乘法时,无须知道观测数据的概率统计信息,而这种方法获得的结果,却有相当好的统计性质。

最小二乘参数估计方法**于数理统计的回归分析,它能提供一个在最小方差意义上与实验数据最好的你和的模型。该估计在一定条件下有最佳的统计特性,即它们是一致的,无偏的和有效的。最小二乘法时一个经典的方法,概念简明,适应范围广,在一些情况下,可得到与极大似然法一样好的统计效果,它能很方便地与其他辨识算法建立关系。

1)递推最小二乘算法。

当获得一批数据后,可一次求得相应的参数估计值,这样处理问题的方法称为一次完成算法或批处理算法。它在理论研究方面有许多方便之处,但当矩阵的维数增加时,矩阵求逆运算的计算量会急剧增加,将给计算机的计算速度和存储量带来负担,而且不适合**辨识,无法跟踪参数随时间变化的情况。为了减少计算量,减少数据在计算机中所占的存储量,也为了实时地辨识出动态系统的特性,在用最小二乘法进行参数估计时,把它转化成参数递推的估计。

参数递推估计是指被辨识的系统,每取得一次新的测量数据后,就在前一次估计结果的基础上,利用新引入的测量数据对前一次估计的结果进行修正,从而递推地得出新的参数估计值。这样,随着新测量数据的引入,一次接一次地进行参数估计,直到估计值达到满意的精确程度为止。最小二乘递推算法的基本思想可以概括为:

当前的估计值=上次估计值+修正项。

即新的估计值是在旧的估计值的基础上,利用新的观测数据对旧的估计值进行修正而成的。

考虑如下模型:,其中,分别是系统的输入和输出;是均值为零,方差为一的不相关白噪声。且满足:

令。则使用加权最小二乘参数估计递推算法(recursive weighted least squares, rwls)有:

图 3 最小二乘递推辨识参数估计过程中信息的变换。

可以看出,取的时候,加权最小二乘估计就退化成了最小二乘参数估计的递推算法(recursive least squares, rls)。加权参数可以在范围内选择,如果选,所有的采样数据都是等同加权的,如果,则表示对新近获得的数据给予充分大的加权因子,而削弱历史观测数据的影响。

实际计算时,需要首先确定初始参数和。

一般说来选取。

对于这样的系统,使用最小二乘法参数估计的递推算法进行辨识可以得到无偏估计,但是如果噪声模型必须用表示时,此时就无法得到无偏估计了,因为该方法没有把噪声模型考虑进去。

使用递推最小二乘法进行系统辨识的过程如图4所示。

2)增广最小二乘法。

当噪声均值为0时,最小二乘参数估计算法为无偏估计;当噪声的均值不为0时,最小二乘参数估计算法为有偏估计。为了解决最小二乘参数估计的有偏性,将噪声模型的辨识同时考虑进去,因此称为增广最小二乘法。该算法可以看成是对一般最小二乘参数辨识算法的简单推广或扩充,因此又称为扩充最小二乘算法。

考虑如下模型:,其中, 分别是系统的输入和输出;是均值为零,方差为一的不相关白噪声。且满足:

在模型阶次已经确定的情况下,令。

由于是白噪声,所以利用增广最小二乘法这一形式上的变换,即可获得参数的无偏估计。不过由于数据向量中包含着不可测的噪声量,因此要用相应的估计值代替。当;当,即可得递推公式如下:

一般说来选取初值。

增广最小二乘递推算法扩充了最小二乘法的参数向量和数据向量的维数,把噪声模型的辨识同时考虑进去。最小二乘法的许多结论对它都是适用的,但最小二乘法只能获得模型的参数估计,对于有色噪声,也就是噪声模型必须用表示时,只能采用增广最小二乘递推算法,方可获得无偏估计。这是最小二乘参数估计的递推算法不可代替的。

增广最小二乘算法的流程如图5所示。

三、matlab**及运行结果。

在本次实验中,取值为1,则系统辨识对象为:

1. 差分模型的阶检验。

在实际应用场景中,模型的阶数和纯时延往往是未知的,在此种情况下,一般采用如下方法来确定模型的阶数:固定一个阶数n,当n从小增大时,定义损失函数应随之减小,当n增大到某一值时,应近似白噪声过程。在n-1这一点,最后一次出现陡峭的下降,此后就近似地保持不变或只有微小的下降,则取。

使用matlab进行模型阶数确定**如下:

噪声方差的估计值和损失函数法定阶。

clearclose all;

l=100;

y1=1;y2=1;y3=1;y4=0;

for i=1:l+5;

x1=xor(y3,y4第一个移位寄存器的输入信号。

x2=y1第二个移位寄存器的输入信号。

x3=y2第三个移位寄存器的输入信号。

x4=y3第四个移位寄存器的输入信号。

y(i)=y4第四个移位寄存器的输出,即m序列,幅值为“0”或“1”

if y(i)>0.5;

u(i)=-1m序列的值为1时,辨识的输入取-1

else u(i)=1m序列为0时,输入取1

endy1=x1;y2=x2;y3=x3;y4=x4;%移位寄存器的输出序列。

endv=randn(l+5,1);

ksi(k)=lamda*v(k)-ksi(k-1)-0.41*ksi(k-2

ksi(2) =0;ksi(1) =0; %设ksi的前两个初始值为0

lamda = 1;

for k=3:l+5;

ksi(k) =lamda*v(k) -ksi(k-1) -0.41*ksi(k-2);

endz(3)=0;z(2)=0;z(1)=0; %取z的前三个初始值为零。

for k=4:l+5;

z(k) =0.9*z(k-1) -0.15*z(k-2) -0.02*z(k-3) +0.7*u(k-1) -1.5*u(k-2) +ksi(k);

理想辨识输出采样信号。

end 模型阶次n=1

for i=1:l

h1(i,1)=z(i);;

h1(i,2)=u(i);

end estimate1=inv(h1'*h1)*h1'*z(2:l+1)';

系统辨识大作业

系统辨识。大作业。1.考虑如下系统。式中,为白噪声。取初值,分别选择m序列和方差为1的正态分布白噪声作为输入信号,采用递推最小二乘算法进行参数估计,迭代l 400步停止计算。要求。i 给出基本迭代公式 ii 画出程序流程框图 iii 画出输入输出数据曲线 参数估计曲线 误差曲线 提示 产生长度为l方...

系统辨识大作业

系统辨识大作业 递推增广最小二乘法。题目一 已知一系统为两输入单输出系统,观测数据受有色噪声污染,噪信比为n s 0.1。系统经2000次采样,存放于文件中。系统输入u1为7级m序列,u2为u1的63步移位序列。模型类可选为 a q 1 y k b1 q u1 k b2 q u2 k w k c q...

系统辨识大作业

第一题 输入 x 1.01 2.03 3.02 4.01 5 6.02 7.03 8.04 9.03 10 y 9.6 4.1 1.3 0.4 0.05 0.1 0.7 1.7 3.8 9.1 用cftool工具箱拟合 linear model poly2 f x p1 x 2 p2 x p3 co...