balredOptions

Создайте набор опций для сокращения порядка модели

Синтаксис

opts = balredOptions
opts = balredOptions('OptionName', OptionValue)

Описание

opts = balredOptions возвращает набор опций по умолчанию для balred команда.

opts = balredOptions('OptionName', OptionValue) принимает одну или несколько пар имя/значение, разделенных запятыми. Задайте OptionName внутри одинарные кавычки.

Входные параметры

Аргументы в виде пар имя-значение

'StateProjection'

Метод устранения состояния. Задает, как исключить слабо связанные состояния (состояния с наименьшими сингулярными значениями Ханкеля). Задается как одно из следующих значений:

'MatchDC'Отбрасывает заданные состояния и изменяет оставшиеся состояния, чтобы сохранить коэффициент усиления постоянного тока.
'Truncate'Отбрасывает заданные состояния без изменения остальных состояний. Этот метод имеет тенденцию продукта лучшее приближение в частотный диапазон, но усиления постоянного тока не гарантировано совпадают.

По умолчанию: 'MatchDC'

'ErrorBound'

Тип, связанный с ошибкой, заданный как 'absolute'или' relative'. Установите 'ErrorboundКому

  • 'absolute'для управления абсолютной ошибкой GGr.

  • 'relative'для управления относительной ошибкой G1(GGr).

Относительная погрешность дает лучшее соответствие между частотой, в то время как абсолютная ошибка подчеркивает области с большинством усиления. Для получения дополнительной информации см. getPeakGain.

По умолчанию: 'absolute'

'Regularization'

Значение уровня регуляризации, которое обеспечивает четко определенную относительную погрешность на всех частотах. Когда вы задаете ErrorBound на 'relative', balred уменьшает модель [sys,⍴*I] вместо sys. Установите для этой опции значение 'auto'чтобы позволить balred выберите подходящий уровень регуляризации значение. Задайте значение ρ0 для переопределения этого значения по умолчанию.

По умолчанию: 'auto'

'FreqIntervals'

Частотные интервалы для вычисления сингулярных значений Ханкеля с ограниченной частотой, заданные как матрица с двумя столбцами. Каждая строка задает частотный интервал [fmin fmax], где fmin и fmax являются неотрицательными частотами, выраженными в частотном модуле модели. При идентификации низкоэнергетических состояний для усечения программное обеспечение вычисляет вклады состояний в поведение системы только в этих частотных областях значений. Для примера:

  • Чтобы ограничить расчет областью значений между 3 рад/с и 15 рад/с, принимая, что частотный модуль модели является рад/с, установите FreqIntervals на [3 15].

  • Чтобы ограничить расчет двумя частотными интервалами, 3-15 рад/с и 40-60 рад/с, используйте [3 15; 40 60].

  • Чтобы задать все частоты ниже частоты отсечения fcut, использовать [0 fcut].

  • Чтобы задать все частоты над отсечкой, используйте [fcut Inf] в непрерывном времени, или [fcut pi/Ts] в дискретном времени, где Ts - шаг расчета модели.

Значение по умолчанию, [], не накладывает ограничения по частоте и эквивалентно [0 Inf] за непрерывное время или [0 pi/Ts] в дискретном времени. Однако, если вы задаете TimeIntervals значение, отличное от [], затем этот предел переопределяет FreqIntervals = []. Если вы задаете оба TimeIntervals значение и FreqIntervals Значение, тогда расчет использует объединение этих интервалов.

Если StateProjection = 'MatchDC' (значение по умолчанию), затем balred пытается соответствовать усилению постоянного тока исходной и уменьшенной моделей, даже если заданные частотные интервалы исключают 0. Это поведение может снизить качество соответствия в заданных интервалах. Чтобы улучшить соответствие в пределах частотных интервалов, которые исключают 0, установите StateProjection = 'Truncate'.

Если и частота, и временные интервалы действительно включают DC, можно все еще задать StateElimMethod = 'Truncate' улучшить соответствие на других частотах и временах.

По умолчанию: []

'TimeIntervals'

Временные интервалы для вычисления ограниченных по времени сингулярных значений Ханкеля, заданные как матрица с двумя столбцами. Каждая строка задает временной интервал [tmin tmax], где tmin и tmax являются неотрицательными временами, выраженными во временном модуле модели. При идентификации низкоэнергетических состояний для усечения программное обеспечение вычисляет вклады состояний в импульсную характеристику системы только в этих временных интервалах. Для примера:

  • Чтобы ограничить расчет областью значений между 3 с и 15 с, принимая, что модуль времени модели - секунды, установите TimeIntervals на [3 15].

  • Чтобы ограничить расчет двумя временными интервалами, 3-15 с и 40-60 с, используйте [3 15; 40 60].

  • Чтобы задать все время от нуля до время среза tcut, использовать [0 tcut]. Чтобы задавать все время после отключения, используйте [tcut Inf].

Значение по умолчанию, [], не налагает ограничения по времени и эквивалентно [0 Inf]. Однако, если вы задаете FreqIntervals значение, отличное от [], затем этот предел переопределяет Timeintervals = []. Если вы задаете оба TimeIntervals значение и FreqIntervals Значение, тогда расчет использует объединение этих интервалов.

Если StateProjection = 'MatchDC' (значение по умолчанию), затем balred пытается соответствовать усилению постоянного тока исходной и уменьшенной моделей, даже если указанные временные интервалы исключают Inf. Это поведение может снизить качество соответствия в заданных интервалах. Чтобы улучшить соответствие в течение временных интервалов, которые исключают Inf, задать StateProjection = 'Truncate'.

Если и частота, и временные интервалы действительно включают DC, можно все еще задать StateProjection = 'Truncate' улучшить соответствие на других частотах и временах.

По умолчанию: []

'SepTol'

Максимальная потеря значения точности при стабильном и нестабильном разложении. Для моделей с нестабильными полюсами, balred сначала извлекает стабильную динамику, используя stabsep. Используйте 'SepTol', чтобы контролировать точность разложения. Увеличение 'SepTol'помогает разделять близлежащие стабильные и нестабильные режимы за счет точности. Для получения дополнительной информации см. stabsepOptions.

По умолчанию: 10

'Offset'

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

  • Re(s) < -Offset * max(1,|Im(s)|) (Непрерывное время)

  • |z| < 1 - Offset (Дискретное время)

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

По умолчанию: 1e-8

Для получения дополнительной информации об опциях и о том, как их использовать, смотрите balred страница с описанием.

Примеры

свернуть все

Вычислите аппроксимацию системы в пониженном порядке, заданную:

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

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

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

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

opts = balredOptions('Offset',0.001,'StateProjection','Truncate');

Визуализируйте сингулярные значения Ханкеля (HSV) и ошибку приближения.

balred(sys,opts)

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.

Заметьте, что первый HSV является красным, что указывает на то, что он связан с нестабильным режимом.

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

[rsys,info] = balred(sys,2,opts);
rsys
rsys =
 
  0.99113 (s+0.5235)
  -------------------
  (s+1e-06) (s+1.952)
 
Continuous-time zero/pole/gain model.

Заметьте, что полюс в -1e-6 появляется неизменным в уменьшенной модели rsys.

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

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

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent sys, rsys. Axes 2 contains 2 objects of type line. These objects represent sys, rsys.

Заметьте, что bode-реакция исходной модели и модели пониженного порядка почти совпадает.

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

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

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

Figure contains 2 axes. Axes 1 contains an object of type line. This object represents G. Axes 2 contains an object of type line. This object represents G.

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

bopt = balredOptions('StateProjection','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');

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent Original, Order 10, Order 18. Axes 2 contains 2 objects of type line. These objects represent Order 10, Order 18.

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

В данном примере рассмотрим модель пространства состояний SISO cdrom со 120 состояниями. Можно использовать абсолютное или относительная погрешность управление при аппроксимации моделей с balred. Этот пример сравнивает два подхода при применении к модели 120 состояний портативного устройства проигрывателя компакт-дисков crdom [1,2].

Загрузите модель CD-проигрывателя cdrom.

load cdromData.mat cdrom
size(cdrom)
State-space model with 1 outputs, 1 inputs, and 120 states.

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

opt_abs = balredOptions('ErrorBound','absolute','StateProjection','truncate');
opt_rel = balredOptions('ErrorBound','relative','StateProjection','truncate');

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

rsys_abs = balred(cdrom,15,opt_abs);
rsys_rel = balred(cdrom,15,opt_rel);
size(rsys_abs)
State-space model with 1 outputs, 1 inputs, and 15 states.
size(rsys_rel)
State-space model with 1 outputs, 1 inputs, and 15 states.

Постройте график отклика Боде исходной модели вместе с моделями с пониженными абсолютной ошибками и относительными погрешностями.

bo = bodeoptions; 
bo.PhaseMatching = 'on';
bodeplot(cdrom,'b.',rsys_abs,'r',rsys_rel,'g',bo)
legend('Original (120 states)','Absolute Error (15 states)','Relative Error (15 states)')

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent Original (120 states), Absolute Error (15 states), Relative Error (15 states). Axes 2 contains 3 objects of type line. These objects represent Original (120 states), Absolute Error (15 states), Relative Error (15 states).

Заметьте, что ответ Боде:

  • Модель уменьшения относительной погрешности rsys_rel почти соответствует отклику исходной модели sys через полную частотную область значений.

  • Модель с пониженной абсолютной ошибкой rsys_abs соответствует отклику исходной модели sys только в областях с наибольшим усилением.

Ссылки

  1. Эталонные примеры для снижения сложности модели, стандартной подпрограммы в системах и теории управления (SLICOT). Набор данных CDROM воспроизводится с разрешением, для получения дополнительной информации см. BSD3-license.

  2. А.Варга, «О стохастической балансировке, связанной с снижением сложности модели», Материалы 39-й Конференции IEEE по принятию решений и контролю (кат. No 00CH37187), Сидней, NSW, 2000, стр. 2385-2390 vol.3, doi: 10.1109/CDC.2000.914156.

Алгоритмы

The SepTol и Offset опции используются только для моделей с нестабильной или незначительно стабильной динамикой. Поскольку сингулярные значения Ханкеля (HSV) значимы только для стабильной динамики, balred должны сначала разделить такие модели на сумму их стабильных и нестабильных частей:

G=Gs+Gu

Это разложение может быть сложным, когда модель имеет режимы, близкие к контуру устойчивости (например, полюс в s=-1e-10), или кластеры режимов на контуре устойчивости (например, двойные или тройные интеграторы). В то время как balred способен преодолеть эти трудности в большинстве случаев, иногда приводит к неожиданным результатам, таким как

  1. Большой HSV для стабильной части. Это происходит, когда стабильная часть Gs содержит некоторые полюса очень близко к контуру устойчивости. Чтобы форсировать такие режимы в нестабильную группу, увеличьте 'Offset' опция слегка вырастить нестабильную область.

  2. Слишком много режимов помечено как «нестабильное». Например, вы видите 5 красных полос на графике HSV, когда ваша модель имела только 2 нестабильных полюса. Алгоритм стабильного/нестабильного разложения имеет встроенные проверки точности, которые отклоняют разложения, вызывающие значительную потерю точности в частотной характеристики. Например, такая потеря точности возникает при попытке разделить кластер стабильных и нестабильных режимов вблизи s = 0. Потому что такие кластеры численно эквивалентны нескольким полюсам в s = 0на самом деле желательно рассматривать весь кластер как нестабильный. Однако в некоторых случаях большие относительные погрешности в полосах частот с низким усилением могут отключить проверки точности и привести к отклонению допустимых разложений. Дополнительные режимы затем поглощаются в нестабильную часть Gu, чрезмерно увеличивая ее порядок. Такие проблемы можно легко исправить, скорректировав SepTol допуск.

Если вы используете TimeIntervals или FreqIntervals опции, затем balred Основывается на расчете энергетических вкладов государства на ограниченной во времени или ограниченной в частоте управляемости и наблюдаемости грамиана. Для получения информации о вычислении ограниченных по времени и частоте грамианов, см. gram и [1].

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

расширить все

Поведение изменено в R2017b

Ссылки

[1] Gawronski, W. and J.N. Juang. «Снижение сложности модели в ограниченных временных и частотных Интервалах». Международный журнал системных наук. Том 21, № 2, 1990, стр. 349-376.

Введенный в R2010a