南理工建模与辨识基础实验报告.docx
- 文档编号:6476141
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:12
- 大小:221.76KB
南理工建模与辨识基础实验报告.docx
《南理工建模与辨识基础实验报告.docx》由会员分享,可在线阅读,更多相关《南理工建模与辨识基础实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
南理工建模与辨识基础实验报告
实验一产生M序列信号
一、实验要求
利用MATLAB语言编程产生一组M序列信号。
二、实验原理
若一个n级移位寄存器所产生的序列长度达到
,则称这个序列为二位式最大长度序列,或M序列。
下图为4阶M序列产生示意图:
三、程序代码
function[out]=MS(n)
i=2^n-1;%定义M序列输出长度
a=ones(1,n);%定义一个N维初值为1的向量
forjj=1:
i
x=xor(a(n-1),a(n));%第N-1位与第N位异或
forj=n:
-1:
2
a(j)=a(j-1);
end
a
(1)=x;
out(jj)=a(n);%定义输出
end
end
四、实验结果
在MATLAB主界面输入所需阶数,即可产生对应的M序列。
实验2相关分析法系统辨识
一、实验要求
考虑如下仿真对象:
输入信号采用6阶M序列,循环周期为63bit,幅度为1,采样周期为1S,利用相关辨识辨识对象的脉冲响应,补偿量取c=-RUZ(62)。
互相关函数用3*63个数据计算。
二、实验步骤
步骤1得到仿真的输入输出数据
步骤1.1利用6级移位寄存器产生4个周期的M序列(根据实验一的结果)
步骤1.2把M序列的逻辑值转换为实际信号值(注意:
逻辑“1”对应值为-1,逻辑“0”对应值为1。
)
步骤1.3根据模型得到输出数据
步骤2利用相关分析法,求得系统的脉冲响应函数
步骤3画图比较利用相关分析法求得的系统脉冲响应函数与实际脉冲响应函数
步骤4对系统的输出加入噪声,画图比较利用相关分析法求得的系统脉冲响应函数与实际脉冲响应函数
三、程序代码
clc;
a=MS(6);%产生6阶M序列
fori=1:
63%把M序列的逻辑值转换成实际信号值
ifa(i)==1
a(i)=-1;
else
a(i)=1;
end
end
a=[aaaa];
TT=1:
252;%设置数据长度
simin=[TT'a'];
ot=simout.signals.values;
R=zeros(1,63);
N=252-63;
fori=1:
63%互相关函数计算
forii=64:
252
R(i)=R(i)+a(ii-i)*ot(ii);
end
R(i)=1/N*R(i);
end
c=-R(62);
fori=1:
63
g(i)=N/(N+1)*(R(i)+c);
end
fori=1:
63 %引入噪声
g(i)=g(i)+randn*3/100*sqrt(var(g));
end;
plot(g(1:
63)); %输出噪声曲线
holdon
num=1.2;
den=[51.4614.51];
tr=tf(num,den);
t=0:
63;
ss=impulse(tr,t);
plot(ss,'r');
legend('辨识曲线','理想曲线')
四、实验结果
没有噪声时的辨识结果
有噪声时的辨识结果
实验三利用最小二乘法进行系统辨识
一、实验要求
二、实验原理
,
。
三、程序代码
clc
clearall
le=3;
a=MS(4);%产生4阶序列
le0=length(a)-1;
z=zeros(1,le0*le);%定义长度为3倍M序列,初值为0的向量
u=[];
fori=1:
le
u=[ua];
end
fori=1:
le0*le%把M序列的逻辑值转换成实际信号值
if(u(i)==1)
u(i)=-1;
else
u(i)=1;
end
end
fork=3:
le0*le%构造线性过程输出z(k)
z(k)=u(k-1)+0.5*u(k-2)-0.7*z(k-2)-1.5*z(k-1)+0.1*randn
(1);
end
fai=[];
fai(1,1:
4)=[0000];
fai(2,1:
4)=[0000]
fork=3:
le0*le%给fai矩阵赋值
fai(k,1:
4)=[-z(k-1)-z(k-2)u(k-1)u(k-2)];
end
ZZ=z';
sita=(fai'*fai)^(-1)*fai'*ZZ
fork=3:
le0*le%构造辨识曲线
zz(k)=sita(3)*u(k-1)+sita(4)*u(k-2)-sita
(2)*z(k-2)-sita
(1)*z(k-1)+0.1*randn
(1);
end
plot(z,'r')%画出没有噪声时的辨识结果
holdon
plot(zz,'b')%画出有噪声时的辨识结果
legend('理想情况','实际情况')
四、实验结果
辨识的结果如下所示:
sita=
1.4365
0.6510
0.9704
0.4542
理想输出与辨识模型输出
实验四利用递推最小二乘法进行系统辨识
一、实验要求
二、实验原理
若在
次观测的基础上,又进行了一次新的观测,根据
次观测数据估计
:
=
:
,
,
,推导可以得到
。
三、程序代码
clc
clearall
le=3;
a=MS(4);
le0=length(a);
z=zeros(1,le0*le);%定义5倍M序列场长度,初始值为零的向量
u=[];
fori=1:
le
u=[ua];
end
fori=1:
le0*le
if(u(i)==1)
u(i)=-1;
else
u(i)=1;
end
end
fork=3:
le0*le%得到理想的输出
z(k)=u(k-1)+0.5*u(k-2)-0.7*z(k-2)-1.5*z(k-1)+0.01*randn
(1);
end
fai=[];
fai(1,1:
4)=[0000];
fai(2,1:
4)=[0000];
fork=3:
le0*le
fai(k,1:
4)=[-z(k-1)-z(k-2)u(k-1)u(k-2)];
end
sita=zeros(4,1);
P=10^100*[1000;0100;0010;0001];
fori=1:
le0*le-1%根据递推算法计算K、sita、P矩阵
K=(P*fai(i+1,:
)')/(1+fai(i+1,:
)*P*fai(i+1,:
)');
sita=sita+K*(z(i+1)-fai(i+1,:
)*sita);
P=P-K*fai(i+1,:
)*P;
end
fork=3:
le0*le%构造辨识曲线
zz(k)=sita(3)*u(k-1)+sita(4)*u(k-2)-sita
(2)*z(k-2)-sita
(1)*z(k-1)+0.1*randn
(1);
end
sita
plot(z,'r')
holdon
plot(zz,'b')
legend('理想情况','实际情况')
四、实验结果
sita=
1.5050
0.7041
1.0082
0.5060
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理工 建模 辨识 基础 实验 报告