В этом примере показано, как вычислить приближение низкого порядка двумя способами и сравнить результаты. При вычислении аппроксимации низкого порядка методом сбалансированного усечения можно выполнить одно из следующих действий:
Отбрасывайте состояния, которые вносят наименьший вклад в поведение системы, изменяя остальные состояния для сохранения коэффициента усиления постоянного тока системы.
Отбрасывайте низкоэнергетические состояния, не изменяя остальные состояния.
Выбор метода зависит от того, какая динамика наиболее важна для приложения. В общем, сохранение усиления постоянного тока происходит за счет точности в динамике более высоких частот. И наоборот, усечение состояния может дать большую точность в быстрых переходных процессах за счет низкочастотной точности.
В этом примере сравниваются методы устранения состояний balred команда, Truncate и MatchDC. Аналогичным образом можно управлять методом исключения состояния в приложении «Редуктор модели» на вкладке «Сбалансированное усечение» с помощью флажка «Сохранить усиление постоянного тока», как показано на рисунке.

Рассмотрим следующую систему.

Создайте модель системы с замкнутым контуром от r до y.
G = zpk([0 -2],[-1 -3],1); C = tf(2,[1 1e-2]); T = feedback(G*C,1)
T =
2 s (s+2)
--------------------------------
(s+0.004277) (s+1.588) (s+4.418)
Continuous-time zero/pole/gain model.
T - это система третьего порядка, которая имеет близкую к нулю компенсацию полюса, близкую к s = 0. Поэтому это хороший кандидат на уменьшение порядка по аппроксимации.
Вычислить два приближения второго порядка для T, который сохраняет коэффициент усиления постоянного тока и который усекает состояние с наименьшей энергией без изменения других состояний. Использовать balredOptions для определения методов аппроксимации, MatchDC и Truncateсоответственно.
matchopt = balredOptions('StateProjection','MatchDC'); truncopt = balredOptions('StateProjection','Truncate'); Tmatch = balred(T,2,matchopt); Ttrunc = balred(T,2,truncopt);
Сравните частотные характеристики приближенных моделей.
bodeplot(T,Tmatch,Ttrunc) legend('Original','DC Match','Truncate')

Усеченная модель Ttrunc хорошо соответствует исходной модели на высоких частотах, но значительно отличается на низких частотах. И наоборот, Tmatch дает хорошее совпадение при низких частотах, как и ожидалось, за счет высокочастотной точности.
Можно также увидеть различия между этими двумя методами, изучив реакцию временной области в различных режимах. Сравните медленную динамику, посмотрев на ступенчатую реакцию всех трех моделей с длительным временным горизонтом.
stepplot(T,Tmatch,'r--',Ttrunc,1500) legend('Original','DC Match','Truncate')

Как и ожидалось, на длительных временных шкалах аппроксимация, соответствующая DC Tmatch имеет очень похожий отклик на исходную модель.
Сравните быстрые переходные процессы в отклике шага.
stepplot(T,Tmatch,'r',Ttrunc,'g--',0.5) legend('Original','DC Match','Truncate')

На коротких временных шкалах усеченное приближение Ttrunc обеспечивает лучшее соответствие исходной модели. Какой метод аппроксимации следует использовать, зависит от того, какой режим наиболее важен для вашего приложения.