线性系统结构分析与分解及标准型.docx

上传人:b****5 文档编号:4730498 上传时间:2022-12-08 格式:DOCX 页数:18 大小:24.71KB
下载 相关 举报
线性系统结构分析与分解及标准型.docx_第1页
第1页 / 共18页
线性系统结构分析与分解及标准型.docx_第2页
第2页 / 共18页
线性系统结构分析与分解及标准型.docx_第3页
第3页 / 共18页
线性系统结构分析与分解及标准型.docx_第4页
第4页 / 共18页
线性系统结构分析与分解及标准型.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

线性系统结构分析与分解及标准型.docx

《线性系统结构分析与分解及标准型.docx》由会员分享,可在线阅读,更多相关《线性系统结构分析与分解及标准型.docx(18页珍藏版)》请在冰豆网上搜索。

线性系统结构分析与分解及标准型.docx

线性系统结构分析与分解及标准型

广西大学实验报告纸

序号

学号

贡献排名

实验报告分数

1(组长):

13

2

2(组员):

13021202

1

实验项目

线性系统结构分析与分解及标准型

【实验时间】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.

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中对线性系统的基本操作,对系统能控能观性也有了更深的理解。

对我们日后的学习有着很大的影响。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1