现代控制理论实验Word下载.docx
《现代控制理论实验Word下载.docx》由会员分享,可在线阅读,更多相关《现代控制理论实验Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
1.MATLAB7.6环境
三、实验内容
1、模型转换
图1、模型转换示意图及所用命令
传递函数一般形式:
MATLAB表示为:
G=tf(num,den),,其中num,den分别是上式中分子,分母系数矩阵。
零极点形式:
G=zpk(Z,P,K),其中Z,P,K分别表示上式中的零点矩阵,极点矩阵和增益。
传递函数向状态空间转换:
[A,B,C,D]=TF2SS(NUM,DEN);
状态空间转换向传递函数:
[NUM,DEN]=SS2TF(A,B,C,D,iu)---iu表示对系统的第iu个输入量求传递函数;
对单输入iu为1。
例1:
已知系统的传递函数为G(S)=
利用matlab将传递函数和状态空间相互转换。
解:
1.传递函数转换为状态空间模型:
NUM=[124];
DEN=[111611];
[A,B,C,D]=tf2ss(NUM,DEN)
2.状态空间模型转换为传递函数:
A=[-11-6-11;
100;
010];
B=[1;
0;
0];
C=[124];
D=[0];
iu=1;
[NUM,DEN]=ss2tf(A,B,C,D,iu);
G=tf(NUM,DEN)
2、状态方程状态解和输出解
单位阶跃输入作用下的状态响应:
G=ss(A,B,C,D);
[y,t,x]=step(G);
plot(t,x).
零输入响应
[y,t,x]=initial(G,x0)其中,x0为状态初值。
例二:
仍然使用一中的状态空间模型,绘制单位阶跃输入作用下的状态响应和零输入响应,其中零输入响应的初始值x0=[121]。
1.绘制单位阶跃输入作用下的状态响应:
G=ss(A,B,C,D);
plot(t,x)
2.绘制零输入响应:
x0=[121];
[y,t,x]=initial(G,x0);
3、系统能控性和能观性
能控性判断:
首先求能控性判别矩阵:
co=ctrb(A,B)。
然后求rank(co)并比较与A的行数n的大小,若小于n则不可控,等于为可控。
也可以求co的行列式,不等于0,系统可控,否则不可控。
能观测性判断:
首先求能观测性阵ob=obsv(A,C),或者ob=ctrb(A'
,C'
);
然后求rank(ob)并比较与A的行数大小,若小于,为不可观测,等于则为可观测。
也可以求co的行列式,不等于0,系统能观,否则不能观
例三:
判断下列系统的能控能观性:
A=[-510;
0-50;
00-3];
B=[10;
00;
10];
C=[101;
-110];
co=ctrb(A,B);
rank(co)
因为2<
3(A的行数),所以不能控
ob=obsv(A,C);
rank(ob)
是满秩的
显然,该系统是能观测的。
综上,该系统能观不能控。
4、线性变换
一个系统可以选用不同的状态变量,所以状态方程是不唯一的。
但是这些方程之间是可以相互转换的。
[At,Bt,Ct,Dt]=ss2ss(A,B,C,D,T)
变换矩阵T不同,可得到不同的状态方程表示形式,如可控型,可观测型,Jordan标准型表示。
matlab变换与控制书上讲的变换略有差别。
这里是z=Tx,其中x是原来的变量,z是现在的变量。
书上则是x=Tz。
因此线性变换时,首先要对给定的变换矩阵进行逆变换,然后将其代入上面指令的T中。
求对角阵(或约当阵):
MATLAB提供指令:
[At,Bt,Ct,Dt,T]=canon(A,B,C,D,'
modal'
)
它可将系统完全对角化,不会出现经典控制中的约当块。
求可观测标准型:
companion'
求可控标准型:
首先需要求可观测标准型,然后根据对偶关系求[At'
,Ct'
,Bt'
,Dt'
]
例四:
(1)将状态方程转化为对角标准型
A=[010;
001;
-6-11-6];
1;
C=[000];
[At,Bt,Ct,Dt,T]=canon(A,B,C,D,'
(2)求该系统的能观标准型并得变换阵T。
B=[0;
1];
C=[100];
[At,Bt,Ct,Dt,T]=canon(A,B,C,D,'
5、线性定常系统的结构分解
当系统是不可控的,可以进行可控性规范分解。
使用
[a1,b1,c1,t,k]=ctrbf(A,B,C)命令。
验证P497例题9-21。
当系统是不可观测的,可以进行可观测性规范分解。
使用[a2,b2,c2,t,k]=obsvf(A,B,C)命令。
例五:
(1)将下列系统进行可控性分解。
该系统不可控
[a1,b1,c1,t,k]=ctrbf(A,B,C)
(2)将以下系统进行可观测性分解:
A=[-100;
0-20;
00-4];
B=[2;
2;
C=[012];
%求能观判别阵
[a2,b2,c2,t,k]=obsvf(A,B,C)
6、极点配置算法
调用命令格式为K=acker(A,B,P),或者K=place(A,B,P)。
A,B为系统系数矩阵,
P为配置极点,K为反馈增益矩阵。
用下列编码对状态反馈前后的输出响应进行比较(附带文件control.m)。
t=0:
0.01:
5;
U=0.025*ones(size(t));
%幅值为0.025输入阶跃信号
[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;
例六:
已知系统的传递函数为
试设计一个状态反馈矩阵,使闭环系统的极点在-2,
。
依据系统传递函数写出能控标准型
系统完全能控,可任意配置极点
0-2-3];
P=[-2,-1+j,-1-j];
K=acker(A,B,P)
title('
对状态反馈前后的输出响应进行比较
7、线性定常系统稳定判据
函数lyap(A,Q)求如下式的李氏方程:
AP+PAT=-Q
注意与教材的区别,应将给定A矩阵转置后再代入lyap函数。
例七:
设系统的状态方程如下,其平衡状态在坐标原点处,试判断该系统的稳定性:
解:
A=[0-2;
1-3];
Q=[10;
01];
lyap(A,Q)
求解出的P阵正定,所以在原点出的平衡状态是渐近稳定的,且是大范围渐进稳定
四.实验总结:
通过此次实验,我对状态空间模型的求解,及线性系统对角线标准型、约旦标准型、模态标准型、伴随矩阵标准型的表示方法,和相互之间进行变换的方法有了更深入、更直观的了解。
之前的学习在没有实验之前总归是纸上谈兵,通过MATLAB仿真,对所学知识有了更加全面的理解。
在做实验的过程中,有时会出现错误,大部分是跟标点符号有关,也提醒自己时刻注意切换英文输入法。