dksynperf

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

Описание

Устойчивый H производительность (или устойчивый H норма) неопределенной системы с обратной связью является наименьшим значением γ, таким образом, что усиление ввода-вывода системы остается ниже γ для всей смоделированной неопределенности до размера 1/γ (в нормированных единицах). dksyn функция синтезирует устойчивый контроллер путем минимизации этого количества по всему возможному выбору контроллера. 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ω)).

Структура output 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 - 7.

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

Введенный в R2017a