Options for slow-fast decomposition
Separate Nearby Modes by Adjusting Tolerance
Decompose a model into slow and fast components between poles that are closely spaced.
The following system includes a real pole and a complex pair of poles that are all close to s = -2.
G = zpk(-.5,[-1.9999 -2+1e-4i -2-1e-4i],10);
Try to decompose the model about 2 rad/s, so that the slow component contains the real pole and the fast component contains the complex pair.
[Gs,Gf] = freqsep(G,2);
Warning: One or more fast modes could not be separated from the slow modes. To force separation, relax the accuracy constraint by increasing the "SepTol" factor (see "freqsepOptions" for details).
These poles are too close together for
freqsep to separate. Increase the relative tolerance to allow the separation.
options = freqsepOptions('SepTol',5e10); [Gs,Gf] = freqsep(G,2,options);
freqsep successfully separates the dynamics.
slowpole = pole(Gs)
slowpole = -1.9999
fastpole = pole(Gf)
fastpole = 2×1 complex -2.0000 + 0.0001i -2.0000 - 0.0001i
comma-separated pairs of
the argument name and
Value is the corresponding value.
Name must appear inside quotes. You can specify several name and value
pair arguments in any order as
SepTol — Accuracy loss factor
10 (default) | nonnegative scalar
Accuracy loss factor for slow-fast decomposition, specified as a
nonnegative scalar value.
freqresp ensures that the
frequency responses of the original system,
the sum of the decomposed systems
G1+G2, differ by no
SepTol times the absolute accuracy of the
computed value of
SepTol helps separate modes straddling the
slow/fast boundary at the expense of accuracy.
opt — Options for
freqsepOptions options set
freqsep, returned as a
opt as the last argument to
computing slow-fast decomposition.