dksynperf

Устойчивый H производительность оптимизирован dksyn

Устойчивый H производительность (или устойчивый H норма) неопределенной системы с обратной связью является наименьшим значением γ, таким образом, что усиление ввода-вывода системы остается ниже γ для всей смоделированной неуверенности до размера 1/γ (в нормированных единицах). Функция dksyn синтезирует устойчивый контроллер путем минимизации этого количества по всему возможному выбору контроллера. dksynperf вычисляет это количество для заданной неопределенной модели.

Синтаксис

[gamma,wcu] = dksynperf(clp)
[gamma,wcu] = dksynperf(clp,w)
[gamma,wcu] = dksynperf(___,opts)
[gamma,wcu,info] = dksynperf(___)

Описание

пример

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

Синтезируйте контроллер для системы, описанной в примере dksyn.

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); 
Wp = tf([1/4 0.6],[1 0.006]);
P = [Wp; 1 ]*[1 Gpert]; 

[K,clp,clperf] = dksyn(P,1,1); 
N = order(K)
N = 7

dksyn возвращает контроллер 7-го порядка, систему с обратной связью с тем контроллером, clp и устойчивым H производительность той системы, clperf. Вычислите контроллеры уменьшаемого порядка для порядков в пределах от 1 полного порядка.

Kred = reduce(K,1:N);

Найдите контроллер самый низкоуровневый Klow с производительностью не хуже, чем 1.05*clperf, или 5%-е ухудшение по сравнению с контроллером полного порядка.

for k=1:N
   Klow = Kred(:,:,k);
   clp = lft(P,Klow);
   [gamma,~] = dksynperf(clp);
   if gamma.UpperBound < 1.05*clperf
      break
   end
end 
order(Klow)
ans = 3

Чтобы подтвердить контроллер уменьшаемого порядка, сравните устойчивое H производительность системы с помощью упрощенного контроллера с той из системы с помощью контроллера полного порядка. Последним значением является clperf, возвращенный dksyn при синтезировании контроллера.

clplow = lft(P,Klow);
dksynperf(clplow)
ans = struct with fields:
           LowerBound: 0.7116
           UpperBound: 0.7131
    CriticalFrequency: 0.7408


clperf
clperf = 0.6816

Контроллер третьего порядка достигает почти устойчивого того же самого H производительность как контроллер 7-го порядка, возвращенный dksyn.

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

свернуть все

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

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

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

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

Задайте частоты в модулях rad/TimeUnit, где TimeUnit является свойством TimeUnit модели.

Опции для вычисления устойчивого H производительность, заданная как объект, вы создаете с 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 в rad/TimeUnit, где TimeUnit является свойством TimeUnit clp.

Используйте 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

Частота указывает, в котором dksynperf возвращает значения γ, возвращенные как вектор.

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

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

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

Опция 'VaryFrequency' значима только для моделей uss и genss. dksynperf игнорирует опцию для моделей 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 выключена (настройка по умолчанию), то info.Sensitivity является NaN.

Введенный в R2017a