Модальное разложение на основе региона
[H,H0] = modsep(G,N,REGIONFCN)
MODSEP(G,N,REGIONFCN,PARAM1,...)
[H,H0] = modsep(G,N,REGIONFCN) разлагает модель LTI G в сумму n более простые модели Hj своими полюсами в непересекающихся областях Rj комплексной плоскости:
(ы)
G может быть любой моделью LTI, созданной с помощью ss, tf, или zpk, и N - количество областей, используемых в разложении. modsep упаковывает подмодели Hj в массив LTI H и возвращает статическое усиление H0 отдельно. Использовать H(:,:,j) для извлечения подмодели Hj(s).
Чтобы указать интересующие регионы, используйте функцию формы
IR = REGIONFCN(p)
который назначает индекс региона IR от 1 до N к заданному полюсу p. Можно указать эту функцию по ее имени или как дескриптор функции и использовать синтаксис MODSEP(G,N,REGIONFCN,PARAM1,...) для передачи дополнительных входных аргументов:
IR = REGIONFCN(p,PARAM1,...)
Разлагаться G в G(z) = H0 + H1(z) + H2(z) где H1 и H2 иметь свои полюса внутри и снаружи диска блока соответственно, использовать
[H,H0] = modsep(G,2,@udsep)
где функция udsep определяется
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
Извлечь H1(z) и H2(z) из массива LTI H, использовать
H1 = H(:,:,1); H2 = H(:,:,2);