modsep
(Not recommended) Region-based modal decomposition
modsep is not recommended. Use modalsep
instead. (since R2023b).
Syntax
[H,H0] = modsep(G,N,REGIONFCN)
MODSEP(G,N,REGIONFCN,PARAM1,...)
Description
[H,H0] = modsep(G,N,REGIONFCN) decomposes the LTI model
G into a sum of n simpler models Hj
with their poles in disjoint regions Rj of the complex plane:
G can be any LTI model created with ss, tf, or zpk, and N is the number of regions used in the
decomposition. modsep packs the submodels Hj into an LTI
array H and returns the static gain H0 separately. Use
H(:,:,j) to retrieve the submodel Hj(s).
To specify the regions of interest, use a function of the form
IR = REGIONFCN(p)
that assigns a region index IR between 1 and N to a
given pole p. You can specify this function by its name or as a function
handle, and use the syntax MODSEP(G,N,REGIONFCN,PARAM1,...) to pass extra
input arguments:
IR = REGIONFCN(p,PARAM1,...)
Examples
To decompose G into G(z) = H0 + H1(z) + H2(z) where
H1 and H2 have their poles inside and outside the unit
disk respectively, use
[H,H0] = modsep(G,2,@udsep)
where the function udsep is defined by
function r = udsep(p) if abs(p)<1, r = 1; % assign r=1 to poles inside unit disk else r = 2; % assign r=2 to poles outside unit disk end
To extract H1(z) and H2(z) from the LTI array
H, use
H1 = H(:,:,1); H2 = H(:,:,2);