sys=tf(b,a);在MATLAB中的意思

sys=tf(b,a);在MATLAB中的意思,第1张

sys代表该系统,tf表示传递函数,tf(b,a)表示一个分子数组为b,分母数组为a的传递函数。

例如b=[3]; a=[4 5 6 7 8];

表示该传递函数为:G(s)=3/(4s^4+5s^3+6S^2+7S+8)

(1)状态方程模型参数:编写matlab程序如下

>> num=[1 7 24 24];

>> den=[1 10 35 50 24];

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

得到结果:A=,B=,C=,D=[0]

所以模型为: =X+u,y=X

(2) 零极点增益:编写程序 >> num=[1 7 24 24];

>> den=[1 10 35 50 24];

>> [Z P K]=tf2zp(num,den)

得到结果Z= -27306 + 28531 , -27306 - 28531i ,-15388

P= -4, -3 ,-2 ,-1

K=1

(3) 部分分式形式:编写程序>> num=[1 7 24 24];

>> den=[1 10 35 50 24];

>> [R P H]=residue(num,den)

得到结果R= 40000 ,-60000, 20000, 10000

P= -40000, -30000 , -20000 ,-10000

H=[]

G(s)=

matlab中已知状态方程,求等效传递函数与零极点模型:

B,C;dt=Ax+Bu

y=Cx+Du

要求其传递函数和零极增益、tf和zpk的帮助文档一般已知状态方程dx/,D)

tfun=tf(sys)

zpm=zpk(sys)

楼主可以看看ss,可以使用如下代码

sys=ss(A

扩展资料

理论:

1、在线性系统理论中,常用的描述系统的数学模型为传递函数, 其形式有:

(1)有理多项式分式表达式

(2)零极点增益表达式 这些模型之间都有着内在的联系,可以相互进行转换。

2、不同形式之间模型转换的函数包括:

(1)tf2zp:多项式传递函数模型转换为零极点增益模型。

 格式为:[z,p,k]=tf2zp(num,den)。

(2)zp2tf:零极点增益模型转换为多项式传递函数模型。

格式为:[num,den]=zp2tf(z,p,k)。

(3)环节串联、并联、反馈连接时等效的整体传递函数的求取有多种方式,结果相同。

不论实矩阵或是虚矩阵,奇异值分解的结果都是非负的、实数的奇异值,如:

a=magic(5);b=svd(a)

c=rand(5);d=a+1ic;e=svd(d)

结果是:

b =

650000

225471

216874

134036

119008

e =

650554

225819

216764

134087

118961

已知状态方程

x'=AX+BU;

y=CX+DU。

先求出传递函数的状态空间模型:G=ss(A,B,C,D)。

将状态空间模型转为传递函数模型:G1=tf(G)。

再求零极点:[z,p,k]=tf2zp(G1num{1,1},G1den{1,1})。

得到零极点模型:G2=zpk(z,p,k)

完成。

%%传递函数还是需要自己写的,并且也是很容易的,或者自己变化一下拉式变换

laplace(t^5) returns 120/s^6

clc

clear all

close all

ts=0001;

sys=tf([1274,2817,11930],[1,1501,2021,11730]); %系统的传递函数 分子 分母

dsys=c2d(sys,ts,'z'); %z变换

[num,den]=tfdata(dsys,'v');

可以用函数roots分别求出传递函数分子分母多项式的根,若果分子分母有相同的根则有公因式例如程序lab1_10m中,求得传递函数分子多项式的根:r =-20000 00000 + 10000i00000 - 10000i-10000 -10000 分子可写成

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12182309.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存