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- оптимальный контроллер.

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

Получившийся 2D вход, у контроллера с одним выходом есть то же количество состояний как 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 object. The axes object contains 4 objects of type line. These objects represent CL, untitled1.

Для контроллеров, которые являются близко к оптимальной эффективности, усиления контроллера могут иногда становиться большими. Если вы знаете, что ваше приложение не требует оптимального достижимого уровня эффективности, можно ограничить область значений γ значения, что hinfsyn тесты. Предположим, что вы знаете это γ1.5 достаточно хорошо для вашего приложения. Используя тот же объект как в диспетчере H-бесконечности в качестве примера Синтезисе, вычислите контроллер, использующий целевую область значений эффективности [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     1.7e-20     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 object. The axes object 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) должно быть stabilizable, и (A, C 2) должно быть обнаруживаемым. Для метода Riccati по умолчанию объект далее ограничивается в том, что 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.

Дополнительные данные о синтезе, возвращенные как структура или [] (если заданный уровень эффективности не достижим). Для находящегося в Riccati метода синтеза по умолчанию, 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 и соответствующие решения для LMI R и SИспользование hinfsynOptions изменить метод синтеза.)

Больше о

свернуть все

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

В общем случае решение проблемы оптимального управления нормы по бесконечности является групповым. Контроллер возвращен hinfsyn только одно конкретное решение, K. Для находящегося в Riccati метода по умолчанию, 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 использует 2D-Riccati формулы ([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, который запускается с высоких и низких оценок γ и выполняет итерации на значениях γ, чтобы приблизиться к оптимальному H система управления.

В каждом значении γ алгоритм тестирует значение γ, чтобы определить, существует ли решение. В находящемся в Riccati методе алгоритм вычисляет самый маленький уровень эффективности, для которого стабилизировавшиеся решения Riccati 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)))

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

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

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

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

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

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

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

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

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

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

Поведение изменяется в R2018b

Ссылки

[1] Перчаточник, К., и Дж.К. Дойл. "Формулы пространства состояний для всех контроллеров стабилизации, которые удовлетворяют H связанная норма и отношения, чтобы рискнуть чувствительностью". Systems & Control Letters, Издание 11, Номер 8, 1988, стр 167–172.

[2] Дойл, J.C. K. Перчаточник, П. Харгонекэр, и Б. Фрэнсис. "Решения пространства состояний стандартного H2 и H управляют проблемами". Транзакции IEEE на Автоматическом управлении, Vol 34, Номере 8, август 1989, стр 831–847.

[3] Сафонов, M.G., D.J.N. Limebeer и Р.И. Чанг. "Упрощая H Теория через Перемену Цикла, Матричные Концепции Карандаша и Дескриптора". Int J. Противоречие, Издание 50, Номер 6, 1989, стр 2467-2488.

[4] Паккард, A., К. Чжоу, П. Пэнди, Дж. Леонхардсон и Г. Бэлас. "Оптимальное, постоянное подобие ввода-вывода, масштабирующееся для полной информации и проблем обратной связи состояния". Systems & Control Letters, Издание 19, Номер 4, 1992, стр 271–280.

[5] Gahinet, P. и П. Апкэриэн. "Линейный матричный подход неравенства к -управлению H". Int J. Устойчивое и Нелинейное Управление, Издание 4, Номер. 4, 1994, стр 421–448.

[6] Iwasaki, T. и Р. Скелтон. "Все контроллеры для проблемы -управления генерала Х: условия существования LMI и формулы пространства состояний". Automatica, Издание 30, Номер 8, 1994, стр 1307–1317.

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