现代控制理论实验报告Word文档下载推荐.docx
《现代控制理论实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《现代控制理论实验报告Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
—2
0B=
0C=
1第二题:
已知某系统得状态空间表达式为:
(1)求该系统得传递函数矩阵:
(2)该系统得能观性与能空性:
(3)求该系统得对角标准型:
(4)求该系统能控标准型:
(5)求该系统能观标准型:
(6)求该系统得单位阶跃状态响应以及零输入响应:
解题过程:
程序:
A=[—3-2;
10];
B=[10]';
C=[01];
D=0;
[num,den]=ss2tf(A,B,C,D);
co=ctrb(A,B);
t1=rank(co);
ob=obsv(A,C);
t2=rank(ob);
[At,Bt,Ct,Dt,T]=canon(A,B,C,D,'modal’);
[Ac,Bc,Cc,Dc,Tc]=canon(A,B,C,D,"
companion');
Ao=Ac"
;
Bo=Cc"
Co=Bc';
(1)num=
0
1den=
3
2
(2)能控判别矩阵为:
co=
1
—3
1能控判别矩阵得秩为:
t1=
2
故系统能控。
(3)能观判别矩阵为:
ob=
0能观判别矩阵得秩为:
t2=
2故该系统能观、(4)该系统对角标准型为:
At=
-2
-1Bt=
-1、4142
-1、1180Ct=
0。
7071
-0.8944(5)该系统能观标准型为:
Ao=
-2
-3Bo=
0Co=
1(6)该系统能控标准型为:
Ac=
1-2
-3Bc=
1Cc=
0(7)系统单位阶跃状态响应;
G=ss(A1,B1,C1,D1);
[y,t,x]=step(G);
figure
(1)plot(t,x);
(8)零输入响应:
x0=[01];
[y,t,x]=initial(G,x0);
figure
(2)plot(t,x)
第三题:
已知某系统得状态空间模型各矩阵为:
求下列问题:
(1)按能空性进行结构分解:
(2)按能观性进行结构分解:
clear
A=[00-1;
10—3;
01-3];
B=[110]"
C=[01-2];
tc=rank(ctrb(A,B));
to=rank(obsv(A,C));
[A1,B1,C1,t1,k1]=ctrbf(A,B,C);
[A2,B2,C2,t2,k2]=ctrbf(A,B,C);
能控判别矩阵秩为:
tc=
2可见,能空性矩阵不满秩,系统不完全能控。
A1=
-1、0000
-0、0000
—0.0000
2。
1213
-2。
5000
0、8660
1.2247
—2。
5981
0、5000
B1=
0000
0.00001。
4142C1=
1、7321
-1.2247
0。
7071t1=
-0、5774
0、5774
—0、5774
-0、4082
0、4082
0、81650.7071
0、7071
0k1=
0能观性判别矩阵秩为:
to=
2可见,能观性判别矩阵不满秩,故系统不完全能观。
A2=
-1、0000
1、3416
3、8341
0.0000
—0。
4000
—0。
73480。
0000
4899
-1、6000B2=
1。
2247
54770。
4472C2=
-0。
0000
2。
2361t2=
0、4082
0.8165
0、4082
0、9129
-0.3651
-0.1826
0、4472
-0、8944k2=
0第四题:
已知系统得状态方程为:
希望极点为—2,-3,-4.试设计状态反馈矩阵K,并比较状态反馈前后输出响应。
A=[123;
456;
789];
B=[001]';
C=[010];
tc=rank(ctrb(A,B));
p=[—2-3-4];
K=place(A,B,p);
t=0:
0.01:
5;
U=0。
025*ones(size(t));
[Y1,X1]=lsim(A,B,C,D,U,t);
[Y2,X2]=lsim(A-B*K,B,C,D,U,t);
figure
(1)plot(t,Y1);
gridontitle(’反馈前"
);
figure
(2)plot(t,Y2)title(’反馈后"
)结果:
tc=
3可见,能观判别矩阵满秩,故系统能进行任意极点配置。
反馈矩阵为:
K=
15。
3333
23、6667
24.0000反馈前后系统输出对比:
第五题。
已知某线性定常系统得系统矩阵为:
判断该系统稳定性。
clear
clcA=[-11;
2-3];
A=A’;
Q=eye
(2);
P=lyap(A,Q);
det(P);
求得得P矩阵为:
P=
1、7500
0、62500.6250
3750且P阵得行列式为:
〉>det(P)ans=0。
2656可见,P矩阵各阶主子行列式均大于0,故P阵正定,故该系统稳定、
实验一线性定常系统模型
一实验目的
1.掌握线性定常系统的状态空间表达式。
学会在MATLAB中建立状态空间模型的方法。
2.掌握传递函数与状态空间表达式之间相互转换的方法。
学会用MATLAB实现不同模型之间的相互转换。
3.熟悉系统的连接。
学会用MATLAB确定整个系统的状态空间表达式和传递函数。
4.掌握状态空间表达式的相似变换。
掌握将状态空间表达式转换为对角标准型、约当标准型、能控标准型和能观测标准型的方法。
学会用MATLAB进行线性变换。
二实验原理
1.线性定常系统的数学模型
在MATLAB中,线性定常(lineartimeinvariant,简称为LTI)系统可以用4种数学模型描述,即传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型以及SIMULINK结构图。
前三种数学模型是用数学表达式表示的,且均有连续和离散两种类型,通常把它们统称为LTI模型。
1)传递函数模型(TF模型)
令单输入单输出线性定常连续和离散系统的传递函数分别为
Y(s)bmsmbmsmb1sb0
(1-1)G(s)nU(s)san1sn1a1sa0和
Y(z)bmzmbmzmb1zb0。
(1-2)G(z)nn1U(z)zan1za1za0在MATLAB中,连续系统和离散系统的传递函数都用分子/分母多项式系数构成的两个行向量num和den表示,即
numbmb1b0,den1an1a0
系统的传递函数模型用MATLAB提供的函数tf()建立。
函数tf()不仅能用于建立系统传递函数模型,也能用于将系统的零极点增益模型和状态空间模型转换为传递函数模型。
该函数的调用格式如下:
de)n返回连续系统的传递函数模型G。
Gtf(num
Gtf(num,den,Ts)返回离散系统的传递函数模型G。
Ts为采样周期,当Ts=-1或者Ts=[]时,系统的采样周期未定义。
Gtftf(G)可将任意的LTI模型G转换为传递函数模型Gtf。
2)零极点增益模型(ZPK模型)
系统的零极点增益模型是传递函数模型的一种特殊形式。
令线性定常连续和离散系统的零极点形式的传递函数分别为
G(s)
(sz1)(sz2)(szm)Y(s)(1-3)KU(s)(sp1)(sp2)(spn)
和
G(z)(zz1)(zz2)(zzm)Y(z)(1-4)KU(z)(zp1)(zp2)(zpn)在MATLAB中,连续和离散系统的零点和极点都用行向量z和p表示,即
zz1z2zm,pp1p2pn。
系统的零极点增益模型用MATLAB提供的函数zpk()建立。
函数zpk()不仅能用来建立系统零极点增益模型,也能用于将系统的传递函数模型和状态空间模型转换为零极点增益模型。
Gzpk(z,p,k)返回连续系统的零极点增益模型G。
Gzpk(z,p,k,Ts)返回离散系统的零极点增益模型G。
Gzpkzpk(G)可将任意的LTI模型G转换为零极点增益模型Gzpk。
3)状态空间模型(SS模型)令多输入多输出线性定常连续和离散系统的状态空间表达式分别为
(t)Ax(t)Bu(t)xy(t)Cx(t)Du(t)(1-5)
x(k1)Ax(k)Bu(k)
y(k)Cx(k)Du(k)(1-6)
在MATLAB中,连续系统和离散系统的状态空间模型都用MATLAB提供的函数()建立。
函数()不仅能用于建立系统的状态空间模型,也能用于将系统的传递函数模型和零极点增益模型转换为状态空间模型。
G(A,B,C,D)返回连续系统的状态空间模型G。
G(A,B,C,D,Ts)返回离散系统的状态空间模型G。
Ts为采样周期,当Ts=1或者Ts=[]时,系统的采样周期未定义。
G(G)可将任意的LTI模型G转换为状态空间模型G。
2.模型转换
上述三种LTI模型之间可以通过函数tf(),zpk()和()相互转换。
线性定常系统的传递函数模型和零极点增益模型是唯一的,但系统的状态空间模型是不唯一的。
函数()只能将传递函数模型和零极点增益模型转换为一种指定形式的状态空间模型。
三实验内容
1.已知系统的传递函数
s26s84(a)G(s)(b)G(s)22s4s3s(s1)(s3)
(1)建立系统的TF或ZPK模型。
(2)将给定传递函数用函数()转换为状态空间表达式。
再将得到的状态空间表达式用函数tf()转换为传递函数,并与原传递函数进行比较。
解:
(a)G(s)4
s(s1)2(s3)
(1)TF模型
在命令窗中运行下列命令
>
num=4;
den=[1573];
G=tf(num,den)
Transferfunction:
4---------------------s^3+5s^2+7s+3
ZPK模型
z=[];
p=[0-1-1-3];
k=4;
G=zpk(z,p,k)
Zero/pole/gain:
4---------------s(s+1)^2(s+3)
(2)在命令窗中运行下列命令
Gtf=tf(num,den);
G=(Gtf)
a=
x1
x2
x3
-5
-0.875-0.09375
b=
u1
x10.25
c=
y1
00.5
d=
Continuous-timemodel.>
Gtf1=tf(G)
s26s8(b)G(s)2
s4s3
(1)TF模型
num=[168];
den=[143];
s^2+6s+8-------------s^2+4s+3
z=[-2-4];
p=[-1-3];
k=1;
(s+2)(s+4)-----------(s+1)(s+3)
-4-0.75
10.625
2.已知系统的状态空间表达式
100(a)xx1uy11x
56
1002x1uy111x302(b)x12767
(1)建立给定系统的状态空间模型。
用函数eig()求出系统特征值。
用函数tf()和zpk()将这些状态空间表达式转换为传递函数,记录得到的传递函数和它的零极点。
比较系统的特征值和极点是否一致,为什么?
(2)用函数canon()将给定状态空间表达式转换为对角标准型。
比较这些特征值和
(1)中的特征值是否一致,为什么?
再用函数tf()和zpk()将
对角标准型或约当标准型转换为传递函数。
比较这些传递函数和
(1)中的传递函数是否一致,为什么?
解:
(a)x100xu
y11x
561
(1)在命令窗中运行下列命令
A=[01;
-5-6];
B=[0;
1];
C=[11];
G=(A,B,C,D)
x1x2
x2-5-6
Geig=eig(G)
Geig=
-1
Gtf=tf(G)
Gzpk=zpk(G)
(s+4)(s+2)-----------(s+3)(s+1)
分析:
z=-4,-2;
p=-3,-1系统的特征值和极点一致。
G=(A,B,C,D);
GJ=canon(G,\\"
model\\"
)
x1-1
0-5
x10.3536
1.275
00.7845
Geig=eig(GJcanon)?
?
Undefinedfunctionorvariable\\"
GJcanon\\"
.
Gcanon=canon(G)
x1-3
0-1
x2-4.123
-0.1-0.3638
Geig=eig(Gcanon)
Gtf=tf(Gcanon)
Gzpk=zpk(Gcanon)
(s+4)(s+2)-----------(s+3)(s+1)分析:
这些特征值和
(1)中的特征值一致;
这些传递函数和
(1)中的传递函数一致。
1002x1uy111x302(b)x12767
(1)在命令窗中运行下列命令
A=[010;
302;
-12-7-6];
B=[2;
1;
7];
C=[111];
x3-12
-7
-6
x1x2x3
(2)>
Continuous-timemodel.
四.实验总结
1.通过实验,掌握了线性定常系统的状态空间表达式、传递函数与状态空间表达式之间相互转换的方法、状态空间表达式的相似变换、将状态空间表达式转换为对角标准型、约当标准型。
2.学会在MATLAB中建立状态空间模型的方法、实现不同模型之间的相互转换、进行线性变换。
实验二线性定常系统状态方程的解
一、实验目的
1.掌握状态转移矩阵的概念。
学会用MATLAB求解状态转移矩阵。
2.掌握线性系统状态方程解的结构。
学会用MATLAB求解线性定常系统的状态响应和输出响应,并绘制相应曲线。
1、线性定常连续系统状态转移矩阵的计算
线性定常连续系统的状态转移矩阵为(t)eAtL1[(sIA)1]。
(3-2-1)在MATLAB中,状态转移矩阵可直接用指数矩阵法和拉氏反变换法计算。
2.线性定常连续系统的状态方程求解
如果线性定常连续系统的状态空间表达式为
AxBuxyCxDu
且初始状态为x(0),那么状态方程解的拉氏变换式为
x(s)(sIA)1x(0)(sIA)1Bu(s)
(3-2-2)
其解为
tx(t)ex(0)eA(t)Bu()d
(3-2-3)At0其中零输入响应为
ex(0)或L{(sIA)}x(0)
(3-2-4)零状态响应为
At11t0eA(t)Bu()d或L1{(sIA)1Bu(s)}
(3-2-5)
111系统的输出响应为
L{C(sIA)x(0)C(sIA)Bu(s)}Du(t)
(3-2-6)
三、实验内容
1.求下列系统矩阵A对应的状态转移矩阵
0100001001(c)A00(a)A(b)A4025400解:
(a)A0140指数矩阵法:
A=[0-1;
40];
symst;
phet=expm(A*t)
phet=
[
cos(2*t),-1/2*sin(2*t)][
2*sin(2*t),
cos(2*t)]
拉氏反变换法:
symss;
G=inv(s*eye(size(A))-A)
G=
[s/(s^2+4),-1/(s^2+4)][4/(s^2+4),s/(s^2+4)]即(sIA)1。
再对其进行拉氏逆变换,即在命令窗中输入语句>
phet=ilaplace(G)
cos(4^(1/2)*t),-1/4*4^(1/2)*sin(4^(1/2)*t)][
4^(1/2)*sin(4^(1/2)*t),
cos(4^(1/2)*t)]
010(b)A001254指数矩阵法:
001;
2-54];
-2*t*exp(t)+exp(2*t),exp(2*t)-exp(t)-t*exp(t)][2*exp(2*t)-2*exp(t)-2*t*exp(t),2*exp(2*t)-2*exp(t)-t*exp(t)][-2*t*exp(t)+4*exp(2*t)-4*exp(t),-3*exp(t)+4*exp(2*t)-t*exp(t)]
-2*exp(2*t)+2*exp(t)+3*t*exp(t),
5*exp(t)+3*t*exp(t)-4*exp(2*t),
-8*exp(2*t)+8*exp(t)+3*t*exp(t),
[(s^2-4*s+5)/(s^3-4*s^2+5*s-2),
(s-4)/(s^3-4*s^2+5*s-2),
1/(s^3-4*s^2+5*s-2)][
2/(s^3-4*s^2+5*s-2),
s*(s-4)/(s^3-4*s^2+5*s-2),
s/(s^3-4*s^2+5*s-2)][