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) myFunstab = 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