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

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.

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.

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

свернуть все

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

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

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

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

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

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

Задайте частоты в модулях rad/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

Частота, на которой поле эффективности является самым маленьким в rad/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Использование 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. Когда вы зададите вектор частоты, эти частоты, как гарантируют, не будут включать частоту, на которой поле является самым маленьким.

'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 isnan.

Алгоритмы

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

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

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

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

Введенный в R2017b