balred

Сокращение порядка модели

Синтаксис

rsys = balred(sys,ORDERS)
rsys = balred(sys,ORDERS,BALDATA)
rsys = balred(___,opts)

Описание

rsys = balred(sys,ORDERS) вычисляет приближение уменьшаемого порядка rsys из модели LTI sys. Желаемый порядок (количество состояний) для rsys задан ORDERS. Можно попробовать несколько порядков целиком установкой ORDERS к вектору целых чисел, в этом случае rsys вектор моделей уменьшаемого порядка. balred использует неявные методы балансировки, чтобы вычислить уменьшаемый - приближение порядка rsys. Используйте hsvd построить сингулярные значения Ганкеля и выбрать соответствующий порядок приближения. Состояния с относительно маленькими сингулярными значениями Ганкеля могут быть безопасно отброшены.

Когда sys имеет нестабильные полюса, это сначала разложено на свои устойчивые и нестабильные части с помощью stabsep, и только устойчивая часть аппроксимирована. Используйте balredOptions задавать дополнительные опции для устойчивого/нестабильного разложения.

Эта команда требует лицензии Control System Toolbox™. sys может только быть идентифицированная модель в пространстве состояний (idss). Моделью уменьшаемого порядка является также idss модель.

rsys = balred(sys,ORDERS,BALDATA) использование, балансирующее данные, возвращенные hsvd. Поскольку hsvd делает большую часть работы, должен был вычислить rsys, этот синтаксис более эффективен при использовании hsvd и balred совместно.

rsys = balred(___,opts) вычисляет снижение сложности модели с помощью опций, что вы задаете использование balredOptions. Опции включают смещение и опции допуска для вычисления устойчиво-нестабильных разложений. Там также опции для подчеркивания определенного времени или интервалов частоты. Смотрите balredOptions для деталей.

Примечание

Порядок аппроксимированной модели всегда является, по крайней мере, количеством нестабильных полюсов и самое большее минимального порядка исходной модели (номер NNZ из ненулевых сингулярных значений Ганкеля с помощью порога родственника уровня eps)

Примеры

свернуть все

Вычислите аппроксимацию системы уменьшаемого порядка, данную:

G(s)=(s+0.5)(s+1.1)(s+2.9)(s+10-6)(s+1)(s+2)(s+3).

Создайте модель.

sys = zpk([-.5 -1.1 -2.9],[-1e-6 -2 -1 -3],1);

Исключите полюс в s=10-6 от устойчивого срока устойчивого/нестабильного разложения. Для этого установите Offset опция balredOptions к значению, больше, чем полюс, вы хотите исключить.

opt = balredOptions('Offset',.001,'StateElimMethod','Truncate');

Вычислите приближение второго порядка.

rsys = balred(sys,2,opt);

Сравните ответы исходных моделей и моделей уменьшаемого порядка.

bodeplot(sys,rsys,'r--')

Уменьшайте старшую модель с особым вниманием на динамике в конкретном частотном диапазоне.

Загрузите модель и исследуйте ее частотную характеристику.

load('highOrderModel.mat','G')
bodeplot(G)

G модель 48-го порядка с несколькими большими пиковыми областями приблизительно 5,2 рад/с, 13,5 рад/с и 24,5 рад/с, и меньшим peaks, рассеянным через многие частоты. Предположим, что для вашего приложения вы только интересуетесь динамикой около второго большого пика между 10 рад/с и 22 рад/с. Фокусируйте снижение сложности модели на необходимой области, чтобы получить хорошее соответствие с аппроксимацией младшим порядком. Используйте balredOptions задавать интервал частоты для balred.

bopt = balredOptions('StateElimMethod','Truncate','FreqIntervals',[10,22]);
GLim10 = balred(G,10,bopt);
GLim18 = balred(G,18,bopt);

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

subplot(2,1,1);
bodemag(G,GLim10,GLim18,logspace(0.5,1.5,100));
title('Bode Magnitude Plot')
legend('Original','Order 10','Order 18');
subplot(2,1,2);
bodemag(G-GLim10,G-GLim18,logspace(0.5,1.5,100));
title('Absolute Error Plot')
legend('Order 10','Order 18');

С ограниченным частотой энергетическим расчетом даже приближение 10-го порядка довольно хорошо в необходимой области.

Альтернативная функциональность

Приложение

Model Reducer

Вопросы совместимости

развернуть все

Поведение изменяется в R2017b

Ссылки

[1] Varga, A., "Алгоритм Квадратного корня без балансировок для Вычисления Сингулярных Приближений Возмущения", Proc. 30-го CDC IEEE, Брайтон, UK (1991), стр 1062-1065.

Представлено до R2006a