Этот пример показывает, как вычислить приближение системы в пониженном порядке, когда система имеет нестабильные или почти нестабильные полюса.
При вычислении приближения пониженного порядка 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])
На диаграмму нулей и полюсов показано несколько полюсов (отмеченных x
) которые падают в левой полуплоскости, но относительно близко к мнимой оси. Это почти нестабильные полюсы. Два из них находятся в пределах 0,0005 нестабильности. Еще три попадают в пределах 0,001 нестабильности.
Исследуйте график Ханкеля с сингулярным значением модели.
hsvplot(gasf35unst)
График показывает два нестабильных режима, но вы не можете легко определить энергетический вклад почти нестабильных полюсов. В вашем приложении можно хотеть уменьшить модель, не отбрасывая те полюсы, которые ближе всего к нестабильности, даже если они имеют относительно низкую энергию. Используйте 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--')
Приближение 15-го порядка является хорошим совпадением частотного диапазона с исходной моделью. Однако приближение 10-го порядка показывает изменения в высокочастотной динамике, которые могут быть слишком большими, чтобы быть приемлемыми. Приближение 15-го порядка, вероятно, является лучшим выбором.