最新推荐系统辨识实验指导书范文word版 14页.docx
《最新推荐系统辨识实验指导书范文word版 14页.docx》由会员分享,可在线阅读,更多相关《最新推荐系统辨识实验指导书范文word版 14页.docx(11页珍藏版)》请在冰豆网上搜索。
最新推荐系统辨识实验指导书范文word版14页
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
==本文为word格式,下载后可方便编辑和修改!
==
系统辨识实验指导书
篇一:
系统辨识实验指导书
44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
44444444444444444444
《系统辨识实验》实验指导书
赵英凯
南京工业大学自动化学院
实验一实验二201X-04-17
目录
基于OLS法的系统辨识数字仿真实验·························2基于RLS法的系统辨识数字仿真实验··························7
实验一基于OLS法的系统辨识数字仿真实验
一、实验目的
1、深入理解系统辨识中相关分析法及最小二乘法的相关内容。
2、学会用Matlab或C语言等进行系统辨识的仿真研究
二、实验设备
装有相应软件的计算机。
三、实验原理(请见教材,次处从略)四、实验内容
1.伪随机二位式信号(PRBS)的生成。
2.用普通最小二乘法(OLS)法辨识对象数学模型。
五、实验要求
1.熟悉系统辨识中的相关内容。
2.掌握Matlab或C语言等进行系统辨识仿真研究的一般步骤。
3.实验前基本应完成相关的编程任务,实验时调试相应程序。
4.修改相应参数与随机噪声幅度,观察并分析结果。
5.软件包人机界面的开发与设计。
(选做)
六、.实验步骤
实验步骤:
1、运行matlab
1)File->New->M-File打开M文件编辑窗口2)输入自己编写的程序
3)点击run按钮,如果程序出错则调试程序,如果运行正常的话则观察程序的运行
结果
具体的实验步骤:
1.伪随机二位式信号(PRBS)的生成:
X1=1;X2=0;X3=1;X4=0;%移位寄存器输入Xi初态(0101),Yi为移位寄存器各级输出m=60;%置M序列总长度fori=1:
m
Y4=X4;Y3=X3;Y2=X2;Y1=X1;X4=Y3;X3=Y2;X2=Y1;X1=xor(Y3,Y4);%异或运算ifY4==0U(i)=-1;elseU(i)=Y4;endendM=U%绘图i1=ik=1:
1:
i1;
plot(k,U,k,U,'rx')xlabel('k')ylabel('M序列')
title('移位寄存器产生的M序列')
注:
这是一个采用四级移位寄存器产生prbs信号的程序,同学们可以将这个程序编写的更具通用性,使得移位寄存器的级数可以选择。
2.用普通最小二乘法(OLS)法辨识对象数学模型选择的仿真对象的数学模型如下
z(k)?
1.5z(k?
1)?
0.7z(k?
2)?
u(k?
1)?
0.5u(k?
2)?
v(k)
其中,v(k)是服从正态分布的白噪声N(0,1)。
输入信号采用4阶M序列,幅度为1。
选择如下形式的辨识模型
z(k)?
a1z(k?
1)?
a2z(k?
2)?
b1u(k?
1)?
b2u(k?
2)?
v(k)
?
为设输入信号的取值是从k=1到k=16的M序列,则待辨识参数θLS
ττ?
=(HL?
、观测矩阵zL、HL的表达式为HL)?
1HLzL。
其中,被辨识参数θθLSLS
θ?
LS
?
z(3)?
?
?
z
(2)?
z
(1)u
(2)u
(1)?
?
a1?
?
z(4)?
?
?
z(3)?
z
(2)u(3)u
(2)?
?
a?
2,,?
?
?
zL?
HL?
?
?
?
?
?
?
?
?
?
?
?
?
b1?
?
?
?
?
?
?
?
b2?
?
z(16)?
?
?
z(15)?
z(14)u(15)u(14)?
程序框图如下所示:
参考程序:
%ols
u=[-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1];%系统辨识的输入信号为一个周期的M序列
z=zeros(1,16);%定义输出观测值的长度fork=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的经线图形
篇二:
系统辨识基础实验指导书
实验一离散模型的参数辨识
一、实验目的
1.掌握随机序列的产生方法。
2.掌握最小二乘估计算法的基本原理。
3.掌握最小二乘递推算法。
二、实验内容
1.基于Box--Jinkins模型模拟一个动态过程,动态过程取为各种不同的情况,输入信号采用M序列,实验者可尝试不同周期的M序列。
信噪比、观测数据长度也由实验者取为各种不同情况。
2.模拟生成输入输出数据。
3.根据仿真过程的噪声特性,选择一种模型参数估计算法,如RLS、RIV、RELS、RGLS、COR-LS、STAA、RML或MLS等,估计出模型的参数。
三、实验器材
计算机1台
四、实验原理
最小二乘法是一种经典的有效的数据处理方法。
它是1795年高斯(K.F.Guass)在预测行星和彗星运动的轨道时提出并实际使用的。
最小二乘法也是一种根据实验数据进行参数估计的主要方法。
这种方法容易被理解,而且由于存在唯一解,所以也比较容易实现。
它在统计学文献中还被称为线性回归法,在某些辨识文献中还被称为方程误差法。
正如各个学科都用到系统辨识技术建立模型一样,最小二乘法也用于很多场合进行参数估计,虽然不一定是直接运用,但很多算法是以最小二乘为基础的。
在系统辨识和参数估计领域中,最小二乘法是一种最基本的估计方法。
它可用于动态系统,也可用于静态系统;可用于线性系统,也可用于非线性系统;可用于离线估计,也可用于在线估计。
在随机的环境下利用最
小二乘法时,并不要求知道观测数据的概率统计信息,而用这种方法所获得的估计结果,却有相当好的统计性质。
在系统辨识和参数估计领域中,应用最广泛的估计方法是最小二乘法和极大似然法,而其他的大多数算法都与最小二乘法有关。
最小二乘法采用的模型为
A(z?
1)y(k)?
B(z?
1)u(k)?
e(k)
最小二乘估计是在残差二乘方准则函数极小意义下的最优估计,即按照准则函数
?
)T(Y?
?
?
?
)?
min来确定估计值?
?
。
求J对?
?
的偏导数并令其等于0,可得?
Te?
?
(Y?
?
?
J?
e
?
J?
?
)T(Y?
?
?
?
)?
?
?
T(Y?
?
?
?
)?
?
T(Y?
?
?
?
)?
0?
(Y?
?
?
?
?
?
?
?
?
?
TY。
当?
T?
为非奇异,即?
列满秩时,有?
?
?
(?
T?
)?
1?
TY,此即参数的最小二乘估计值。
即?
T?
?
LS
具体使用时不仅占用内存量大,而且不能用于在线辨识。
一次完成算法还有如下的缺陷:
(1)数据量越多,系统参数估计的精度就越高。
为了获得满意的辨识结果,矩阵?
T?
的阶数常常取得相当大。
这样,矩阵求逆的计算量很大,存储量也很大。
(2)每增加一次观测量,都必须重新计算?
(?
T?
)?
1。
(3)如果出现?
列相关,即不满秩的情况,?
T?
为病态矩阵,则不能得到最小二乘估计值。
解决这个问题的办法是把它化成递推算法。
依观测次序的递推算法就是每获得一次新的观测数据就修正一次参数估计值,随着时间的推移,便能获得满意的辨识结果。
递推辨识算法具有无矩阵求逆,以及跟踪时变系统等特点,这样不仅可以减少计算量和储存量,而且能实现在线辨识。
最小二乘估计递推算法(RLS)如下?
?
?
?
?
G?
N?
1NN?
1[yN?
1T?
?
?
N?
1?
N]GN?
1?
PN?
N?
1T1?
?
N?
1PN?
N?
1TPN?
1?
PN?
GN?
1?
N?
1PN
递推过程如下:
?
P,u,y得到?
NNN?
1N?
1
?
?
P?
下一步递推计算?
N?
1?
?
N?
1N?
1
五、实验步骤
1.熟悉各种辨识方法的基本原理。
2.设计实验方案,编制实验程序,上机调试,记录结果。
3.分析实验结果,完成书面实验报告,提供程序框图及其说明,并总结各种辨识算法的优缺点。
六、实验思考题
1.认真阅读教材中的相关内容,总结最小二乘估计算法和最小二乘递推算法的基本原理。
八、实验报告要求
1.分析最小二乘估计算法和最小二乘递推算法的基本原理。
2.记录产生的输入输出数据,根据最小二乘估计算法和最小二乘递推算法估计系统模型参数。
3.完成相应的思考题
实验二离散模型的阶次辨识
一、实验目的
掌握极大似然估计算法。
二、实验原理
极大似然法需要构造一个以数据和未知参数为自变量的似然函数,并通过极大化这个似然函数,获得模型的参数估计值。
已知参数?
的条件下,观测量的概率密度为P(Y|?
),在N次测量{y1,y2,
似然函数
L(y1,y2,,yN|?
)?
P(y1,,yN|?
)?
?
P(yi|?
)
i?
1N,yN}后(独立测量),考虑
如果不要求?
的分布密度,只要问?
的值为多少(最可能的值),那么,就只要求?
使L(y1,y2,,yN|?
)?
max。
对于确定了的观测值Y而言,似然函数仅仅是参数?
的函数。
由极大似然原理
?
满足以下方程可知,?
ML
?
L
?
?
?
?
?
?
?
?
0
ML
考虑到似然函数一般为指数函数,而指数函数和对数函数都是单调的,为方便求解,上式等价于如下方程
?
lnL?
0?
?
?
?
?
?
?
ML
三、实验内容及步骤
1.熟悉各种辨识方法的基本原理。
2.设计实验方案,编制实验程序,上机调试,记录结果。
3.分析实验结果,完成书面实验报告,提供程序框图及其说明,并总结各种辨识算法的优缺点。
四、实验报告
1.分析极大似然估计算法的基本原理。
2.记录产生的输入输出数据,根据极大似然估计算法估计系统模型参数。
3.完成相应的思考题。
篇三:
系统辨识实验答案相关分析法
实验一辩识离散线性系统脉冲响应特性的相关分析法
实验步骤及问题
1.首先采用批量算法,步骤如下:
(1)首先产生M序列。
通过Matlab软件编程产生M序列,程序如下。
x1=1;x2=1;x3=1;x4=1;
m=15;
fori=1:
m
y4=x4;y3=x3;y2=x2;y1=x1;
x4=y3;x3=y2;x2=y1;x1=xor(y3,y4);
ify4==0
u(i)=-1;
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.2405
1.41211.55081.55121.42511.3490图形如下图所示:
当改变a,b参数值时,使a1?
?
1,a2?
0.5,b1?
1,b2?
0.5。
此时的脉冲响应估计值为:
1.2900
2.27342.76862.34771.60351.16890.86430.74020.82321.23141.4990
1.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.批量算法程序
x1=1;x2=1;x3=1;x4=1;
m=31;
fori=1:
m
y4=x4;y3=x3;y2=x2;y1=x1;
x4=y3;x3=y2;x2=y1;x1=xor(y3,y4);
ify4==0
u(i)=-1;
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序列')
a1=-0.9;a2=0.5;b1=1.1;b2=0.5;Y
(1)=0;Y
(2)=0;
forK=3:
1:
32
Y(K)=0.9*Y(K-1)-0.5*Y(K-2)+1.1*u(K-1)+0.5*u(K-2)end
subplot(3,1,2)
k=1:
1:
i1+1;
plot(k,Y,k,Y,'rx')
xlabel('k')
ylabel('输出')
title('系统输出')
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)
end
end
fort=1:
31
Z(t,1)=Y(1,t)
篇四:
系统辨识试验
赵英凯
南京工业大学自动化学院
201X-04-17
《系统辨识实验》实验指导书
目录
实验一基于OLS法的系统辨识数字仿真实验··························2实验二基于RLS法的系统辨识数字仿真实验··························7
实验一基于OLS法的系统辨识数字仿真实验
一、实验目的
1、深入理解系统辨识中相关分析法及最小二乘法的相关内容。
2、学会用Matlab或C语言等进行系统辨识的仿真研究
二、实验设备
装有相应软件的计算机。
三、实验原理(请见教材,次处从略)四、实验内容
1.伪随机二位式信号(PRBS)的生成。
2.用普通最小二乘法(OLS)法辨识对象数学模型。
五、实验要求
1.熟悉系统辨识中的相关内容。
2.掌握Matlab或C语言等进行系统辨识仿真研究的一般步骤。
3.实验前基本应完成相关的编程任务,实验时调试相应程序。
4.修改相应参数与随机噪声幅度,观察并分析结果。
5.软件包人机界面的开发与设计。
(选做)
六、.实验步骤
实验步骤:
1、运行matlab
1)File->New->M-File打开M文件编辑窗口2)输入自己编写的程序
3)点击run按钮,如果程序出错则调试程序,如果运行正常的话则观察程序的运行
结果
具体的实验步骤:
1.伪随机二位式信号(PRBS)的生成:
X1=1;X2=0;X3=1;X4=0;%移位寄存器输入Xi初态(0101),Yi为移位寄存器各级输出m=60;%置M序列总长度fori=1:
m
Y4=X4;Y3=X3;Y2=X2;Y1=X1;X4=Y3;X3=Y2;X2=Y1;X1=xor(Y3,Y4);%异或运算ifY4==0U(i)=-1;elseU(i)=Y4;endendM=U%绘图i1=ik=1:
1:
i1;
plot(k,U,k,U,'rx')xlabel('k')ylabel('M序列')
title('移位寄存器产生的M序列')
注:
这是一个采用四级移位寄存器产生prbs信号的程序,同学们可以将这个程序编写的更具通用性,使得移位寄存器的级数可以选择。
2.用普通最小二乘法(OLS)法辨识对象数学模型选择的仿真对象的数学模型如下
z(k)?
1.5z(k?
1)?
0.7z(k?
2)?
u(k?
1)?
0.5u(k?
2)?
v(k)
其中,v(k)是服从正态分布的白噪声N(0,1)。
输入信号采用4阶M序列,幅度为1。
选择如下形式的辨识模型
z(k)?
a1z(k?
1)?
a2z(k?
2)?
b1u(k?
1)?
b2u(k?
2)?
v(k)
?
为设输入信号的取值是从k=1到k=16的M序列,则待辨识参数θLS
?
=(HτH)?
1Hτz。
其中,被辨识参数θ?
、观测矩阵θLLLLLSLS
zL、HL的表达式为
θ?
LS
?
z(3)?
?
?
z
(2)?
z
(1)u
(2)u
(1)?
?
a1?
?
?
?
?
?
?
z(4)?
z(3)?
z
(2)u(3)u
(2)a2,,?
?
?
zL?
HL?
?
?
?
?
?
?
?
?
?
?
?
?
b1?
?
?
?
?
?
?
?
b2?
?
z(16)?
?
?
z(15)?
z(14)u(15)u(14)?
程序框图如下所示:
参考程序:
%ols
u=[-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1];%系统辨识的输入信号为一个周期的M序列
z=zeros(1,16);%定义输出观测值的长度fork=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的经线图形