部分分数分解
elts = pfss(Sl) elts = pfss(Sl,rmax) elts = pfss(Sl,'cord') elts = pfss(Sl, rmax,'cord')
A linear dynamical system in state-space, or a transfer function representation (see syslin), or any rational fraction.
A real number controlling the conditioning of block diagonalization (see bdiag).
A character string with possible values 'c'
or 'd'
.
List of linear systems, or list of rationals: the components of the decomposition.
If Sl
is a transfer function or any other rational
and has an integer part (degree(Sl.num)>=degree(Sl.den)),
elts(1:$-1)
are rational components
and elts($)
is the integer part (polynomial).
線形システムSl
(状態空間形式,伝達行列は
tf2ss
により自動的に状態空間形式に変換されます)の部分分数分解:
elts
は,
加算するとSl
となる
線形システムのリストです.
すなわち elts=list(S1,S2,S3,...,Sn)
:
ただし,Sl = S1 + S2 +... +Sn
.
各 Si
は
S
のA
行列のブロック対角に基づく
Sのいくつかの極を含みます.
プロパーでないシステムの場合,Sl
の多項式部分が
elts
の最後のエントリに置かれます.
Sl
が伝達形式で指定された場合, まず状態空間に変換され,
その後,各サブシステムSi
が伝達形式に変換されます.
A 行列の状態空間形式は,
関数bdiag
によりブロック対角形式に変換されます.
オプションのパラメータ
rmax
はbdiag
に送られます.
rmax
はブロック対角化を成立させるために
大きな数に設定する必要があります.
オプションフラグ cord='c'
が指定された場合,
elts
の要素はA行列の固有値の実部
(cord='d'
の場合は大きさ)でソートされます.
// With a linear system (state-space): W = ssrand(1,1,6); elts = pfss(W); W1 = 0; for k = 1:size(elts) W1 = W1 + ss2tf(elts(k)); end clean(ss2tf(W) - W1) | ![]() | ![]() |
// With a rational (transfer function or any other one), without integer part: num = 22801+4406.18*%s + 382.37*%s^2 + 21.02*%s^3; den = 22952.25 + 4117.77*%s + 490.63*%s^2 + 33.06*%s^3 + %s^4; // degree(den)>degree(num) h2 = syslin('c',num/den) d = pfss(h2) // With a rational with an integer part: degree(num)>=degree(den): num = 22801+4406.18*%s + 382.37*%s^2 + 21.02*%s^3 + %s^5; h2 = syslin('c',num/den) d = pfss(h2) typeof(d($)) // last component = integer part = polynomial | ![]() | ![]() |