系统辨识及其matlab仿真(一些噪声和辨识算法)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【1】随机序列产生程序
【2】白噪声产生程序
【3】M序列产生程序
【4】二阶系统一次性完成最小二乘辨识程序
【5】实际压力系统的最小二乘辨识程序
【6】递推的最小二乘辨识程序
【7】增广的最小二乘辨识程序
【8】梯度校正的最小二乘辨识程序
【9】递推的极大似然辨识程序
【10】Bayes辨识程序
【11】改进的神经网络MBP算法对噪声系统辨识程序【12】多维非线性函数辨识程序的Matlab程序【13】模糊神经网络解耦Matlab程序
【14】F-检验法部分程序
【1】随机序列产生程序
A=6;
x0=1;M=255;
for k=1:100
x2=A*x0;
x1=mod (x2,M);
v1=x1/256;
v(:,k)=v1;
x0=x1;
v0=v1;
end
v2=v
k1=k;
%grapher
k=1:k1;
plot(k,v,k,v,'r');
xlabel('k'), ylabel('v');title('(0,1)均匀分布的随机序列') 【2】白噪声产生程序
A=6; x0=1; M=255; f=2; N=100;
for k=1:N
x2=A*x0;
x1=mod (x2,M);
v1=x1/256;
v(:,k)=(v1-0.5)*f;
x0=x1;
v0=v1;
end
v2=v
k1=k;
%grapher
k=1:k1;
plot(k,v,k,v,'r');
xlabel('k'), ylabel('v');title('(-1,+1)均匀分布的白噪声')
【3】M序列产生程序
X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初T态(0101),Yi为移位寄存器各级输出m=60; %置M序列总长度
for i=1:m %1#
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序列')
【4】二阶系统一次性完成最小二乘辨识程序
%FLch3LSeg1
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
【5】实际压力系统的最小二乘辨识程序
%FLch3LSeg2
clear%工作间清零
V=[54.3,61.8,72.4,88.7,118.6,194.0]'%赋初值V,并显示
P=[61.2,49.5,37.6,28.4,19.2,10.1]'%赋初值P,并显示
%logP=-alpha*logV+logbeita=[-logV,1][alpha,log(beita)]'=HL*sita%注释P、V之间的关系
for i=1:6;%循环变量的取值为从1到6
Z(i)=log(P(i));%赋系统的输出采样值
end%循环结束
ZL=Z'%给zL赋值
HL=[-log(V(1)),1;-log(V(2)),1;-log(V(3)),1;-log(V(4)),1;-log(V(5)),1;-log(V(6)),1] %给HL赋值
%calculating parameters%计算参数
c1=HL'*HL; c2=inv(c1); c3=HL'*ZL; c4=c2*c3%计算
%Separation of Parameters%分离变量
alpha=c4(1) % 为c4的第1个元素
beita=exp(c4(2)) % 为以自然数为底的c4的第2个元素的指数
【6】递推的最小二乘辨识程序
%FLch3RLSeg3
clear%清理工作间变量
L=15;% M序列的周期
y1=1;y2=1;y3=1;y4=0;%四个移位积存器的输出初始值
for i=1;%开始循环,长度为L
x1=xor(y3,y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”
x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出