我是靠谱客的博主 平常服饰,最近开发中收集的这篇文章主要介绍使用MATLAB的residue()命令求传递函数的展开式极点不同的情况极数相等,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

极点不同的情况

考虑到这个传递函数:
2
分子和分母的系数矩阵分别为:

>> num = [2 5 3 6];
>> den = [1 6 11 6];

使用以下命令:

>> [r,p,k] = residue(num,den)

即可对分式进行展开,展开后有多项,每一项的分子一定是数字,而分母则为一个多项式

  • r称为留数
  • p称为极数
  • k称为单独项
r =
   -6.0000
   -4.0000
    3.0000
p =
   -3.0000
   -2.0000
   -1.0000
k =
     2

命令residue还能用来根据分式展开式得到多项式,例如我们有以下传递函数的展开式:

1
我们使用以下命令将其写成两个多项式之比的形式:

>> clear
>> r = [-6 -4 3];
>> p = [-3 -2 -1];
>> k = 2;
>> [num1,num2] = residue(r,p,k)

num1 =

     2     5     3     6


num2 =

     1     6    11     6

结果还是不太明显,因为这只是分子和分母的系数,我们新建一个变量s来将其写成分子分母之比的形式,这样就更加的直观:

>> printsys(num1,num2,'s')
 
num/den = 
 
   2 s^3 + 5 s^2 + 3 s + 6
   -----------------------
    s^3 + 6 s^2 + 11 s + 6

通过对比发现,分子和分母的系数刚好与上面的矩阵匹配。

极数相等

上面的例子都是分母极数不相等的,所以分母都是一次多项式,但如果考虑到另一种情况,分母也称为特征多项式,如果这个特征多项式有重根,那么分母就不会再是一次多项式:
3
重复上述操作:

>> clear
>> num1 = [0 1 2 3];
>> num2 = [1 3 3 1];
>> [r,p,k] = residue(num1,num2)

r =

    1.0000
    0.0000
    2.0000


p =

   -1.0000
   -1.0000
   -1.0000


k =

     []

可以看到p的值有三个,而且都相等,说明这三个极数相等,那么分母将不再是一次多项式,而是:
4
得到原函数:

>> [A,B] = residue(r,p,k)

A =

     1     2     3


B =

    1.0000    3.0000    3.0000    1.0000

>> printsys(A,B,'s')
 
num/den = 
 
       s^2 + 2 s + 3
   ---------------------
   s^3 + 3 s^2 + 3 s + 1

最后

以上就是平常服饰为你收集整理的使用MATLAB的residue()命令求传递函数的展开式极点不同的情况极数相等的全部内容,希望文章能够帮你解决使用MATLAB的residue()命令求传递函数的展开式极点不同的情况极数相等所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部