exponenta event banner

hinfstruct

H∞ настройка контроллеров фиксированной структуры

Описание

hinfstruct команда расширяет классический синтез H∞ (см. hinfsyn) к системам управления стационарной структурой. Если вы не знакомы с конструкцией функций взвешивания для определения требований к конструкции для синтеза H∞, используйте systune или looptune вместо этого.

пример

CL = hinfstruct(CL0) настраивает свободные параметры настраиваемого genss модель CL0. Эта настройка минимизирует H∞ норму функции передачи с замкнутым контуром, смоделированную CL0. Модель CL0 представляет собой замкнутую систему управления, которая включает в себя перестраиваемые компоненты, такие как контроллеры или фильтры. CL0 также могут включать функции взвешивания, которые отражают требования к конструкции.

пример

[CL,gamma,info] = hinfstruct(CL0) прибыль gamma (минимальная норма H∞) и структура данных info с дополнительной информацией о каждом запуске оптимизации.

пример

[CL,gamma,info] = hinfstruct(CL0,options) задает дополнительные параметры для оптимизатора с помощью hinfstructOptions.

[C,gamma,info] = hinfstruct(P,C0,options) настраивает блоки параметрических контроллеров C0. Эта настройка минимизирует H∞ норму системы с замкнутым контуром CL0 = lft(P,C0). Чтобы использовать этот синтаксис, выражайте требования к системе управления и конструкции как модель стандартной формы, как показано на следующей иллюстрации.

Standard LFT structure for H-infinity synthesis. The plant, P, has inputs {w,u} and outputs {z,y}. The controller, with inputs y and outputs u, is in block-diagonal form where the diagonal elements C1, C2, …, CN are tunable.

P - числовая модель LTI, включающая фиксированные элементы архитектуры управления. P также могут включать функции взвешивания, которые отражают требования к конструкции. C0 может быть одним настраиваемым компонентом (например, контрольным конструкторским блоком или genss модель) или массив ячеек из нескольких перестраиваемых компонентов. C - параметрическая модель или массив ячеек параметрических моделей того же типа или типов, что и C0.

Примеры

свернуть все

Настройте элементы контроллера следующей системы управления.

Элементы управления: C, который является PI контроллер с двумя свободными параметрами, и F, который является фильтром нижних частот в тракте обратной связи с одним свободным параметром. В этом примере загрузите завод. G, модель девятого порядка узла головного диска (HDA) на жестком диске.

load hinfstruct_demo G
bode(G), grid

Figure contains 2 axes. Axes 1 with title From: u To: y contains an object of type line. This object represents G. Axes 2 contains an object of type line. This object represents G.

Настроить свободные параметры данной системы управления так, чтобы положение головки y отслеживает изменение шага r при времени отклика около 1 мс, незначительном превышении или отсутствии переполнения и отсутствии стационарной ошибки.

Сначала создайте настраиваемые элементы. Использовать tunablePID объект для параметризации блока PI и задания фильтра F0 как передаточная функция в зависимости от настраиваемого вещественного параметра a.

C0 = tunablePID('C','pi');  

a = realp('a',1); 
F0 = tf(a,[1 a]);

F0 является genss модель.

Затем следует выразить цели проектирования в виде весов в модели установки и добавить их в систему с замкнутым контуром. По причинам, подробно описанным в разделе «Синтез H-бесконечности фиксированной структуры» (Fixed-Structure H-infinity Synthesis with hinfstruct), следующая конфигурация функций взвешивания обеспечивает требования к конструкции для этой проблемы.

Здесь, LS - желаемая форма отклика с разомкнутым контуром L (s) = F (s) G (s) C (s).

wc = 1000;  % target crossover
s = tf('s');
LS = (1+0.001*s/wc)/(0.001+s/wc);

Как обсуждалось в разделе «Синтез с фиксированным строением H-бесконечности» (Fixed-Structure H-infinity Synthesis with hinfstruct), требования к конструкции удовлетворяются, если Η∞ норма этой структуры управления меньше 1.

Использовать connect для построения genss модель, представляющая эту структуру управления.

% Label the block I/Os
Wn = 1/LS;  Wn.u = 'nw';  Wn.y = 'n';
We = LS;    We.u = 'e';   We.y = 'ew';
C0.u = 'e';   C0.y = 'u';
F0.u = 'yn';  F0.y = 'yf';

% Specify summing junctions
Sum1 = sumblk('e = r - yf');
Sum2 = sumblk('yn = y + n');

% Connect the blocks together
T0 = connect(G,Wn,We,C0,F0,Sum1,Sum2,{'r','nw'},{'y','ew'});

Теперь вы можете использовать hinfstruct для поиска настроенных значений настраиваемых параметров в C0 и F0 которые минимизируют Η∞ норму T0. Чтобы снизить риск нахождения локальных минимумов, выполните шесть оптимизаций, начатых из рандомизированных начальных значений для C0 и F0. RandomStart вариант hinfstructOptions указывает, сколько дополнительных оптимизаций должно выполняться сверх значения по умолчанию.

rng('default')
opt = hinfstructOptions('Display','final','RandomStart',5);
T = hinfstruct(T0,opt);
Final: Peak gain = 3.88, Iterations = 67
Final: Peak gain = 597, Iterations = 191
       Some closed-loop poles are marginally stable (decay rate near 1e-07)
Final: Peak gain = 108, Iterations = 49
       Some closed-loop poles are marginally stable (decay rate near 1e-07)
Final: Peak gain = 1.91, Iterations = 91
Final: Peak gain = 1.56, Iterations = 97
Final: Peak gain = 1.56, Iterations = 94

Наилучший коэффициент усиления по замкнутому контуру составляет около 1,56, поэтому ограничение T‖∞<1 почти удовлетворено. hinfstruct возвращает настроенные T (ы) передачи по замкнутому циклу. Для проверки проекта постройте график настроенного отклика с разомкнутым контуромL = F*G*C и сравнить его с целевой формой петли LS. Вычислить L, использовать getBlockValue для получения настроенного значения C (s) и использованияgetValue чтобы вычислить фильтр F (ы) для настроенного значения a.

C = getBlockValue(T,'C');
F = getValue(F0,T.Blocks);  % Propagate tuned parameters from T to F

L = G*C*F;
bode(LS,'r--',G*C*F,'b',{1e1,1e6}), grid, 
title('Open-Loop Response'), legend('Target','Actual')

Figure contains 2 axes. Axes 1 with title From: yn To: y contains 2 objects of type line. These objects represent Target, Actual. Axes 2 contains 2 objects of type line. These objects represent Target, Actual.

Частота пересечения 0 дБ и общая форма контура соответствуют ожидаемым. Дальнейший анализ результата см. в разделе Синтез фиксированной структуры H-бесконечности с hinfstruct.

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

свернуть все

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

CL0 включает в себя как фиксированные, так и перестраиваемые компоненты системы управления. Вы представляете перестраиваемые компоненты системы управления с помощью перестраиваемых блоков проектирования управления, которые хранятся в CL0.Blocks имущества genss модель. Дополнительные сведения о построении этой обобщенной модели см. в разделе Создание настраиваемой модели с замкнутым контуром для настройки с помощью hinfstruct. hinfstruct настраивает настраиваемые элементы CL0 свести к минимуму H∞ норму.

Фиксированные элементы архитектуры управления, определенные как числовая модель LTI, например state-space (ss) модель. P - установка (наряду с любыми функциями взвешивания для отражения требований к конструкции), которая является результатом выражения вашей системы в стандартной форме, втягивания любых настраиваемых элементов в блок-диагональный контроллер, как показано на следующей схеме.

Standard LFT structure for H-infinity synthesis. The plant, P, has inputs {w,u} and outputs {z,y}. The controller, with inputs y and outputs u, is in block-diagonal form where the diagonal elements C1, C2, …, CN are tunable.

Вы можете получить P двумя способами:

  • В MATLAB ® смоделировать фиксированные элементы системы управления в виде цифровых моделей LTI. Затем используйте функции построения блок-схем (например, connect и feedback) для построения P из смоделированных компонентов. Кроме того, включите любые функции взвешивания, которые отражают требования проекта.

  • При наличии модели системы управления Simulink ® и Design™ управления Simulink используйтеlinlft (Simulink Control Design) для получения линейной модели фиксированных элементов системы управления. linlft команда линеаризует модель Simulink, исключая указанные блоки Simulink (блоки, представляющие элементы контроллера, которые требуется настроить). При использовании функций взвешивания для представления проектных требований соедините их последовательно с линейной моделью завода для получения P.

P может быть моделью непрерывного или дискретного времени. Через дискретное время должно быть указано время выборки (Ts ≠ -1), и должно соответствовать времени выборки C0.

Настраиваемые элементы архитектуры управления в стандартной форме, указанные как одно из следующих:

  • Настраиваемый блок управления, такой как tunableSS, tunableGain, или tunablePID

  • Обобщённое состояние-пространство (genss)

  • Массив ячеек, в котором каждая запись является настраиваемым блоком или genss модель

Дополнительные сведения и примеры создания настраиваемых моделей см. в разделе Модели с настраиваемыми коэффициентами.

C0 может быть моделью непрерывного или дискретного времени, если время выборки соответствует P.

Параметры алгоритма, указанные как hinfstructOptions набор опций. Сведения о доступных параметрах см. в разделе hinfstructOptions.

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

свернуть все

Настроенная замкнутая система, возвращаемая как обобщенное состояние-пространство (genss) модель. CL является настроенной версией CL0.

hinfstruct команда настраивает свободные параметры CL0 достижение минимальной нормы H∞. CL.Blocks содержит те же блоки конструкции управления, что и CL0.Blocks, за исключением того, что в CLпараметры имеют настроенные значения.

Для доступа к настроенным значениям параметров используйте getValue. Вы также можете получить доступ к ним непосредственно в CL.Blocks.

Настроенные элементы контроллера, возвращаемые как настраиваемый блок управления, genss модель или массив ячеек из настраиваемых блоков или настраиваемых моделей. C возвращается в том же формате, что и C0, и содержит те же настраиваемые блоки, за исключением того, что в Cпараметры имеют настроенные значения.

Лучше всего достигается H∞ норма системы с замкнутым контуром, возвращаемая как положительный скаляр.

При установке hinfstructOptions выбор RandomStarts до ненулевого значения, hinfstruct выполняет более одного прогона минимизации. В этом случае gamma является наименьшей нормой H∞, достигнутой на всех пробегах.

Подробные результаты каждого прогона оптимизации, возвращаемые в виде структуры или массива структуры, если hinfstructOptions выбор RandomStarts имеет ненулевое значение. В этом случае каждая запись в массиве является структурой результатов для соответствующего прогона оптимизации. Поля info являются:

  • Objective - Минимальное значение H∞ нормы для каждого прогона. Когда RandomStarts = 0, Objective = gamma.

  • Iterations - количество итераций перед сходимостью для каждого прогона.

  • TunedBlocks - Настроенные блоки управления для каждого прогона. TunedBlocks отличается от C в том, что C содержит только результат из наилучшего прогона. Когда RandomStarts = 0, TunedBlocks = C.

Совет

  • hinfstruct связано с hinfsyn, которая также использует H∞ методы для проектирования контроллера для установки MIMO. Однако, в отличие от hinfstruct, hinfsyn не накладывает никаких ограничений на структуру и порядок контроллера. По этой причине hinfsyn всегда возвращает меньший gamma чем hinfstruct. Таким образом, можно использовать hinfsyn для получения нижней границы по наилучшей достижимой производительности.

  • Используя hinfstruct требует некоторого знания H∞ методов. Требования к конструкции должны выражаться в виде функций взвешивания частоты на входах и выходах установки, как описано в разделе Формулирование требований к конструкции как ограничения H-бесконечности. Для более простого подхода к настройке фиксированной структуры используйте systune или looptune.

Алгоритмы

hinfstruct для обеспечения стабильности по замкнутому контуру и минимизации H∞ нормы в зависимости от перестраиваемых параметров используются специализированные методы нечеткой оптимизации. Эти методы основаны на работе в [1].

hinfstruct вычисляет норму H∞ с помощью алгоритма [2] и сохраняющих структуру собственных решателей из библиотеки SLICOT. Дополнительные сведения о библиотеке SLICOT см. в разделе http://slicot.org.

Ссылки

[1] Апкарян, Пьер и Доминик Ноль. «Некрасивый синтез H∞IEEE Transactions on Automatic Control, 51, No 1 (январь 2006): 71-86. https://doi.org/10.1109/TAC.2005.860290.

[2] Брюинсма, Н. А. и Мартен Стейнбух. «Быстрый алгоритм вычисления H∞-Norm матрицы передаточной функции». Системные контрольные письма, 14, № 4 (1 апреля 1990 г.): 287-93. https://doi.org/10.1016/0167-6911 (90) 90049-Z .

Расширенные возможности

Представлен в R2010b