Сравнение обрезанных и согласованных по постоянному току моделей низкого порядка Приближений

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

  • Сбросьте состояния, которые вносят наименьший вклад в поведение системы, изменяя оставшиеся состояния, чтобы сохранить коэффициент усиления постоянного тока системы.

  • Сбросьте низкоэнергетические состояния, не изменяя оставшиеся состояния.

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

Этот пример сравнивает методы устранения состояний 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')

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent Original, DC Match, Truncate. Axes 2 contains 3 objects of type line. These objects represent Original, DC Match, Truncate.

Усеченная модель Ttrunc хорошо соответствует исходной модели на высоких частотах, но значительно отличается на низкой частоте. И наоборот, Tmatch приводит к хорошему соответствию на низких частотах, как и ожидалось, за счет высокочастотной точности.

Вы также можете увидеть различия между этими двумя методами, исследуя ответ во временной области в разных режимах. Сравните медленную динамику, посмотрев на переходную характеристику всех трех моделей с длинным временным горизонтом.

stepplot(T,Tmatch,'r--',Ttrunc,1500)
legend('Original','DC Match','Truncate')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Original, DC Match, Truncate.

Как ожидалось, в течение длительного времени масштабирует согласованное с DC приближение Tmatch имеет очень похожий ответ на исходную модель.

Сравните быстрые переходные процессы в переходную характеристику.

stepplot(T,Tmatch,'r',Ttrunc,'g--',0.5)
legend('Original','DC Match','Truncate')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Original, DC Match, Truncate.

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

См. также

Функции

Задачи Live Editor

Похожие темы