线性系统结构分析与分解及标准型Word文件下载.docx
《线性系统结构分析与分解及标准型Word文件下载.docx》由会员分享,可在线阅读,更多相关《线性系统结构分析与分解及标准型Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
Qc=ctrb(A,B)
r=rank(Qc)
l=length(A)
(2)状态可观性
Qo=obsv(A,C)
r=rank(Qo)
l=size(A,1)
(3)输出可控性
Co=ctrb(A,B)
m=size(C,1)
Qyc=[C*Co,D]
Tm=rank(Qyc)
4、定常线性系统的标准型(转换限于SISO系统)
若系统能控,则可转换成能控标准Ⅰ型和能控标准
型。
转换成能控标准
型的代码:
functionGs=ss(A,B,C,D)
T=ctrb(Gs.a,Gs.b)
Abar=inv(T)*A*T;
Bar=inv(T)*B;
Cbar=C*T,Dar=D;
Gss=ss(Abar,Bbar,Cbar,Dbar)
end
转换成能控标准Ⅰ型的代码:
Tt=ctrb(Gs.a,Gs.b);
Ttt=fliplr(Tt);
cp=poly(Gs.a);
n=length(Gs.a);
Tea=eye(n)
fori=2:
n
forj=1:
(n-1)
ifi>
j
Tea(i,j)=cp(i-(j-1));
end
T=Ttt*Tea;
Bbar=vin(T)*B;
Cbar=C*T;
Dbar=D;
若系统能观,则可转换成能观标准Ⅰ型和能观标准
转换成能观标准Ⅰ型的代码:
%Gs=ss(A,B,C,D);
Tinv=obsv(Gs.a,Gs.c);
T=inv(Tinv);
转换成能观标准
的代码:
%A=[-6-0.6250.75;
800;
020]
%B=[1;
0;
0]
%C=[1-0.250.0625]
%D=[1]
Tt=obsv(Gs.a,Gs.c);
Ttt=flipud(Tt);
Tea=Tea'
;
T=Tea*Ttt;
【实验内容、方法、过程与分析】
1、已知线性系统
在MATLAB中输入该系统的状态空间描述:
A=[-6-0.6250.75;
A=
-6.0000-0.62500.7500
8.000000
02.00000
>
B=[1;
B=
1
0
C=[1-0.250.0625]
C=
1.0000-0.25000.0625
D=[1]
D=
(1)判断其状态可控性、可观性和传递函数的关系,并加以说明分析。
①编写判断状态可控性子函数:
functionstr=pdctrb(A,B)
Qc=ctrb(A,B);
r=rank(Qc);
l=length(A);
ifr==l
str='
系统是状态完全可控的!
'
elsestr='
系统不是状态完全可控的!
调用子函数:
str=pdctrb(A,B)
str=
系统是状态完全可控的!
②编写判断状态可观性子函数:
functionstr=pdobsv(A,C)
Qo=obsv(A,C);
r=rank(Qo);
l=size(A,1);
ifr==l;
系统是状态完全可观的!
系统不是状态完全可观的!
str=pdobsv(A,C)
所以,该系统是状态完全可控、不完全可观的。
(2)对系统分别按能控性分解、能观性分解以及能控能观性分解。
①按能控性分解:
[AbarBbarCbarTK]=ctrbf(A,B,C)
Abar=
0-2.00000
008.0000
-0.7500-0.6250-6.0000
Bbar=
Cbar=
-0.0625-0.25001.0000
T=
00-1
010
100
K=
111
②按能观性分解:
[AbarBbarCbarTK]=obsvf(A,B,C)%能观性分解
1.0000-2.27722.7134
-0.00000.3407-5.5238
0.00002.6251-7.3407
0.0558
-0.2432
0.9684
0.0000-0.00001.0327
0.05580.44650.8930
-0.2432-0.86140.4459
0.9684-0.24210.0605
110
2、在Matlab中建立并运行如下的.m代码,回答下面的问题。
num=[123];
den=conv([1625],[11235]);
G=tf(num,den)
Gs=ss(G)
[VJ]=Jordan(Gs.a)%求特征向量和Gs.a的Jordan标准型
Gss=ss2ss(Gs,inv(V))%Jordan型系统
Gsm=canon(Gs,’model’)%模态型系统
Gsf=canon(Gs,’companion’)%能控标准Ⅱ型系统
(1)给出无分号行的运行结果,并比较几个状态方程。
(2)在什么情况下,canon得到的是对角型系统?
请举例说明。
(3)将原理中给出的能控标准与能观标准型转换代码写成子函数的形式,并通过调用所编写的子函数将.m文件中给出的模型变换成能控标准Ⅰ、Ⅱ型和能观标准Ⅰ、Ⅱ型,并从结果说明能控与能观标准型的关系。
实验过程及分析:
(1)运行结果如下:
clear
num=[123];
den=conv([1625],[11235]);
G=tf(num,den)
G=
s^2+2s+3
------------------------------------
s^4+18s^3+132s^2+510s+875
Continuous-timetransferfunction.
Gs=ss(G)
Gs=
a=
x1x2x3x4
x1-18-8.25-3.984-3.418
x216000
x30800
x40020
b=
u1
x10.25
x20
x30
x40
c=
y100.250.06250.04688
d=
y10
Continuous-timestate-spacemodel.
[VJ]=jordan(Gs.a)
V=
Columns1through2
-0.4883+0.0000i-1.3398+0.0000i
1.5625+0.0000i3.0625+0.0000i
-2.5000+0.0000i-3.5000+0.0000i
1.0000+0.0000i1.0000+0.0000i
Columns3through4
0.4570-0.1719i0.4570+0.1719i
-0.4375+1.5000i-0.4375-1.5000i
-1.5000-2.0000i-1.5000+2.0000i
J=
-5.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i-7.0000+0.0000i
0.0000+0.0000i0.0000+0.0000i
-3.0000-4.0000i0.0000+0.0000i
0.0000+0.0000i-3.0000+4.0000i
Gss=ss2ss(Gs,inv(V))
Gss=
x1x2
x1-5+1.04e-15i-2.13e-14+2.19e-15i
x2-1.78e-15-4.62e-16i-7-1.06e-15i
x3-1.38e-15+1.78e-15i4.01e-15+2.22e-15i
x4-1.73e-15+4.44e-16i7.54e-15+4.44e-16i
x3x4
x12.43e-14+2.27e-15i2.01e-14-4.83e-15i
x2-5.7e-15+2.51e-15i-4.96e-15-2.82e-15i
x3-3-4i0+1.78e-15i
x4-4.88e-15+1.11e-15i-3+4i
x11.6-2.22e-16i
x2-1+1.67e-16i
x3-0.3-0.1i
x4-0.3+0.1i
x1x2x3
y10.281-1.77e-16i0.594-2.78e-16i-0.156+0.25i
x4
y1-0.156-0.25i
Gsm=canon(Gs,'
model'
)
Gsm=
x1-3400
x2-4-300
x300-70
x4000-5
x10.9492
x2-0.1931
x34.942
x45.042
y10.16990.09054-0.12010.08925
Gsf=canon(Gs,'
companion'
Gsf=
x1000-875
x2100-510
x3010-132
x4001-18
x11
y101-16159
状态方程比较:
Jordan标准型是一种并联分解的策略;
模态型系统是一组以模态坐标及模态参数描述的独立方程;
最后的是能控标准II型系统,可以直接转换为其他能控或能观标准型。
(2)当系统没有重根的时候,canon得到的是对角型系统。
例子:
den=conv([11],[112352]);
Gsm=canon(Gs,'
运行结果:
canon
--------------------------------
s^4+13s^3+47s^2+37s+2
x1-13-5.875-2.313-0.25
x28000
x30200
x4000.50
y100.1250.1250.375
x1-7.132000
x20-4.8100
x300-10
x4000-0.0583
x15.531
x25.456
x3-0.8344
x40.1298
y1-0.07110.072030.10890.7028
(3)将原理中给出的能观标准型和能控标准型转换代码写成子函数的形式,并通过调用你编写的子函数将.m文件中给出的能控标准Ⅰ、
型和能观标准Ⅰ、Ⅱ型,从结果说明能控与能观标准型间关系。
能控Ⅰ型:
function[Abar,Bbar,Cbar,Dbar]=nengkong1(A,B,C,D)
Tt=ctrb(A,B);
cp=poly(A);
n=length(A);
Bbar=inv(T)*B;
End
能空Ⅱ型:
function[Abar,Bbar,Cbar,Dbar]=nengkong2(A,B,C,D)
T=ctrb(A,B)
Cbar=C*T,Dbar=D;
能观Ⅰ型:
function[Abar,Bbar,Cbar,Dbar]=nengguan1(A,B,C,D)
Tinv=obsv(A,C);
能观Ⅱ型:
function[Abar,Bbar,Cbar,Dbar]=nengguan2(A,B,C,D)
Tt=obsv(A,C);
Tea=eye(n);
%Gss=ss4(Abar,Bbar,Cbar,Dbar)
【实验总结】
通过这次实验,用MATLAB为工具对线性系统的能控能观性进行判断和分析,以及对系统进行能控能观性分解和对模型进行变换,了解了能空能观之间的关系。
通过这次实验,我熟悉了MATLAB中对线性系统的基本操作,对系统能控能观性也有了更深的理解。
对我们日后的学习有着很大的影响。