实验一MATLAB系统的传递函数和状态空间表达式的转换.docx

上传人:b****2 文档编号:1045846 上传时间:2022-10-16 格式:DOCX 页数:20 大小:2.52MB
下载 相关 举报
实验一MATLAB系统的传递函数和状态空间表达式的转换.docx_第1页
第1页 / 共20页
实验一MATLAB系统的传递函数和状态空间表达式的转换.docx_第2页
第2页 / 共20页
实验一MATLAB系统的传递函数和状态空间表达式的转换.docx_第3页
第3页 / 共20页
实验一MATLAB系统的传递函数和状态空间表达式的转换.docx_第4页
第4页 / 共20页
实验一MATLAB系统的传递函数和状态空间表达式的转换.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

实验一MATLAB系统的传递函数和状态空间表达式的转换.docx

《实验一MATLAB系统的传递函数和状态空间表达式的转换.docx》由会员分享,可在线阅读,更多相关《实验一MATLAB系统的传递函数和状态空间表达式的转换.docx(20页珍藏版)》请在冰豆网上搜索。

实验一MATLAB系统的传递函数和状态空间表达式的转换.docx

实验一MATLAB系统的传递函数和状态空间表达式的转换

实验一MATLAB系统的传递函数和状态空间表达式的转换

一、实验目的

1、学习多变量系统状态空间表达式的建立方法;

2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互转换的方法;

3、掌握相应的MATLAB函数。

二、实验原理

设系统的模型如式(1.1)所示:

xuR’’’yRP(1.1)

其中A为nXn维系统矩阵、B为nXm维输入矩阵、C为pXn维输出矩阵,D为直接传递函数。

系统的传递函数和状态空间表达式之间的关系如式(1.2)所示

G(s)=num(s)/den(s)=C(SI-A)-1B+D(1.2)

式(1.2)中,num(s)表示传递函数的分子阵,其维数是pXm,den(s)表示传递函数的按s降幂排列的分母。

表示状态空间模型和传递函数的MATLAB函数如下:

函数ss(statespace的首字母)给出了状态空间模型,其一般形式是:

sys=ss(A,B,C,D)

函数tf(transferfunction的首字母)给出了传递函数,其一般形式是:

G=tf(num,den)

其中num表示传递函数中分子多项式的系数向量(单输入单输出系统),den表示传递函数中分母多项式的系数向量。

函数tf2ss给出了传递函数的一个状态空间实现,其一般形式是:

[A,B,C,D]=tf2ss(num,den)

函数ss2tf给出了状态空间模型所描述系统的传递函数,其一般形式是:

[num,den]=ss2tf(A,B,C,D,iu)

其中对于多输入系统,必须确定iu的值。

例如,若系统有三个输入u1,u2,u3,则iu必须是1、2、或3,其中1表示u1,2表示u2,3表示u3。

该函数的结果是第iu个输入到所有输出的传递函数。

三.实验步骤及结果

1、应用MATLAB对下列系统编程,求系统的A、B、C、D阵,然后验证传递函数是相同的。

G(s)=s3+4s2+5s+1

程序和运行结果:

num=[0021;0153];

den=[1451];

[A,B,C,D]=tf2ss(num,den)

A=-4-5-1

100

010

B=1

0

0

C=021

153

D=0

0

A=[-4-5-1;100;010];

A=[-4-5-1;100;010];

B=[1;0;0];

C=[021;153];

D=[0;0];

[num1,den1]=ss2tf(A,B,C,D,1)

num1=00.00002.00001.0000

01.00005.00003.0000

den1=1.00004.00005.00001.0000

2、给定系统G(s)=,求系统的零极点增益模型和状态空间模型

程序和运行结果:

num=[0145];

den=[16116];

sys=tf(num,den)

Transferfunction:

s^2+4s+5

----------------------

s^3+6s^2+11s+6

>>sys1=tf2zp(num,den)

sys1=-2.0000+1.0000i

-2.0000-1.0000i

>>[A,B,C,D]=tf2ss(num,den)

A=6-11-6

100

010

B=1

0

0

C=145

D=0

实验2状态空间模型系统仿真及状态方程求解

一、实验目的

1、熟悉线性定常离散与连续系统的状态空间控制模型的输入方法;

2、熟悉系统模型之间的转换功能;

3、利用MATLAB对线性定常系统进行动态分析。

二、实验原理

函数step(sys)给出了系统的单位阶跃响应曲线,其中的sys表示贮存在计算机内的状态空间模型,它可以由函数sys=ss(A,B,C,D)得到。

函数impulse(sys)给出了系统的单位脉冲响应曲线。

函数[y,T,x]=Isim(sys,u,t,x0)给出了一个状态空间模型对任意输入的响应,x0是初始状态。

函数c2d将连续系统状态空间描述转化为离散系统状态空间形式,其一般形式为:

[G,H]=c2d(A,B,T),其中的T是离散化模型的采样周期。

函数d2c将离散系统状态空间描述转化为连续系统状态空间描述,其一般形式为:

sysc=d2c(sysd,Method),其中的Method默认值为‘zoh’方法,即带零阶保持器的z变换。

函数dstep(G,H,C,D)给出了离散系统的单位阶跃响应曲线。

三、实验步骤及结果

程序和运行结果:

T=0.5s时

T=1s时

T=2s时

A=[010;-2-30;-11-3];

B=[0;0;1];

C=[111];

D=1;

[G1H1]=c2d(A,B,0.5)

G1=0.84520.23870

-0.47730.12920

-0.33260.05080.2231

H1=0

0

0.2590

>>dstep(G1,H1,C,D,1)

>>dstep(G1,H1,C,D,1)

>>[G2H2]=c2d(A,B,1)

G2=0.60040.23250

-0.4651-0.09720

-0.3795-0.06140.0498

H2=0

0

0.3167

>>dstep(G2,H2,C,D,1)

>>[G3H3]=c2d(A,B,2)

[G3H3]=c2d(A,B,2)

G3=0.25240.11700

-0.2340-0.09870

-0.2182-0.08530.0025

H3=0

0

0.3325

>>dstep(G3,H3,C,D,1)

程序和运行结果:

Z域仿真图形:

连续域仿真图形:

程序:

G=[01;-0.161];

H=[1;1];

C=[11];

D=0;

u=1;

dstep(G,H,C,D,u)

sysd=ss(G,H,C,D,0.05)

a=x1x2

x101

x2-0.161

b=u1

x11

x21

c=x1x2

y111

d=u1

y10

Samplingtime:

0.05

Discrete-timemodel.

>>sysc=d2c(sysd,'zoh')

a=x1x2

x1-41.4346.21

x2-7.3944.779

b=u1

x116.34

x221.12

c=x1x2

y111

d=u1

y10

Continuous-timemodel.

>>step(sysc);

实验3能控能观判据及稳定性判据

一、实验目的

1、利用MATLAB分析线性定常及离散系统的可控性与可观性;

2、利用MATLAB判断系统的稳定性。

二、实验原理

给定系统状态空间描述[A,B,C,D],函数ctrb(A,B)计算能控性判别矩阵;

函数obsv(A,C)计算能观测性判别矩阵;

函数P=lyap(A,Q)求解李雅普诺夫方程ATP+PA=-Q,Q为正定对称矩阵;

函数[Dp]=chol(P)可用于判断P矩阵是否正定,p=0,矩阵正定,p为其它值,矩阵非正定。

三、实验步骤及结果

1)

(2)

A=[1000;2-300;10-20;4-1-2-4];

B=[0;0;1;2];

C=[3010];

Qc=ctrb(A,B)

Qc=0000

0000

1-24-8

2-1044-184

>>rank(Qc)

ans=2

>>rank(obsv(A,C))

ans=2

能控性判别矩阵Qc和能观性判别矩阵都不满秩,故系统既不能控,也不能观。

(3)A=[1000;2-300;10-20;4-1-2-4];

B=[0;0;1;2];

C=[3010];

D=[0];

[z,p,k]=ss2zp(A,B,C,D,1);

Flagz=0;

n=length(A);

fori=1:

n

ifreal(p(i))>0

Flagz=1;

end

end

>>disp('系统的零极点模型为');z,p,k

系统的零极点模型为

z=1.0000

-4.0000

-3.0000

p=-4

-3

-2

1

k=1.0000

>>ifFlagz==1

disp('系统不稳定');

elsedisp('系统是稳定的');

end

系统不稳定

>>step(A,B,C,D);

时间响应曲线为:

实验4状态反馈及状态观测器的设计

一、实验目的

1、熟悉状态反馈矩阵的求法;

2、熟悉状态观测器设计方法。

二、实验原理

MATLAB软件提供了两个函数acker和place来确定极点配置状态反馈控制器的增益矩阵K,函数acker是基于求解极点配置问题的艾克曼公式,它只能应用到单输入系统,要配置的闭环极点中可以包括多重极点。

函数place用于多输入系统,但配置极点不可以包括多重极点。

函数acker和place的一般形式是:

K=acker(A,B,P)

K=place(A,B,P)

其中的P是一个向量,P=[],是n个期望的闭环极点。

得到了所要求得反馈增益矩阵后,可以用命令eig(A-B*K)来检验闭环极点。

由状态反馈极点配置和观测器设计问题直接的对偶关系,观测器设计是状态反馈设计的转置,可以用H=(acker(A’,C’,V’))’来确定一般系统的观测器矩阵,用命令eig(estim(sysold,H))来检验极点配置。

三、实验步骤及结果

step(A,B,C,D);

num=[001];

den=[132];

[A,B,C,D]=tf2ss(num,den)

A=-3-2

10

B=1

0

C=01

D=0

2、配置后系统的时间响应曲线为:

A=[-3-2;10];

B=[1;0];

C=[01];

D=0;

P=[-1+sqrt(-1);-1-sqrt(-1)];

K=acker(A,B,P)

K=-10

>>disp('极点配置后的闭环系统为')

极点配置后的闭环系统为

>>sysnew=ss(A-B*K,B,C,D)

a=x1x2

x1-2-2

x210

b=u1

x11

x20

c=x1x2

y101

d=u1

y10

Continuous-timemodel.

>>step(sysnew)

所以:

K=[-10]

A=[-3-2;10];

B=[1;0];

C=[01];

D=0;

V=[-3;-3];

sysold=ss(A,B,C,D);

p=eig(A)

p=-2

-1

Q=obsv(A,C);

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

当前位置:首页 > 总结汇报 > 学习总结

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

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