looptune

Настройка циклов обратной связи с фиксированной структурой

Синтаксис

[G,C,gam] = looptune(G0,C0,wc)
[G,C,gam] = looptune(G0,C0,wc,Req1,...,ReqN)
[G,C,gam] = looptune(...,options)
[G,C,gam,info] = looptune(...)

Описание

[G,C,gam] = looptune(G0,C0,wc) настраивает цикл обратной связи

для удовлетворения следующих требований по умолчанию:

  • Шумовая полоса - перекрестный коэффициент усиления для каждого цикла падает в частотном интервале wc

  • Эффективность - Интегральное действие на частотах ниже wc

  • Робастность - Достаточные запасы устойчивости и наклон усиления на частотах выше wc

Настраиваемое genss модели C0 задает структуру контроллера, параметры и начальные значения. Модель G0 задает объект. G0 может быть числовой моделью LTI, или, для совместной настройки объекта управления и контроллера, настраиваемой genss модель. Сигналы датчика y (измерения) и сигналы привода u (управляет) задает контур между объектом и контроллером.

Примечание

Для настройки Simulink® модели с looptune, использование slTuner (Simulink Control Design), чтобы создать интерфейс к вашей модели Simulink. Затем можно настроить систему управления с looptune (Simulink Control Design) для slTuner (требует Simulink Control Design™).

[G,C,gam] = looptune(G0,C0,wc,Req1,...,ReqN) настраивает цикл обратной связи, чтобы удовлетворить дополнительные требования проекта, указанные в одном или нескольких объектах цели настройки Req1,...,ReqN. Опускание wc использовать требования, указанные в Req1,...,ReqN вместо явной целевой частоты среза и требований к эффективности и робастности по умолчанию.

[G,C,gam] = looptune(...,options) задает дополнительные опции, включая целевой запас по амплитуде, целевой запас по фазе и вычислительные опции для алгоритма настройки.

[G,C,gam,info] = looptune(...) возвращает структуру info с дополнительной информацией о настроенном результате. Использование info с loopview команда для визуализации ограничений настройки и проверки настроенного проекта.

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

G0

Числовая модель LTI или настраиваемая genss модель, представляющая объект в системе управления для настройки.

Объект является фрагментом системы управления, выходами которой являются сигналы датчика (измерения) и входами которой являются сигналы привода (управления). Использовать connect для создания G0 из отдельных числовых или настраиваемых компонентов.

C0

Обобщенная модель LTI, представляющая контроллер. C0 задает структуру контроллера, параметры и начальные значения.

Контроллер является фрагментом вашей системы управления, которая получает сигналы датчика (измерения) в качестве входов и выдает сигналы привода (управления) в качестве выходов. Используйте Систему управления Blocks и Обобщенные модели LTI, чтобы представлять настраиваемые компоненты контроллера. Использовать connect для создания C0 из отдельных числовых или настраиваемых компонентов.

wc

Вектор, задающий целевую область пересечения [wcmin,wcmax]. looptune команда пытается настроить все циклы в системе управления так, чтобы коэффициент усиления без разомкнутого контура пересек 0 дБ в пределах целевой области пересечения.

Скалярное wc задает целевую область пересечения [wc/2,2*wc].

Req1,...,ReqN

Один или несколько TuningGoal объекты, определяющие требования проекта, такие как TuningGoal.Tracking, TuningGoal.Gain, или TuningGoal.LoopShape.

options

Набор опций для looptune алгоритм, заданный как looptuneOptions. Посмотрите looptuneOptions для получения информации о доступных опциях, включая целевой запас по амплитуде и запас по фазе.

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

G

Настроенный объект.

Если G0 является числовой моделью LTI, G то же, что и G0.

Если G0 является настраиваемым genss модель, G является genss модель с блоками Система Управления того же числа и типов, что и G0. Текущее значение G является настроенным объектом.

C

Настроенный контроллер. C является genss модель с блоками Система Управления того же числа и типов, что и C0. Текущее значение C - настроенный контроллер.

gam

Параметр, указывающий на степень успеха при удовлетворении всех ограничений настройки. Значение   gam <= 1 указывает, что все требования удовлетворены.   gam >> 1 указывает на отказ по крайней мере одному требованию. Использовать loopview визуализация настроенного результата и выявление неудовлетворенных требований.

Для достижения наилучших результатов используйте RandomStart опция в looptuneOptions для получения нескольких запусков минимизации. Настройка RandomStart в целое число N > 0 причины looptune чтобы запустить N оптимизации дополнительное время, начиная со значений параметров, которое оно выбирает случайным образом. Можно изучить gam для каждого запуска, чтобы помочь определить результат оптимизации, который удовлетворяет вашим требованиям проекта.

info

Данные для проверки результатов настройки, возвращенные как структура. Как использовать данные в info, используйте команду loopview(G,C,info) для визуализации ограничений настройки и проверки настроенного проекта.

info содержит следующие данные настройки:

Di,Do

Оптимальные входные и выходные масштабирования, возвращенные как модели пространства состояний. Масштабируемый объект определяется Do\G*Di.

Specs

Проекты, которые looptune создает для своего вызова функцию systune для настройки (см. Алгоритмы), возвращенный как вектор TuningGoal объекты требований.

Runs

Подробная информация о каждом запуске оптимизации, выполненном systune при вызове looptune для настройки (см. Алгоритмы), возвращенной как структура данных.

Содержимое Runs являются ли info выход вызова на systune. Для получения информации о полях Runs, см. info описание выходного аргумента на systune страница с описанием.

Примеры

Настройте систему управления, представленную на следующем рисунке, чтобы добиться пересечения между 0,1 и 1 рад/мин.

Устройство 2 на 2 объекты G представлен:

G(s)=175s+1[87.886.4108.2109.6].

Контроллер с фиксированной структурой, C, включает три компонента: матрица развязки 2 на 2 D и два ПИ-контроллеров PI_L и PI_V. Сигналы r, y, и e являются векторными сигналами размерности 2.

Создайте числовую модель, которая представляет объект, и настраиваемую модель, которая представляет контроллер. Назовите все входы и выходы как на схеме, так что looptune знает, как соединить объект и контроллер через сигналы управления и измерения.

s = tf('s');
G = 1/(75*s+1)*[87.8 -86.4; 108.2 -109.6];
G.InputName = {'qL','qV'};
G.OutputName = 'y';

D = tunableGain('Decoupler',eye(2));
D.InputName = 'e';
D.OutputName = {'pL','pV'};
PI_L = tunablePID('PI_L','pi');
PI_L.InputName = 'pL';
PI_L.OutputName = 'qL';
PI_V = tunablePID('PI_V','pi'); 
PI_V.InputName = 'pV';
PI_V.OutputName = 'qV'; 
sum1 = sumblk('e = r - y',2);
C0 = connect(PI_L,PI_V,D,sum1,{'r','y'},{'qL','qV'});

wc = [0.1,1];
[G,C,gam,info] = looptune(G,C0,wc);

C является настроенным контроллером, в данном случае a genss модель с теми же типами блоков, что и C0.

Вы можете изучить настроенный результат, используя loopview.

Алгоритмы

looptune автоматически преобразует целевую полосу пропускания, требования к эффективности и дополнительные требования проект в функции взвешивания, которые выражают требования как H∞ задачу оптимизации. looptune затем использует systune оптимизировать настраиваемые параметры для минимизации нормы H∞. Для получения дополнительной информации об алгоритмах оптимизации см. [1].

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

Альтернативы

Для настройки моделей Simulink с looptune, см. slTuner (Simulink Control Design) и looptune (Simulink Control Design) (требует Simulink Control Design).

Вопросы совместимости

расширить все

Поведение изменено в R2016a

Ссылки

[1] P. Apkarian and D. Noll, «Nonsmooth H-infinity Synthesis». Транзакции IEEE по автоматическому управлению, том 51, номер 1, 2006, стр. 71-86.

[2] Bruisma, N.A. and M. Steinbuch, «A Fast Algorithm to Compute the H∞-Norm of a Передаточная Функция Matrix», System Control Letters, 14 (1990), pp. 287-293.

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

Введенный в R2016a