mor.stability

Main interface for LTI dynamical model stability estimation.

Syntax

stab = mor.stability(sys,W)

Description

mor.stability(sys,W) evalutes if the dynamical model sys is stable, over a frequency space W. The mor.stability function evalutes the stability of any dynamical model sys, defining a meromorphic function. This includes time-delayed models, functions defined by trigonometric operators, etc. The input sys can either be

stab = mor.stability(sys,W) provides a positive scalar stab. If stab is close to zero, then the model is stable. Otherwise it is unstable.

Input arguments

sys Dynamical system, or handle function. More specifically sys can either be
  • a state-space ODE (DAE) realization described as sys = ss(A,B,C,D) (or sys = dss(A,B,C,D,E)) with or without internal delays
  • a single complex variable function handle of an nu inputs, ny outputs responses described sys = @(s) myFun
W Vector of frequencies, in rad/s, over which the system is defined.

Output arguments

stab Returns the real scalar stability evaluation tag (stable if stab close to zero precision, unstable otherwise).

Examples

In this example, we consider a dynamical system with an internal delay. The model is then defined as a transfer function, parametrized by s, the Laplace variable, and tau, the delay. It is known that the destabilising tau value is pi/2. This property is recovered by the mor.stability function.

% In this delayed model, the stability is analysed as a function of the
% delay value tau (the destabilizing theoretical value is pi/2)
W       = logspace(-2,1,100)*2*pi;
H       = @(s,p) 1./(s+exp(-p*s));
% Let p lower than pi/2, for this case, model is stable
p       = pi/2-1e-6;
Hp      = @(s) H(s,p);
stabEst = mor.stability(Hp,W) % = 2.9477e-04, close to zero, thus stable
% Now, let p greather than pi/2, then the model is unstable
p       = pi/2+1e-6;
Hp      = @(s) H(s,p);
stabEst = mor.stability(Hp,W) % = 9.3105e+05, far from zero, thus unstable