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

上传人:b****2 文档编号:680412 上传时间:2023-04-29 格式:DOCX 页数:36 大小:193.04KB
下载 相关 举报
现代控制理论控实验报告.docx_第1页
第1页 / 共36页
现代控制理论控实验报告.docx_第2页
第2页 / 共36页
现代控制理论控实验报告.docx_第3页
第3页 / 共36页
现代控制理论控实验报告.docx_第4页
第4页 / 共36页
现代控制理论控实验报告.docx_第5页
第5页 / 共36页
现代控制理论控实验报告.docx_第6页
第6页 / 共36页
现代控制理论控实验报告.docx_第7页
第7页 / 共36页
现代控制理论控实验报告.docx_第8页
第8页 / 共36页
现代控制理论控实验报告.docx_第9页
第9页 / 共36页
现代控制理论控实验报告.docx_第10页
第10页 / 共36页
现代控制理论控实验报告.docx_第11页
第11页 / 共36页
现代控制理论控实验报告.docx_第12页
第12页 / 共36页
现代控制理论控实验报告.docx_第13页
第13页 / 共36页
现代控制理论控实验报告.docx_第14页
第14页 / 共36页
现代控制理论控实验报告.docx_第15页
第15页 / 共36页
现代控制理论控实验报告.docx_第16页
第16页 / 共36页
现代控制理论控实验报告.docx_第17页
第17页 / 共36页
现代控制理论控实验报告.docx_第18页
第18页 / 共36页
现代控制理论控实验报告.docx_第19页
第19页 / 共36页
现代控制理论控实验报告.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

现代控制理论控实验报告

实验一MATLAB控制工具箱的应用及线性系统的运动分析

实验日期2013年5月21日成绩:

______

批阅教师签字

1.实验目的

⑴学习掌握MATLAB控制工具箱中的基本命令

⑵掌握线性系统的运动分析方法

2.实验环境

MATLAB6.5

3.实验内容、源程序代码、实验数据及结果分析

⑴自选控制对象模型,应用以下命令,并写出结果

1)step,damp,pzmap,rlocus,rlocfind,bode,margin,nyquist

2)tf2ss,ss2tf,tf2zp,zp2ss

3)ss2ss,Jordan,canon,eig

实现如下:

1)①step单位阶跃响应

当输入为单位阶跃信号时,系统的输出为单位阶跃响应。

其调用格式为:

[y,x,t]=step(num,den,t)或step(num,den)

例1:

求系统传递函数为W

=

的单位阶跃响应

num=[1];den=[10.51];

sys=tf(num,den);

step(sys)

grid;%绘制表格

xlabel('t');ylabel('y');

title('单位阶跃响应');

 

②damp返回系统特征值、衰减与频(借用例1)

num=[1];den=[10.51];

sys=tf(num,den);

damp(sys)

其输出结果为:

EigenvalueDampingFreq.(rad/s)

-2.50e-001+9.68e-001i2.50e-0011.00e+000

-2.50e-001-9.68e-001i2.50e-0011.00e+000

③pzmap绘制系统零极点图

其调用格式为:

[p,z]=pzmap(sys)绘图并返回极点p,零点z

或者pzmap(sys)直接绘图

④rlocus绘制系统根轨迹

例2:

给定系统G

=

绘制零极点图

程序如下:

num=[1213];den=[10.521];

sys=tf(num,den);

[p,z]=pzmap(sys)

rlocus(sys);

title('系统闭环根轨迹');

 

 

>>p=0+1.4142i>>z=-2.1746

0-1.4142i0.0873+1.1713i

-0.50000.0873-1.1713i

⑤rlocusfind计算与根轨迹上极点相应的根轨迹增益

例3:

已知一个单位负反馈系统开环传递函数为:

W

=

试绘制闭环系统的根轨迹;在根轨迹上任选一点,并计算该点的增益k及其所有极点的位置

num=1;den=conv([10],conv([0.51],[41]));

sys=tf(num,den);

rlocus(sys);

[k,poles]=rlocfind(sys)

title('系统闭环根轨迹')

 

>>Selectapointinthegraphicswindow(用光标选)

selected_point=-0.7583-5.1056i

k=278.3081

poles=-6.01411.8821+4.4267i1.8821-4.4267i

⑥bode绘制给定系统的伯德图(以例3为例)

num=1;

den=conv([10],conv([0.51],[41]));

sys=tf(num,den);

bode(sys);

gridon;

title('BodeDiagram');

xlabel('Frequency(rad/sec)');

ylabel('GaindB');

 

⑦margin求解稳定裕度(以例1为例)

num=[1];den=[10.51];

sys=tf(num,den);

[Gm,Pm,Wcg,Wcp]=margin(num,den);

>>Gm=InfPm=41.4091Wcg=InfWcp=1.3229

返回的变量对(Gm,Wcg)为系统的增益裕度的值和与之对应的频率

而(Pm,Wcp)为系统的相位裕度的值和与之对应的频率

⑧nyquist绘制奈氏曲线(以例1为例)

num=[1];den=[10.51];

nyquist(num,den);

 

2)

①ss2tf将状态空间模型转换成传递函数模型

A=[010;001;-4-3-2];B=[1;3;-6];

C=[100];D=0;

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

>>num=01.00005.00003.0000

den=1.00002.00003.00004.0000

②tf2ss将传递函数转换成状态空间模型

num=[153];den=[1234];

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

>>A=-2-3-4B=1C=153D=0

1000

0100

③tf2zp将传递函数转换成零极点增益模型

num=[1213];den=[10.521];

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

>>z=-2.1746p=0+1.4142ik=1

0.0873+1.1713i0-1.4142i

0.0873-1.1713i-0.5000

④zp2ss将零极点增益模型转换成状态空间模型

z=[-2.17460.0873+1.1713i0.0873-1.1713i];

p=[0+1.4142i0-1.4142i-0.5000];

k=1;

[A,B,C,D]=zp2ss(z,p,k)

>>A=-0.500000B=1

1.67460-1.41420

01.414200

C=1.6746-0.1746-0.4387D=1

3)

①ss2ss求状态空间模型的坐标

A=[010;001;-5-3-2];B=[0;0;1];

C=[1.510.5];D=0;

T=eye(3,3);

sys=ss(A,B,C,D);

SYS=ss2ss(sys,T)

>>a=x1x2x3b=u1

x1010x10

x2001x20

x3-5-3-2x31

c=x1x2x3d=u1

y11.510.5y10

Continuous-timemodel.

②Jordan约旦标准型eig求矩阵的特征值

A=sym(gallery(3));%构造3x3的随即矩阵

E=eig(A)%求A的特征值

J=jordan(A)%求A的约旦标准型

>>E=[1]J=[1,0,0]

[2][0,2,0]

[3][0,0,3]

从运算结果可知A的特征值即为A的约旦标准型对角数值

③canon将状态方程化成规范性

Matlab提供的canon函数只有两种模式即model和companion,model为约旦标准型

A=[010;001;-5-3-2];B=[0;0;1];

C=[1.510.5];D=0;

sys=ss(A,B,C,D);

[Gt,P]=canon(sys,'model')

>>a=x1x2x3b=u1

x1-0.078131.6450x10.5106

x2-1.645-0.078130x2-0.6646

x300-1.844x30.6859

c=x1x2x3d=u1

y1-0.06476-0.45170.3395y10

Continuous-timemodel.

P=-1.9420-0.11190.5106

-1.6442-2.1171-0.6646

1.86020.10720.6859

⑵掌握线性系统的运动分析方法

1)已知A=

,求e

(用三种方法求解)

①状态转移矩阵的指数矩阵计算法

a=[01;-2-3];

symst;

eat1=expm(a*t)

>>eat1=[-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t)]

[-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-exp(-t)]

②状态转移矩阵的拉氏变换计算法

a=[01;-2-3];

symsst;

G=inv(s*eye(size(a))-a)

eat2=ilaplace(G)

>>G=[(s+3)/(s^2+3*s+2),1/(s^2+3*s+2)]

[-2/(s^2+3*s+2),s/(s^2+3*s+2)]

eat2=[-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t)]

[-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-exp(-t)]

③非奇异变换法-计算特征值及特征向量矩阵

a=[01;-2-3];

symst;

[P,D]=eig(a);

Q=inv(P);eat3=P*expm(D*t)*Q

>>eat3=[-exp(-2*t)+2*exp(-t),exp(-t)-exp(-2*t)]

[-2*exp(-t)+2*exp(-2*t),2*exp(-2*t)-exp(-t)]

2)利用MATLAB求解书上例2.8题,并画出状态响应和输出响应曲线,求解时域性能指标。

(加图标题、坐标轴标注及图标)

a=[-10;0-2];b=[1;1];

c=[1.50.5];d=0;

[num,den]=ss2tf(a,b,c,d);

sys=tf(num,den);

figure

(1);

[p.z]=pzmap(sys);

rlocus(sys);

grid;

title('系统根轨迹图');

x0=[2;3];

symsst;

G0=inv(s*eye(size(a))-a)

x1=ilaplace(G0)*x0

G1=inv(s*eye(size(a))-a)*b

x2=ilaplace(G1/s)

x=x1+x2

y=c*x

forI=1:

61;

tt=0.1*(I-1);

xt(:

I)=subs(x(:

),'t',tt);

yt(I)=subs(y,'t',tt);

end;

figure

(2);

plot(0:

60,[xt;yt]);

grid;

xlabel('t(s)');

ylabel('ampitude');

title('系统的状态响应(相交叉-下)和输出响应(叠加-上)')

 

>>G0=[1/(s+1),0]x1=[2*exp(-t)]

[0,1/(s+2)][3*exp(-2*t)]

G1=[1/(s+1)]x2=[1-exp(-t)]

[1/(s+2)][1/2-1/2*exp(-2*t)]

x=[exp(-t)+1]y=3/2*exp(-t)+7/4+5/4*exp(-2*t)

[5/2*exp(-2*t)+1/2]

3)利用MATLAB求解书上例2.12题,并画出状态响应和输出响应曲线。

(加图标题、坐标轴标注及图标)

g=[01;-0.16-1];h=[1;1];

G=ss(g);

x0=[1;-1];

symsst;

G0=inv(s*eye(size(g))-g)

x1=ilaplace(G0)*x0

G1=inv(s*eye(size(g))-g)*h

x2=ilaplace(G1/s)

x=x1+x2

y=c*x

forI=1:

61;

tt=0.1*(I-1);

xt(:

I)=subs(x(:

),'t',tt);

yt(I)=subs(y,'t',tt);

end;

plot(0:

60,[xt;yt]);

xlabel('t(s)');

ylabel('ampitude');

title('系统的状态响应和输出响应')

 

>>G0=[25*(s+1)/(25*s^2+25*s+4),25/(25*s^2+25*s+4)]

[-4/(25*s^2+25*s+4),25*s/(25*s^2+25*s+4)]

x1=[4/3*exp(-4/5*t)-1/3*exp(-1/5*t)]

[-16/15*exp(-4/5*t)+1/15*exp(-1/5*t)]

G1=[25*(s+1)/(25*s^2+25*s+4)+25/(25*s^2+25*s+4)]

[-4/(25*s^2+25*s+4)+25*s/(25*s^2+25*s+4)]

x2=[5/2*exp(-4/5*t)-15*exp(-1/5*t)+25/2]

[-2*exp(-4/5*t)+3*exp(-1/5*t)-1]

x=[23/6*exp(-4/5*t)-46/3*exp(-1/5*t)+25/2]

[-46/15*exp(-4/5*t)+46/15*exp(-1/5*t)-1]

y=253/60*exp(-4/5*t)-322/15*exp(-1/5*t)+73/4

4)

①P361.4

(2)已知系统的状态空间表达式为:

=

+

Y=

用MATLAB编程求系统的传递函数矩阵

A=[214;020;001];B=[10;34;21];C=[351];D=[00];

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

>>num=020.0000-29.0000-13.0000

den=1-58-4

②P361.5(3)已知系统传递函数阵:

G(s)=

求系统的状态空间模型

num=[1422;3110];den=[1232];

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

>>A=-2-3-2B=1C=2-10D=1

1000-5-8-63

0100

③P562.3(3)已知系统方成如下:

=

x+

uy=

x求输入和初值为以下值时的状态响应和输出响应:

u(t)=1(t),x(0)=

a=[01;-6-5];b=[1;0];c=[1.50.5];d=0;

G=ss(a,b,c,d);

x0=[1;1];

symsst;

G0=inv(s*eye(size(a))-a);

x1=ilaplace(G0)*x0

G1=inv(s*eye(size(a))-a)*b;

x2=ilaplace(G1/s)

x=x1+x2

y=c*x

forI=1:

61;

tt=0.1*(I-1);

xt(:

I)=subs(x(:

),'t',tt);

yt(I)=subs(y,'t',tt);

end;

plot(0:

60,[xt;yt]);

xlabel('t(s)');

ylabel('ampitude');

title('系统的状态响应和输出响应');

运行结果如下:

>>x1=[-3*exp(-3*t)+4*exp(-2*t)]

[-8*exp(-2*t)+9*exp(-3*t)]

x2=[2/3*exp(-3*t)-3/2*exp(-2*t)+5/6]

[-1+3*exp(-2*t)-2*exp(-3*t)]

x=[-7/3*exp(-3*t)+5/2*exp(-2*t)+5/6]

[-5*exp(-2*t)+7*exp(-3*t)-1]

y=5/4*exp(-2*t)+3/4

 

实验二系统的能空性、能观测性、稳定性分析及实现

实验日期2013年5月21日成绩:

______

批阅教师签字

1.实验目的

加深理解能观测性、能控性、稳定性、最小实现等概念。

掌握如何使用MATLAB进行以下分析和实现

⑴系统的能观测性、能控性分析;

⑵系统的稳定性分析;

⑶系统的最小实现。

2.实验环境

MATLAB6.5

3.实验内容、源程序代码、实验数据及结果分析

⑴能控性、能观测性及系统实现

(a)了解以下命令的功能,自选对象模型,进行运算,并写出结果。

gram,ctrb,obsv,lyap,ctrbf,obsvf,mineral

实现如下:

1gram

%利用gram矩阵判断系统的能控性和能观测性

a=[010;001;-6-11-6];b=[01;10;01];

c=[101;010];d=0;

G=ss(a,b,c,d);

wc=gram(G,'c'),nc=det(wc)

ifnc~=0,disp('Systemiscontrollable!

'),

elsedisp('Systemisuncontrollable!

'),

end

wo=gram(G,'o'),no=det(wo)

ifno~=0,disp('Systemisobservable!

'),

elsedisp('Systemisuncontrollable!

'),

end

运行结果:

>>wc=1.7000-0.5000-0.7000

-0.50000.7000-0.5000

-0.7000-0.50001.7000

nc=0.4800

Systemiscontrollable!

wo=1.21670.05000.0833

0.05001.22500.0500

0.08330.05000.0917

no=0.1253

Systemisobservable!

②ctrbobsv

%利用ctrb和obsv矩阵判断系统的能控性和能观测性

a=[010;001;-6-11-6];b=[01;10;01];

c=[101;010];d=0;

n=length(a)

qc=ctrb(a,b),nc=rank(qc)

ifn==nc,disp('Systemiscontrollable!

'),

elsedisp('Systemisuncontrollable!

'),

end

qo=obsv(a,c),no=rank(qo)

ifn==no,disp('Systemisobservable!

'),

elsedisp('Systemisuncontrollable!

'),

end

运行结果:

>>n=3

qc=011001

1001-11-12

01-11-126061

nc=3

Systemiscontrollable!

qo=101

010

-6-10-6

001

366026

-6-11-6

no=3

Systemisobservable!

③lyap

X=lyap(A,C)求解满足李雅普诺夫方程的对称矩阵X

其中A,C为给定矩阵,且C为对称矩阵。

A=[01;-0.5-1];

C=eye(2,2);

P=lyap(A,C)

>>P=2.22.2

2.22.2

④ctrbfobsvf

%能控性结构分解和能观测性结构分解

a=[00-1;10-3;01-3];

b=[1;1;0];c=[01-2];d=0;

[Ac,Bc,Cc,Tc,Kc]=ctrbf(a,b,c)

[Ao,Bo,Co,To,Ko]=obsvf(a,b,c)

运行结果:

>>Ac=-1.00000.0000-0.0000Bc=0

-2.1213-2.50000.86600

-1.2247-2.59810.5000-1.4142

Cc=1.73211.2247-0.7071

Tc=-0.57740.5774-0.5774Kc=110

0.4082-0.4082-0.8165

-0.7071-0.70710

Ao=-1.0000-1.3416-3.8341Bo=1.2247

0.0000-0.4000-0.7348-0.5477

00.4899-1.6000-0.4472

Co=00.0000-2.2361

To=0.40820.81650.4082Ko=110

-0.91290.36510.1826

0-0.44720.8944

⑤mineral最小实现

num=[22];den=[16116];

G=tf(num,den);Gs=ss(G);

Gm=minreal(Gs);

Am=Gm.a

Bm=Gm.b

Cm=Gm.c

Dm=Gm.d

运行结果:

>>1stateremoved.

Am=2.0121-5.7764Bm=0.1212

3.4812-7.0121-0.4848

Cm=0.50000.1250Dm=0

(b)已知连续系统的传递函数模型G(s)=

,当a分别取-1、0、1时,判别系统的能控性与能观测性

程序如下:

①a=-1

num=[1-1];den=[1102718];

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

n=length(A)

Qc=ctrb(A,B)

nc=rank(Qc)

ifn==nc,disp('Systemiscontrollable!

'),

elsedisp('Systemisuncontrollable!

'),

end

Qo=obsv(A,C)

no=rank(Qo)

ifn==no,disp('Systemisobservable!

'),

elsedisp('Systemisunobservable!

'),

end

运行结果:

>>A=-10-27-18B=1C=01-1D=

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

当前位置:首页 > 法律文书 > 调解书

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

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