线性系统结构分析与分解及标准型.docx
- 文档编号:8256920
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:17
- 大小:26.08KB
线性系统结构分析与分解及标准型.docx
《线性系统结构分析与分解及标准型.docx》由会员分享,可在线阅读,更多相关《线性系统结构分析与分解及标准型.docx(17页珍藏版)》请在冰豆网上搜索。
线性系统结构分析与分解及标准型
广西大学实验报告纸
序号
学号
姓名
贡献排名
实验报告分数
1(组长):
2(组员):
实验项目
线性系统结构分析与分解及标准型
【实验时间】2015年12月4日
【实验地点】课外
【实验目的】掌握线性系统状态空间标准型、解及其模型转换
【实验设备与软件】MATLAB数值分析软件
【实验原理】
1、标准型变换、矩阵Jordan型变换、特征值
(1)标准型变换命令格式csys=canon(sys,’type’)
(2)矩阵Jordan规范型命令格式[VJ]=Jordan(A)
(3)求矩阵特征值和特征向量命令格式[VJ]=eig(A)
cv=eig(A)
2、状态模型的相似变换:
命令格式sysb=ss2ss(sys,T)
传递函数模型与状态空间模型之间的相互转换:
命令格式[A,B,C,D]=tf2ss(num,den)
[num,den]=ss2tf(A,B,C,D,iu)
zpk模型与空间状态模型之间的相互转换:
命令格式[A,B,C,D]=zp2ss(z,p,k)
[z,p,k]=ss2zp(A,B,C,D,iu)
3、线性定常系统的可控性与可观性及结构分解
(1)状态可控性
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
转换成能控标准Ⅰ型的代码:
functionGs=ss(A,B,C,D)
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
end
end
T=Ttt*Tea;
Abar=inv(T)*A*T;
Bbar=vin(T)*B;
Cbar=C*T;
Dbar=D;
Gss=ss(Abar,Bbar,Cbar,Dbar)
end
若系统能观,则可转换成能观标准Ⅰ型和能观标准
型。
转换成能观标准Ⅰ型的代码:
functionGs=ss(A,B,C,D)
%Gs=ss(A,B,C,D);
Tinv=obsv(Gs.a,Gs.c);
T=inv(Tinv);
Abar=inv(T)*A*T;
Bar=inv(T)*B;
Cbar=C*T,Dar=D;
Gss=ss(Abar,Bbar,Cbar,Dbar)
end
转换成能观标准
的代码:
functionGs=ss(A,B,C,D)
%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);
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
end
end
Tea=Tea';
T=Tea*Ttt;
Abar=inv(T)*A*T;
Bbar=vin(T)*B;
Cbar=C*T;
Dbar=D;
Gss=ss(Abar,Bbar,Cbar,Dbar)
end
【实验内容、方法、过程与分析】
1、已知线性系统
在MATLAB中输入该系统的状态空间描述:
A=[-6-0.6250.75;800;020]
A=
-6.0000-0.62500.7500
8.000000
02.00000
>>B=[1;0;0]
B=
1
0
0
>>C=[1-0.250.0625]
C=
1.0000-0.25000.0625
>>D=[1]
D=
1
(1)判断其状态可控性、可观性和传递函数的关系,并加以说明分析。
①编写判断状态可控性子函数:
functionstr=pdctrb(A,B)
Qc=ctrb(A,B);
r=rank(Qc);
l=length(A);
ifr==l
str='系统是状态完全可控的!
';
elsestr='系统不是状态完全可控的!
';
end
end
调用子函数:
str=pdctrb(A,B)
str=
系统是状态完全可控的!
②编写判断状态可观性子函数:
functionstr=pdobsv(A,C)
Qo=obsv(A,C);
r=rank(Qo);
l=size(A,1);
ifr==l;
str='系统是状态完全可观的!
';
elsestr='系统不是状态完全可观的!
';
end
end
调用子函数:
str=pdobsv(A,C)
str=
系统不是状态完全可观的!
所以,该系统是状态完全可控、不完全可观的。
(2)对系统分别按能控性分解、能观性分解以及能控能观性分解。
①按能控性分解:
[AbarBbarCbarTK]=ctrbf(A,B,C)
Abar=
0-2.00000
008.0000
-0.7500-0.6250-6.0000
Bbar=
0
0
1
Cbar=
-0.0625-0.25001.0000
T=
00-1
010
100
K=
111
②按能观性分解:
[AbarBbarCbarTK]=obsvf(A,B,C)%能观性分解
Abar=
1.0000-2.27722.7134
-0.00000.3407-5.5238
0.00002.6251-7.3407
Bbar=
0.0558
-0.2432
0.9684
Cbar=
0.0000-0.00001.0327
T=
0.05580.44650.8930
-0.2432-0.86140.4459
0.9684-0.24210.0605
K=
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=
x1x2x3x4
y100.250.06250.04688
d=
u1
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
1.0000+0.0000i1.0000+0.0000i
J=
Columns1through2
-5.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i-7.0000+0.0000i
0.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i0.0000+0.0000i
Columns3through4
0.0000+0.0000i0.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=
a=
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
b=
u1
x11.6-2.22e-16i
x2-1+1.67e-16i
x3-0.3-0.1i
x4-0.3+0.1i
c=
x1x2x3
y10.281-1.77e-16i0.594-2.78e-16i-0.156+0.25i
x4
y1-0.156-0.25i
d=
u1
y10
Continuous-timestate-spacemodel.
>>Gsm=canon(Gs,'model')
Gsm=
a=
x1x2x3x4
x1-3400
x2-4-300
x300-70
x4000-5
b=
u1
x10.9492
x2-0.1931
x34.942
x45.042
c=
x1x2x3x4
y10.16990.09054-0.12010.08925
d=
u1
y10
Continuous-timestate-spacemodel.
>>Gsf=canon(Gs,'companion')
Gsf=
a=
x1x2x3x4
x1000-875
x2100-510
x3010-132
x4001-18
b=
u1
x11
x20
x30
x40
c=
x1x2x3x4
y101-16159
d=
u1
y10
Continuous-timestate-spacemodel.
状态方程比较:
Jordan标准型是一种并联分解的策略;模态型系统是一组以模态坐标及模态参数描述的独立方程;最后的是能控标准II型系统,可以直接转换为其他能控或能观标准型。
(2)当系统没有重根的时候,canon得到的是对角型系统。
例子:
>>num=[123];
den=conv([11],[112352]);
G=tf(num,den)
Gs=ss(G)
Gsm=canon(Gs,'model')
运行结果:
canon
G=
s^2+2s+3
--------------------------------
s^4+13s^3+47s^2+37s+2
Continuous-timetransferfunction.
Gs=
a=
x1x2x3x4
x1-13-5.875-2.313-0.25
x28000
x30200
x4000.50
b=
u1
x11
x20
x30
x40
c=
x1x2x3x4
y100.1250.1250.375
d=
u1
y10
Continuous-timestate-spacemodel.
Gsm=
a=
x1x2x3x4
x1-7.132000
x20-4.8100
x300-10
x4000-0.0583
b=
u1
x15.531
x25.456
x3-0.8344
x40.1298
c=
x1x2x3x4
y1-0.07110.072030.10890.7028
d=
u1
y10
Continuous-timestate-spacemodel.
(3)将原理中给出的能观标准型和能控标准型转换代码写成子函数的形式,并通过调用你编写的子函数将.m文件中给出的能控标准Ⅰ、
型和能观标准Ⅰ、Ⅱ型,从结果说明能控与能观标准型间关系。
能控Ⅰ型:
function[Abar,Bbar,Cbar,Dbar]=nengkong1(A,B,C,D)
Tt=ctrb(A,B);
Ttt=fliplr(Tt);
cp=poly(A);
n=length(A);
Tea=eye(n)
fori=2:
n
forj=1:
(n-1)
ifi>j
Tea(i,j)=cp(i-(j-1));
end
end
end
T=Ttt*Tea;
Abar=inv(T)*A*T;
Bbar=inv(T)*B;
Cbar=C*T;
Dbar=D;
End
能空Ⅱ型:
function[Abar,Bbar,Cbar,Dbar]=nengkong2(A,B,C,D)
T=ctrb(A,B)
Abar=inv(T)*A*T;
Bbar=inv(T)*B;
Cbar=C*T,Dbar=D;
end
能观Ⅰ型:
function[Abar,Bbar,Cbar,Dbar]=nengguan1(A,B,C,D)
Tinv=obsv(A,C);
T=inv(Tinv);
Abar=inv(T)*A*T;
Bbar=inv(T)*B;
Cbar=C*T,Dbar=D;
end
能观Ⅱ型:
function[Abar,Bbar,Cbar,Dbar]=nengguan2(A,B,C,D)
Tt=obsv(A,C);
Ttt=flipud(Tt);
cp=poly(A);
n=length(A);
Tea=eye(n);
fori=2:
n
forj=1:
(n-1)
ifi>j
Tea(i,j)=cp(i-(j-1));
end
end
end
Tea=Tea';
T=Tea*Ttt;
Abar=inv(T)*A*T;
Bbar=inv(T)*B;
Cbar=C*T;
Dbar=D;
%Gss=ss4(Abar,Bbar,Cbar,Dbar)
end
【实验总结】
通过这次实验,用MATLAB为工具对线性系统的能控能观性进行判断和分析,以及对系统进行能控能观性分解和对模型进行变换,了解了能空能观之间的关系。
通过这次实验,我熟悉了MATLAB中对线性系统的基本操作,对系统能控能观性也有了更深的理解。
对我们日后的学习有着很大的影响。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 系统 结构 分析 分解 标准型