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 Form, как на следующем рисунке.

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 может быть один настраиваемый компонент (например, Блок Системы управления или a genss модель) или массив ячеек нескольких настраиваемых компонентов. C параметрический массив моделей или массив ячеек параметрических моделей того же типа или вводит как C0.

Примеры

свернуть все

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

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

load hinfstruct_demo G
bode(G), grid

Figure contains 2 axes objects. Axes object 1 with title From: u To: y contains an object of type line. This object represents G. Axes object 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 модель.

Затем опишите цели проекта как веса на модели объекта управления и добавьте их к системе с обратной связью. По причинам, описанным подробно в Синтезе Fixed-Structure H-infinity с 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);

Как обсуждено в Синтезе Fixed-Structure H-infinity с 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 = 185
       Some closed-loop poles are marginally stable (decay rate near 1e-07)
Final: Peak gain = 597, Iterations = 184
       Some closed-loop poles are marginally stable (decay rate near 1e-07)
Final: Peak gain = 3.88, Iterations = 71
Final: Peak gain = 1.56, Iterations = 103
Final: Peak gain = 1.56, Iterations = 100

Лучшее усиление с обратной связью - приблизительно 1,56, таким образом, ограничение T<1 почти удовлетворен. hinfstruct команда возвращает настроенную передачу с обратной связью T(s). Чтобы подтвердить проект, постройте настроенный ответ разомкнутого контура L = F*G*C и сравните, это с целевым циклом формирует LS. Вычислить L, используйте getBlockValue получить настроенное значение C(s) и используйте getValue оценивать фильтр F(s) для настроенного значения 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 objects. Axes object 1 with title From: yn To: y contains 2 objects of type line. These objects represent Target, Actual. Axes object 2 contains 2 objects of type line. These objects represent Target, Actual.

Частота среза на 0 дБ и полная форма цикла как ожидалось. Для последующего анализа результата смотрите Синтез Fixed-Structure H-infinity с hinfstruct.

Входные параметры

свернуть все

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

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

Фиксированные элементы архитектуры управления в виде числовой модели LTI, такие как пространство состояний (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® модель вашей системы управления и имеет Simulink Control Design™, использует 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] и сохранение структуры eigensolvers от библиотеки SLICOT. Для получения дополнительной информации о библиотеке SLICOT, см. http://slicot.org.

Ссылки

[1] Apkarian, Пьер и Доминикус Нолл. "Не сглаживайте H Синтез". Транзакции IEEE на Автоматическом управлении, 51, № 1 (январь 2006): 71–86. https://doi.org/10.1109/TAC.2005.860290.

[2] Bruinsma, N.A., и М. Стейнбач. "Алгоритм FAST, чтобы Вычислить H Норма Матрицы Передаточной функции". Systems & Control Letters, 14, № 4 (апреля 1990): 287–93. https://doi.org/10.1016/0167-6911 (90) 90049-Z.

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

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