Во многих случаях модель - полюсы осей важно сохранять после снижения сложности модели, например, динамику твёрдого тела объекта гибкой структуры или интеграторов контроллера. Уникальная стандартная программа, modreal, хорошо служит цели.
modreal помещает систему в свою модальную форму с собственными значениями, появляющимися на диагонали ее A-матрицы. Реальные собственные значения появляются в блоках 1 на 1, а сложные - в реальных блоках 2 на 2. Все блоки упорядочены в порядке возрастания, основанном на их собственных величинах, по умолчанию или порядке убывания, основанном на их вещественных частях. Поэтому указывается количество -полюса оси разделяют модель на две системы с одной, содержащей только -динамика оси, другая, содержащая оставшуюся динамику.
rng(5678,'twister'); G = rss(30,1,1); % random 30-state model [Gjw,G2] = modreal(G,1); % only one rigid body dynamics G2.D = Gjw.D; % put DC gain of G into G2 Gjw.D = 0; subplot(2,1,1) sigma(Gjw) ylabel('Rigid Body') subplot(2,1,2) sigma(G2) ylabel('Nonrigid Body')

Дальнейшее снижение сложности модели может быть сделано на G2 без каких-либо числовых трудностей. После G2 далее сокращается до Gred, окончательное приближение модели просто Gjw+Gred.
Этот процесс разделения -полюса оси были встроены и автоматизированы во всех стандартных программах снижения сложности модели balancmr, schurmr, hankelmr, bstmr, и hankelsv, так что пользователям не нужно беспокоиться о разделении модели.
Исследуйте график сингулярного значения Ханкеля.
hankelsv(G)

Вычислите уменьшенную модель восьмого порядка.
[gr,info] = reduce(G,8); figure bode(G,'b-',gr,'r--') legend('Original','Reduced')

Алгоритм по умолчанию balancmr от reduce проделала большую работу по аппроксимации модели с 30 состояниями всего с восемью состояниями. Снова, динамика твердого тела сохранена для дальнейшего проектирования контроллера.
balancmr | bstmr | hankelmr | hankelsv | modreal | schurmr