系统辨识大作业Word格式.docx

上传人:b****3 文档编号:15046047 上传时间:2022-10-27 格式:DOCX 页数:20 大小:275.39KB
下载 相关 举报
系统辨识大作业Word格式.docx_第1页
第1页 / 共20页
系统辨识大作业Word格式.docx_第2页
第2页 / 共20页
系统辨识大作业Word格式.docx_第3页
第3页 / 共20页
系统辨识大作业Word格式.docx_第4页
第4页 / 共20页
系统辨识大作业Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

系统辨识大作业Word格式.docx

《系统辨识大作业Word格式.docx》由会员分享,可在线阅读,更多相关《系统辨识大作业Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

系统辨识大作业Word格式.docx

%%%%第一题

(1)程序%%%%

t=[0123456]'

;

L=[08.9420.0550.6572.19129.85171.56]'

T=0.5*t.^2;

A=polyfit(T,L,1);

z=polyval(A,T);

figure

plot(T,z);

plot(T,L,'

b+'

g=A

(1)%辨识参数

holdon

plot(T,z,'

r'

);

xlabel('

T/s^2'

ylabel('

L/m'

title('

最小二乘法求重力加速度g'

holdoff

运行结果:

a.最小二乘法拟合曲线图

b.参数辨识:

g=9.5793

即求得重力加速度值为9.5793。

(2)

设两国军备竞赛模型为

x(k)=ax(k-1)+by(k-1)+f

y(k)=cx(k-1)+dy(k-1)+g

式中x(k)和y(k)为两国军事费用(单位:

百万美元),已知数据如下:

k

伊朗

伊拉克

北约

华约

1972

2891

909

216478

112893

1973

3982

1123

211146

115020

1974

8801

2210

212267

117169

1975

11230

2247

210525

119612

1976

12178

2204

205717

121461

1977

9867

2303

212009

123561

1978

9165

2179

215988

125498

1979

5080

2675

218561

127185

1980

4040

225411

129000

1981

233957

131595

试用最小二乘法确定模型参数a,b,c,d,f和g。

分析

同上题,仍然利用最小二乘法,只不过此题不是单个数,而是矩阵。

作业程序

●伊朗和伊拉克

%%%%第一题

(2)1程序%%%%

y=[9091123221022472204230321792675];

x=[2891398288011123012178986791655080];

fork=2:

8

h(k,:

)=[x(k-1)y(k-1)1];

z(k,:

)=[x(k)y(k)];

end

est=inv(h'

*h)*h'

*z;

%算出a、b、f、c、d、g估计值,为三行两列的矩阵a=est(1,1),b=est(2,1),f=est(3,1),c=est(1,2),d=est(2,2),g=est(3,2)%分别取到a、b、f、c、d、g

plot([1972:

1979],x,'

holdon%画出实际与各自的估计曲线

hg=h*est;

abf=(hg(:

[1]))'

1979],abf,'

b'

1979],y,'

cdg=(hg(:

[2]))'

1979],cdg,'

g'

年代'

军事费用/百万美元'

%写出坐标表头

legend('

伊朗实际值'

'

伊朗估计值'

伊拉克实际值'

伊拉克估计值'

伊朗与伊拉克军事费用对比'

holdoff

●北约和华约

x=[216478211146212267210525205717212009215988218561255411233957];

y=[112893115020117169119612121461123561125498127185129000131595];

10

%用最小二乘法求出估计值a=est(1,1),b=est(2,1),f=est(3,1),c=est(1,2),d=est(2,2),g=est(3,2)

1981],x,'

%取guji矩阵的第一列即a,b,f的值

1981],abf,'

1981],y,'

1981],cdg,'

ylabel('

北约实际值'

北约估计值'

华约克实际值'

华约克估计值'

北约与华约事费用对比'

最小二乘法辨识结果

参数

A

b

f

c

d

G

伊朗与伊拉克

0.5481

-0.2034

4447.5

-0.0306

0.7443

987.1565

北约与华约

0.1540

1.7438

-70770

0.0181

0.9675

2075.6

结果分析

由以上对比曲线可以看出,经过最小二乘法估计得到的数据与实际数据之间虽然存在区别,但是基本符合要求,故可取该组辨识参数数据。

二、

考虑理想数学模型为

选择如下的辨识模型进行增广递推最小二乘参数辨识。

给出各参数的辨识曲线和辨识误差曲线。

应该使用增广递推最小二乘算法。

%%%%第二题程序%%%%

N=15;

%4位移位寄存器产生的M序列的周期

y1=1;

y2=1;

y3=1;

y4=0;

fori=1:

N;

x1=xor(y3,y4);

x2=y1;

x3=y2;

x4=y3;

y(i)=y4;

ify(i)>

0.5,u(i)=-1;

elseu(i)=1;

end

y1=x1;

y2=x2;

y3=x3;

y4=x4;

%白噪声的产生

A=19;

x0=12;

M=1024;

fork=1:

N

x=A*x0;

x1=mod(x,M);

v(k)=x1/512;

x0=x1;

%辨识主程序

z=zeros(7,N);

zs=zeros(7,N);

zm=zeros(7,N);

zmd=zeros(7,N);

z

(1)=0;

z

(2)=0;

zs

(1)=0;

zs

(2)=0;

zm

(1)=0;

zm

(2)=0;

zmd

(1)=0;

zmd

(2)=0;

theta=zeros(7,1);

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

the=[theta,zeros(7,14)];

e=zeros(7,15);

fork=3:

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

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

x=inv(h'

*p0*h+1);

q=p0*h*x;

d1=z(k)-h'

*theta;

theta1=theta+q*d1;

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

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

(1);

theta1

(2);

theta1(3);

theta1(4)];

zmd(k)=h'

*theta1;

e(:

k)=theta1-theta;

theta=theta1;

the(:

k)=theta1;

p1=p0-q*q'

*[h'

*p0*h+1];

p0=p1;

figure

(1);

i=1:

plot(i,the(1,:

),'

i,the(2,:

r:

'

i,the(3,:

i,the(4,:

b:

i,the(5,:

i,the(6,:

g:

i,the(7,:

g+'

辨识曲线'

figure

(2);

plot(i,e(1,:

i,e(2,:

i,e(3,:

i,e(4,:

i,e(5,:

i,e(6,:

i,e(7,:

r+'

辨识误差曲线'

运行程序,得到以下曲线

得到参数辨识结果

增广最小二乘参数辨识结果

a1

a2

b1

b2

d1

d2

d3

真值

1.5

0.7

1.0

0.5

1.2

-1.0

0.2

估计值

三、

完善试验2,给出由相关分析法给出的脉冲响应函数辨识曲线,在试验2的基础上,给出拟合二阶及三阶系统的最小二乘辨识参数曲线,及由脉冲响应函数反求传函。

利用带遗忘因子的递推算法。

%%%%第三题程序%%%%

n=2;

Ts=2;

np=15;

%n阶次,Ts采样时间

U=UY(61:

300,1);

%输入初值U

Y=UY(61:

300,2);

%输入初值Y

f=zeros(120,4);

f(:

1)=-1*Y(61:

180);

2)=-1*Y(60:

179);

3)=U(61:

4)=U(60:

yy=Y(62:

181);

q=inv(f'

*f)*f'

*yy;

a=q(1:

2);

b=q(3:

4);

G=tf(b'

[1a'

],2)%传递函数GLS(z)

yc=zeros(n+np,1);

%脉冲响应

uc=zeros(n+np,1);

uc(n+1)=1/Ts;

for

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

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1