《现代控制理论》实验报告.docx

上传人:b****6 文档编号:7416865 上传时间:2023-01-23 格式:DOCX 页数:19 大小:202.72KB
下载 相关 举报
《现代控制理论》实验报告.docx_第1页
第1页 / 共19页
《现代控制理论》实验报告.docx_第2页
第2页 / 共19页
《现代控制理论》实验报告.docx_第3页
第3页 / 共19页
《现代控制理论》实验报告.docx_第4页
第4页 / 共19页
《现代控制理论》实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《现代控制理论》实验报告.docx

《《现代控制理论》实验报告.docx》由会员分享,可在线阅读,更多相关《《现代控制理论》实验报告.docx(19页珍藏版)》请在冰豆网上搜索。

《现代控制理论》实验报告.docx

《现代控制理论》实验报告

现代控制理论实验报告

 

 

 

组员:

院系:

信息工程学院

专业:

指导老师:

年月日

实验1系统的传递函数阵和状态空间表达式的转换

[实验要求]

应用MATLAB对系统仿照[例1.2]编程,求系统的A、B、C、阵;然后再仿照[例1.3]进行验证。

并写出实验报告。

[实验目的]

1、学习多变量系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;

2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。

[实验内容]

1设系统的模型如式(1.1)示。

(1.1)

其中A为n×n维系数矩阵、B为n×m维输入矩阵C为p×n维输出矩阵,D为传递阵,一般情况下为0,只有n和m维数相同时,D=1。

系统的传递函数阵和状态空间表达式之间的关系如式(1.2)示。

(1.2)

式(1.2)中,

表示传递函数阵的分子阵,其维数是p×m;

表示传递函数阵的按s降幂排列的分母。

2实验步骤

1根据所给系统的传递函数或(A、B、C阵),依据系统的传递函数阵和状态空间表达式之间的关系如式(1.2),采用MATLA的file.m编程。

注意:

ss2tf和tf2ss是互为逆转换的指令;

2在MATLA界面下调试程序,并检查是否运行正确。

3[1.1]已知SISO系统的状态空间表达式为(1.3),求系统的传递函数。

(1.3)

程序:

A=[0100;00-10;0001;0050];

B=[0;1;0;-2];

C=[1000];

D=0;

[num,den]=ss2tf(A,B,C,D,1)

程序运行结果:

num=

0-0.00001.0000-0.0000-3.0000

den=

1.00000-5.000000

从程序运行结果得到:

系统的传递函数为:

4[1.2]从系统的传递函数式求状态空间表达式。

程序:

num=[0010-3];

den=[10-500];

[A,B,C,D]=tf2ss(num,den)

程序运行结果:

A=

0500

1000

0100

0010

B=

1

0

0

0

C=

010-3

D=

0

5[1.3]对上述结果进行验证编程

%将[1.2]上述结果赋值给A、B、C、D阵;

A=[0500;1000;0100;0010];

B=[1;0;0;0];

C=[010-3];

D=0;

[num,den]=ss2tf(A,B,C,D,1)

实验结果:

num=

00.00001.00000.0000-3.0000

den=

1.00000-5.000000

程序运行结果与[1.1]完全相同。

[实验分析]

当已知系统的状态空间表达式,我们可以求得系统的传递函数。

当已知系统的传递函数式,我们也可以求得状态空间表达式。

由于一个系统的状态空间表达式并不唯一,所以程序运行结果有可能不等于原式中的矩阵,但该结果与原式是等效的。

验证结果证明了这个结论。

实验2状态空间控制模型系统仿真及状态方程求解

[实验要求]

1、进行模型间的相互转换。

2、绘出系统单位阶跃及脉冲曲线。

[实验目的]

1、熟悉线性定常离散与连续系统的状态空间控制模型的各种表示方法。

2、熟悉系统模型之间的转换功能。

3、利用MATLAB对线性定常系统进行动态分析

[实验内容]

1、给定系统

,求系统的零极点增益模型和状态空间模型,并求其单位脉冲响应及单位阶跃响应。

2、已知离散系统状态空间方程:

采样周期

域和连续域对系统性能进行仿真、分析。

[实验结果及分析]

1、

程序:

num=[1213];

den=[10.521];

sys=tf(num,den)

[z,p,k]=tf2zp(num,den)

[A,B,C,D]=tf2ss(num,den)

impulse(sys),holdon

step(sys)

 

程序运行结果:

Transferfunction:

s^3+2s^2+s+3

-----------------------

s^3+0.5s^2+2s+1

z=

-2.1746

0.0873+1.1713i

0.0873-1.1713i

p=

0+1.4142i

0-1.4142i

-0.5000

k=

1

A=

-0.5000-2.0000-1.0000

1.000000

01.00000

B=

1

0

0

C=

1.5000-1.00002.0000

D=

1

单位脉冲响应/单位阶跃响应:

2、

程序:

g=[-1-22;0-11;10-1];

h=[2;0;1];

c=[120];

d=0;

u=1;

sysd=ss(g,h,c,d,0.05)

dstep(g,h,c,d,u)

程序运行结果:

a=

x1x2x3

x1-1-22

x20-11

x310-1

b=

u1

x12

x20

x31

c=

x1x2x3

y1120

d=

u1

y10

 

Samplingtime:

0.05

Discrete-timemodel.

 

Z域性能仿真图形:

连续域仿真曲线:

sysc=d2c(sysd,'zoh')

step(sysc)

和连续系统不同,离散系统中各部分的信号不再都是时间变量t的连续函数。

实验3能控能观判据及稳定性判据

[实验目的]

1、利用MATLAB分析线性定常及离散系统的可控性与可观性。

2、利用MATLAB进行线性定常及离散系统的李雅普诺夫稳定性判据。

[实验内容]

1、已知系统状态空间方程:

(1)

(2)

对系统进行可控性、可观性分析。

2、已知系统状态空间方程描述如下:

试判定其稳定性,并绘制出时间响应曲线来验证上述判断。

 

[实验结果及分析]

(1)能控性分析

程序:

A=[010;001;-2-4-3]

B=[10;01;-11]

Qc=ctrb(A,B)

rank(Qc)

程序运行结果:

A=

010

001

-2-4-3

B=

10

01

-11

Qc=

1001-11

01-111-7

-111-7115

ans=

3

系统满秩,故系统能控。

系统的状态可控性描述了输入对状态的控制能力

(2)能观性分析

程序:

A=[043;02016;0-25-20]

C=[-130]

rank(obsv(A,C))

程序运行结果:

A=

043

02016

0-25-20

C=

-130

ans=

3

系统满秩,故系统能观。

系统的状态可观性描述了通过输出可以观测状态的能力

 

2、

程序:

A=[-3-6-2-1;1000;0100;0010];

B=[1;0;0;0];C=[0011];D=[0];

[z,p,k]=ss2zp(A,B,C,D,1);

Flagz=0;

n=length(A);

fori=1:

n

if

real(p(i))>0

Flagz=1;

end

end

disp('系统的零极点模型为');z,p,k

程序运行结果:

系统的零极点模型为

z=

-1.0000

p=

-1.3544+1.7825i

-1.3544-1.7825i

-0.1456+0.4223i

-0.1456-0.4223i

k=

1

程序:

ifFlagz==1

disp('系统不稳定');

elsedisp('系统是稳定的');

end

step(A,B,C,D);

程序运行结果为:

系统是稳定的

 

程序:

step(A,B,C,D);

程序运行结果为:

从图中可以看出,系统是稳定的

 

实验4状态反馈及状态观测器的设计

[实验要求]

1、求出系统的状态空间模型;

2、依据系统动态性能的要求,确定所希望的闭环极点P;

3、利用上面的极点配置算法求系统的状态反馈矩阵K;

4、检验配置后的系统性能。

[实验目的]

1、熟悉状态反馈矩阵的求法。

2、熟悉状态观测器设计方法。

[实验内容]

1、某控制系统的状态方程描述如下:

通过状态反馈使系统的闭环极点配置在P=[-30,-1.2,-2.4

4i位置上,求出状态反馈阵K,并绘制出配置后系统的时间响应曲线。

2、考虑下面的状态方程模型:

要求选出合适的参数状态观测器(设观测器极点为op=[-100;-102;-103])。

[实验结果及分析]

1、

程序:

A=[-10-35-50-24;1000;0100;0010];

B=[1;0;0;0];

C=[172424];

D=[0];

disp('原系统的极点为');

p=eig(A)'%求原系统极点转置

np=[-30;-1.2;-2.4+sqrt(-16);-2.4-sqrt(-16)]

K=place(A,B,np)%求反馈K值

disp('极点配置后的闭还系统为');

sysnew=ss(A-B*K,B,C,D)%配置后新系统

disp('配置后系统的极点为');

pp=eig(A-B*K)'%求新系统极点

step(sysnew/dcgain(sysnew))%dcgain为求最大增益,使得最后结果在0—1

程序运行结果:

原系统的极点为

p=

-4.0000-3.0000-2.0000-1.0000

np=

-30.0000

-1.2000

-2.4000+4.0000i

-2.4000-4.0000i

K=

26.0000172.5200801.7120759.3600

极点配置后的闭还系统为

a=

x1x2x3x4

x1-36-207.5-851.7-783.4

x21000

x30100

x40010

b=

u1

x11

x20

x30

x40

c=

x1x2x3x4

y1172424

d=

u1

y10

Continuous-timemodel.

配置后系统的极点为

pp=

-30.0000-2.4000-4.0000i-2.4000+4.0000i-1.2000

2、

程序:

A=[010;9800-2.8;00-100];

B=[0;0;100];

C=[100];

D=[0];

op=[-100;-102;-103];

disp('原系统为');

sysold=ss(A,B,C,D)

disp('原系统的闭还极点为');

p=eig(A)

n=length(A);%求A阵维度

Q=zeros(n);%为n维0阵

Q(1,:

)=C;%C阵为Q第一行

fori=2:

n

Q(i,:

)=Q(i-1,:

)*A;

end

m=rank(Q);

ifm==n

H=place(A',C',op')';

else

disp('系统不是状态完全可观测')

end

disp('状态观测器模型');

est=estim(sysold,H)

disp('配置后观测器的极点为');

p=eig(est)

程序运行结果:

原系统为

a=

x1x2x3

x1010

x29800-2.8

x300-100

b=

u1

x10

x20

x3100

c=

x1x2x3

y1100

d=

u1

y10

Continuous-timemodel.

原系统的闭还极点为

p=

31.3050

-31.3050

-100.0000

状态观测器模型

a=

x1x2x3

x1-20510

x2-1.051e+0040-2.8

x300-100

b=

u1

x1205

x21.149e+004

x30

c=

x1x2x3

y1100

y2100

y3010

y4001

d=

u1

y10

y20

y30

y40

Inputgroups:

NameChannels

Measurement1

Outputgroups:

NameChannels

OutputEstimate1

StateEstimate2,3,4

Continuous-timemodel.

配置后观测器的极点为

p=

-103.0000

-102.0000

-100.0000

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

当前位置:首页 > 教学研究 > 教学案例设计

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

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