现代控制理论实验.docx
《现代控制理论实验.docx》由会员分享,可在线阅读,更多相关《现代控制理论实验.docx(16页珍藏版)》请在冰豆网上搜索。
现代控制理论实验
现代控制理论实验
一、实验内容:
实验一:
建立状态空间模型、求解状态方程
1、实验目的及意义:
了解控制系统的各种数学描述的实现,使学生掌握求解状态方程的方法,这对学生继续学习最优控制理论有极大帮助,并且考察学生的上机能力。
2、实验要求:
⑴编制好相应程序;
⑵上实验课时上机调试并运行通过,给出正确结果,并撰写相应的实验报告。
3、实验内容:
⑴部分命令说明;
①调用tf()函数可构造对应的传递函数对象,调用格式:
G=tf(num,den)
2调用状态方程对象ss()构造状态方程模型,调用格式:
ss(A,B,C,D)
3用expm函数来计算给定时刻的状态转移矩阵;
4用step()函数求取阶跃输入时系统的状态响应,调用格式:
[y,t,x]=step(G)
(2)实验内容
1)已知实际力学模型的微分方程为:
解:
求其系统的状态空间表达式。
Matlab程序如下
>>num=[1,2,1];
>>den=[1,3,2,1];
>>G=tf(num,den);
>>G1=ss(G)
a=
x1x2x3
x1-3-1-0.5
x2200
x3010
b=
u1
x12
x20
x30
c=
x1x2x3
y10.50.50.25
d=
u1
y10
Continuous-timemodel.
所以系统的状态空间表达式为:
2)已知某伺服系统的传递函数为:
求其系统的状态空间表达式。
解:
Matlab程序如下所示:
>>num=[1,7,10];
>>den=[1,9,8,0];
>>G=tf(num,den);
>>G1=ss(G)
a=
x1x2x3
x1-9-2-0
x2400
x300.50
b=
u1
x12
x20
x30
c=
x1x2x3
y10.50.8752.5
d=
u1
y10
Continuous-timemodel.
所以系统的状态空间表达式为:
3)已知控制系统的状态空间表达式为
试绘制系统的单位阶跃输出轨线。
解:
matlab程序如下所示:
>>A=[-5,-1;-3,-1];
>>B=[2;5];
>>C=[1,2];
>>D=[0];
>>G=ss(A,B,C,D);
>>[y,t,x]=step(G);
>>plot(t,x)
4)已知控制系统的状态空间表达式为
试绘制系统的单位阶跃输出轨线。
解:
matlab程序如下所示:
>>A=[1,3,2;0,2,0;0,1,3];
>>B=[21;11;-11];
>>C=[1,0,0];
>>D=[0];
>>G=ss(A,B,C,D);
>>[y,t,x]=step(G);
>>plot(t,x)
实验二:
系统能控性、能观性判定,标准型实现
1、 实验目的及意义:
掌握用计算机设备辅助判断系统的能控性及能观性,对理论学习有更进一步的了解,在现代控制理论研究领域中有一定价值,并掌握如何将系统的状态方程化为能控标准型和能观标准型。
2、实验要求:
⑴编制好相应程序;
⑵上实验课时上机调试并运行通过,给出正确结果,并撰写相应的实验报告。
3、实验内容:
(1)理论说明
①系统能控性的判别最主要的方法就是求能控矩阵M的秩,若秩等于系统的维数,则系统是能控的。
矩阵M的秩可由命令rank(M)得到。
②系统能观性的判别最主要的方法就是求能观矩阵N的秩,若秩等于系统的维数,则系统是能观的。
矩阵N的秩可由命令rank(N)得到。
(3)实验内容
①判断下述实际控制系统的可控性。
解:
用如下的matlab命令来判断系统的能控性:
>>A=[1,1,0;0,1,0;0,1,1];
>>B=[0;1;0];
>>Uc=[B,A*B,A^2*B];
>>rank(Uc)
ans=
2
因为系统能控性矩阵Uc的秩是2,小于系统的维数3,故系统是不能控的。
解:
用如下的matlab命令来判断系统的能控性:
>>A=[1,3,2;0,2,0;0,1,2];
B=[2,1;1,1;-1,-1];
>>Uc=[B,A*B,A^2*B];
>>rank(Uc)
ans=3
因为系统能控性矩阵Uc的秩是3,等于系统的维数3,故系统是能控的
解:
用如下的matlab命令来判断系统的能控性:
>>A=[0,1,0,0;0,0,-1,0;0,0,0,1;0,0,5,0];
>>B=[0;1;0;-2];
>>Uc=[B,A*B,A^2*B,A^3*B];
>>rank(Uc)
ans=
4
因为系统能控性矩阵Uc的秩是4,等于系统的维数4,故系统是能控的
解:
用如下的matlab命令来判断系统的能控性:
>>A=[0,1,0,0;3,0,0,2;0,0,0,1;0,-2,0,0];
>>B=[0;1;0;0];
>>Uc=[B,A*B,A^2*B,A^3*B];
>>rank(Uc)
ans=
3
因为系统能控性矩阵Uc的秩是3,小于系统的维数4,故系统是不能控的。
②判断下述实际控制系统的能观性。
解:
用如下的matlab命令来判断系统的可观性:
>>A=[0,1,0;0,0,1;-6,-11,-6];
>>B=[0;0;1];
>>C=[4,5,1];
>>Uo=[C;C*A;C*A^2;C*A^3];
>>rank(Uo)
ans=
2
因为系统能观性矩阵Uo的秩是2,小于系统的维数,故系统不能观的。
解:
用如下的matlab命令来判断系统的可观性:
>>A=[0,1,0,0;0,0,0,2;0,0,0,1;0,-2,5,0];
B=[0;1;0;0];
C=[1,0,0,0];
>>Uo=[C;C*A;C*A^2;C*A^3];
>>rank(Uo)
ans=
4
因为系统能观性矩阵Uo的秩是4,等于系统的维数,故系统是能观的。
③已知系统系数矩阵
试编程判断它的可控性,若完全可控将它化为可控规范Ι型。
解:
用如下的matlab命令来判断系统的可控性:
>>A=[2,0,0;0,4,1;0,0,4];
>>B=[1;0;1];
>>C=[1,1,0];
>>Uc=[B,A*B,A^2*B];
>>rank(Uc)
ans=
3
因为系统能控性矩阵Uc的秩是3,等于系统的维数,故系统是能控的。
Uc=
124
018
1416
④已知系统系数矩阵
试编程判断它的能观性,若完全能观将它化为可观规范Π型。
(可先得到可控标准Ι型,在通过对偶关系得到可观规范Π型)
解:
用如下的matlab命令来判断系统的可观性:
>>A=[1,2,0;3,-1,1;0,2,0];
>>B=[2;1;1];
>>C=[0,0,1];
>>Uo=[C;C*A;C*A^2];
>>rank(Uo)
ans=
3
因为系统能控性矩阵Uo的秩是3,等于系统的维数,故系统是能观的。
化为可观规范Π型:
实验三:
极点配置、状态观测器实验
1、实验目的及意义:
学习计算机辅助设计实现极点配置的方法,并实现状态观测器的设计
2、实验要求:
⑴编制好相应程序;
⑵上实验课时上机调试并运行通过,给出正确结果,并撰写相应的实验报告。
3、实验内容:
⑵实验内容
①已知倒立摆杆的线性模型如下:
(调用ACKER函数)
设计状态反馈矩阵K使闭环极点为
,并计算闭环系统状态系数矩阵。
解:
程序如下:
>>A=[0,1,0,0;0,0,-1,0;0,0,0,1;0,0,11,0];
>>b=[0;1;0;-1];
>>p=[-1-2-1-j-1+j];
>>K=acker(A,b,p)
K=
-0.4000-1.0000-21.4000-6.0000
>>A-b*K
ans=
01.000000
0.40001.000020.40006.0000
0001.0000
-0.4000-1.0000-10.4000-6.0000
由运行结果知
K=[-0.4-1.0-21.4-6]
闭环矩阵为:
01.000000
0.40001.000020.40006.0000
0001.0000
-0.4000-1.0000-10.4000-6.0000
②已知某自动装置的控制系统的状态方程为:
(调用ACKER函数)
设计状态反馈矩阵K使闭环极点为
,并计算闭环系统状态系数矩阵。
解:
程序如下:
>>A=[-2-2.5-0.5;100;010];
>>B=[1;0;0];
>>p=[-1-2-3];
>>K=acker(A,B,p)
Ac=A-B*K
eig(Ac)
K=
4.00008.50005.5000
Ac=
-6-11-6
100
010
ans=
-3.0000
-2.0000
-1.0000
所以闭环系统状态系数矩阵为:
Ac=
-6-11-6
100
010
③已知倒立摆杆的线性模型如下:
(调用PLACE函数)
设计状态反馈矩阵K使闭环极点为
,并计算闭环系统状态系数矩阵。
解:
程序如下:
A=[0,1,0,0;0,0,-1,0;0,0,0,1;0,0,11,0];
>>B=[0;1;0;-1];
>>eig(A)'
P=[-1;-2;-1+sqrt(-1);-1-sqrt(-1)];
K=place(A,B,P)
eig(A-B*K)'
ans=
003.3166-3.3166
K=
-0.4000-1.0000-21.4000-6.0000
ans=
Columns1through3
-2.0000-1.0000-1.0000i-1.0000+1.0000i
Column4
-1.0000
④ 已知某闭环系统状态方程和输出方程如下:
设计全维状态观测器,使状态观测器的极点配置在
,并绘制观测器和原系统的状态轨线。
解:
程序如下:
>>a=[01;-3-4];
b=[0;1];
c=[20];
p1=[-2+j-2-j];
a1=a';
b1=c';
c1=b';
K=acker(a1,b1,p1);
>>h=(K)'
>>ahc=a-h*c
h=
0
1
ahc=
01
-5-4
所以全维状态观测器为: