系统辨识实验答案相关法解析文档格式.docx

上传人:b****4 文档编号:17855839 上传时间:2022-12-11 格式:DOCX 页数:15 大小:189.62KB
下载 相关 举报
系统辨识实验答案相关法解析文档格式.docx_第1页
第1页 / 共15页
系统辨识实验答案相关法解析文档格式.docx_第2页
第2页 / 共15页
系统辨识实验答案相关法解析文档格式.docx_第3页
第3页 / 共15页
系统辨识实验答案相关法解析文档格式.docx_第4页
第4页 / 共15页
系统辨识实验答案相关法解析文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

系统辨识实验答案相关法解析文档格式.docx

《系统辨识实验答案相关法解析文档格式.docx》由会员分享,可在线阅读,更多相关《系统辨识实验答案相关法解析文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

系统辨识实验答案相关法解析文档格式.docx

else

u(i)=y4;

end

end

m=u

%grapher

i1=i;

k=1:

1:

i1;

subplot(3,1,1)

plot(k,u,k,u,'

rx'

xlabel('

k'

ylabel('

m序列'

title('

移位寄存器产生的m序列'

产生的M序列如下图所示:

(2)系统输出

y(k)+a1y(k-1)+a2y(k-2)=b1u(k-1-d)+b2u(k-2-d)

式中参数值为a1=-0.9,a2=0.5,b1=1.1,b2=0.5,d=0时产生的图形如下:

(3)采用建议的系统参数a和b,观察冲激响应曲线的真值,并估计系统的整定时间Ts;

改变系统参数a和b,查看其对结果的影响。

利用批量算法求脉冲响应。

脉冲响应估计值为:

1.19282.20572.62521.99061.21540.90300.69830.67720.85931.24051.41211.55081.55121.42511.3490图形如下图所示:

当改变a,b参数值时,使

此时的脉冲响应估计值为:

1.2900

2.27342.76862.34771.60351.16890.86430.74020.82321.23141.49901.71881.73441.61431.5176

脉冲响应图形如下图所示:

当改变参数值后,从图形中可以看出脉冲响应的图形形状没有大的改变,但是脉冲响应估计值发生变化。

(4)采用建议的系统参数a、b和噪声幅度,选取不同的n,k0值,得到不同的M序列周期值,观察结果是否收敛于冲激响应曲线的真值,并分析原因,总结Np的取值规律,判断它与Ts的取值有何关系?

当取n=5,k0=3时产生的图形如下:

从此图可以看出,当n和k0的值改变时,由于m序列是周期性的,系统输出与脉冲响应估计值也具有一定的周期性,结果最后收敛于冲激响应曲线的真值。

Np的取值与n有关满足Np=2n-1。

为了使所得冲激响应能够在Tp=NpΔ之内结束,防止Ru(τ)曲线上出现重叠现象,因此要求Tp=NpΔ>

Ts。

(5)观察M序列的递推算法辩识结果,如果总计算点数不正好等于Np的整数倍,冲激响应曲线的辩识结果会怎样?

利用递推算法求脉冲响应图形如下所示:

观察运用递推算法所得到的脉冲响应估计图形,所得到的脉冲响应估计值为:

000.40001.24802.40273.37923.41012.28060.46330.9540-1.5634-1.3414-0.8367-0.33490.2585。

可以看出与运用批量算法所得到的脉冲响应估计值不同,但是两种算法的辨识结果基本上是一致的,只是递推算法可以用于在线辨识,就这一点来说,递推算法优于批量算法。

如果总计算点数不正好等于Np的整数倍,由于不是在一个完整的周期取值,所得的图形形状以及得到的脉冲响应估计值数据,都会影响系统辨识结果。

(6)观察辩识得到的冲激响应曲线的光滑度,分析导致曲线不光滑的原因?

由于M序列的取值不是连续的输出也不是连续的,因此曲线不是光滑的。

(7)观察L序列的递推算法和批量算法辩识结果,同M序列的递推算法和批量算法辩识结果相比较,对两种序列的优缺点作出简要分析。

M序列含有直流成份,这将造成对辨识对象的“净扰动”,这通常是不希望的,而L序列可以很好的克服这一缺点,是一种比M序列更理想的伪随机序列。

 

1.批量算法程序

m=31;

a1=-0.9;

a2=0.5;

b1=1.1;

b2=0.5;

Y

(1)=0;

Y

(2)=0;

forK=3:

32

Y(K)=0.9*Y(K-1)-0.5*Y(K-2)+1.1*u(K-1)+0.5*u(K-2)

subplot(3,1,2)

i1+1;

plot(k,Y,k,Y,'

输出'

系统输出'

H=1/32;

p=ones(31);

q=eye(31);

R=p+q

forj=1:

31

fori=1:

32-j

M(i,i+j-1)=u(j)

fort=1:

Z(t,1)=Y(1,t)

g=H*R*M*Z

subplot(3,1,3)

plot(k,g,k,g,'

脉冲响应估计值'

2.递推算法程序

Y(K)=0.9*Y(K-1)-0.5*Y(K-2)+1.1*u(K-1)+0.5*u(K-2);

p=ones(15);

q=eye(15);

R=p+q;

15

Z(t,1)=Y(1,t);

16-j

M(i,i+j-1)=u(j);

g

(1)=0;

fori=2:

W=M'

;

m=W(i,:

);

g(i)=i/(i+1)*g(i-1)+1/(i+1)*m*Z

实验二离散线性系统参数估计的递推最小二乘法

(1)使用建议的系统参数a、b和小噪声,用基本递推最小二乘法(RLS)作递推估计。

在正确设定阶次及延时(n=2,d=1)的情况下,观测遗忘因子α、P(i,i)的初值C的不同取值对系统收敛速度和估计精度的影响。

当使用基本递推最小二乘法做递推估计时所得图形如图1所示。

图1递推最小二乘算法仿真图

1.α的选取对系统辨识的影响:

选取α=0.95,P(i,i)=10000时的仿真曲线如图2所示。

从图2可以看出,当增大α时能够有助于加快系统的收敛速度。

2.选取α=0.995,C=10时的仿真图如图3所示。

从图3可以看出,当增大C的初值能够加快系统的收敛速度。

图2α=0.95的仿真图

图3C=10的仿真图

(2)在有噪声和正确设定阶次及延时(n=2,d=1)的情况下,观察当系统参数时变时,采用RLS法,比较不同的遗忘因子α对参数变化的跟踪效果的影响。

当α=0.998时仿真图如图4所示:

图4α=0.998时仿真图

当α=0.9时仿真图如下所示:

图5α=0.9时仿真图

从图4和图5所得图形与a1,a2,b1,b2的真值相比较可知,当遗忘因子较小时对参数的跟踪效果较好。

(3)在有噪声,系统参数稳定时(即模型不时变),采用不同的辩识阶次n和时滞延时d,用RLS法求取系统参数和拟合度J,观察系统的辨识结果,然后列表、作图,估计系统的阶次n’和时延r’,判断它们与真值n=2,d=1是否符合?

由于当n变得比真正的阶次n0大时J几乎停止减小。

因此,确定阶次的方法就是取最后一次明显地陡降后的n值作为合适的阶次估计值

从下图可以看出当n>

2时,J几乎停止减小,所以可以估计系统阶次n’=2。

(4)参数估计中为什么要采用对输入、输出实测值U’和Y’去除均值后得到的动态分量u’、y’而不用U’和Y’本身?

因为对输入、输出实测值U’和Y’去除均值后得到的动态分量u’、y’可以增加估计参数的精度。

(5)程序中在进行参数估计之前安排若干步生成u’、y’的计算?

如果省去会对结果有什么影响?

如果省去这些计算的话,会影响参数估计的精度。

(6)IV法可否不经过RLS法而直接启动?

在IV法中若取不同的滤波器系数ρ和q,估计的精度是否有差别?

为什么?

IV估计的递推算法在形式上与RLS算法相似,因其对初值设定敏感,一般宜先以RLS算法启动,待约50步后再切换到IV法。

当选用不同的滤波器参数时估计得精度有差别。

(7)在有噪声和正确设定阶次及延时(n=2,d=1)的情况下,选取相同的遗忘因子α=0.995,对三种估计方法的精度进行比较,分析三种估计方法产生误差的原因各有哪些?

RLS法:

当噪声比较小时,辨识精度较高;

当噪声比较大时,收敛点可能不唯一,参数估计值往往是有偏的;

但是运用此方法时,数据要充分多,否则辨识精度明显下降;

另外噪声模型阶次不宜过高,也会影响精度,所以误差的原因主要是数据量的大小以及噪声模型阶次。

IV法:

辨识效果较好,能适应较大的范围的噪声特性。

对初值P(0)敏感,可用LS法起步,否则没有可靠的收敛性;

对数据u(k)在z(k)的直流分量敏感,对z(k)的直流分量不敏感。

所以误差的主要原因是初值P(0)以及数据计算过程产生的误差。

ELS法:

ELS是极大似然法的一种近似形式,当数据长度较小时,辨识精度可能优于极大似然法,但数据长度较大时,精度低于极大似然法。

MATLAB程序:

clc

Np=15;

r=4;

m_length=r*Np;

a=1;

m_length

y4=x4;

x4=y3;

ify4==0

M(i)=-a;

else

M(i)=a;

figure;

i=1:

m_length;

plot(i,M);

noise=zeros(1,m_length);

temp=noise+0.5*rands(1,m_length);

noise=temp;

noise=noise/12;

n=2;

d=1;

a1=-1;

b1=1;

s_u0=0.2;

s_y0=0.2;

u0=ones(1,m_length)*s_u0;

u=M+u0+noise;

plot(i,u);

y

(1)=0;

y

(2)=0;

y(3)=0;

y

(1)=s_y0+y

(1)+noise

(1);

y

(2)=s_y0+y

(2)+noise

(2);

y(3)=s_y0+y(3)+noise(3);

fork=4:

y(k)=b1*u(k-1-d)+b2*u(k-2-d)-a1*y(k-1)-a2*y(k-2);

y(k)=s_y0+y(k)+noise(k);

plot(i,y);

c=0.5;

p=(c^2)*eye(2*n);

sita(:

3)=[0,0,0,0]'

alf=0.995;

sum_l=0;

sum_y=0;

fork=1:

sum_l=sum_l+u(k);

sum_y=sum_y+y(k);

t_l0=sum_l/m_length;

t_y0=sum_y/m_length;

1;

t_l(k)=u(k)-t_l0;

t_y(k)=y(k)-t_y0;

plot(i,t_y);

fai=[-t_y(k-1),-t_y(k-2),t_l(k-1-d),t_l(k-2-d)]'

w=p*fai;

dan=1/(alf+fai'

*w);

k)=sita(:

k-1)+dan*w*(t_y(k)-fai'

*sita(:

k-1));

p=(p-dan*w*w'

)/alf;

i=3:

plot(i,sita(1,3:

m_length),i,sita(2,3:

m_length),i,sita(3,3:

m_length),i,sita(4,3:

m_length))

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1