robgain

Устойчивая эффективность неопределенной системы

Описание

пример

[perfmarg,wcu] = robgain(usys,gamma) вычисляет устойчивый запас по эффективности для неопределенной системы и уровень эффективности gamma. Область эффективности usys измеряется его пиковым усилением или пиковым сингулярным значением (см. Анализ робастности и наихудшего случая). Маржа эффективности соответствует уровню неопределенности, указанному в usys. Запас, больший 1, означает, что коэффициент усиления usys остается ниже gamma для всех значений неопределенности, смоделированной в usys. Запас менее 1 означает, что на некоторой частоте усиление usys превышает gamma для некоторых значений неопределенных элементов в заданных областях. Для примера запас 0,5 подразумевает следующее:

  • Коэффициент усиления usys остается ниже gamma пока значения неопределенных элементов находятся в пределах 0,5 нормированных модулей от их номинальных значений.

  • Существует возмущение размера 0,5 нормированных модулей, которое управляет пиковым усилением до уровня gamma.

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

пример

[perfmarg,wcu] = robgain(usys,gamma,w) оценивает устойчивый запас по эффективности для частот, заданных w.

  • Если w - массив ячеек вида {wmin,wmax}, затем robgain ограничивает эффективность запаса расчета интервалом между wmin и wmax.

  • Если w является вектором частот, тогда robgain вычисляет запас по эффективности только на заданных частотах.

пример

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

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

Примеры

свернуть все

Рассмотрим систему управления, объект которой содержит как параметрическую неопределенность, так и динамическую неопределенность. Создайте модель объекта с помощью неопределенных элементов.

k = ureal('k',10,'Percent',40);
delta = ultidyn('delta',[1 1]); 
G = tf(18,[1 1.8 k]) * (1 + 0.5*delta);

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

C = pid(2.3,3,0.38,0.001);
S = feedback(1,G*C);
bodemag(S,S.NominalValue)

Figure contains an axes. The axes contains 22 objects of type line. These objects represent S, untitled1.

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

[perfmarg,wcu] = robgain(S,1.5);
perfmarg
perfmarg = struct with fields:
           LowerBound: 0.7821
           UpperBound: 0.7837
    CriticalFrequency: 7.8565

The LowerBound и UpperBound поля perfmarg показать, что устойчивый запас эффективности составляет около 0,78. Этот результат означает, что существует возмущение только около 78% неопределенности, заданной в S, с пиковым усилением, превышающим 1,5.

Можно использовать uscale изучить, что это нормированное неопределенность в 78% означает с точки зрения фактических областей значений неопределенности. Масштабируйте все неопределенные элементы в S создать модель системы с обратной связью с максимальным уровнем неопределенности, который удовлетворяет требованиям эффективности.

factor = perfmarg.LowerBound;
S_scaled = uscale(S,factor)
S_scaled =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 4 states.
  The model uncertainty consists of the following blocks:
    delta: Uncertain 1x1 LTI, peak gain = 0.782, 1 occurrences
    k: Uncertain real, nominal = 10, variability = [-31.3,31.3]%, 1 occurrences

Type "S_scaled.NominalValue" to see the nominal value, "get(S_scaled)" to see all properties, and "S_scaled.Uncertainty" to interact with the uncertain elements.

На отображении показано, как неопределенные элементы в S_scaled изменились: пиковое усиление ultidyn элемент delta уменьшается с 1 до 0,78, и область значений изменений неопределенного действительного параметра k уменьшается с ± 40% до ± 31,3 %.

Область выхода wcu - структура, содержащая возмущения, которые должны быть k и delta которые соответствуют целевой максимальной эффективности 1,5. Проверьте, что значения в wcu причина Smax достичь уровня усиления 1,5 путем замены их на S.

Smax = usubs(S,wcu);
getPeakGain(Smax,1e-6)
ans = 1.5001

Исследуйте подавление помех системы с этими значениями.

step(S.NominalValue,Smax)
legend('Nominal','Peak Gain = 1.5')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Nominal, Peak Gain = 1.5.

The CriticalFrequency область perfmarg содержит частоту, при которой пиковый коэффициент усиления достигает 1,5.

Исследуйте относительную чувствительность надежного запаса эффективности к неопределенным элементам системы. Рассмотрим модель системы управления, содержащей неопределенные элементы.

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

Создайте набор опций для robgain это позволяет вычислить чувствительность.

opts = robOptions('Sensitivity','On');

Вычислите устойчивый запас эффективности системы относительно пикового усиления 1,5, задавая info выход для получения дополнительной информации об вычислении.

[perfmarg,wcu,info] = robgain(S,1.5,opts);

Исследуйте Sensitivity область info.

info.Sensitivity
ans = struct with fields:
    delta: 75
        k: 28

Значения в этом поле указывают, насколько изменение нормализованного возмущения на каждом элементе влияет на запас по эффективности. Для примера - чувствительность к k 28. Это значение означает, что заданное изменение dk в нормализованной области значений неопределенностей k вызывает изменение около 28% от этого, или 0.28*dk, в запасе по эффективности. Маржа в этом случае более чувствительна к delta, для которого маржа изменяется примерно на 75% от изменения нормализованной области значений неопределенности.

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

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);
S = feedback(1,G*C);

По умолчанию robgain вычисляет только самый слабый запас эффективности по всем частотам. Чтобы увидеть, как маржа изменяется с частотой, используйте 'VaryFrequency' опция robOptions. Для примера вычислите эффективность запас системы для уровня эффективности 1,5 в частотных точках от 0,1 до 100 рад/с.

opts = robOptions('VaryFrequency','on');
[perfmarg,wcu,info] = robgain(S,1.5,{0.1,100},opts);
info
info = struct with fields:
                Model: 1
            Frequency: [32x1 double]
               Bounds: [32x2 double]
    WorstPerturbation: [32x1 struct]
          Sensitivity: [1x1 struct]

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

semilogx(info.Frequency,info.Bounds)
title('Performance Margin vs. Frequency')
ylabel('Margin')
xlabel('Frequency')
legend('Lower bound','Upper bound')

Figure contains an axes. The axes with title Performance Margin vs. Frequency contains 2 objects of type line. These objects represent Lower bound, Upper bound.

Когда вы используете 'VaryFrequency' опция, robgain выбирает частотные точки автоматически. Частоты, которые он выбирает, гарантированно включают частоту, при которой запас наименьший (в заданной области). Отобразите возвращенные значения частоты, чтобы подтвердить, что они включают критическую частоту.

info.Frequency
ans = 32×1

    0.1000
    0.1266
    0.1604
    0.2031
    0.2572
    0.3257
    0.4125
    0.5223
    0.6615
    0.8377
      ⋮

perfmarg.CriticalFrequency
ans = 7.9965

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

w = logspace(-1,2,20); 
[perfmarg,wcu,info] = robgain(S,1.5,w);
semilogx(w,info.Bounds)
title('Performance Margin vs. Frequency')
ylabel('Margin')
xlabel('Frequency')
legend('Lower bound','Upper bound')

Figure contains an axes. The axes with title Performance Margin vs. Frequency contains 2 objects of type line. These objects represent Lower bound, Upper bound.

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

свернуть все

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

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

Эффективность уровня, заданный как положительная скалярная величина. Уровень эффективности является пиковым усилением системы или, для систем MIMO, пиковым сингулярным значением (H ∞ norm). Как правило, чем меньше это значение, тем выше производительность системы .robgain вычисляет величину неопределенности, которую система может терпеть, сохраняя пиковый коэффициент усиления ниже этого уровня. Для получения дополнительной информации об этом показателе эффективности смотрите Анализ робастности и наихудшего случая.

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

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

  • Если w является вектором частот, тогда функция вычисляет поля на каждой заданной частоте. Для примера используйте logspace чтобы сгенерировать вектор-строку с логарифмически разнесенными значениями частоты.

Задайте частоты в единицах рада TimeUnit, где TimeUnit является TimeUnit свойство модели.

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

  • Извлечение частотно-зависимых полей эффективности.

  • Исследуйте чувствительность полей к каждому неопределенному элементу.

  • Улучшите результаты вычисления маржи производительности путем установки определенных опций для базовых mussv вычисление. В частности, установка опции 'MussvOptions' на 'mN' может уменьшить зазор между нижней и верхней границами. N количество перезапусков.

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

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

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

свернуть все

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

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

LowerBound

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

UpperBound

Верхняя граница фактического надежного запаса эффективности, возвращаемая в виде скалярного значения. Точный запас гарантированно будет не больше UpperBound. Другими словами, существуют некоторые значения неопределенного элемента, сопоставленные с этой величиной, которые управляют пиковым усилением выше gamma. robgain возвращает один такой образец в wcu.

CriticalFrequency

Частота, при которой запас эффективность наименьший, в рад/ TimeUnit, где TimeUnit является TimeUnit свойство usys.

Запас, больший 1, означает, что коэффициент усиления usys остается ниже gamma для всех значений неопределенности, смоделированной в usys. Запас менее 1 означает, что на некоторой частоте усиление usys превышает gamma для некоторых значений неопределенных элементов в заданных областях. Для примера запас 0,5 подразумевает следующее:

  • Коэффициент усиления usys остается ниже gamma пока значения неопределенных элементов находятся в пределах 0,5 нормированных модулей от их номинальных значений.

  • Существует возмущение размера 0,5 нормированных модулей, которое управляет пиковым усилением выше gamma.

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

Если номинальное значение usys имеет пиковое усиление, больше gamma, запас эффективность 0.

Если usys - массив неопределенных моделей, perfmarg содержит наименьшее поле для всех моделей массива. В этом случае info выход содержит индекс соответствующей модели в ее Model поле.

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

Использование usubs(usys,wcu) заменить эти значения неопределенными элементами в usys и получить соответствующую динамическую систему. Эта система имеет пиковое усиление gamma.Use actual2normalized для преобразования этих фактических значений неопределенности в нормированные модули, в которых выражается запас по эффективности.

Для ureal параметры в usys область значений которого не центрирована вокруг номинального значения, robgain вносит в целях своего анализа следующие корректировки:

  • Когда худшее возмущение (наименьшее возмущение, достигающее целевого усиления) находится вне области значений валидности фактического к нормированному преобразования (см. getLimits), затем robgain устанавливает соответствующую запись wcu до ближайшего допустимого значения. Другими словами, если actpert - худшее возмущение в фактических модулях, robgain устанавливает wcu до ближайшего значения в интервале ActLims возвращено getLimits.

  • Когда нет возмущения, заставляющего систему превысить целевой коэффициент усиления, то robgain устанавливает соответствующую запись wcu к номинальному значению ureal параметр.

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

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

Model

Индекс модели, которая имеет самый слабый запас по эффективности, когда usys является массивом моделей.

Frequency

Частотные точки, в которых robgain возвращает устойчивый запас эффективности, возвращаемый как вектор.

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

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

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

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

Bounds

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

WorstPerturbation

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

Sensitivity

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

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

Алгоритмы

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

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

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

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

Введенный в R2016b