Этот пример показывает, как вычислить аппроксимацию младшим порядком двумя способами и сравнивает результаты. Когда вы вычисляете аппроксимацию младшим порядком методом сбалансированного усечения, можно либо:
Сбросьте состояния, которые вносят наименьший вклад в поведение системы, изменяя оставшиеся состояния, чтобы сохранить коэффициент усиления постоянного тока системы.
Сбросьте низкоэнергетические состояния, не изменяя оставшиеся состояния.
Какой метод вы выбираете, зависит от того, какая динамика наиболее важна для вашего приложения. В целом сохранение усиления постоянного тока происходит за счет точности в высокочастотной динамике. И наоборот, усечение состояния может привести к большей точности в быстрых переходных процессах за счет низкочастотной точности.
Этот пример сравнивает методы устранения состояний balred
команда, Truncate
и MatchDC
. Можно аналогично управлять методом устранения состояний в приложении Model Reducer, на вкладке Сбалансированное усечение, используя флажок Сохранить усиление постоянного тока, как показано на рисунке.
Примите во внимание следующую систему.
Создайте модель этой системы с обратной связью от 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
обеспечивает лучшее соответствие исходной модели. Какой метод приближения вы должны использовать, зависит от того, какой режим наиболее важен для вашего приложения.