系统辨识试验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《系统辨识实验》实验指导书

赵英凯

南京工业大学自动化学院

2006-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 序列总长度 for i=1:m

Y4=X4; Y3=X3; Y2=X2; Y1=X1; X4=Y3; X3=Y2; X2=Y1; X1=xor(Y3,Y4); %异或运算 if Y4==0 U(i)=-1; else U(i)=Y4; end end M=U %绘图 i1=i k=1:1:i1;

plot(k,U,k,U,'rx') xlabel('k') ylabel('M 序列')

title('移位寄存器产生的M 序列')

注:这是一个采用四级移位寄存器产生prbs 信号的程序,同学们可以将这个程序编写的更具通用性,使得移位寄存器的级数可以选择。 2.用普通最小二乘法(OLS )法辨识对象数学模型 选择的仿真对象的数学模型如下

)()2(5.0)1()2(7.0)1(5.1)(k v k u k u k z k z k z +-+-=-+--

其中,)(k v 是服从正态分布的白噪声N )1,0(。输入信号采用4阶M 序列,幅度为1。选择如下形式的辨识模型

)()2()1()2()1()(2121k v k u b k u b k z a k z a k z +-+-=-+-+

设输入信号的取值是从k =1到k =16的M 序列,则待辨识参数LS

θˆ为LS θˆ=L τL 1L τL z H )H H -(。其中,被辨识参数LS

θˆ、观测矩阵z L 、H L 的表达式为 ⎥⎥

⎢⎢⎢⎢⎣⎡=2121ˆ

b b a a LS

θ , ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=)16()4()3(z z z L z , ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------=)14()2()1()15()3()2()14()2()1()15()3()2(u u u u u u z z z z z z L H 程序框图如下所示:

参考程序: %ols

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)] %给样本矩阵HL赋值

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)]% 给样本矩阵zL赋值

%calculating parameters%计算参数

c1=HL'*HL; c2=inv(c1); c3=HL'*ZL; c=c2*c3 %计算并显示

%DISPLAY PARAMETERS

a1=c(1), a2=c(2), b1=c(3), b2=c(4) %从中分离出并显示a1 、a2、 b1、 b2

%End

注:由于输出观测值没有任何噪音成分,所以辨识结果也无任何误差,同学们可以在输出观测值中添加噪音,观察ols的辨识效果。同时,可以尝试增加输入信号的数量,看辨识结果有何变化。

七、实验报告要求

1、整理分析实验结果与程序,并打印之。

2、小结调试程序的方法,并提出改进意见。

3、上交相关软盘或将程序与电子文档通过EMAIL发给老师。

相关文档
最新文档