用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')

 

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值