Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.2 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Scilab Help >> Control Systems - CACSD > Linear Analysis > Stability > routh_t

routh_t

Routh's table

Syntax

[r [,num] ]=routh_t(p)
[r [,num] ]=routh_t(h ,kp)
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 — roots of polynomials
  • spec — eigenvalues of matrices and pencils
  • evans — Evans root locus
  • kpure — continuous SISO system limit feedback gain
  • krac2 — continuous SISO system limit feedback gain

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

VersionDescription
5.5.0 New output argument added: num (SEP #104).
5.4.0 New input argument added: normalized (SEP #89).
Report an issue
<< plzr Stability sgrid >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 14:57:16 CET 2019