exponenta event banner

hinfsyn

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

Описание

пример

[K,CL,gamma] = hinfsyn(P,nmeas,ncont) вычисляет стабилизирующий контроллер H∞-optimal 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.

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

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

Результирующий контроллер с двумя входами и одним выходом имеет то же количество состояний, что и Р.

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) также равно нулю.

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

свернуть все

Установка, заданная как динамическая системная модель, например state-space (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,B2) должна быть стабилизируемой и (A,C2) должна быть обнаруживаемой. Для метода Риккати по умолчанию установка дополнительно ограничена тем, что P12 и P21 не должны иметь нулей на воображаемой оси (растения непрерывного времени) или единичной окружности (растения дискретного времени). Через непрерывное время это ограничение означает, что

[A jstartB2C1D12]

имеет полный ранг столбца для всех частот λ. По умолчанию hinfsyn автоматически добавляет дополнительные нарушения и ошибки к заводу для обеспечения соблюдения ограничений на P12 и P21. Этот процесс называется регуляризацией. Если вы уверены, что ваш завод соответствует условиям, вы можете отключить регуляризацию с помощью 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.

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

свернуть все

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

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

Функция передачи с замкнутым контуром, возвращаемая как state-space (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 вычисление, возвращаемое как state-space (ss) объект модели. По умолчанию hinfsyn автоматически добавляет дополнительные нарушения и ошибки в установку, чтобы убедиться, что она удовлетворяет определенным условиям (см. входной аргумент P). Область info.Preg содержит полученную модель растения.

AS

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

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

Подробнее

свернуть все

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

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

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

Ty1u1‖∞≜supωσmax (Ty1u1 ()) < γ.

Здесь Ty1u1 - функция передачи с замкнутым контуром CL. Эти контроллеры K даны следующим образом:

Ks = lft(info.AS,Q)

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

Совет

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

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

    Здесь мы оцениваем наихудшее возмущение, и инновационный термин e задается следующим образом:

    e = y C2xe D21we − D22u.

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

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

Алгоритмы

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

Энтропия = γ22π∫−∞∞ln'detI−γ−2Ty1u1 () Ty1u1 () | [so2s02 +

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

Для всех методов функция использует стандартный метод γ-итерации для определения оптимального значения уровня производительности γ. γ-итерация - алгоритм биссекции, начинающийся с высоких и низких оценок γ и итерирующий на значениях γ для приближения к оптимальной схеме управления H∞.

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

  • min(eig(X)) ≥ 0

  • min(eig(Y)) ≥ 0

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

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

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

Алгоритм лучше всего работает при выполнении заводом следующих условий:

  • D12 и D21 имеют полный ранг.

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

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

Когда эти условия ранжирования не сохраняются, контроллер может иметь нежелательные свойства. Если D12 и D21 не имеют полного ранга, то контроллер H∞ K может иметь большое высокочастотное усиление. Если любое из двух последних условий ранга не поддерживается на некоторой частоте, контроллер может иметь очень слегка затухающие полюса вблизи этой частоты.

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

развернуть все

Не рекомендуется начинать с R2018b

В R2018b изменилось поведение

Ссылки

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

[2] Дойл, Джей Си, К. Гловер, П. Харгонекар и Б. Фрэнсис. «Государственные решения проблем стандартного H2 и контроля H∞». IEEE Transactions on Automatic Control, Vol 34, Number 8, August 1989, pp. 831-847.

[3] Сафонов, М.Г., Д.Ж.Н. Лаймбир и Р.Я. Чианг. «Упрощение теории H∞ с помощью циклического сдвига, матричного карандаша и концепций дескриптора». Инт. J. Contr., том 50, номер 6, 1989, стр. 2467-2488.

[4] Паккард, А., К. Чжоу, П. Пандей, Дж. Леонхардсон и Г. Балас. «Оптимальное, постоянное масштабирование подобия ввода-вывода для полноинформационных и статусных проблем обратной связи». Системы и контрольные письма, том 19, номер 4, 1992, стр. 271-280.

[5] Гахинет, П. и П. Апкарян. «Подход линейного матричного неравенства к H∞-control». Инт. J. Надежное и нелинейное управление, том 4, номер. 4, 1994, стр 421–448.

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

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