Аппроксимация модели с нестабильным или почти нестабильным полюсом

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

При вычислении приближения пониженного порядка balred команда (или приложение Model Reducer) не устраняет нестабильные полюсы, потому что это принципиально изменило бы динамику системы. Вместо этого программное обеспечение разлагает модель на стабильные и нестабильные части и уменьшает стабильную часть модели.

Если ваша модель имеет почти нестабильные полюсы, можно убедиться, что приближение пониженного порядка сохраняет эту динамику. В этом примере показано, как использовать Offset опция balred сохранить полюса, которые близки к стабильно-нестабильному контуру. Такого же результата можно достичь в приложении Model Reducer, на вкладке Balanced Truncation, в разделе Options, с помощью поля Offset, как показано:

Загрузите модель с нестабильными и почти нестабильными полюсами.

load('reduce.mat','gasf35unst')

gasf35unst является SISO модели 25 состояний с двумя нестабильными полюсами (Re (s) > 0). Осмотрите полюса системы, чтобы найти почти нестабильные полюсы.

pzplot(gasf35unst)
axis([-0.0015 0.0015 -0.0005 0.0005])

Figure contains an axes. The axes contains 2 objects of type line. This object represents gasf35unst.

На диаграмму нулей и полюсов показано несколько полюсов (отмеченных x) которые падают в левой полуплоскости, но относительно близко к мнимой оси. Это почти нестабильные полюсы. Два из них находятся в пределах 0,0005 нестабильности. Еще три попадают в пределах 0,001 нестабильности.

Исследуйте график Ханкеля с сингулярным значением модели.

hsvplot(gasf35unst)

Figure contains an axes. The axes with title Hankel Singular Values and Approximation Error contains 3 objects of type bar, line. These objects represent Unstable modes, Stable modes, Absolute error bound.

График показывает два нестабильных режима, но вы не можете легко определить энергетический вклад почти нестабильных полюсов. В вашем приложении можно хотеть уменьшить модель, не отбрасывая те полюсы, которые ближе всего к нестабильности, даже если они имеют относительно низкую энергию. Используйте Offset опция balred вычислить систему пониженного порядка, которая сохраняет два устойчивых полюса, которые наиболее близки к воображаемой оси. The Offset опция устанавливает контур между полюсами, которая balred можно сбросить, и полюса, которые balred необходимо сохранить (рассматривать как нестабильный).

opts = balredOptions('Offset',0.0005);
gasf_arr = balred(gasf35unst,[10 15],opts);

Предоставление balred массив целевых порядков приближения [10 15] причины balred чтобы вернуть массив аппроксимированных моделей. Область массива gasf_arr содержит две модели, приближения 10-го порядка и 15-го порядка gasf35unst. В обоих приближениях balred не сбрасывает два нестабильных полюса или два почти нестабильных полюса.

Сравните приближения пониженного порядка с исходной моделью.

 bodeplot(gasf35unst,gasf_arr,'r--')

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent gasf35unst, gasf\_arr. Axes 2 contains 3 objects of type line. These objects represent gasf35unst, gasf\_arr.

Приближение 15-го порядка является хорошим совпадением частотного диапазона с исходной моделью. Однако приближение 10-го порядка показывает изменения в высокочастотной динамике, которые могут быть слишком большими, чтобы быть приемлемыми. Приближение 15-го порядка, вероятно, является лучшим выбором.

См. также

Функции

Задачи Live Editor

Похожие темы