mor.stability
Main interface for LTI dynamical model stability estimation.
stab = mor.stability(sys,W)
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
sys = ss(A,B,C,D)
(or sys = dss(A,B,C,D,E)
) with or without internal delayssys = @(s) myFun
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.
sys | Dynamical system, or handle function. More specifically sys can either be
|
W | Vector of frequencies, in rad/s, over which the system is defined. |
stab | Returns the real scalar stability evaluation tag (stable if stab close to zero precision, unstable otherwise). |
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