tdcpy.spectral_abscissa module#

Spectral abscissa, strong spectral abscissa#

Functions:
  1. spectral_abscissa: computes spectral abscissa of TDS

  2. spectral_abscissa_diff: computes spectral abscissa of associated delay difference equation of TDS

  3. strong_spectral_abscissa: computes strong spectral abscissa of TDS

  4. sa: alias for spectral_abscissa

  5. cd: alias for spectral_abscissa_diff

  6. strong_sa: alias for strong_spectral_abscissa

tdcpy.spectral_abscissa.spectral_abscissa(tds, r=0.0, **kwargs)#

Computes the spectral abscissa of a time-delay system

Spectral abscissa is defined as

abscissa = supremum {Re(z): |M(z)| = 0}, (1)

i.e., the smallest upper bound for the real part of the roots of characteristic polynomial |M(z)|.

Parameters:
  • tds (TDS) – instance of time-delay system, i.e., RDDE, NDDE or DDAE

  • r (float) – r is number defining right-half complex plane for characteristic roots computation

  • **kwargs

    check_gamma_sa (bool): if true, gamma(sa) < 1+eps check is performed

    in case tds is NDDE or DDAE, default True

    rightmost_root_kwargs (dict): kwargs for rightmost_root function,

    default empty dict

Returns:

spectral abscissa

Return type:

abscissa (float)

tdcpy.spectral_abscissa.spectral_abscissa_diff(tds, **kwargs)#

Computes strong spectral abscissa of associated delay difference equation

This function is based on the expressions in [1, Definition 1.32] and [1, Proposition 1.51] for the strong spectral abscissa of delay difference equations associated with NDDEs and DDAEs, respectively.

Parameters:
  • tds (TDS) – instance of time-delay system, i.e., RDDE, NDDE or DDAE

  • **kwargs

    cd0 (float): initial guess for the strong spectral abscissa of the

    underlying delay difference equation, optional, default 0.0

Returns:

  • cd (float): strong spectral abscissa of associated delay difference equation

  • info (TODO): TODO - named tuple matching matlab behaviour?

Return type:

tuple containing

Notes

  1. If the associated delay difference equations has a large number of delays, the computation of the corresponding strong spectral abscissa may be (very) slow.

References

[1] Michiels, W. and Niculescu, S.I. (2014). Stability, control, and

computation for time-delay systems: an eigenvalue-based approach. Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA

tdcpy.spectral_abscissa.strong_spectral_abscissa(tds, r=0.0, **kwargs)#

Computes the strong spectral abscissa of a time-delay system

Strong spectral abscissa is defined as

strong_abscissa = MAX (CD, abscissa),

where

CD … strong spectral abscissa of associated delay-difference eq. abscissa = supremum {Re(z): |M(z)| = 0},

sa = supremum {Re(z): |M(z)| = 0}, (1)

i.e., the smallest upper bound for the real part of the roots of characteristic polynomial |M(z)|.

Parameters:
  • tds (TDS) – instance of time-delay system, i.e., RDDE, NDDE or DDAE

  • r (float) – r is number defining right-half complex plane for characteristic roots computation

  • **kwargs

    check_gamma_sa (bool): if true, gamma(sa) < 1+eps check is performed

    in case tds is NDDE or DDAE, default True

    rightmost_root_kwargs (dict): kwargs for rightmost_root function,

    default empty dict

Returns:

spectral abscissa

Return type:

strong_sa (float)

tdcpy.spectral_abscissa.sa(*args, **kwargs)#

Alias for spectral_abscissa

tdcpy.spectral_abscissa.cd(*args, **kwargs)#

Alias for spectral_abscissa_diff

tdcpy.spectral_abscissa.strong_sa(*args, **kwargs)#

Alias for strong_spectral_abscissa