exponenta event banner

balredOptions

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

Синтаксис

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

Описание

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

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

Входные аргументы

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

'StateProjection'

СПОСОБ УСТРАНЕНИЯ СОСТОЯНИЯ. Указывает, как устранить слабо связанные состояния (состояния с наименьшими сингулярными значениями Ханкеля). Указывается как одно из следующих значений:

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

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

'ErrorBound'

Тип привязки ошибки, указан как "absolute«или»relative'. Установить 'ErrorboundКому

  • 'absolute'для управления абсолютной ошибкой ‖ G−Gr‖∞.

  • 'relative'для управления относительной ошибкой ‖ G 1 (G Gr) ‖ ∞.

Относительная ошибка дает лучшее совпадение по частоте, в то время как абсолютная ошибка подчеркивает области с наибольшим коэффициентом усиления. Дополнительные сведения см. в разделе 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'.

Если и частота, и временные интервалы включают постоянный ток, можно установить 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'.

Если и частота, и временные интервалы включают постоянный ток, можно установить 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 рад/с и меньшими пиками, рассеянными по многим частотам. Предположим, что для вашего приложения вас интересует только динамика вблизи второго большого пика, между 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].

Загрузить модель проигрывателя компакт-дисков 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 по решению и контролю (Cat. No 2000 CH37187), Сидней, НЮУ, 2385-2390, стр. 10 vol.3, doi: № 1109/CDC.2000.914156.

Алгоритмы

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

G = Gs + Gu

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

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

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

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

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

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

В R2017b изменилось поведение

Ссылки

[1] Гавронски, У. и Дж. Н. Жуанг. «Сокращение модели в ограниченных интервалах времени и частоты». Международный журнал системной науки. Том 21, номер 2, 1990, стр. 349-376.

Представлен в R2010a