用MATLAB进行部分分式展开 | 您所在的位置:网站首页 › 传递函数用matlab › 用MATLAB进行部分分式展开 |
转自http://blog.sina.com.cn/s/blog_58abe1630100h49v.html 为了方便LAPLACE反变换,先对F(s)进行部分分式展开。根据F(s)分为具有不同极点的部分分式展开和具有多重极点的部分分式展开。分别讨论。 不同极点的部分分式展开: F(s)=B(s)/A(s)=num/den=(b0*s^n+b1*s^(n-1)+...+bn)/(s^n+a1*s^(n-1)+...an) 在matlab行向量中,num和den分别表示传递函数分子和分母的系数 num=[b0 b1 ...bn] den=[a0 a1 ...an] 将求出F(s)部分展开式的留数,级点,余项r,p,k B(s)/A(s)=r(1)/(s-p(1))+r(2)/(s-p(2))+...+r(n)/(s-p(n))+k(s) 例: B(s)/A(s)= 2 s^3 + 5 s^2 + 3 s + 6 ----------------------- s^3 + 6 s^2 + 11 s + 6
num=[2 5 3 6] den=[1 6 11 6] [r,p,k]=residue(num,den) 检查: [num,den]=residue(r,p,k) printsys(num,den,'s') 多重极点部分分式展开: r(j)/(s-p(j))+r(j+1)/(s-p(j+1))^2+...r(j+m-1)/(s-p(j))^m 例: s^2 + 2 s + 3 --------------------- s^3 + 3 s^2 + 3 s + 1
num=[1 2 3] den=[1 3 3 1] [r,p,k]=residue(num,den)
检查: [num,den]=residue(r,p,k) printsys(num,den,'s')
用MATLAB求F(s)的零点,极点,增益 [z,p,K]=tf2zp(num,den) z零点,p极点,K增益 例 4 s^2 + 16 s + 12 ----------------------------------- s^4 + 12 s^3 + 44 s^2 + 48 s
num=[0 0 4 16 12] den=[1 12 44 48 0] [z,p,K]=tf2zp(num,den)
反推: [num,den]=zp2tf(z,p,K) printsys(num,den,'s')
|
CopyRight 2018-2019 实验室设备网 版权所有 |