hinfsyn

Вычислите оптимальный контроллер H-бесконечности

Описание

пример

[K,CL,gamma] = hinfsyn(P,nmeas,ncont) вычисляет стабилизирующий H ∞ -оптимальный контроллер K для объекта P. Объект имеет секционированную форму

[zy]=[P11P12P21P22][wu],

где:

  • w представляет входы нарушения порядка.

  • u представляет входы управления.

  • z представляет выходы ошибки, которые будут сохраняться маленькими.

  • y представляет выходы измерения, предоставляемые контроллеру.

nmeas и ncont количество сигналов в y и u, соответственно. y и u являются последними выходами и входами P, соответственно. hinfsyn возвращает K контроллера который стабилизирует P и имеет такое же количество состояний. Система с обратной связью CL = lft(P,K) достигает уровня эффективности gamma, которая является H ∞ нормой CL (см. hinfnorm).

пример

[K,CL,gamma] = hinfsyn(P,nmeas,ncont,gamTry) вычисляет контроллер для целевого уровня эффективности gamTry. Определение gamTry может быть полезным, когда оптимальная эффективность контроллера лучше, чем вам нужно для вашего приложения. В этом случае менее оптимальный контроллер может иметь меньшие усиления и быть более численно хорошо обусловлен. Если gamTry не достижимо, hinfsyn возвращает [] для K и CL, и Inf для gamma.

пример

[K,CL,gamma] = hinfsyn(P,nmeas,ncont,gamRange) выполняет поиск по области значений gamRange для достижения наилучшей эффективности. Задайте область значений с вектором формы [gmin,gmax]. Ограничение области значений поиска может ускорить расчет, уменьшив количество итераций, выполненных hinfsyn для тестирования различных уровней эффективности.

пример

[K,CL,gamma] = hinfsyn(___,opts) задает дополнительные опции расчета. Создание opts, использование hinfsynOptions. Задайте opts после всех других входных параметров.

пример

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

Примеры

свернуть все

Синтезируйте контроллер с использованием различных целевых уровней эффективности. Объект в этом примере основан на дополненной модели объекта управления, используемой в робастном контроле активной суспензии. Загрузите объект.

load hinfsynExData P
size(P)
State-space model with 5 outputs, 4 inputs, and 9 states.

Этот объект имеет пять выходов и четыре входа, где последние два выхода являются сигналами измерения, чтобы предоставить контроллеру, и последний вход является управляющим сигналом. Вычислите an H-оптимальный контроллер.

ncont = 1; 
nmeas = 2; 
[K1,CL,gamma] = hinfsyn(P,nmeas,ncont);

Получившийся контроллер с двумя входами и одним выходом имеет то же количество состояний, что и P.

size(K1)
State-space model with 1 outputs, 2 inputs, and 9 states.

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

gamma
gamma = 0.9405

Можно изучить график сингулярного значения системы с обратной связью, чтобы подтвердить, что ее самое большое сингулярное значение не превышает gamma.

sigma(CL,ss(gamma))
ylim([-120,20]);

Figure contains an axes. The axes contains 4 objects of type line. These objects represent CL, untitled1.

Для контроллеров, которые близки к оптимальной эффективности, усиления контроллера иногда могут стать большими. Если вы знаете, что ваше приложение не требует оптимального достижимого уровня эффективности, можно ограничить область значений γ значения, которые hinfsyn тесты. Предположим, вы знаете, что γ1.5 достаточно хорошо для вашего приложения. Используя тот же объект, что и в примере H-Infinity Controller Synthesis, вычислите контроллер с помощью целевой эффективности области значений [1,4,1,6]. Включите отображение, чтобы увидеть прогресс расчетов.

load hinfsynExData P
ncont = 1; 
nmeas = 2; 

opts = hinfsynOptions('Display','on');
gamRange = [1.4 1.6];
[K,CL,gamma,info] = hinfsyn(P,nmeas,ncont,gamRange,opts);
  Test bounds:  1.4 <=  gamma  <=  1.6

   gamma        X>=0        Y>=0       rho(XY)<1    p/f
  1.60e+00     4.9e-07     0.0e+00     1.462e-02     p
  1.50e+00     5.0e-07     0.0e+00     1.681e-02     p
  1.45e+00     5.0e-07     0.0e+00     1.803e-02     p
  1.42e+00     5.0e-07     0.0e+00     1.868e-02     p
  1.41e+00     5.0e-07     0.0e+00     1.902e-02     p

  Best performance (actual): 0.946

На отображении показаны все уровни производительности, протестированные hinfsyn. В этом случае все протестированные уровни эффективности проходят тесты, которые hinfsyn применяется для устойчивости в системе с обратной связью (см. Алгоритмы). Несмотря на то, что наименьший протестированный уровень равен 1,41, контроллер, возвращенный для этого значения, достигает фактического уровня эффективности gamma, что составляет около 0,95. Наименьший протестированный уровень возвращается в gamma поле info структура.

info.gamma
ans = 1.4117

Если вы пытаетесь получить уровень производительности, который не достижим ни с одним контроллером, отображение сообщает вам, что цель слишком мала, и возвращает пустой контроллер и систему с обратной связью. Например, предположим, что вы пытаетесь достичь уровня эффективности 0,75.

gamTry = 0.75
gamTry = 0.7500
[K,CL,gamma] = hinfsyn(P,nmeas,ncont,gamTry,opts)
Specified upper limit GMAX=0.75 is too small, needs to be greater than 0.94.

K =

     []


CL =

     []
gamma = Inf

Разработайте контроллер смешанной чувствительности для следующего объекта, дополненный следующими фильтрами формирования контура (см mixsyn).

G(s)=s-1s+1,W1=0.1(s+100)100s+1,W2=0.1,noW3.

Определите объект, весовые фильтры и дополненный объект.

s = zpk('s');
G = (s-1)/(s+1);
W1 = 0.1*(s+100)/(100*s+1); 
W2 = 0.1; 
W3 = [];
P = augw(G,W1,W2,W3);

Синтезируйте контроллер.

[K,CL,gamma] = hinfsyn(P,1,1);
gamma
gamma = 0.1831

Для этой системы, gamma составляет около 0,18, или около -15 дБ.

Исследуйте сингулярные значения результата с обратной связью.

sigma(CL,ss(gamma))

Figure contains an axes. The axes contains 2 objects of type line. These objects represent CL, untitled1.

Вычислите новый контроллер для той же системы без W1.

W1 = [];
P = augw(G,W1,W2,W3);
[K,CL,gamma] = hinfsyn(P,1,1);

В этом случае полученный контроллер K равен нулю, и передаточная функция с обратной связью CL = K*(1+G*K) также равен нулю.

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

свернуть все

Объект, заданный как динамическая системная модель, такая как пространство состояний (ss) модель. P может быть любой моделью LTI с входами [w; u] и выходами [z; y], где:

  • w представляет входы нарушения порядка.

  • u представляет входы управления.

  • z представляет выходы ошибки, которые будут сохраняться маленькими.

  • y представляет выходы измерения, предоставляемые контроллеру.

Конструкция P таким образом, y выходов измерения являются последними выходами, а входы управления u являются последними входами.

Функция преобразует P в модель пространства состояний вида:

dx=Ax+B1w+B2uz=C1x+D11w+D12uy=C2x+D21w+D22u.

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

Одним из вариантов управления H ∞ является прямое формирование замкнутых графиков сингулярных значений систем управления. В таких приложениях вы увеличиваете входные и выходные входы объекта с помощью функций взвешивания (фильтры формирования контура), которые представляют цели управления, которые вы хотите, чтобы контроллер H ∞ удовлетворял. Для подробного примера, который создает такую секционированную, дополненную объект для H ∞ синтеза, смотрите Робастное управление активной суспензией. Для получения дополнительной информации см. Раздел «Формирование цикла смешанной чувствительности».

Условия на P

Чтобы задача H ∞ синтеза была решаемой, (A, B 2) должна быть стабилизируемой, и (A, C 2) должна быть обнаруживаемой. Для метода Риккати по умолчанию объект дополнительно ограничена тем, что P 12 и P 21 не должны иметь нулей на воображаемой оси (объекты непрерывного времени) или модуля круге (объекты дискретного времени). В непрерывном времени это ограничение означает, что

[AjωB2C1D12]

имеет полный ранг столбца для всех ω частот. По умолчанию, hinfsyn автоматически добавляет дополнительные возмущения и ошибки к установке, чтобы убедиться, что ограничение на P 12 и P 21 выполнено. Этот процесс называется regularization. Если вы уверены, что объект соответствует условиям, можно отключить регуляризацию с помощью Regularize опция hinfsynOptions.

Количество выходных сигналов измерения в объекте, заданное в виде неотрицательного целого числа. Функция занимает последнее nmeas выходы объекта по мере y измерений. Возвращенный контроллер K имеет nmeas входы.

Количество входных сигналов управления в объекте, заданное как неотрицательное целое число. Функция занимает последнее ncont входы объекта управления как u. Возвращенный контроллер K имеет ncont выходы.

Целевой уровень эффективности, заданный как положительная скалярная величина. hinfsyn пытается вычислить контроллер таким образом, чтобы H ∞ системы с обратной связью не превышали gamTry. Если этот уровень эффективности достижим, то возвращенный контроллер имеет gammagamTry. Если gamTry не достижимо, hinfsyn возвращает пустой контроллер.

Область значений эффективности для поиска, заданный как вектор формы [gmin,gmax]. hinfsyn команда проверяет только уровни эффективности в этой области значений. Он возвращает контроллер с эффективностью:

  • gammagmin, когда gmin достижимо.

  • gmin <gamma <gmax, когда gmax достижимо и но gmin нет.

  • gamma = Inf когда gmax не достижимо. В этом случае, hinfsyn возвращает [] для K и CL.

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

Дополнительные опции для расчета, заданные как объект опций, который вы создаете используя hinfsynOptions. Доступные опции включают:

  • Отобразите прогресс алгоритма в командной строке.

  • Отключите автоматическое масштабирование и регуляризацию.

  • Задайте метод оптимизации.

Для получения информации обо всех опциях см. hinfsynOptions.

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

свернуть все

Контроллер, возвращенный как пространство состояний (ss) объект модели или []. Контроллер стабилизируется P и имеет то же количество состояний что и P. Контроллер имеет nmeas входы и ncont выходы.

Если вы поставляете gamTry или gamRange и заданные значения эффективности не достижимы, тогда K = [].

Передаточная функция с обратной связью, возвращенная как пространство состояний (ss) объект модели или []. Передаточная функция с обратной связью задается CL = lft(P,K) как на следующей схеме.

Возвращенный уровень эффективности gamma - H ∞ норма CL.

Если вы поставляете gamTry или gamRange и заданные уровни эффективности не достижимы, тогда CL = [].

Эффективность контроллера, возвращенная как неотрицательное скалярное значение или Inf. Это значение является эффективностью, достигнутым с использованием возвращенного контроллера K, и является H ∞ нормой CL (см. hinfnorm). Если вы не обеспечиваете уровни эффективности для тестирования с использованием gamTry или gamRange, затем gamma является наилучшим достижимым уровнем эффективности.

Если вы предоставляете gamTry или gamRange, затем gamma - фактический уровень производительности, достигнутый контроллером, вычисленным для наилучшего проходного уровня производительности, который hinfsyn пытается. Если указанные уровни эффективности не достижимы, то gamma = Inf.

Дополнительные данные синтеза, возвращенные как структура или [] (если заданный уровень эффективности не достижим). Для метода синтеза на основе Риккати по умолчанию, info имеет следующие поля.

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

Уровень производительности, используемый для вычисления K контроллера, возвращается как неотрицательный скаляр. Как правило, hinfsyn проверяет несколько целевых уровней эффективности и возвращает контроллер, соответствующий лучшему проходному уровню эффективности (см. Алгоритмы). Значение info.gamma является верхним пределом фактической достигнутой эффективности, возвращаемой в качестве выходного аргумента gamma.

X,Y

Решения Riccati X ∞ и Y ∞ для уровня эффективности info.gamma, возвращен как неотрицательные скаляры. Для получения дополнительной информации см. Алгоритмы и [5].

Ku,Kw

Усиления обратной связи о состоянии K контроллера выражается в форме наблюдателя, возвращается как матрицы. Для получения дополнительной информации о контроллере формы наблюдателя смотрите Советы.

Lx,Lu

Усиления контроллера наблюдателя K выражается в форме наблюдателя, возвращается как матрицы. Для получения дополнительной информации о контроллере формы наблюдателя смотрите Советы.

Preg

Регуляризованный объект, используемая для hinfsyn расчет, возвращенное как пространство состояний (ss) объект модели. По умолчанию, hinfsyn автоматически добавляет дополнительные нарушения порядка и ошибки на объект, чтобы убедиться, что он соответствует определенным обстоятельствам (см. входной параметр P). Полевые info.Preg содержит полученную модель объекта управления.

AS

Параметризация контроллера всех решений, возвращенная как пространство состояний (ss) объект модели.

Для метода синтеза на основе LMI, info содержит лучшую эффективность gamma и соответствующие решения R и S. (Использование hinfsynOptions для изменения метода синтеза.)

Подробнее о

свернуть все

Контроллер всех решений

В целом решение задачи оптимального управления нормой по бесконечности неоднородно. Контроллер возвращается по hinfsyn является только одним конкретным решением, K. Для метода, основанного на Риккати по умолчанию, info.AS содержит параметризацию контроллера всего решения K AS. Все решения с обратной связью эффективности γ или менее параметризованы свободной стабильной Q карты сужения, которая ограничена Q<γ.

Другими словами, решения включают каждый стабилизирующий контроллер K (s), который делает

Ty1u1supωσmax(Ty1u1(jω))<γ.

Вот, Ty1u1 - передаточная функция с обратной связью CL. Эти K контроллеров (s) заданы:

Ks = lft(info.AS,Q)

где Q является стабильной системой LTI, удовлетворяющей norm(Q,Inf) < info.gamma.

Совет

  • hinfsyn дает вам усиления обратной связи о состоянии и усиления о наблюдателе, которые можно использовать, чтобы выразить контроллер в форме наблюдателя. Форма наблюдателя контроллера K является:

    dxe=Axe+B1we+B2u+Lxeu=Kuxe+Luewe=Kwxe.

    Здесь we оценка наихудшего нарушения, и термин инновации, e дается:

    e=yC2xeD21weD22u.

    hinfsyn возвращает функции обратной связи о состоянии Ku и Kw, и наблюдатель получает Lx и Lu как поля в info выходной аргумент.

    Вы можете использовать эту форму контроллера для табличного управления в Simulink®. Для этого сведите матрицы объекта управления и матрицы усиления контроллера в таблицу как функцию от переменных планирования с помощью блока Matrix Interpolation (Simulink). Затем используйте форму наблюдателя контроллера, чтобы обновить переменные контроллера, когда изменяются переменные планирования.

Алгоритмы

По умолчанию, hinfsyn использует две формулы Риккати ([1], [2]) со сдвигом цикла [3]. Вы можете использоватьhinfsynOptions для перехода к основанному на LMI методу ([4], [5], [6]). Можно также задать метод максимальной энтропии. В этом методе ,hinfsyn возвращает контроллер H ∞, который максимизирует энтропийный интеграл, относящийся к точке S0. Для систем в непрерывном времени этот интеграл является:

Entropy = γ22πln|detIγ2Ty1u1(jω)Ty1u1(jω)|[so2s02+ω2]dω

где Ty1u1 - передаточная функция с обратной связью CL. Аналогичный интеграл используется для систем дискретного времени.

Для всех методов функция использует стандартный метод γ -итерации, чтобы определить оптимальное значение γ уровня эффективности. γ - итерация bisection algorithm, который начинается с высоких и низких оценок γ и повторяет на γ значения, чтобы приблизиться к оптимальной системе управления <reservedrangesplaceholder0> .

При каждом значении γ алгоритм проверяет γ значение, чтобы определить, существует ли решение. В находящемся в Riccati методе алгоритм вычисляет самый маленький уровень эффективности, для которого существуют стабилизирующиеся решения Riccati X = <reservedrangesplaceholder6>  / γ и Y = <reservedrangesplaceholder3>  / γ. Для любого γ, превышающего этот уровень эффективности, и в области значений gamRangeалгоритм оценивает формулы центрального контроллера (K формулы) и проверяет устойчивость системы с обратной связью CL = lft(P,K). Этот шаг эквивалентен проверке условий:

  • min(eig(X)) ≥ 0

  • min(eig(Y)) ≥ 0

  • rho(XY) < 1, где спектральный радиус rho(XY) = max(abs(eig(XY)))

γ, которая удовлетворяет этим условиям, passes. Критерий остановки для алгоритма бисекции требует относительного различия между последним γ значением, которое не прошло, и последним γ значением, которое прошло, меньше 0,01. (Можно изменить этот критерий, используя hinfsynOptions.) hinfsyn возвращает контроллер, соответствующий наименьшему тестируемому γ значению, которое проходит. Для контроллеров в дискретном времени алгоритм выполняет дополнительные расчеты, чтобы создать сквозное соединение матрицу DK.

Используйте Display опция hinfsynOptions сделать hinfsyn отображать значения, показывающие, какие из условий удовлетворяются для каждого γ тестируемого значения.

Алгоритм работает лучше всего, когда объект удовлетворяет следующим условиям:

  • D 12 и D 21 имеют полный ранг.

  • [AjωIB2C1D12] имеет полный ранг столбца для всех ωR.

  • [AjωIB1C2D21] имеет полный ранг строк для всех ωR.

Когда эти условия ранга не удерживаются, контроллер может иметь нежелательные свойства. Если <reservedrangesplaceholder3> 12 и <reservedrangesplaceholder2> 21 не полный ранг, то контроллер <reservedrangesplaceholder1>  K может иметь большой коэффициент усиления высокой частоты. Если любое из двух последних условий ранга не выдерживает на некоторой частотной ω, контроллер может иметь очень слегка демпфированные полюса около этой частоты.

Вопросы совместимости

расширить все

Не рекомендуемый запуск в R2018b

Поведение изменено в R2018b

Ссылки

[1] Гловер, К. и Дж. К. Дойл. «Формулы пространства состояний для всех стабилизирующих контроллеров, которые удовлетворяют H∞ норме привязки и отношению к чувствительности к риску». Systems & Control Letters, Vol. 11, Number 8, 1988, pp. 167-172.

[2] Дойл, Дж. К. Гловер, П. Харгонекар и Б. Фрэнсис. «Государственно-пространственные решения стандартных задач H2 и H∞ управления». Транзакции IEEE по автоматическому управлению, том 34, номер 8, август 1989, стр. 831-847.

[3] Сафонов, М.Г., Д.Ж.Н. Limebeer, and R.Y. Chiang. Упрощение теории H∞ с помощью цикловперемены, матричного карандаша и дескриптора. Int. J. Contr., Vol. 50, Number 6, 1989, pp. 2467-2488.

[4] Packard, A., K. Zhou, P. Pandey, J. Leonhardson, and G. Balas. Оптимальное, постоянное масштабирование подобия ввода-вывода для задач полной информации и обратной связи о состоянии. Системы и управляющие буквы, том 19, номер 4, 1992, стр. 271-280.

[5] Gahinet, P., and P. Apkarian. Подход линейного матричного неравенства к H∞-control. Int. J. Робастное и нелинейное управление, том 4, число. 4, 1994, стр 421–448.

[6] Ивасаки, Т. и Р. Э. Скелтон. «Все контроллеры для общей задачи H∞-control: условий существования LMI и формул пространства состояний». Automatica, Vol. 30, Number 8, 1994, pp. 1307-1317.

Представлено до R2006a