
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 分子可写成
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)