完整word版现代控制理论实验报告word文档良心出品.docx

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

完整word版现代控制理论实验报告word文档良心出品.docx

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

完整word版现代控制理论实验报告word文档良心出品.docx

完整word版现代控制理论实验报告word文档良心出品

 

现代控制理论实验报告

 

 

二〇一六年五月

实验一线性定常系统模型

一实验目的

1.掌握线性定常系统的状态空间表达式。

学会在MATLAB中建立状态空间模型的方法。

2.掌握传递函数与状态空间表达式之间相互转换的方法。

学会用MATLAB实现不同模型之间的相互转换。

3.熟悉系统的连接。

学会用MATLAB确定整个系统的状态空间表达式和传递函数。

4.掌握状态空间表达式的相似变换。

掌握将状态空间表达式转换为对角标准型、约当标准型、能控标准型和能观测标准型的方法。

学会用MATLAB进行线性变换。

二实验内容

1.已知系统的传递函数

(1)建立系统的TF或ZPK模型。

(2)将给定传递函数用函数ss()转换为状态空间表达式。

再将得到的状态空间表达式用函数tf()转换为传递函数,并与原传递函数进行比较。

(3)将给定传递函数用函数jordants()转换为对角标准型或约当标准型。

再将得到的对角标准型或约当标准型用函数tf()转换为传递函数,并与原传递函数进行比较。

(4)将给定传递函数用函数ctrlts()转换为能控标准型和能观测标准型。

再将得到的能控标准型和能观测标准型用函数tf()转换为传递函数,并与原传递函数进行比较。

2.已知系统的传递函数

(1)建立给定系统的状态空间模型。

用函数eig()求出系统特征值。

用函数tf()和zpk()将这些状态空间表达式转换为传递函数,记录得到的传递函数和它的零极点。

比较系统的特征值和极点是否一致,为什么?

(2)用函数canon()将给定状态空间表达式转换为对角标准型。

用函数eig()求出系统特征值。

比较这些特征值和

(1)中的特征值是否一致,为什么?

再用函数tf()和zpk()将对角标准型或约当标准型转换为传递函数。

比较这些传递函数和

(1)中的传递函数是否一致,为什么?

(3)用函数ctrlss()将给定的状态空间表达式转换为能控标准型和能观测标准型。

用函数eig()求系统的特征值。

比较这些特征值和

(1)中的特征值是否一致,为什么?

再用函数tf()将它们转换为传递函数。

比较这些传递函数和

(1)中的传递函数是否一致,为什么?

三实验结果

1.已知系统的传递函数

>>num=4;

>>den=[15730];

>>G=tf(num,den)

Transferfunction:

4

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

s^4+5s^3+7s^2+3s

>>z=[];

>>p=[0-1-1-3];

>>k=4;

>>G=zpk(z,p,k)

Zero/pole/gain:

4

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

s(s+1)^2(s+3)

>>Gss=ss(G)

a=

x1x2x3x4

x10100

x20-110

x300-11

x4000-3

b=

u1

x10

x20

x30

x42

c=

x1x2x3x4

y12000

d=

u1

y10

Gtf=tf(Gss)

Transferfunction:

4

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

s^4+5s^3+7s^2+3s

>>Gzpk=zpk(Gtf)

Zero/pole/gain:

4

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

s(s+3)(s+1)^2

 

2.

>>A=[01;-5-6];B=[0;1];

>>C=[11];D=0;

>>G=ss(A,B,C,D)

a=

x1x2

x101

x2-5-6

b=

u1

x10

x21

c=

x1x2

y111

d=

u1

y10

Continuous-timemodel.

>>a=[01;-5-6]

a=

01

-5-6

>>eig(a)

ans=

-1

-5

>>Gtf=tf(G)

Transferfunction:

s+1

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

s^2+6s+5

>>Gzpk=zpk(Gtf)

Zero/pole/gain:

(s+1)

-----------

(s+5)(s+1)

结论:

由上述结果可看出系统的特征值和极点是一致的。

>>A=[01;-5-6];B=[0;1];

>>C=[11];D=0;

>>G=ss(A,B,C,D);

>>G1=canon(G,'modal')

a=

x1x2

x1-10

x20-5

b=

u1

x10.559

x21.346

c=

x1x2

y100.7428

d=

u1

y10

Continuous-timemodel.

>>Gtf=tf(G1)

Transferfunction:

1

-----

s+5

>>Gzpk=zpk(Gtf)

Zero/pole/gain:

1

-----

(s+5)

实验二线性定常系统状态方程的解

一实验目的

1.掌握状态转移矩阵的概念。

学会用MATLAB求解状态转移矩阵。

2.掌握线性系统状态方程解的结构。

学会用MATLAB求解线性定常系统的状态响应和输出响应,并绘制相应曲线。

二实验内容

1.求下列系统矩阵A对应的状态转移矩阵

.令初始状态为

,输入为零。

a)用MATLAB求状态方程的解析解。

选择时间向量t,绘制系统的状态响应曲线。

观察并记录这些曲线。

b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。

观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行比较。

c)根据b)中所得的状态响应的数值解,用命令plot(x(:

1),x(:

2))绘制系统的状态轨迹。

记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。

2.已知系统

(1)令初始状态为

,输入为零。

a)用MATLAB求状态方程的解析解。

选择时间向量t,绘制系统的状态响应曲线。

观察并记录这些曲线。

b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。

观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行比较。

c)根据b)中所得的状态响应的数值解,用命令plot(x(:

1),x(:

2))绘制系统的状态轨迹。

记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。

(2)令初始状态为零,输入为

a)用MATLAB求状态方程的解析解。

选择时间向量t,绘制系统的状态响应曲线。

观察并记录这些曲线。

b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。

观察并记录这些响应曲线,然后将这一状态响应曲线与a).中状态响应曲线进行比较。

c)根据b)中所得的状态响应的数值解,用命令plot(x(:

1),x(:

2))绘制系统的状态轨迹。

记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。

(3)令初始状态为

,输入为

求系统状态响应和输出响应的数值解,绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

观察和分析这些响应曲线和状态轨迹是否是

(1)和

(2)中的响应曲线和状态轨迹的叠加。

(4)令初始状态为零,输入为

用函数lsim()计算状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

3.已知系统

且初始状态为

(1)当输入为

时,用函数initial()和impulse()求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

(2)当输入为

时,用函数initial()和step()求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

(3)当输入为

时,用函数initial()和lsim()求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

(4)当输入为

时,用函数initial()和lsim()求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

 

三实验结果

1.

>>A=[01;-2-3];symst;phet=expm(A*t)

phet=

[-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];symss;G=inv(s*eye(size(A))-A);phet=ilaplace(G);X0=[1-1]';Xt1=phet*X0;

>>B=[01]';Xt2=ilaplace(G*B*(1/s))

>>ex22

xt1=

[exp(-t)]

[-exp(-t)]

xt2=

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

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

2.已知系统为

>>A=[01;-2-3];B=[0;1];C=[11];D=0;G=ss(A,B,C,D)

a=

x1x2

x101

x2-2-3

b=

u1

x10

x21

c=

x1x2

y111

d=

u1

y10

Continuous-timemodel.

>>t=0:

0.5:

10;x0=[1;-1];

>>[yo,t,xo]=initial(G,x0,t);plot(t,xo,':

',t,yo,'-')

>>figure('pos',[5050200150],'color','w');

u=ones(size(t));

[yu,t,xu]=lsim(G,u,t);

plot(t,xu,':

',t,yu,'-')

实验三线性定常系统的能控性和能观性

一实验目的

1.掌握能控性和能观测性的概念。

学会用MATLAB判断能控性和能观测性。

2.掌握系统的结构分解。

学会用MATLAB进行结构分解。

3.掌握最小实现的概念。

学会用MATLAB求最小实现

二实验内容

1.已知系统

(1)判断系统状态的能控性和能观测性,以及系统输出的能控性。

说明状态能控性和输出能控性之间有无联系。

(2)令系统的初始状态为零,系统的输入分别为单位阶跃函数和单位脉冲函数。

用MATLAB函数计算系统的状态响应和输出响应,并绘制相应的响应曲线。

观察和记录这些曲线。

当输入改变时,每个状态变量的响应曲线是否随着改变?

能否根据这些曲线判断系统状态的能控性?

(3)将给定的状态空间表达式变换为对角标准型,判断系统的能控性和能观测性,与

(1)的结果是否一致?

为何?

(4)令(3)中系统的初始状态为零,输入分别为单位阶跃函数和单位脉冲函数。

用MATLAB函数计算系统的状态响应和输出响应,并绘制响应的曲线。

观察和记录这些曲线。

当输入改变时,每个状态变量曲线是否随着改变?

能否根据这些曲线判断系统以及各状态变量的能控性?

不能控和能控状态变量的响应曲线有何不同?

(5)根据

(2)和(4)所得曲线能否判断系统状态以及各状态变量的能观测性?

2.已知系统

(1)将给定的状态空间模型转换为传递函数模型。

令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,绘制和记录相应的曲线。

(2)按能控性分解给定的状态空间模型并记录所得的结果,然后再将其转换为传递函数模型。

它与

(1)中所得的传递函数模型是否一致?

为何?

令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。

这一曲线与

(1)中的输出曲线是否一致?

为何?

(3)按能观测性分解给定的状态空间模型并记录分解所得的结果,然后再将其转换为传递函数模型。

它与

(1)中的传递函数模型是否一致?

为何?

令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应曲线。

这一曲线与

(1)中的输出曲线是否一致?

(4)按能控性能观测性分解给定的状态空间模型并记录分解所得的结果,然后再将其转换为传递函数模型。

它与

(1)中的传递函数模型是否一致?

为何?

令初始状态为零,用MATLAB计算系统的单位阶跃输出响应,并绘制和记录相应的曲线。

这一曲线与

(1)中的输出曲线是否一致?

为何?

三实验结果

1.

(1)

>>A=[-3-4;-10];B=[4;1];Uc=ctrb(A,B)

Uc=

4-16

1-4

>>rank(Uc)

ans=

1

因为rank(Uc)=1

n=2,所以系统的状态不完全能控。

 

>>A=[-3-4;-10];B=[4;1];C=[-1-1];D=0;Uc=ctrb(A,B);Uy=[C*UcD]

Uy=

-5200

>>rank(Uy)

ans=

1

由于rank(Uy)=1=m,故系统是输出能控的。

A=[-3-4;-10];C=[-1-1];D=0;V=obsv(A,C)

V=

-1-1

44

>>rank(V)

ans=

1

由于rank(V)=1不等于n,故不能观。

按能控性分解

>>A=[00-1;10-3;01-3];B=[1;1;0];C=[01-2];[AcBcCcTcKc]=ctrbf(A,B,C)

Ac=

-1.00000.0000-0.0000

-2.1213-2.50000.8660

-1.2247-2.59810.5000

 

Bc=

0

0

-1.4142

 

Cc=

1.73211.2247-0.7071

 

Tc=

-0.57740.5774-0.5774

0.4082-0.4082-0.8165

-0.7071-0.70710

 

Kc=

110

2.

unction[Ak,Bk,Ck,Tk]=kalmdec(A,B,C)%按能控能观测性分解

[Ac,Bc,Cc,Tc,Kc]=ctrbf(A,B,C);

nc=rank(ctrb(A,B));

n=length(A);ic=n-nc+1:

n;

[Ao1,Bo1,Co1,To1,Ko1]=obsvf(Ac(ic,ic),Bc(ic),Cc(ic));

ifnc

n-nc;

[Ao2,Bo2,Co2,To2,Ko2]=obsvf(Ac(inc,inc),Bc(inc),Cc(inc));

end

[m1,n1]=size(To1);[m2,n2]=size(To2);

To=[To2,zeros(m2,n1);

zeros(m1,n2),To1];

T=To*Tc;

n1=rank(obsv(Ac(ic,ic),Cc(ic)));

n2=rank(obsv(Ac(inc,inc),Cc(inc)));

K=[zeros(1,n-nc-n2),ones(1,n2),2*ones(1,nc-n1),3*ones(1,n1)];

Ak1=T*A*inv(T);Bk1=T*B;Ck1=C*inv(T);

Ak=rot90(Ak1,2);

Bk=rot90(Bk1,2);

Ck=rot90(Ck1,2);

Tk=rot90(T,2);

>>A=[00-1;10-3;01-3];B=[1;1;0];C=[01-2];[AkBkCkTk]=kalmdec(A,B,C)

Ac=

-1.000001.2247

3.4641-1.0000-2.1213

-0.00000.0000-1.0000

Bc=

-0.7071

-1.2247

0

Cc=

-1.4142-0.00001.7321

Tc=

0.7071-0.0000-0.7071

-0.4082-0.8165-0.4082

-0.57740.5774-0.5774

实验四稳定性

一实验目的

掌握系统稳定性的概念。

学会使用MATLAB确定线性定常系统和非线性定常系统的稳定性。

二实验内容

1.已知线性系统

(1)用函数eig(),pole()和zpkdata()求出系统的特征值和极点。

用函数pzmap()绘制系统的零点和极点。

确定系统的稳定性。

(2)任意给定对称正定矩阵Q,用函数lyap()求解Lyaponov方程,确定系统的稳定性。

(1)的结果进行比较。

(3)令

,任意给定初始状态。

用函数initial()求出系统的零输入响应,并绘制相应的状态响应曲线。

说明稳定系统的状态响应曲线与不稳定系统的状态响应曲线的区别。

(4)令

,初始状态为零。

用函数step()求出系统在单位阶跃信号作用下的状态响应和输出响应,并绘制相应的曲线。

分析系统的状态稳定和输出稳定是否一致。

2.已知非线性系统

编制相应的程序,用克拉索夫斯基法确定系统在原点处的稳定性。

 

三实验结果

1.

(1)A=[10;01];

>>eig(A)

ans=

1

1

(2)A=[01;-2-3];Q=eye

(2);P=lyap(A,Q)

P=

1.0000-0.5000

-0.50000.5000

>>s=posdef(P)

s=

matrixispositivedefinitematrix

可知系统是稳定的。

(2)functions=posdef(P)%判定矩阵的正定性

r=length(P);

fori=1:

r

pp(i)=det(P(1:

i,1:

i));

end

k=find(pp<0);j=find(pp==0);

ifisempty(j)&isempty(k)

s='matrixispositivedefinitematrix';

elseifisempty(k)

s='matrixishalfpositivedefinitematrix';

else

s='non-definitematrix';

end

>>A=[01;-2-3];Q=eye

(2);P=lyap(A,Q)s=posdef(P)

返回

P=

1.0000-0.5000

-0.50000.5000

s=

matrixispositivedefinitematrix

 

2.%ex43

symsx1x2;

x=[x1x2];

f1=-3*x1+x2;

f2=x1-x2-x2^3;

F1=[jacobian(f1,x1)jacobian(f1,x2);jacobian(f2,x1)jacobian(f2,x2)];

F2=[jacobian(f1,x1)jacobian(f2,x1);jacobian(f1,x2)jacobian(f2,x2)];

F=Ft+F2;

n=length(x);

fori=1:

n

ff(i)=simple(det(F(1:

i,1:

i)));

end

ff

v=f1*f1+f2*f2

在命令窗中运行该程序得

ff=

[-6,8+36*x2^2]

v=

(-3*x1+x2)^2+(x1-x2-x2^3)^2

可见F负定,且当

时,

,所以系统大范围渐近稳定。

实验五极点配置和状态观测器

一实验目的

1.掌握状态反馈和输出反馈的概念及性质。

2.掌握利用状态反馈进行极点配置的方法。

学会用MATLAB求解状态反馈矩阵。

3.掌握状态观测器的设计方法。

学会用MATLAB设计状态观测器。

4.熟悉分离定理,学会设计带有状态观测器的状态反馈系统。

二实验内容

1.已知系统

(1)求解系统的零点、极点和传递函数,并判断系统的能控性和能观测性。

(2)分别选取K=[030],K=[132],K=[016/3–1/3]为状态反馈矩阵,求解闭环系统的零点、极点和传递函数,判断闭环系统的能控性和能观测性。

它们是否发生改变?

为什么?

(3)任选三个输出反馈矩阵,求解闭环系统的零点、极点和传递函数,并判断系统的能控性和能观测性。

它们是否发生改变?

为什么?

2.已知系统

(1)求解系统的极点。

绘制系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。

(2)求解状态反馈矩阵K,使闭环系统的极点为

求解状态反馈系统的传递函数。

绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。

与原系统比较,性能是否改善?

(3)设计一个全维观测器,使观测器的极点为-5,-5,-5。

仿真状态观测器观测到的状态。

(4)设计一个降维观测器,使观测器的极点为-5。

(5)建立带全维状态观测器的状态反馈系统的状态空间表达式。

求解带全维状态观测器的状态反馈系统的极点,是否是状态反馈系统和观测器的极点的组合?

为什么?

求解该闭环系统的传递函数,与状态反馈系统的传递函数是否一致?

为什么?

绘制该闭环系统的单位阶跃响应曲线,并确定系统的超调量和上升时间。

与状态反馈系统的单位阶跃响应曲线比较,验证两种反馈是否等价。

三实验结果

1.>>A=[-100;001;0-31];B=[001]';Uc=ctrb(A,B);m=rank(Uc)

m=

可见系统是不完全能控的,而且其中有两个极点可以任意配置。

在命令窗中调用此函数

>>K=bfjdpz(A,B,C)

返回

Af=

-100

00-1

031

Bf=

0

0

-1

Cf=

-11-1

Tf=

-100

010

00-1

输入能配置的极点组成的向量

由上述能控性分解可见,极点-

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

当前位置:首页 > 自然科学 > 物理

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

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