routh_t Routh's table

## Syntax

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

## Arguments

p

  a real polynomial

h

  a real SISO transfer system

k

  a real polynomial or a scalar

kp

  a scalar: proportional controller constant

normalized

  a boolean (%t (default value) or %f)

r

  a matrix or a list: Routh array elements

num

  a scalar: the number of sign changes

## Description

`r=routh_t(p)` computes Routh's table of the polynomial `p`.

`r=routh_t(h,k)` computes Routh's table of denominator of the system described by transfer matrix SISO `h` with the feedback by the gain `k`.

If `k=poly(0,'k')` we will have a polynomial or a rational matrix with dummy variable `k`, formal expression of the Routh table.

If `normalized=%f` we will have a polynomial matrix with non normalized elements. In the other case, we will have a rational and normalized matrix.

The second output argument `num` returns the number of sign changes in the first column of Routh's table. Note that, this argument value will only have sense when the table is normalized.

Hint: If `h=1/p`, then `routh_t(h, kp)` is equivalent to `routh_t(p+kp)` .

## Examples

    s=%s;
    P=5*s^3-10*s^2+7*s+20;
    routh_t(P)

    // Transfer function with formal feedback, normalized case
    routh_t((1+s)/P,poly(0,'k'))

    // Transfer function with formal feedback, non normalized case
    routh_t((1+s)/P,poly(0,'k'),%f)

    // One of the coefficients in the polynomial equals zero
    P1=2*s^3-24*s+32;
    routh_t(P1)

    // A row full of zeros
    P2=s^4-6*s^3+10*s^2-6*s+9;
    routh_t(P2)

    // The number of roots in the rhp could be retrieved as the second output argument
    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

    //

## See also

- roots
- spec
- evans
- kpure
- krac2

## Bibliography

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

## History

5.5.0 New output argument added: num (SEP #104).
5.4.0 New input argument added: normalized (SEP #89).