hinfsyn

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

Синтаксис

[K,CL,gamma] = hinfsyn(P,nmeas,ncont)
[K,CL,gamma] = hinfsyn(P,nmeas,ncont,gamTry)
[K,CL,gamma] = hinfsyn(P,nmeas,ncont,gamRange)
[K,CL,gamma] = hinfsyn(___,opts)
[K,CL,gamma,info] = hinfsyn(___)

Описание

пример

[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 и имеет то же количество состояний. Системный = lft(P,K) CL с обратной связью достигает уровня производительности 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