系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc

上传人:wj 文档编号:7015952 上传时间:2023-05-07 格式:DOC 页数:10 大小:54.50KB
下载 相关 举报
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第1页
第1页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第2页
第2页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第3页
第3页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第4页
第4页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第5页
第5页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第6页
第6页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第7页
第7页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第8页
第8页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第9页
第9页 / 共10页
系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc

《系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc》由会员分享,可在线阅读,更多相关《系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc(10页珍藏版)》请在冰点文库上搜索。

系统辨识及其matlab仿真(一些噪声和辨识算法)Word下载.doc

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

M=U

%绘图

i1=i

1:

i1;

plot(k,U,k,U,'

rx'

ylabel('

M序列'

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

%FLch3LSeg1

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);

%用理想输出值作为观测值

subplot(3,1,1)%画三行一列图形窗口中的第一个图形

stem(u)%画出输入信号u的经线图形

subplot(3,1,2)%画三行一列图形窗口中的第二个图形

i=1:

16;

%横坐标范围是1到16,步长为1

plot(i,z)%图形的横坐标是采样时刻i,纵坐标是输出观测值z,图形格式为连续曲线

subplot(3,1,3)%画三行一列图形窗口中的第三个图形

stem(z),gridon%画出输出观测值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赋值

%calculatingparameters%计算参数

c1=HL'

*HL;

c2=inv(c1);

c3=HL'

*ZL;

c=c2*c3%计算并显示

%DISPLAYPARAMETERS

a1=c

(1),a2=c

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

%End

%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之间的关系

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赋值

c4=c2*c3%计算

%SeparationofParameters%分离变量

alpha=c4

(1)%为c4的第1个元素

beita=exp(c4

(2))%为以自然数为底的c4的第2个元素的指数

%FLch3RLSeg3

clear%清理工作间变量

L=15;

%M序列的周期

y1=1;

y2=1;

y3=1;

y4=0;

%四个移位积存器的输出初始值

fori=1;

%开始循环,长度为L

x1=xor(y3,y4);

%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”

x2=y1;

%第二个移位积存器的输入是第3个移位积存器的输出

x3=y2;

%第三个移位积存器的输入是第2个移位积存器的输出

x4=y3;

%第四个移位积存器的输入是第3个移位积存器的输出

y(i)=y4;

%取出第四个移位积存器幅值为"

0"

和"

1"

的输出信号,

ify(i)>

0.5,u(i)=-0.03;

%如果M序列的值为"

时,辨识的输入信号取“-0.03”

elseu(i)=0.03;

%当M序列的值为"

时,辨识的输入信号取“0.03”

end%小循环结束

y1=x1;

y2=x2;

y3=x3;

y4=x4;

%为下一次的输入信号做准备

end%大循环结束,产生输入信号u

figure

(1);

%第1个图形

stem(u),gridon%以径的形式显示出输入信号并给图形加上网格

z

(2)=0;

z

(1)=0;

%取z的前两个初始值为零

15;

%循环变量从3到15

%给出理想的辨识输出采样信号

%RLS递推最小二乘辨识

c0=[0.0010.0010.0010.001]'

;

%直接给出被辨识参数的初始值,即一个充分小的实向量

p0=10^6*eye(4,4);

%直接给出初始状态P0,即一个充分大的实数单位矩阵

E=0.000000005;

%相对误差E=0.000000005

c=[c0,zeros(4,14)];

%被辨识参数矩阵的初始值及大小

e=zeros(4,15);

%相对误差的初始值及大小

%开始求K

h1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]'

x=h1'

*p0*h1+1;

x1=inv(x);

%开始求K(k)

k1=p0*h1*x1;

%求出K的值

d1=z(k)-h1'

*c0;

c1=c0+k1*d1;

%求被辨识参数c

e1=c1-c0;

%求参数当前值与上一次的值的差值

e2=e1./c0;

%求参数的相对变化

e(:

k)=e2;

%把当前相对变化的列向量加入误差矩阵的最后一列

c0=c1;

%新获得的参数作为下一次递推的旧参数

c(:

k)=c1;

%把辨识参数c列向量加入辨识参数矩阵的最后一列

p1=p0-k1*k1'

*[h1'

*p0*h1+1];

%求出p(k)的值

p0=p1;

%给下次用

ife2<

=Ebreak;

%若参数收敛满足要求,终止计算

end%大循环结束

c%显示被辨识参数

e%显示辨识结果的收敛情况

%分离参数

a1=c(1,;

a2=c(2,;

b1=c(3,;

b2=c(4,;

ea1=e(1,;

ea2=e(2,;

eb1=e(3,;

eb2=e(4,;

figure

(2);

%第2个图形

%横坐标从1到15

plot(i,a1,'

i,a2,'

:

'

i,b1,'

g'

i,b2,'

)%画出a1,a2,b1,b2的各次辨识结果

ParameterIdentificationwithRecursiveLeastSquaresMethod'

)%图形标题

figure(3);

%第3个图形

%横坐标从1到15

plot(i,ea1,'

i,ea2,'

i,eb1,'

b'

i,eb2,'

r:

)%画出a1,a2,b1,b2的各次辨识结果的收敛情况

IdentificationPrecision'

)%图形标题

%FLch3ELSeg4

clear

L=60;

%四位移位积存器产生的M序列的周期

%第一个移位积存器的输入信号

%第二个移位积存器的输入信号

%第三个移位积存器的输入信号

%第四个移位积存器的输入信号

%第四个移位积存器的输出信号,幅值"

0.5,u(i)=-1;

%M序列的值为"

时,辨识的输入信号取“-1”

elseu(i)=1;

时,辨识的输入信号取“1”

%为下一次的输入信号作准备

%画第一个图形

subplot(2,1,1);

%画第一个图形的第一个子图

stem(u),gridon%画出M序列输入信号

v=randn(1,60);

%产生一组60个正态分布的随机噪声

subplot(2,1,2);

%画第一个图形的第二个子图

plot(v),gridon;

%画出随机噪声信号

R=corrcoef(u,v);

%计算输入信号与随机噪声信号的相关系数

r=R(1,2);

%取出互相关系数

u%显示输入型号

v%显示噪声型号

z=zeros(7,60);

zs=zeros(7,60);

zm=zeros(7,60);

zmd=zeros(7,60);

%输出采样、不考虑噪声时系统输出、不考虑噪声时模型输出、模型输出矩阵的大小

zs

(2)=0;

zs

(1)=0;

zm

(2)=0;

zm

(1)=0;

zmd

(2)=0;

zmd

(1)=0;

%给输出采样、不考虑噪声时系统输出、不考虑噪声时模型输出、模型输出赋初值

%增广递推最小二乘辨识

c0=[0.0010.0010.0010.0010.0010.0010.001]'

p0=10^6*eye(7,7);

E=5.0e-15;

%取相对误差E

c=[c0,zeros(7,59)];

e=zeros(7,60);

60;

z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2)+v(k)-v(k-1)+0.2*v(k-2);

%系统在M序列输入下的输出采样信号

h1=[-z(k-1),-z(k-2),u(k-1),u(k-2),v(k),v(k-1),v(k-2)]'

%为求K(k)作准备

x=h1'

k1=p0*h1*x1;

%K

%辨识参数c

zs(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2);

%系统在M序列的输入下不考虑扰动时的输出响应

zm(k)=[-z(k-1),-z(k-2),u(k-1),u(k-2)]*[c1

(1);

c1

(2);

c1(3);

c1(4)];

%模型在M序列的输入下不考虑扰动时的的输出响应

zmd(k)=h1'

*c1;

%模型在M序列的输入下的的输出响应

%求参数的相对变化

%给下一次用

%把辨识参数c列向量加入辨识参数矩阵

%findp(k)

%若收敛情况满足要求,终止计算

end%判断结束

c,e,%显示被辨识参数及参数收敛情况

z,zmd%显示输出采样值、系统实际输出值、模型输出值

%分离变量

%分离出a1、a2、b1、b2

d1=c(5,;

d2=c(6,;

d3=c(7,;

%分离出d1、d2、d3

ea1=e(1,;

%分离出a1、a2、b1、b2的收敛情况

ed1=e(5,;

ed2=e(6,;

ed3=e(7,;

%分离出d1、d2、d3的收敛情况

%画第二个图形

b:

i,d1,'

i,d2,'

g:

i,d3,'

g+'

)%画出各个被辨识参数

)%标题

%画出第三个图形

i,ed1,'

i,ed2,'

r+'

)%画出各个参数收敛情况

IdentificationError'

%response%响应

figure(4);

%画出第四个图形

subplot(4,1,1);

%画出第四个图形中的四个子图的第一个子图

plot(i,zs(i),'

)%画出被辨识系统在没有噪声情况下的实际输出响应

subplot(4,1,2);

%画出第四个图形中的四个子图的第二个子图

plot(i,z(i),'

)%画出被辨识系统的采样输出响应

subplot(4,1,3);

%画出第四个图形中的四个子图的第三个子图

plot(i,zmd(i),'

)%画出模型含有噪声的输出响应

subplot(4,1,4);

%画出第四个图形中的四个子图的第四个子图

plot(i,zm(i),'

)%画出模型去除噪声后的输出响应

%FLch4GAeg1

u=[-1,-1,-1,-1,1,1,1,-1,1,1,-1,-1,1,-1,1,-1,-1,-1,-1,1];

y=[0,-2,-6,-7,-7,-3,5,7,3,-1,5,3,-5,-3,1,-1,1,-5,-7,-7];

%画出u和y图形

figure

(1),subplot(2,1,1),stem(u),subplot(2,1,2),stem(y),holdon

20

plot(k,y)

%给出初始值

h1=[-1,0,0]'

h2=[-1,-1,0]'

g=[0,0,0]'

I=[1,0,0;

0,1/2,0;

0,0,1/4];

h=[h1,h2,zeros(3,16)];

%计算输入样本数据h(k)

18

h(:

k)=[u(k),u(k-1),u(k-2)]'

%计算出权矩阵R(k)和估计值g

a=h(1,k)^2+(h(2,k)^2)/2+(h(3,k)^2)/4;

%按照式(4.45)开始计算权矩阵

a1=1/a;

R=a1*I;

%按照式(4.45)计算出权矩阵

g(:

k+1)=g(:

k)+R*h(:

k)*(y(k+1)-h(:

k)'

*g(:

k));

%按照式(4.44)计算脉冲响应估计值

%画出图形

g1=g(1,;

g2=g(2,;

g3=g(3,;

figure

(2)

19;

subplot(121)

plot(k,g1,'

k,g2,'

k,g3,'

),gridon

%计算模型输出值ym及系统输出与模型输出之间的误差Ey

ym(k)=h(:

k);

Ey(k)=y(k+1)-ym(k);

18;

subplot(122)

plot(k,Ey),gridon

g,ym,Ey%显示脉冲响应估计值、模型输出值及系统输出与模型输出之间的误差

figure(3)%画出脉冲响应曲线

x=0:

3;

y=[0,g(1,18),g(2,18),g(3,18)];

xi=linspace(0,3);

yi=interp1(x,y,xi,'

cubic'

%三次插值

plot(x,y,'

o'

xi,yi,'

m'

),gridon%画出脉冲响应估计值及其三次插值曲线

clear%清零

a

(1)=1;

b

(1)=0;

c

(1)=1;

d

(1)=0;

u

(1)=d

(1);

%初始化

fori=2:

1200%产生m序列u(i)

a(i)=xor(c(i-1),d(i-1));

b(i)=a(i-1);

c(i)=b(i-1);

d(i)=c(i-1);

u(i)=d(i);

u;

%若取去‘;

’可以在程序运行中观测到m序列

v=randn(1200,1);

%产生正态分布随机数

V=0;

%计算噪声方差

1200

V=V+v(i)*v(i);

V1=V/1200;

1200%根据v和u计算z

z(k)=1.2*z(k-1)-0.6*z(k-2)+u(k-1)+0.5*u(k-2)+v(k)-v(k-1)+0.2*v(k-2);

o1=0.001*ones(6,1);

p0=eye(6,6);

%赋初值

zf

(1)=0.1;

zf

(2)=0.1;

vf

(2)=0.1;

vf

(1)=0.1;

uf

(2)=0.1;

uf

(1)=0.1;

%迭代计算参数值和误差值

h=[-z(k-1);

-z(k-2);

u(k-1);

u(k-2);

v(k-1);

v(k-2)];

hf=h;

K=p0*hf*inv(hf'

*p0*hf+1);

p=[eye(6,6)-K*hf'

]*p0;

v(k)=z(k)-h'

*o1;

o=o1+K*v(k);

p0=p;

o1=o;

a1(k)=o

(1);

a2(k)=o

(2);

b1(k)=o(3);

b2(k)=o(4);

d1(k)=o(5);

d2(k)=o(6);

e1(k)=abs(a1(k)+1.2);

e2(k)=abs(a2(k)-0.6);

e3(k)=abs(b1(k)-1.0);

e4(k)=abs(b2(k)-0.5);

e5(k)=abs(d1(k)+1.0);

e6(k)=abs(d2(k)-0.2);

zf(k)=z(k)-d1(k)*zf(k-1)-d2(k)*zf(k-2);

uf(k)=u(k)-d1(k)*uf(k-1)-d2(k)*uf(k-2);

vf(k)=v(k)-d1(k)*vf(k-1)-d2(k)*vf(k-2);

hf=[-zf(k-1);

-zf(k-2);

uf(k-1);

uf(k-2);

vf(k-1);

vf(k-2)];

o1%若取去‘;

’可以在程序运行中观测到参数

V1

subplot(4,1,1)

1200;

plot(k,a1,'

k:

k,a2,'

k,b1,'

k,b2,'

m:

k,d1,'

k,d2,'

parameter'

legend('

a1=-1.2,'

'

a2=0.6'

b1=1.0'

b2=0.5'

d1=-1.0'

d2=0.2'

%图标炷

TheparameteridendificationoftheRML'

subplot(4,1,2)

plot(k,e1,'

k,e2,'

k,e3,'

k,e4,'

k,e5,'

k,e6,'

ylabel('

error'

%title('

误差曲线'

subplot(4,1,3)

plot(k,u);

input'

系统输入信号'

subplot(4,1,4)

plot(k,v);

randomnoise'

系统所加的随机噪声'

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2