exponenta event banner

wcgain

Наихудший коэффициент усиления неопределенной системы

Описание

пример

[wcg,wcu] = wcgain(usys) вычисляет наихудший пиковый коэффициент усиления неопределенной системы usys. Пиковый коэффициент усиления относится к максимальному коэффициенту усиления над частотой (H∞ норма). Для систем с множеством входов и множеством выходов (MIMO) коэффициент усиления относится к наибольшему сингулярному значению матрицы частотной характеристики. (см. sigma для получения дополнительной информации о сингулярных значениях.) Структура wcg содержит верхнюю и нижнюю границы коэффициента усиления в наихудшем случае и критическую частоту, при которой пики нижней границы. (См. раздел Наихудший прирост.) Структура wcu содержит значения неопределенных элементов usys которые вызывают наихудший пиковый коэффициент усиления.

пример

[wcg,wcu] = wcgain(usys,w) ограничивает наихудшие вычисления частотами, указанными w.

  • Если w - массив ячеек формы, {wmin,wmax}, то wcgain возвращает наихудший коэффициент усиления в интервале между wmin и wmax.

  • Если w является вектором частот, то wcgain вычисляет наихудший коэффициент усиления только на указанных частотах и возвращает наихудший из этих коэффициентов усиления.

пример

[wcg,wcu] = wcgain(___,opts) задает дополнительные параметры для вычисления. Использовать wcOptions создать opts. Этот синтаксис можно использовать с любой из предыдущих комбинаций входных аргументов.

пример

[wcg,wcu,info] = wcgain(___) возвращает структуру с дополнительной информацией о наихудших коэффициентах усиления и генерирующих их возмущениях. Посмотрите info для получения подробной информации об этой структуре. Этот синтаксис можно использовать с любой из предыдущих комбинаций входных аргументов.

Примеры

свернуть все

Рассмотрим систему управления, установка которой номинально является интегратором с некоторой аддитивной динамической неопределенностью. Создайте модель завода.

delta = ultidyn('delta',[1 1],'bound',0.4); 
G = tf(1,[1 0]) + delta;

Создайте контроллер PD для модели. Предположим, вы хотите изучить наихудший случай отказа от нарушения. Создайте функцию чувствительности по замкнутому контуру для изучения наихудшего коэффициента усиления возмущения на входе в установку.

C = pid(2,0,-0.04,0.02);
S = feedback(1,G*C);

Из-за неопределенности частотная характеристика этой передаточной функции находится в пределах некоторой огибающей. Величина частоты-отклика нескольких выборок системы дает ощущение этой огибающей.

bodemag(S)

Figure contains an axes. The axes contains 21 objects of type line. This object represents S.

Каждый образец имеет различный пиковый коэффициент усиления. Найдите максимальное значение пикового коэффициента усиления в огибающей и соответствующие значения для неопределенных элементов.

[wcg,wcu] = wcgain(S);
wcg
wcg = struct with fields:
           LowerBound: 5.1036
           UpperBound: 5.1140
    CriticalFrequency: 10.7241

LowerBound и UpperBound поля wcg показать, что наихудший пиковый коэффициент усиления составляет около 5,1. Это усиление происходит на критической частоте около 10,6 рад/с.

Продукция wcu - структура, которая содержит возмущение delta это вызывает наихудший выигрыш. Подтвердите результат, подставив это значение в функцию чувствительности.

Swc = usubs(S,wcu);
getPeakGain(Swc)
ans = 5.1037

Поскольку система имеет динамическую неопределенность delta с коэффициентом усиления не более 0,4, наихудшее значение delta должна быть системой с пиковым коэффициентом усиления 0,4. Подтвердите этот результат.

getPeakGain(wcu.delta)
ans = 0.4000

Рассмотрим модель системы управления, содержащей неопределенные элементы.

k = ureal('k',10,'Percent',40);
delta = ultidyn('delta',[1 1]); 
G = tf(18,[1 1.8 k]) * (1 + 0.5*delta);
C = pid(2.3,3,0.38,0.001);
CL = feedback(G*C,1);

По умолчанию wcgain возвращает только наихудший пиковый коэффициент усиления для всех частот. Для получения значений наихудшего коэффициента усиления на нескольких частотах используйте 'VaryFrequency' вариант wcOptions. Например, вычислить максимально возможный коэффициент усиления системы в частотных точках от 0,1 до 10 рад/с.

opts = wcOptions('VaryFrequency','on');
[wcg1,wcu1,info1] = wcgain(CL,{0.1,10},opts);
info1
info1 = struct with fields:
                 Model: 1
             Frequency: [19x1 double]
                Bounds: [19x2 double]
     WorstPerturbation: [19x1 struct]
           Sensitivity: [1x1 struct]
    BadUncertainValues: [19x1 struct]
            ArrayIndex: 1

wcgain возвращает вектор частот в info выходные данные, в Frequencies поле. info.Bounds содержит верхнюю и нижнюю границы наихудшего коэффициента усиления на каждой частоте. Эти значения используются для построения графика частотной зависимости наихудшего коэффициента усиления.

semilogx(info1.Frequency,info1.Bounds)
title('Worst-Case Gain vs. Frequency')
ylabel('Gain')
xlabel('Frequency')
legend('Lower bound','Upper bound','Location','northwest')

Figure contains an axes. The axes with title Worst-Case Gain vs. Frequency contains 2 objects of type line. These objects represent Lower bound, Upper bound.

Кривая показывает огибающую с высоким коэффициентом усиления для всех систем в пределах диапазонов неопределенности CL. Также можно использовать wcsigmaplot для построения этой оболочки вместе с образцами системы.

При использовании 'VaryFrequency' опция, wcgain автоматически выбирает точки частоты. Частоты, которые он выбирает, гарантированно включают в себя частоту, при которой наихудший коэффициент усиления является наибольшим (в пределах заданного диапазона). Просмотрите возвращенные значения частоты для подтверждения того, что они включают критическую частоту.

info1.Frequency
ans = 19×1

    0.1000
    0.1061
    0.1425
    0.1914
    0.2572
    0.3455
    0.4642
    0.6236
    0.8377
    1.1253
      ⋮

wcg1.CriticalFrequency
ans = 6.0670

Кроме того, вместо использования 'VaryFrequency', можно указать конкретные частоты для вычисления наихудших коэффициентов усиления. info.Bounds содержит наихудшие коэффициенты усиления на всех указанных частотах.

w = logspace(-1,1,24); 
[wcg2,wcu2,info2] = wcgain(CL,w);
semilogx(w,info2.Bounds)
title('Worst-Case Gain vs. Frequency')
ylabel('Gain')
xlabel('Frequency')
legend('Lower bound','Upper bound','Location','northwest')

Figure contains an axes. The axes with title Worst-Case Gain vs. Frequency contains 2 objects of type line. These objects represent Lower bound, Upper bound.

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

wcg1
wcg1 = struct with fields:
           LowerBound: 2.0848
           UpperBound: 2.0893
    CriticalFrequency: 6.0670

wcg2
wcg2 = struct with fields:
           LowerBound: 2.0349
           UpperBound: 2.0370
    CriticalFrequency: 6.7002

wcg1, вычислено с использованием VaryFrequency, находит более высокий пиковый коэффициент усиления, чем указанная частотная сетка.

Рассмотрим петлю обратной связи с заводом первого заказа и ПИ-контроллером. Постоянная времени установки является неопределенной, и контур обратной связи учитывает немодированную динамическую неопределенность. Вычисление наихудшего коэффициента усиления функции чувствительности Si на заводских вводах. Используйте 'Sensitivity' вариант wcOptions вычислять, насколько чувствителен этот наихудший коэффициент усиления к каждому неопределенному элементу.

% Create uncertain system and controller
delta = ultidyn('delta',[1 1]);
tau = ureal('tau',5,'range',[4 6]);
P = tf(1,[tau 1])*(1+0.25*delta);
C = pid(4,4);

opt = wcOptions('Sensitivity','on');
Si = inv(1 + C*P);
[wcg,~,info] = wcgain(Si,opt);

Sensitivity области info структура вывода включает в себя данные, которые отражают, насколько изменяется максимальный коэффициент усиления функции чувствительности ввода с каждым неопределенным элементом.

info.Sensitivity
ans = struct with fields:
    delta: 44
      tau: 9

Этот результат показывает, что если диапазон неопределенности дельты увеличивается на 10%, пиковая входная чувствительность увеличивается примерно на 4,4%. Аналогично, увеличение диапазона неопределенности тау на 10% вызывает увеличение пиковой входной чувствительности примерно на 0,9%.

Задание определенных опций для вычисления структурированного сингулярного значения, лежащего в основе вычисления наихудшего коэффициента усиления, в некоторых случаях может дать лучшие результаты. Например, рассмотрим пример установки и контроллера.

load('wcgExampleData.mat')

Эта команда загружается gPlantустановка MIMO с 10 выходами, 8 входами и 11 неопределенными элементами. Он также нагружает Kmu, модель контроллера состояния-пространства. Создайте замкнутую систему с этими моделями и изучите наихудший коэффициент усиления.

CL = lft(gPlant,Kmu);
[wcg,wcu] = wcgain(CL);
wcg
wcg = struct with fields:
           LowerBound: 10.8742
           UpperBound: 11.2135
    CriticalFrequency: 6.6794

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

opt = wcOptions('MussvOptions','m3');
[wcg,wcu] = wcgain(CL,opt);
wcg
wcg = struct with fields:
           LowerBound: 10.8742
           UpperBound: 11.2135
    CriticalFrequency: 6.6794

Разница между нижней границей и верхней границей при наихудшем коэффициенте усиления значительно меньше. Критическая частота также различна.

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

свернуть все

Динамическая система с неопределенностью, указанная как uss, ufrd, genss, или genfrd модель, которая содержит неопределенные элементы. Для genss или genfrd модели, wcgain использует текущее значение любых настраиваемых блоков и сворачивает их в известную (не неопределенную) часть модели.

usys также может быть массивом неопределенных моделей. В этом случае wcgain возвращает наихудший коэффициент усиления для всех моделей в массиве, и info вывод содержит индекс соответствующей модели.

Частоты, на которых вычисляются наихудшие коэффициенты усиления, указанные как массив ячеек {wmin,wmax} или как вектор частотных значений.

  • Если w - массив ячеек формы, {wmin,wmax}, то функция возвращает наихудший коэффициент усиления в интервале между wmin и wmax.

  • Если w является вектором частот, то функция вычисляет наихудший коэффициент усиления на каждой заданной частоте.

Указать частоты в единицах рад/TimeUnit, где TimeUnit является TimeUnit свойство модели.

Опции для наихудших вычислений, заданные как объект, создаваемый с помощью wcOptions. Доступные параметры включают в себя параметры, которые позволяют:

  • Извлеките зависящие от частоты коэффициенты усиления в наихудшем случае (см. раздел Коэффициент усиления в наихудшем случае).

  • Проверьте чувствительность наихудшего коэффициента усиления к каждому неопределенному элементу.

  • Улучшите результаты расчета наихудшего коэффициента усиления, установив определенные опции для андерлаинга mussv расчет. Пример см. в разделе Улучшение наихудших возмущений.

Дополнительные сведения обо всех доступных параметрах см. в разделе wcOptions.

Пример: wcOptions('Sensitivity','on','MussvOptions','m3')

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

свернуть все

Наихудший пиковый коэффициент усиления и критическая частота, возвращаемые в виде структуры, содержащей следующие поля:

ОбластьОписание

LowerBound

Нижняя граница фактического пикового коэффициента усиления модели в наихудшем случае, возвращаемая как скалярное значение. Это значение является пиковым коэффициентом усиления, соответствующим наихудшему возмущению wcu. Точно наихудший пиковый коэффициент усиления гарантированно не меньше LowerBound.

UpperBound

Верхняя граница фактического пикового коэффициента усиления модели в наихудшем случае, возвращаемого как скалярное значение. Точный наихудший пиковый коэффициент усиления гарантированно не превышает UpperBound. При указании частотной сетки в качестве вектора w, гарантия действует только на указанных частотах.

CriticalFrequency

Частота, при которой происходит наихудший пиковый коэффициент усиления, в рад/TimeUnit, где TimeUnit является TimeUnit имущество usys.

Наихудшее возмущение неопределенных элементов, возвращаемое как структура, поля которой являются именами неопределенных элементов usys. Каждое поле содержит фактическое значение соответствующего неопределенного элемента usys при наихудшем пиковом усилении. Например, если usys включает неопределенную матрицу M и неопределенная динамика SISO delta, то wcu.M является числовой матрицей и wcu.delta является моделью пространства состояний SISO.

Использовать usubs(usys,wcu) заменить эти значения неопределенными элементами в usysдля получения динамической системы с наихудшим пиковым коэффициентом усиления.

Дополнительная информация о худших значениях, возвращенная в виде структуры со следующими полями:

ОбластьОписание

Model

Индекс модели с наибольшим пиковым коэффициентом усиления в наихудшем случае, когда usys представляет собой массив моделей.

Frequency

Точки частоты, в которых wcgain возвращает наихудший коэффициент усиления, возвращаемый как вектор.

  • Если 'VaryFrequency' вариант wcOptions является 'off', то info.Frequency критическая частота, частота, на которой происходит выгода пика худшего случая. Если наибольшая нижняя граница и наименьшая верхняя граница в наихудшем случае усиления имеют место на разных частотах, то info.Frequency - вектор, содержащий эти две частоты.

  • Если 'VaryFrequency' вариант wcOptions является 'on', то info.Frequency содержит частоты, выбранные wcgain. Эти частоты гарантированно включают в себя частоту, на которой имеет место наихудший пиковый коэффициент усиления.

  • Если задан вектор частот w при котором вычислить наихудший выигрыш, info.Frequency = w. При задании частотного вектора эти частоты не обязательно включают частоту, при которой происходит наихудший пиковый коэффициент усиления.

'VaryFrequency' параметр имеет значение только для uss и genss модели. wcgain игнорирует опцию для ufrd и genfrd модели.

Bounds

Нижняя и верхняя границы фактического наихудшего коэффициента усиления модели, возвращаемого в виде массива. info.Bounds(:,1) содержит нижнюю границу на каждой соответствующей частоте в info.Frequency, и info.Bounds(:,2) содержит соответствующие верхние границы.

WorstPerturbation

Возмущения, вызывающие наихудший коэффициент усиления в каждой точке частоты в info.Frequency, возвращен в виде массива структуры. Поля info.WorstPerturbation являются именами неопределенных элементов в usysи каждое поле содержит значение наихудшего случая соответствующего элемента на каждой частоте. Например, если usys включает неопределенный параметр p и неопределенная динамика SISO delta, то info.WorstPerturbation.p - совокупность числовых значений и info.WorstPerturbation.delta - совокупность моделей состояния и пространства SISO.

Sensitivity

Чувствительность наихудшего коэффициента усиления к каждому неопределенному элементу, возвращаемому как структура, когда 'Sensitivity' вариант wcOptions является 'on'. Поля info.Sensitivity являются именами неопределенных элементов в usys. Каждое поле содержит процент, который измеряет, насколько неопределенность в соответствующем элементе влияет на наихудший выигрыш. Например, если info.Sensitivity.p равно 50, то данное дробное изменение в диапазоне неопределенностей p вызывает вдвое меньше дробных изменений в наихудшем случае выигрыша.

Если 'Sensitivity' вариант wcOptions выключен (установка по умолчанию), затем info.Sensitivity является NaN.

BadUncertainValues

То же, что и WorstPerturbation. Включен для совместимости с R2016a и более ранними версиями.

ArrayIndex

То же, что и Model. Включен для совместимости с R2016a и более ранними версиями.

Подробнее

свернуть все

Наихудший прирост

По умолчанию wcgain возвращает пиковое усиление (или пиковое сингулярное значение для систем MIMO), достижимое в пределах диапазона неопределенности, на всех частотах (или частотах, указанных w). Пиковое усиление можно получить как функцию частоты, используя VaryFrequency вариант wcOptions.

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

Темно-синяя кривая является номинальным откликом системы. Светло-синие кривые показывают различные выборочные отклики системы. wcg вывод wcgain содержит границы наихудшего коэффициента усиления по всем частотам, около 5 дБ на иллюстрации. Частота, на которой происходит это усиление, является критической частотой, также возвращаемой в wcg.

Если установить VaryFrequency вариант wcOptions кому 'on', то wcgain также вычисляет максимальный коэффициент усиления в каждой точке частоты, показанный красной кривой. wcgain возвращает эти значения в info.Bounds. Пример см. в разделе Наихудший коэффициент усиления на частотах в диапазоне. Также можно использовать wcsigmaplot для визуализации наихудшего коэффициента усиления как функции частоты.

Алгоритмы

Вычисление коэффициента усиления в наихудшем случае на конкретной частоте эквивалентно вычислению структурированного сингулярного значения, λ, для некоторой подходящей блочной структуры (λ-анализ).

Для uss и genss модели, wcgain(usys) и wcgain(usys,{wmin,wmax}) используйте алгоритм, который находит наихудший коэффициент усиления по частоте. Этот алгоритм не опирается на частотную сетку и не подвергается отрицательному влиянию резких пиков структурированного сингулярного значения. Дополнительные сведения см. в разделе Получение надежных оценок пределов надежности.

Для ufrd и genfrd модели, wcgain вычисляет нижнюю и верхнюю границы в каждой точке частоты. Это вычисление не дает никакой гарантии между частотными точками и может быть неточным, если неопределенность вызывает резкие резонансы. Синтаксис wcgain(uss,w), где w является вектором частотных точек, является таким же, как wcgain(ufrd(uss,w)) а также полагается на частотную сетку для вычисления наихудшего коэффициента усиления.

В целом, алгоритм для моделей состояния-пространства быстрее и безопаснее, чем подход с частотной сеткой. В некоторых случаях, однако, алгоритм «состояние-пространство» требует многих мкм вычислений. В этих случаях задание частотной сетки в качестве вектора w может быть быстрее при условии, что наихудший коэффициент усиления изменяется плавно с частотой. Такое плавное изменение характерно для систем с динамической неопределенностью.

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