中南大学现代控制理论实验报告.docx
- 文档编号:5749051
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:22
- 大小:299.42KB
中南大学现代控制理论实验报告.docx
《中南大学现代控制理论实验报告.docx》由会员分享,可在线阅读,更多相关《中南大学现代控制理论实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
中南大学现代控制理论实验报告
中南大学
现代控制理论实验报告
指导老师:
年晓红、郭宇骞
姓名:
学号:
专业班级:
实验日期:
2015.6.11
学院:
信息科学与工程学院
实验1用MATLAB分析状态空间模型
1、实验设备
PC计算机1台,MATLAB软件1套。
2、实验目的
1学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;
2通过编程、上机调试,掌握系统状态空间表达式与传递函数相互转换方法学习系统齐次、非齐次状态方程求解的方法,计算矩阵指数,求状态响应;
3通过编程、上机调试,掌握求解系统状态方程的方法,学会绘制状态响应曲线;
4掌握利用MATLAB导出连续状态空间模型的离散化模型的方法。
3、实验原理说明
参考教材P56~59“2.7 用MATLAB分析状态空间模型”
参考教材P99~101“3.8 利用MATLAB求解系统的状态方程”
4、实验步骤
1根据所给系统的传递函数或A、B、C矩阵,依据系统的传递函数阵和状态空间表达式之间的关系式,采用MATLAB编程。
2在MATLAB界面下调试程序,并检查是否运行正确。
3根据所给系统的状态方程,依据系统状态方程的解的表达式,采用MATLAB编程。
4在MATLAB界面下调试程序,并检查是否运行正确。
5、实验习题
题1.1已知SISO系统的传递函数为
(1)将其输入到MATLAB工作空间;
(2)获得系统的状态空间模型。
解:
(1)
num=[1,5,8];den=[1,2,6,3,9];
G=tf(num,den)
Transferfunction:
s^2+5s+8
-----------------------------
s^4+2s^3+6s^2+3s+9
(2)
G1=ss(G)
a=
x1x2x3x4
x1-2-1.5-0.75-2.25
x24000
x30100
x40010
b=
u1
x12
x20
x30
x40
c=
x1x2x3x4
y100.1250.6251
d=
u1
y10
Continuous-timemodel.
题1.2 已知SISO系统的状态空间表达式为
,
(1)将其输入到MATLAB工作空间;
(2)求系统的传递函数。
解:
(1)
A=[0,1,0;0,0,1;-4,-3,-2];
B=[1;3;-6];
C=[1,0,0];
D=0;
G=ss(A,B,C,D)
a=
x1x2x3
x1010
x2001
x3-4-3-2
b=
u1
x11
x23
x3-6
c=
x1x2x3
y1100
d=
u1
y10
Continuous-timemodel.
(2)
G1=tf(G)
Transferfunction:
s^2+5s+3
---------------------
s^3+2s^2+3s+4
题1.3已知SISO系统的状态方程为
(1)
,
,求当t=0.5时系统的矩阵系数及状态响应;
(2)
,
,绘制系统的状态响应及输出响应曲线;
(3)
,
,绘制系统的状态响应及输出响应曲线;
(4)
,
,绘制系统的状态响应及输出响应曲线;
(5)在余弦输入信号和初始状态
下的状态响应曲线。
解:
(1)
A=[0,1;-2,-3];B=[3;0];
expm(A*0.5)
A=[0,1;-2,-3];B=[3;0];
expm(A*0.5)
ans*[1;-1]
ans=
0.84520.2387
-0.47730.1292
ans=
0.84520.2387
-0.47730.1292
ans=
0.6065
-0.6065
(2)
A=[0,1;-2,-3];B=[3;0];C=[1,1];D=[0];
G=ss(A,B,C,D);[y,t,x]=step(G);plot(t,x)
(3)
A=[0,1;-2,-3];B=[3;0];C=[1,1];D=[0];
t=[0:
.02:
4];u=1+exp(-t).*cos(3*t);
G=ss(A,B,C,D);[y,t,x]=lsim(G,u,t);plot(t,x)
plot(t,y)
(4)
A=[0,1;-2,-3];B=[3;0];C=[1,1];D=[0];
t=[0:
.02:
4];u=0;
G=ss(A,B,C,D);x0=[1;2];[y,t,x]=initial(G,x0,t);plot(t,x)
plot(t,y)
(5)
A=[0,1;-2,-3];B=[3;0];C=[1,1];D=[0];
t=[0:
.02:
4];u=cos(t);
G=ss(A,B,C,D);x0=[1;1];[y,t,x]=lsim(G,u,t,x0);plot(t,x)
题1.4已知一个连续系统的状态方程是
若取采样周期
秒
(1)试求相应的离散化状态空间模型;
(2)分析不同采样周期下,离散化状态空间模型的结果。
解:
A=[0,1;-25,-4];
B=[0;1];
[G,H]=c2d(A,B,0.05)
G=
0.97090.0448
-1.12120.7915
H=
0.0012
0.0448
6、实验总结
①学会了系统状态空间表达式的建立方法、了解了系统状态空间表达式与传递函数相互转换的方法;掌握了系统状态空间表达式与传递函数相互转换方法学习系统齐次、非齐次状态方程求解的方法;学会了计算矩阵指数,求状态响应和绘制状态响应曲线;掌握了利用MATLAB导出连续状态空间模型的离散化模型的方法。
②在MATLAB界面下调试程序,还是发现了一些问题,比如函数使用错误和参数未定义等。
但后来经过反复的练习已经能很清楚的分清各个函数的用法。
实验2系统的能控性、能观测性分析
1、实验设备
PC计算机1台,MATLAB软件1套。
2、实验目的
①学习系统状态能控性、能观测性的定义及判别方法;
②通过用MATLAB编程、上机调试,掌握系统能控性、能观测性的判上使用别方法,掌握将一般形式的状态空间描述变换成能控标准形、能观标准形。
学习系统稳定性的定义及李雅普诺夫稳定性定理;
通过用MATLAB编程、上机调试,掌握系统稳定性的判别方法。
3、实验原理说明
参考教材P117~118“4.2.4 利用MATLAB判定系统能控性”
参考教材PP124~125“4.3.3 利用MATLAB判定系统能观测性”
4、实验步骤
1根据系统的系数阵A和输入阵B,依据能控性判别式,对所给系统采用MATLAB编程;在MATLAB界面下调试程序,并检查是否运行正确。
2根据系统的系数阵A和输出阵C,依据能观性判别式,对所给系统采用MATLAB编程;在MATLAB界面下调试程序,并检查是否运行正确。
3构造变换阵,将一般形式的状态空间描述变换成能控标准形、能观标准形。
4参考教材P178~181“5.3.4 利用MATLAB进行稳定性分析”
5掌握利用李雅普诺夫第一方法判断系统稳定性;
6掌握利用李雅普诺夫第二方法判断系统稳定性。
5、实验习题
题2.1 已知系数阵A和输入阵B分别如下,判断系统的状态能控性
,
解:
A=[6.666,-10.6667,-0.3333;1,0,1;0,1,2];B=[0;1;1];
Uc=[B,A*B,A^2*B]
n=length(A);
flag=rank(Uc);
ifflag==n
disp('系统可控');
elsedisp('系统不可控');
end
Uc=
0-11.0000-84.9926
1.00001.0000-8.0000
1.00003.00007.0000
系统可控
题2.2 已知系数阵A和输出阵C分别如下,判断系统的状态能观性。
,
解:
A=[6.666,-10.6667,-0.3333;1,0,1;0,1,2];C=[1,0,2];
Uo=[C;C*A;C*A^2]
n1=rank(Uo);
n2=length(A);
ifn2==n1
disp('系统可观')
else
disp('系统不可观')
end
Uo=
1.000002.0000
6.6660-8.66673.6667
35.7689-67.4375-3.5551
系统可观
题2.3 已知系统状态空间描述如下
(1)判断系统的状态能控性;
(2)判断系统的状态能观测性;
(3)构造变换阵,将其变换成能控标准形;
(4)构造变换阵,将其变换成能观测标准形;
解:
(1)
(2)
A=[0,2,-1;5,1,2;-2,0,0];
B=[1;0;-1];
C=[1,1,0];
n=length(A);
Uc=[B,A*B,A^2*B]
Uo=[C;C*A;C*A^2]
flagC=rank(Uc);
flagO=rank(Uo);
ifn==flagC
disp('系统可控');
end
ifn==flagO
disp('系统可观');
end
Uc=
118
034
-1-2-2
Uo=
110
531
13131
系统可控
系统可观
(3)
p1=[0,0,1]*inv(Uc);
P=[p1;p1*A;p1*A^2]
Ac=P*A*inv(P)
Bc=P*B
P=
0.13640.04550.1364
-0.04550.3182-0.0455
1.68180.22730.6818
Ac=
01.00000
00.00001.0000
-10.000012.00001.0000
Bc=
0
0
1.0000
(4)
T1=inv(Uo)*[0;0;1];
T=[T1,A*T1,A^2*T1]
Ao=inv(T)*A*T
Co=C*T
T=
-0.50000-1.0000
0.500002.0000
1.00001.00000
Ao=
00-10
1012
011
Co=
001
题2.4 某系统状态空间描述如下
(1)利用李雅普诺夫第一方法判断其稳定性;
(2)利用李雅普诺夫第二方法判断其稳定性。
解:
A=[0,2,-1;5,1,2;-2,0,0];
B=[1;0;-1];
C=[1,1,0];
D=0;
flag1=0;
flag2=0;
[z,p,k]=ss2zp(A,B,C,D,1);
disp('Systemzero-points,pole-pointsandgainare:
');
z
p
k
n=length(A);
%利亚普诺夫第一方法
fori=1:
n
ifreal(p(i))>0
flag1=1;
end
end
ifflag1==1
disp('Systemisunstable');
else
disp('Systemisstable');
end
%利亚普诺夫第二方法
Q=eye(3,3);%Q=I
P=lyap(A,Q);%求解矩阵P
fori=1:
n
det(P(1:
i,1:
i))
if(det(P(1:
i,1:
i))<=0)
flag2=1;
end
end
ifflag2==1
disp('Systemisunstable');
else
disp('Systemisstable');
end
Systemzero-points,pole-pointsandgainare:
z=
1.0000
-4.0000
p=
-3.3978
3.5745
0.8234
k=
1
Systemisunstable
ans=
-2.1250
ans=
-8.7812
ans=
6.1719
Systemisunstable
6、实验总结
①学会了系统状态能控性、能观测性的定义及判别方法;通过用MATLAB编程、上机调试,掌握了系统能控性、能观测性的判上使用别方法,掌握将一般形式的状态空间描述变换成能控标准形、能观标准形和系统稳定性的判别方法。
②在使用李雅普诺夫第一方法和第二方法判断稳定性时,发现了一些小问题,但很快就改正了,总的来说,本次实验还是很成功的,也学到了很多东西。
实验3利用MATLAB实现极点配置、设计状态观测器
1、实验设备
PC计算机1台,MATLAB软件1套。
2、实验目的
①学习闭环系统极点配置定理及算法,学习全维状态观测器设计方法;
②通过用MATLAB编程、上机调试,掌握极点配置算法,设计全维状态观测器。
3、实验原理说明
参考教材P204~207“6.2.5 利用MATLAB实现极点配置”
P227~230“6.4.4 利用MATLAB设计状态观测器”
4、实验步骤
(1)掌握采用直接计算法、采用Ackermann公式计算法、调用place函数法分别进行闭环系统极点配置;
(2)掌握利用MATLAB设计全维状态观测器。
5、实验习题
题3.1 某系统状态方程如下
理想闭环系统的极点为
,试
(1)采用直接计算法进行闭环系统极点配置;
(2)采用Ackermann公式计算法进行闭环系统极点配置;
(3)采用调用place函数法进行闭环系统极点配置。
解:
(1)
A=[0,1,0;0,0,1;-4,-3,-2];
B=[1;3;-6];
C=[1,0,0];
P=[-1,-2,-3];
symsk1k2k3s;
K=[k1k2k3];
eg=simple(det(s*diag(diag(ones(size(A))))-A+B*K));
f=1;
fori=1:
3
f=simple(f*(s-P(i)));
end
f=f-eg;
[k1k2k3]=solve(subs(f,'s',0),subs((diff(f,'s')),'s',0),diff(f,'s',2))
k1=
194/131
k2=
98/131
k3=
-6/131
(2)
A=[0,1,0;0,0,1;-4,-3,-2];
B=[1;3;-6];
C=[1,0,0];
P=[-1,-2,-3];
K=acker(A,B,P)
A1=A-B*K
K=
1.48090.7481-0.0458
A1=
-1.48090.25190.0458
-4.4427-2.24431.1374
4.88551.4885-2.2748
K为配置增益参数,A1为配置后的系统A阵
(3)
A=[0,1,0;0,0,1;-4,-3,-2];
B=[1;3;-6];
C=[1,0,0];
P=[-1,-2,-3];
K=place(A,B,P)
K=
1.48090.7481-0.0458
题3.2 某系统状态空间描述如下
设计全维状态观测器,要求状态观测器的极点为
。
解:
A=[0,1,0;0,0,1;-4,-3,-2];
B=[1;3;-6];
C=[1,0,0];
n=3;%系统阶数
Ob=obsv(A,C);%能观测矩阵
flag=rank(Ob);
ifflag==n%如果可观
disp('系统可观');
P1=[-1,-2,-3];
A1=A';
B1=C';
C1=B';
K=acker(A1,B1,P1);
H=(K)'
ahc=A-H*C
%X'=ahc*X+B*u+H*y
end
系统可观
H=
4
0
-10
ahc=
-410
001
6-3-2
6、实验总结
①学会了闭环系统极点配置定理及算法,学会了全维状态观测器设计方法和利用MATLAB设计全维状态观测器的方法;掌握了采用直接计算法、采用Ackermann公式计算法、调用place函数法分别进行闭环系统极点配置。
②本次实验的问题主要在于采用直接计算法进行闭环系统极点配置,因为书上讲的不是特别详细,所以用了大部分时间在它上面,后来又搜索了相关用法才做出来。
③我觉得做这些实验的目的在于让我们学会用MATLAB软件来解决一些问题,因此我们必须学会使用方法。
在这几次实验中,我收获颇丰。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 现代 控制 理论 实验 报告