exponenta event banner

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

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

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

  • Отбрасывайте низкоэнергетические состояния, не изменяя остальные состояния.

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

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

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 обеспечивает лучшее соответствие исходной модели. Какой метод аппроксимации следует использовать, зависит от того, какой режим наиболее важен для вашего приложения.

См. также

Функции

Задачи интерактивного редактора

Связанные темы