routh_t ラウス表

## 呼び出し手順

                [r [,num] ]=routh_t(p)
                [r [,num] ]=routh_t(h ,kp)
                r=routh_t(h ,k [,normalized])

## 引数

p

  実数多項式

h

  実数 SISO 伝達システム

k

  実数多項式またはスカラー

kp

  スカラー: 比例制御定数

normalized

  論理値 (%t (デフォルト値) または %f)

r

  行列またはリスト: ラウス配列要素

num

  スカラー: 符号変更の数

## 説明

`r=routh_t(p)` は, 多項式`p`のラウス表を計算します.

`r=routh_t(h,k)` は, ゲイン`k`によるフィードバックを有する SISO伝達行列 `h`で記述されたシステムの 分母のラウス表を計算します.

`k=poly(0,'k')` の場合,ダミー変数`k` で表した多項式行列でラウス表が記述されます.

`normalized=%f` の場合, 正規化されていない要素を有する多項式行列を有します. 他の場合, 有理数または正規化された行列を有します.

2番目の引数 `num` はラウス表の最初の列の 符号変化の数を返します. この引数の値は,表が正規化された場合のみ意味を有します.

ヒント: `h=1/p`の場合, `routh_t(h, kp)` は `routh_t(p+kp)` に等価です.

## 例

    s=%s;
    P=5*s^3-10*s^2+7*s+20;
    routh_t(P)
    // フィードバックを有する伝達関数, 正規化された場合
    routh_t((1+s)/P,poly(0,'k'))
    // フィードバックを有する伝達関数, 正規化されていない場合
    routh_t((1+s)/P,poly(0,'k'),%f)
    // 多項式の係数の一つが0
    P1=2*s^3-24*s+32;
    routh_t(P1)
    // ある行が全てゼロ
    P2=s^4-6*s^3+10*s^2-6*s+9;
    routh_t(P2)
    // 右辺の根の数を2番目の出力引数として取得可能
    P3=5*s^3-10*s^2+7*s;
    [r,num]=routh_t(1/P3,20)
    if num==0
       disp("System is stable")
    else
       mprintf("There is %g sign changes in entries of first column.\nTherefore, system is unstable.", num)
    end
    //

## 参照

- roots
- spec
- evans
- kpure
- krac2

## 参考文献

http://controls.engin.umich.edu/wiki/index.php/RouthStability

http://www.jdotec.net/s3i/TD_Info/Routh/Routh.pdf

Comments on the Routh-Hurwitz criterion, Shamash, Y.,Automatic Control, IEEE T.A.C Volume 25, Issue 1, Feb 1980 Page(s): 132 - 133

## 履歴

5.5.0 新規出力引数が追加されました: num (SEP #104).
5.4.0 新規入力引数が追加されました: normalized (SEP #89).