我是靠谱客的博主 朴实萝莉,最近开发中收集的这篇文章主要介绍如何用matlab进行部分式展开_[转载]用MATLAB进行部分分式展开,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

为了方便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')

最后

以上就是朴实萝莉为你收集整理的如何用matlab进行部分式展开_[转载]用MATLAB进行部分分式展开的全部内容,希望文章能够帮你解决如何用matlab进行部分式展开_[转载]用MATLAB进行部分分式展开所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部