现代控制理论实验.docx
《现代控制理论实验.docx》由会员分享,可在线阅读,更多相关《现代控制理论实验.docx(14页珍藏版)》请在冰豆网上搜索。
华北电力大学
实验报告
|
|
实验名称状态空间模型分析
课程名称现代控制理论基础
|
|
专业班级:
自动化1203学生姓名:
孟令虎
学号:
201209020216成绩:
指导教师:
刘鑫屏老师实验日期:
2015.4.24
一、实验目的
l.加强对现代控制理论相关知识的理解;
2.掌握用matlab进行系统李雅普诺夫稳定性分析、能控能观性分析;
二、实验仪器与软件
1.MATLAB7.6环境
三、实验内容
1、模型转换
例1.把传递函数模型转化为状态空间模型。
解:
程序如下
num=[48];
den=[181912];
[A,B,C,D]=tf2ss(num,den);
G=ss(A,B,C,D)
运行结果:
A=
-8-19-12
100
010
B=
1
0
0
C=
048
D=0
结果为
,
例2.把状态空间模型转化为传递函数模型A=B=C=D=0。
解:
程序如下:
clear
A=[010;001;-6-11-6];
B=[0;0;1];
C=[320];
D=0;
iu=1;
[num,den]=ss2tf(A,B,C,D,iu);
sys=tf(num,den)
运行结果为:
Transferfunction:
2s+3
----------------------
s^3+6s^2+11s+6
2、状态方程状态解和输出解
例1.单位阶跃输入作用下的状态响应A=B=C=D=0。
解:
输入程序如下:
clear
A=[010;001;-6-11-6];
B=[0;0;1];
C=[320];
D=0;
G=ss(A,B,C,D);[y,t,x]=step(G);
plot(t,x(:
1),'r')
holdon
plot(t,x(:
2),'g')
holdon
plot(t,x(:
3),'b')
holdon
legend('x1','x2','x3')
运行结果如下:
例2.零输入作用下的状态响应A=B=C=D=0。
初始状态为。
解:
程序如下
clear
closeall
A=[010;001;-6-11-6];
B=[0;0;1];
C=[320];
D=0;
x0=[1;4;3];
G=ss(A,B,C,D);
[y,t,x]=initial(G,x0);
plot(t,x(:
1),'r')
holdon
plot(t,x(:
2),'g')
holdon
plot(t,x(:
3),'b')
holdon
legend('x1','x2','x3')
title('零输入作用下的状态响应')结果如下:
3、系统能控性和能观性
例1:
判别系统的能控和能观性A=B=C=。
解:
程序如下
A=[-310;0-30;001];
B=[00;2-1;03];
C=[320];
co=ctrb(A,B);
n=rank(co);
ob=obsv(A,C);
m=rank(ob);
if((m==3)&&(n==3))
warndlg('系统既能控又能观!
','能观能控性分析');
elseif((n==3)&&(m<3))
warndlg('系统能控不能观!
','能观能控性分析');
elseif((n<3)&&(m==3))
warndlg('系统不能控能观!
','能观能控性分析');
elseif((n<3)&&(m<3))
warndlg('系统不能控也不能观!
','能观能控性分析');
end
结果为:
n=3
m=2
4.线性变换
例1将系统状态空间模型,,线性变换阵为化为对角标准型。
解:
程序如下:
clc
clear
A=[01;-2-3];
B=[1;1];
C=[10];
D=0;
T=[11;-1-2];
T=inv(T);
[At,Bt,Ct,Dt]=ss2ss(A,B,C,D,T);
G=ss(At,Bt,Ct,Dt)
结果:
a=
x1x2
x1-10
x20-2
b=
u1
x13
x2-2
c=
x1x2
y111
d=
u1
y10
结果为,。
例2.将系统状态空间模型,,化为对角或约旦标准型。
解:
clc
clear
A=[01;-2-3];
B=[1;1];
C=[10];
D=0;
[At,Bt,Ct,Dt,T]=canon(A,B,C,D,'modal');
G=ss(At,Bt,Ct,Dt)
结果为:
a=
x1x2
x1-10
x20-2
b=
u1
x13.354
x22.828
c=
x1x2
y10.8944-0.7071
d=
u1
y10
结果为,。
结果为对角标准型。
3.将系统状态空间模型,,化为能观和能控标准型。
解:
clc
clear
A=[02-2;11-2;2-21];
B=[2;1;1];
C=[111];
D=0;
[At,Bt,Ct,Dt]=canon(A,B,C,D,'companion');
G=ss(At,Bt,Ct,Dt)
disp('以下是能控标准型')
A=At'
B=Ct'
C=Bt'
D=Dt
运行结果为:
a=
x1x2x3
x100-2
x2101
x3012
b=
u1
x11
x20
x30
c=
x1x2x3
y144-8
d=
u1
y10
以下是能控标准型:
A=
010
001
-212
B=
4
4
-8
C=
100
D=0
能观标准型如下:
能控标准型如下
5、线性定常系统的结构分解
例1.将系统状态空间模型,,按照能控性分解:
clc
clear
A=[00-1;10-3;01-3];
B=[1;1;0];
C=[01-2];
D=0;
[A1,B1,C1,t,k]=ctrbf(A,B,C);
A1
B1
C1
结果为:
A1=
-1.0000-0.00000.0000
2.1213-2.50000.8660
1.2247-2.59810.5000
B1=
0
0
1.4142
C1=1.7321-1.22470.7071结果为:
例2.将系统状态空间模型,,按照能观性分解。
解:
clc
clear
A=[00-1;10-3;01-3];
B=[1;1;0];
C=[01-2];
D=0;
[A1,B1,C1,t,k]=obsvf(A,B,C);
A1
B1
C1
结果为:
A1=
-1.00001.34163.8341
-0.0000-0.4000-0.7348
00.4899-1.600
B1=
1.2247
0.5477
0.4472
C1=
0-0.00002.236
结果为:
6、极点配置算法
例1、一个系统,,希望极点为-4、-2+j*2,-2-j*2,计算其状态反馈阵k,并比较其状态反馈前后的输出响应。
解:
在matlab中输入如下程序
clc
clear
A=[010;001;-6-3-4];
B=[0;0;1];
C=[320];
D=0;
P=[-4-2+j*2-2-j*2];
K=place(A,B,P);
t=0:
0.01:
25;
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);grid;title('反馈前')
figure
(2)
plot(t,Y2);grid;title('反馈后')
结果为:
k=[26 21 4]
7、线性定常系统稳定判据
1.设系统状态方程为,其平衡状态在坐标原点,判断该系统的稳点性。
解:
clc
clear
clc
A=[01;-1-1];
A=A';
Q=[10;01];
P=lyap(A,Q)
结果为
P=
1.50000.5000
0.50001.0000
P为正定矩阵,系统在原点处的平衡状态是渐进稳点的。
四.实验总结
通过本次实验加深了对课本上理论知识的理解。
提高了我的动手能力,学会利用数学仿真软件计算复杂矩阵。
求解现代控制理论问题。
使我明白在学习过程中要多学习一些计算机方面的知识,这样对我们的学习是有很大帮助的。
本次实验由于有许多矩阵要计算,需要学习MATLAB矩阵运算的相关语言。
同时在矩阵运算时要认真耐心。
否则很可能会计算错误。
在本次实验中要感谢老师给的指导书,使我在实验过程中有的放矢,在最短的时间内完成实验任务,节约了许多时间。
同时也谢谢老师的指导。