现代控制理论matlab

  • 格式:docx
  • 大小:17.42 KB
  • 文档页数:5

控制理论的matlab方法
系统的三种描述:
状态空间表达式ss:
A=[1 0 0;0 1 0;0 0 1];
B=[1;1;1]; %注意是分号分开,因为需要一个列矩阵。

A与B必须有相同的行数!!C=[1 1 1]
D=0
转换成系统
Sys=ss(A,B,C,D);
传递函数表达式tf:
num=[1 1];
den=[1,2,5];
sys2=tf(num,den)
Transfer function:
s + 1
-------------
s^2 + 2 s + 5
零极点增益表达式apk:
z=1
p=[-2.5+3.7081i,-2.5-3.7081i]
k=1
sys3=zpk(z,p,k)
Zero/pole/gain:
(s-1)
---------------
(s^2 + 5s + 20)
传递函数变换运算:传递函数分部展开:
G s=k+
r i
s−p i ∞
i=1
num=[1 1];
den=[1,2,5];
[r p k]=residue(num,den);
r =
0.5000
0.5000
p =
-1.0000 + 2.0000i
-1.0000 - 2.0000i
k =
[]
不同表达之间的转换:
ss = 状态空间表达式
tf = 传递函数
zp = 零极点模型
所以又以下组合:
[num,den]=ss2tf(A,B,C,D) [z,p,k]= ss2zp(A,B,C,D)
[A,B,C,D]=tf2ss(num,den) [A,B,C,D]=zp2ss(z,p,k)
求最小实现:
返回最小的状态空间表达式[As,Bs,Cs,Ds] = minreal(A,B,C,D)
求单个输入的传递函数:
[num den]=ss2tf(A,B,C,D,iu)
iu 指第n个输入
求稳态输出:
Gss=dcgain(sys)
求特征值和特征向量
>> X=[3,-1,-2;2,0,-2;2,-1,-1]; >> [P,lambda]=eig(X)
P =
0.7276 -0.5774 0.7210
0.4851 -0.5774 0.0615
0.4851 -0.5774 0.6902
1.0000 0 0
0 0.0000 0
0 0 1.0000
常用操作
求逆
inv(A)或A^-1
参数化
syms s
求矩阵的一部分
A(1:2,3:5) %获得矩阵的1~2行,3到5列。

拉氏变换
L=laplace(f)
f=ilaplace(L)
输入关于t的函数:
syms t %创建一个参数t
f=t^-2 %写出f相对于参数t的表达式
李亚普诺夫第二法:
已知系统的状态方程为,试判断其稳定性。

取Q=I
A=[0 1 0;0 -2 1;-4 0 -1];
>> A=A';
>> Q=eye(3,3);
>> P=lyap(A,Q)
P =
21.5000 7.8750 0.1250 7.8750 4.1875 1.4375 0.1250 1.4375 1. 937
>> format rat >> P P =
43/2 63/8 1/8 63/8 67/16 23/16 1/8 23/16 31/16
det((P(1:2,1:2)))
ans =
1793/64
>> det(P)
ans = 1615/128
由塞尔维斯特判据,判断P为正定,系统渐进稳定。

能控能观分解:
Size(a,b) 获取矩阵的行和列的数目
Ctrb(a,b) 求取系统能控性判别矩阵
Obsv(a,c) 求取能观性判别矩阵
Rank(t) 求取矩阵的秩
Inv(t) 求矩阵的逆
[abar,bbar,cbar,t,k]=ctrbf(a,b,c) 对系统按能控性分解,t为变换阵,k为各子系统的秩
[abar,bbar,cbar,t,k]=obsvf(a,b,c) 对系统按能观性分解。