我是靠谱客的博主 哭泣黄豆,最近开发中收集的这篇文章主要介绍matlab状态方程 传递函数 可控性,实验一 MATLAB系统的传递函数和状态空间表达式的转换...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

做出来是发散的,几乎与G(s)=20/s一致www.book6789.com防采集请勿采集本网。

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

以G(s)=10/s(s+1)(s^2/4+1)为例 这种传递函数是零极点描述形式,因而要使用sys=zpk(z,p,k)的命令形式 其中,z为传递函数的零点向量[z1,z2,z3,.],描述形式为(s-z1)(s-z2). p为传递函数的极点向量

一、实验目的

从5吨到10吨是怎么变化的,是阶跃变化,还是逐渐变化?还有,能不能预判出这个系统是几阶的?这决定了用什么方法求传递函数。

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

时域波形,一般反映的是输入为阶跃信号,动态过程的情况。

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

[x,y]=meshgrid(0:1:10);z=(x-5).^2+(y-5).^2;pcolor(x,y,z) shading interp;colorbar 也可以 contourf(x,y,z) colorbar 关键在于x,y,z的数据怎么来。偏微分方程的边界条件之类的。你都要给。

3、掌握相应的MATLAB函数。

先打开simulink,新建模型文件,然后从模块库里拖出传递函数模块,双击,设置百传递函数的度表达式,你这种最好用零极点模型,然后在拖出来一个延迟模块,双击设置延迟时间tao。接着把这两个模块

二、实验原理

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

x

u

R’’’ y

RP (1.1)

其中A为nXn维系统矩阵、B为nXm维输入矩阵、C为pXn维输出矩阵,D为直接传递函数。系统的传递函数和状态空间表达式之间的关系如式(1.2)所示

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

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

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

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

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

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

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=[0 0 2 1;0 1 5 3];

den=[1 4 5 1];

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

A = -4 -5 -1 1 0 0 0 1 0B = 1 0 0

C =0 2 1 1 5 3 D =0 0

A=[-4 -5 -1;1 0 0;0 1 0];

A=[-4 -5 -1;1 0 0;0 1 0];

B=[1;0;0];

C=[0 2 1;1 5 3];

D=[0;0];

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

num1 = 0 0.0000 2.0000 1.0000

0 1.0000 5.0000 3.0000

den1 =1.0000 4.0000 5.0000 1.0000

2、给定系统G(s)=

求系统的零极点增益模型和状态空间模型

程序和运行结果:

num=[0 1 4 5];

den=[1 6 11 6];

sys=tf(num,den) Transfer function:

s^2 + 4 s + 5

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

s^3 + 6 s^2 + 11 s + 6 >> sys1=tf2zp(num,den)

sys1 = -2.0000 + 1.0000i

-2.0000 - 1.0000i

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

A =6 -11 -61 0 00 1 0B =1 0 0

C =1 4 5D =0

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

一、实验目的

从5吨到10吨是怎么变化的,是阶跃变化,还是逐渐变化?还有,能不能预判出这个系统是几阶的?这决定了用什么方法求传递函数。

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=[0 1 0;-2 -3 0;-1 1 -3];

B=[0;0;1];

C=[1 1 1]; D=1;

[G1 H1]=c2d(A,B,0.5)

G1 =0.8452 0.2387 0

-0.4773 0.1292 0

-0.3326 0.0508 0.2231 H1 = 0 0 0.2590

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

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

>> [G2 H2]=c2d(A,B,1)

G2 =0.6004 0.2325 0

-0.4651 -0.0972 0

-0.3795 -0.0614 0.0498H2 =000.3167

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

>> [G3 H3]=c2d(A,B,2)

[G3 H3]=c2d(A,B,2)

G3 =0.2524 0.1170 0

-0.2340 -0.0987 0

-0.2182 -0.0853 0.0025 H3 =0 0 0.3325

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

程序和运行结果:

Z域仿真图形:

连续域仿真图形:

程序:

G=[0 1;-0.16 1];

H=[1;1];

C=[1 1]; D=0;u=1;

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

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

a = x1 x2 x1 0 1

x2 -0.16 1 b = u1 x1 1 x2 1

c = x1 x2 y1 1 1d = u1 y1 0

Sampling time: 0.05

Discrete-time model.

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

a = x1 x2

x1 -41.43 46.21

x2 -7.394 4.779b = u1

x1 16.34

x2 21.12

c = x1 x2 y1 1 1d = u1 y1 0

Continuous-time model.

>> step(sysc);

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

一、实验目的

从5吨到10吨是怎么变化的,是阶跃变化,还是逐渐变化?还有,能不能预判出这个系统是几阶的?这决定了用什么方法求传递函数。

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

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

二、实验原理

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

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

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

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

三、实验步骤及结果

1)(2)

A=[1 0 0 0;2 -3 0 0;1 0 -2 0;4 -1 -2 -4];

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

C=[3 0 1 0];

Qc=ctrb(A,B)

Qc =0 0 0 0 0 0 0 0 1 -2 4 -8

2 -10 44 -184

>> rank(Qc)

ans =2

>> rank(obsv(A,C))

ans =2

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

(3) A=[1 0 0 0;2 -3 0 0;1 0 -2 0;4 -1 -2 -4];

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

C=[3 0 1 0];

D=[0];

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

Flagz=0;

n=length(A);

for i=1:nif real(p(i))>0

Flagz=1;endend

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

系统的零极点模型为

z = 1.0000

-4.0000 -3.0000p =-4 -3 -2 1

k =1.0000

>> if Flagz==1

disp('系统不稳定');

else disp('系统是稳定的');end

系统不稳定

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

时间响应曲线为:

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

一、实验目的

最低0.27元开通文库会员,查看完整内容>原发布者:缘度为经实验一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表示传递函数中分子多项式的系数向e69da5e6ba90e79fa5e9819331333433623765量(单输入单输出系统),den表示传递函数中分母多项式的系数向量。函数tf2ss给出了传递函数的一个状态空间实现,其一般形式是:[A,B,C,D]=tf2ss(num,den)函数ss2tf给出了状态空间模型所描述系统的传递函数,其一般形式是:[num,den]=ss2tf(A,B,C,D,iu)其中对于多输入系统,必须确定iu的值。例如,若系统有三个输入u1,u2,u3,则iu必须是内容来自www.book6789.com请勿采集。

声明:本网内容收集自互联网,旨在传播知识仅供参考,不代表本网赞同其观点,文字及图片版权归原网站所有。

最后

以上就是哭泣黄豆为你收集整理的matlab状态方程 传递函数 可控性,实验一 MATLAB系统的传递函数和状态空间表达式的转换...的全部内容,希望文章能够帮你解决matlab状态方程 传递函数 可控性,实验一 MATLAB系统的传递函数和状态空间表达式的转换...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部