musynperf

Устойчивая H ∞ эффективность, оптимизированная musyn

Описание

Устойчивая H ∞ эффективность неопределенной системы является наименьшим значением γ таким образом, что вводу-выводу коэффициент усиления системы остается ниже γ для всей смоделированной неопределенности до размера 1/ γ (в нормализованных модулях). musyn функция синтезирует устойчивый контроллер путем минимизации этой величины для системы с обратной связью во всех возможных элементах для выбора контроллера. musynperf вычисляет эту величину для заданной неопределенной модели. Подробное обсуждение надежной производительности H ∞ и ее вычисления смотрите в Robust Performance Measure for Mu-Synthesis.

пример

[gamma,wcu] = musynperf(clp) вычисляет устойчивую производительность H ∞ для неопределенной системы с обратной связью clp. Устойчивый H ∞ эффективность является наименьшим значением γ для которого пик ввода-вывода усиления остается ниже γ для всей смоделированной неопределенности до 1/ γ, в нормализованных модулях. Для примера значение γ = 1,125 подразумевает следующее:

  • Коэффициент усиления ввода-вывода clp остается меньше 1,125, пока неопределенные элементы находятся в пределах 0,8 нормированных модулей от их номинальных значений. Другими словами, для значений неопределенного элемента в пределах 0,8 нормированных модулей, самая большая возможная H ∞ нормы - 1,125.

  • Для некоторых возмущений размера 0,8 нормированных модулей пиковое усиление ввода-вывода составляет 1,125.

Пиковое усиление ввода-вывода является максимальным усилением ввода-вывода по всем входам, что также является пиком наибольшего сингулярного значения по всем частотам и неопределенностям. Другими словами, если Δ представляет все возможные значения неопределенных параметров в передаточной функции с обратной связью CLP (jω), то

γ=maxΔmaxωσmax(CLP(jω)).

Область структуры output gamma содержит верхнюю и нижнюю границы устойчивой производительности H ∞ и критической частоты, при которой коэффициент усиления ввода-вывода clp достигает нижней границы. Структура wcu содержит значения неопределенного элемента, которые управляют пиковым усилением ввода-вывода к нижней границе.

[gamma,wcu] = musynperf(clp,w) вычисляет устойчивую производительность H ∞ на частотах, заданных w.

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

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

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

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

Примеры

свернуть все

Когда вы используете musyn чтобы синтезировать неструктурированный устойчивый контроллер, полученный контроллер часто имеет более высокий порядок, чем необходимо для достижения желаемой устойчивой эффективности. Один из способов уменьшить эту проблему - выполнить снижение сложности модели, используя musynperf для проверки надежности эффективности контроллера пониженного порядка.

Создайте неопределенную модель системы управления, описанную в примере «Робастная настройка контроллера с фиксированной структурой» на musyn страница с описанием.

G = tf(1,[1 -1]);
Wu = 0.25*tf([1/2 1],[1/32 1]); 
InputUnc = ultidyn('InputUnc',[1 1]);
Gpert = G*(1+InputUnc*Wu);
Gpert.InputName = 'u';
Gpert.OutputName = 'y1';

Wp = makeweight(100,[1 0.5],0.25);
Wp.InputName = 'y';
Wp.OutputName = 'e';

SumD = sumblk('y = y1 + d');
inputs = {'d','u'};
outputs = {'e','y'};
P = connect(Gpert,Wp,SumD,inputs,outputs); 

[K,CLperf] = musyn(P,1,1); 
D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           1.345        1.344         1.36             8
    2          0.7923       0.7904       0.7961             4
    3          0.6789       0.6789       0.6857            10
    4          0.6572       0.6572       0.6598             8
    5          0.6538       0.6538       0.6542             8
    6          0.6532       0.6532       0.6533             8

Best achieved robust performance: 0.653
N = order(K)
N = 11

musyn возвращает контроллер 11-го порядка и устойчивый H эффективность CLperf системы с обратной связью, использующей этот контроллер. Лучшая достигнутая устойчивая эффективность около 0,65 является хорошим, но порядок контроллера высок. Вычислите контроллеры пониженного порядка для порядков от 1 до полного порядка.

Kred = reduce(K,1:N);

Найдите контроллер самого низкого порядка Klow с эффективностью не хуже 1,05 * CLperfили 5% деградации по сравнению с контроллером полного порядка.

for k=1:N
   Klow = Kred(:,:,k);
   CL = lft(P,Klow);
   [gamma,~] = musynperf(CL);
   if gamma.UpperBound < 1.05*CLperf
      break
   end
end 
order(Klow)
ans = 4

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

CLPlow = lft(P,Klow);
[gammalow,~] = musynperf(CLPlow);
gammalow.UpperBound
ans = 0.6613

Контроллер четвертого порядка достигает очень близкого робастного H эффективность для контроллера 11-го порядка, возвращаемая musyn.

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

свернуть все

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

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

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

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

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

Опции для расчета производительности робастного H ∞, заданные какrobOptions объект. Использовать robOptions для создания объекта опции. Доступные опции включают настройки, которые позволяют вам:

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

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

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

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

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

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

свернуть все

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

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

LowerBound

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

UpperBound

Верхняя граница фактической устойчивой H ∞ эффективность, возвращенная в виде скалярного значения. Точное значение гарантировано не больше UpperBound. Другими словами, для всей смоделированной неопределенности с нормализованными величинами до 1/ UpperBound, пиковое усиление ввода-вывода clp меньше UpperBound.

CriticalFrequency

Частота, при которой коэффициент усиления ввода-вывода достигает LowerBound, в рад/ TimeUnit, где TimeUnit является TimeUnit свойство clp.

Использовать uscale или normalized2actual для преобразования нормированных значений неопределенности 1/ LowerBound или 1/ UpperBound к фактическим отклонениям от номинальных значений.

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

Использование usubs(clp,wcu) заменить эти значения неопределенными элементами в clp и получить соответствующую динамическую систему. Эта система имеет пиковое усиление gamma.LowerBound.

Использовать actual2normalized преобразование этих фактических значений неопределенности в нормированные модули, в которой 1/ gamma.LowerBound или 1/ gamma.UpperBound выражены.

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

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

Frequency

Частотные точки, в которых musynperf возвращает γ значения, возвращенные как вектор.

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

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

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

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

Bounds

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

WorstPerturbation

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

Sensitivity

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

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

Введенный в R2019b