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, модель 9-го порядка блока главного диска (HDA) в жестком диске.

load hinfstruct_demo G
bode(G), grid

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

Во-первых, создайте настраиваемые элементы. Используйте tunablePID класс, чтобы параметрировать блок PI и задать фильтр F(s) как передаточная функция в зависимости от настраиваемого действительного параметра 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:

rng('default')
opt = hinfstructOptions('Display','final','RandomStart',5);
T = hinfstruct(T0,opt);
Final: Peak gain = 3.88, Iterations = 67
Final: Peak gain = 596, Iterations = 206
       Some closed-loop poles are marginally stable (decay rate near 1e-07)
Final: Peak gain = 597, Iterations = 168
       Some closed-loop poles are marginally stable (decay rate near 1e-07)
Final: Peak gain = 3.88, Iterations = 64
Final: Peak gain = 1.56, Iterations = 96
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')

0dB частота среза и полная форма цикла как ожидалось. Для последующего анализа результата смотрите Синтез 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 модель

Для получения дополнительной информации и примеры создания настраиваемых моделей, см. Модели с Настраиваемыми Коэффициентами в Руководстве пользователя Control System Toolbox™.

C0 может быть модель непрерывного времени или дискретного времени, пока соответствия шага расчета тот из P.

Опции алгоритма в виде hinfstructOptions опции установлены. Для получения информации о доступных параметрах смотрите hinfstructOptions.

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

свернуть все

Настроенная версия обобщенного пространства состояний (genss) модель 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] П. Апкэриэн и Д. Нолл, "Несглаженный Синтез H-бесконечности", Транзакции IEEE на Автоматическом управлении, Издании 51, Номере 1, 2006, стр 71-86.

[2] Bruisma, Н.Э. и М. Стейнбач, "Алгоритм FAST, чтобы Вычислить -норму H Матрицы Передаточной функции", Системные Буквы Управления, 14 (1990), стр 287-293.

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

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