tdcpy.spectral_abscissa module#
Spectral abscissa, strong spectral abscissa#
- Functions:
spectral_abscissa: computes spectral abscissa of TDS
spectral_abscissa_diff: computes spectral abscissa of associated delay difference equation of TDS
strong_spectral_abscissa: computes strong spectral abscissa of TDS
sa: alias for
spectral_abscissacd: alias for
spectral_abscissa_diffstrong_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_rootfunction, 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
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
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_rootfunction, 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