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]);

Для контроллеров, которые являются близко к оптимальной производительности, усиления контроллера могут иногда становиться большими. Если вы знаете, что ваше приложение не требует оптимального достижимого уровня производительности, можно ограничить область значений γ значения, что 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     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     1.7e-20     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))

Вычислите новый контроллер для той же системы без 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 синтез, смотрите Устойчивое Управление Активной Приостановки. Для получения дополнительной информации смотрите mixsyn.

Условия на 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), который делает

Ty1u1глотокωσ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. Затем используйте форму наблюдателя контроллера, чтобы обновить переменные контроллера, когда переменные планирования изменяются.

Алгоритмы

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

Энтропия = γ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