balredOptions

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

Синтаксис

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

Описание

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

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

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

Аргументы name-value

StateProjection

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

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

Значение по умолчанию: '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 рад/с, принимая единицу частоты модели - rad/s, установите 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 попытки совпадать с усилением DC исходных и упрощенных моделей, даже если заданные интервалы частоты исключают 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 попытки совпадать с усилением DC исходных и упрощенных моделей, даже если интервалы требуемого времени исключают 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 object. The axes object 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 objects. Axes object 1 contains 2 objects of type line. These objects represent sys, rsys. Axes object 2 contains 2 objects of type line. These objects represent sys, rsys.

Заметьте, что предвещать ответ исходной модели и модели уменьшаемого порядка почти соответствует.

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

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

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

Figure contains 2 axes objects. Axes object 1 contains an object of type line. This object represents G. Axes object 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 objects. Axes object 1 contains 3 objects of type line. These objects represent Original, Order 10, Order 18. Axes object 2 contains 2 objects of type line. These objects represent Order 10, Order 18.

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

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

Загрузите модель 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 objects. Axes object 1 contains 3 objects of type line. These objects represent Original (120 states), Absolute Error (15 states), Relative Error (15 states). Axes object 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-лицензию на детали.

  2. A.Varga, “На стохастической балансировке связал снижение сложности модели”, Продолжения 39-й Конференции по IEEE по Решению и Управлению (CAT. № 00CH37187), Сидней, Новый Южный Уэльс, 2000, стр 2385-2390 vol.3, doi: 10.1109/CDC.2000.914156.

Алгоритмы

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

G=Gs+Gu

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

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

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

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

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

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

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

Ссылки

[1] Гавронский, W. и Дж.Н. Джуэнг. "Снижение сложности модели в Интервалах Ограниченного времени и Частоты". Международный журнал Системной Науки. Издание 21, Номер 2, 1990, стр 349–376.

Введен в R2010a