系统辨识与仿真实验大报告汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学自动化学院
实验报告
课程名称:系统辨识
实验名称:系统辨识与仿真
院(系):自动化专业:自动化
姓名:学号:
同组人员:实验时间:2013 年月日评定成绩:审阅教师:
实验一:
给定系统G(s)= 4102+++s s s , 1.
用连续系统仿真方法,求零时刻的单位脉冲响应g(k)(采样步长为0.1s ,持续5s ); 2.
用双线性变换求离散传递函数G(z); 3.
编程产生7级逆重复M 序列u ,幅值:±1,仿真时间:0:30.5s ,仿真步长:0.1s ; 4.
以u 为输入,求G(z)的输出y ;(保存y,u ,作为实验二的数据) 5. 编程求自相关函数Ruu(k)和互相关函数Ruy(k),k=1, (51)
(化成单位脉冲及其响应的形式)
6. 将g(k)、Ruu(k)、Ruy(k)在一个图中绘出,并比较g(k)和Ruy(k)的差别。
实验步骤及实验结果:
(1)建立simulink 仿真系统图如下:
设置脉冲周期为10s ,幅值为10,脉宽为1%,运行后观察示波器结果如下,并输出到文件:
(2)输入如下代码进行双线性变换:
>> n1=[0 1 10];
>> d1=[1 1 4];
>> f=tf(n1,d1)
84.392.724
.41
.02.03.022+--+z z z z
Transfer function:
s + 10
-----------
s^2 + s + 4
>> [n2,d2]=c2dm(n1,d1,0.1,'tustin');
>> printsys(n2,d2,'z')
num/den =
0.070755 z^2 + 0.04717 z - 0.023585
-----------------------------------
z^2 - 1.8679 z + 0.90566
双线性变化为)1()1(2+-=z T z s ,代入原传递函数求得G(z)= ,
将其分子分母同除以4.24即为程序结果。
(3)逆重复M 序列的生成代码:
clear;
t=[0:0.1:30.5];
lenth=size(t,2);
u(1:7)=1;
for i=8:lenth
u(i)=(mod(u(i-1)+u(i-7),2));
end
u=u*2-1;
a=1;
for i=1:lenth %与方波相乘
u(i)=u(i)*a;
a=-a;
end
uu(1,:)=t;
uu(2,:)=u;
save u11 uu
plot(u(1:140))
ylim([-2 2])
显示结果如下图所示:
(4)采用simulink仿真,建立仿真模型如下:
运行后示波器输出如下波形:
(5)输入如下代码:
load u11;
uy(1,:)=uu(2,:);
a=[0.3 0.2 -0.1];
b=[4.24 -7.92 3.84];
uy(2,:)=filter(a,b,uy(1,:));
length=size(uy,2);
t=[0.1:0.1:5.1];
lt=size(t,2);
for tao=1:lt
for i=1:2
mu(i,tao)=0;
for j=1:127
mu(i,tao)=mu(i,tao)+uy(i,j+tao)*uy(1,j+2); %加2是为了把脉冲画完整end;
mu(i,tao)=mu(i,tao)*10/(127); %乘10是为了化为单位脉冲end;
end;
plot(t,mu(1,:),'r-',t,mu(2,:),'b-')
显示结果如下图所示:
(6)运行结果如下图:
图中Ryu(t)和y(k)两者波形相近,但是前者对于后者有滞后。
实验二:
运行sj11.p ,按任务一的要求产生仿真数据y 、u ,并编程求出模型的参数估计;其中:
A(q -1)=1-1.5q -1+0.7q -2 B(q -1)=0.2q -2
B 1(q -1)=0.2q -2 B 2(q -1)=-0.5q -1 C(q -1)=1-0.5q -1
实验步骤及实验结果:
任务一:请仿真一个Ay=Bu+Aw....模型,并用递推随机逼近法——及AIC 准则法来辨识这个模型。
设广义误差e(k)是参数估计值θ的函数,参数辨识问题可通过极小化e(k)的方差来实现。即求参
数θ使下列准则函数最小:J(θ)=1/2E{e2(k)}。J(θ)的负梯度为: =E{-e(k) }。如果可求 解 =0,则可求得参数的估计。但当e(k)的分布未知时,实际上是不可求解的。 在计算数学中,求二次函数的极小值常采用迭代法。首先给出参数的一个估计值,以二次函数在该参数估计值处的负梯度为修正方向,选取适当的步长后,修正参数估计值,直到收敛。
仿此,我们有:θ(k+1)= θ(k)+ρ(k) 。 如果在求 时不求期望,则得到一个随机的迭代算法,称之为随机逼近法。 load u11;
>> u=uu(2,:);
a=[1 -1.5 0.7];
b=[0 0 0.2];
y=filter(b,a,u);
lenth=size(uu,2);
τ
θ⎥⎦
⎤⎢⎣⎡∂∂-J τθ⎥⎦⎤⎢⎣⎡∂∂-J τθ⎥⎦⎤⎢⎣⎡∂∂-J τθ⎥⎦⎤⎢⎣⎡∂∂-J