musyn

Устойчивое проектирование контроллера с помощью Mu-Synthesis

Описание

musyn проектирует устойчивый контроллер для неопределенного объекта с помощью итерации D-K, которая комбинирует H синтез (K шаг) с анализом μ (D шаг), чтобы оптимизировать устойчивую производительность с обратной связью.

Можно использовать musyn к:

  • Синтезируйте "черный квадрат" неструктурированные устойчивые контроллеры.

  • Надежно настройте фиксированный порядок или контроллер фиксированной структуры, составленный из настраиваемых компонентов, таких как ПИД-регуляторы, модели в пространстве состояний и статические усиления.

Для получения дополнительной информации о выполнении синтеза μ и интерпретации результатов, смотрите, что Устойчивое Проектирование контроллера Использует Mu-Synthesis.

Полный порядок централизованные контроллеры

пример

[K,CLperf] = musyn(P,nmeas,ncont) возвращает контроллер K это оптимизирует устойчивую производительность неопределенной системы с обратной связью CL = lft(P,K). Объект P неопределенный объект с разделенной формой

[zy]=[P11P12P21P22][wu],

где:

  • w представляет входные параметры воздействия.

  • u представляет входные параметры управления.

  • z представляет ошибку выходные параметры, которые будут сохранены маленьким.

  • y представляет измерение выходные параметры, предоставленные контроллеру.

nmeas и ncont количества сигналов в y и u, соответственно. y и u являются последние выходные параметры и входные параметры P, соответственно. Система с обратной связью CL = lft(P,K) достигает устойчивой производительности CLperf, который является верхней границей μ, устойчивый показатель производительности, вычисленный musynperf.

Для этого синтаксиса, musyn использование hinfsyn для H синтез (шаг K).

[K,CLperf,info] = musyn(P,nmeas,ncont) возвращает дополнительную информацию о каждой итерации D-K.

[K,CLperf,info] = musyn(P,nmeas,ncont,Kinit) инициализирует процесс итерации D-K с контроллером Kinit. Чтобы перезапустить итерацию D-K с помощью результатов j th итерация от предыдущего запуска, используйте Kinit = info(j).K.

[K,CLperf,info] = musyn(___,opts) дополнительные опции использования для итерации D-K и базового hinfsyn расчеты. Используйте musynOptions создать набор опции. Можно использовать этот синтаксис с любой из предыдущих комбинаций аргументов ввода и вывода.

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

пример

[CL,CLperf] = musyn(CL0) оптимизирует устойчивую производительность путем настройки свободных параметров в настраиваемой, неопределенной модели CL0 с обратной связью. genss модель CL0 неопределенная и настраиваемая модель системы с обратной связью, устойчивую производительность которой вы хотите оптимизировать. Модель содержит:

  • Неопределенные блоки системы управления, такие как ureal и ultidyn представлять неопределенность

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

musyn возвращает модель CL с обратной связью с настраиваемой системой управления блокирует набор к настроенным значениям. Лучшая достигнутая устойчивая производительность возвращена как CLperf.

Для этого синтаксиса, musyn использование hinfstruct для H синтез (шаг K).

[CL,CLperf,info] = musyn(CL0) также возвращает дополнительную информацию о каждой итерации D-K.

[CL,CLperf,info] = musyn(CL0,blockvals) инициализирует итерацию D-K с настраиваемыми значениями блока в blockvals. Можно задать значения блока как структуру или путем обеспечения модели с обратной связью, блоки которой настраиваются на значения, которые вы хотите инициализировать. Например, чтобы использовать настроенные значения, полученные в предыдущем musyn запустите, установите blockvalues = CL.

[CL,CLperf,info] = musyn(___,opts) дополнительные опции использования для итерации D-K и базового hinfstruct расчеты. Используйте musynOptions создать набор опции. Можно использовать этот синтаксис с любой из предыдущих комбинаций аргументов ввода и вывода.

[CL,CLperf,info,runs] = musyn(___,opts) также возвращает детали о каждой независимой настройке, запущенной, когда вы используете 'RandomStart' опция musynOptions выполнять дополнительные рандомизированные запуски.

Примеры

свернуть все

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

Номинальная модель объекта управления G0 нестабильная система первого порядка.

G0 = tf(1,[1 -1]);

Неопределенность в G0 следующие:

  • В низкой частоте, ниже 2 рад/с, объект может варьироваться до 25% от своей номинальной стоимости.

  • Приблизительно 2 рад/с, изменение процента начинает увеличиваться, достигая 400% на уровне приблизительно 32 рад/с.

Представляйте зависимую частотой неопределенность модели с весом Wu и неопределенный LTI динамическая неопределенность InputUnc, ultidyn блок системы управления.

Wu = 0.25*tf([1/2 1],[1/32 1]); 
InputUnc = ultidyn('InputUnc',[1 1]);
G = G0*(1+InputUnc*Wu);

musyn ищет контроллер, который оптимизирует устойчивую производительность от входных параметров до выходных параметров. Настраивать эту проблему для musyn, затем, вставьте функцию взвешивания Wp это получает цель подавления помех.

Когда вы предоставляете этому увеличенному объекту P к musyn, функция проектирует контроллер, который управляет передаточной функцией от d к e ниже 1 на всех частотах. Той передаточной функцией является Wp/S, где S = 1 – GK функция чувствительности. Таким образом выберите Wp быть инверсией желаемой чувствительности. В данном примере выберите Wp с:

  • Низкочастотное усиление 100 (40 дБ)

  • Перекрестное соединение на 0 дБ на уровне 0,5 рад/с

  • Высокочастотное усиление 0,25 (12 дБ)

Wp = makeweight(100,[1 0.5],0.25);
bodemag(Wp)

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

G.InputName = 'u';
G.OutputName = 'y1';
Wp.InputName = 'y';
Wp.OutputName = 'e';
SumD = sumblk('y = y1 + d');

inputs = {'d','u'};
outputs = {'e','y'};
P = connect(G,Wp,SumD,inputs,outputs);

Используйте musyn спроектировать контроллер K для этой неопределенной системы.

nmeas = 1;
ncont = 1;
[K,CLperf,info] = musyn(P,nmeas,ncont); 
D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           1.345        1.344         1.36             8
    2          0.7923       0.7904       0.7961             4
    3          0.6789       0.6789       0.6857            10
    4          0.6572       0.6572       0.6598             8
    5          0.6538       0.6538       0.6542             8
    6          0.6532       0.6532       0.6533             8

Best achieved robust performance: 0.653

Отображение показывает, что лучшая достигнутая устойчивая производительность - приблизительно 0,65. Этот результат означает что усиление от d к e остается ниже 0.65 для до 1/0.65 времен неопределенность, заданная на объекте. Таким образом контроллер достигает устойчивых целей производительности для полного спектра смоделированной неопределенности. (Для получения дополнительной информации об интерпретации musyn результаты, смотрите, что Устойчивое Проектирование контроллера Использует Mu-Synthesis.)

Можно исследовать устойчивую производительность с помощью аналитических команд, таких как robgain и wcgainplot. Например, исследуйте усиление худшего случая системы с обратной связью.

CL = lft(P,K);
wcg = wcgain(CL)
wcg = struct with fields:
           LowerBound: 0.5283
           UpperBound: 0.5294
    CriticalFrequency: 0

Этот результат подтверждает, что фактическое усиление худшего случая по смоделированной неопределенности - приблизительно 0,53, который является в устойчивой производительности 0,65 гарантируемых musyn.

Для этой проблемы, контроллер, возвращенный musyn довольно старший разряд.

size(K)
State-space model with 1 outputs, 1 inputs, and 11 states.

Можно попытаться уменьшать порядок контроллера с командами снижения сложности модели, такими как balred или reduce видеть, можно ли обеспечить устойчивую производительность. (Для примера смотрите musynperf страница с описанием.) Или, можно попытаться задать структуру контроллера более низкоуровневую и использовать musyn настроить его. Смотрите Устойчивую Настройку Контроллера Фиксированной Структуры.

Настройте контроллер фиксированной структуры для системы управления в Неструктурированном Устойчивом диспетчере Синтезисе, который показывает, как использовать musyn спроектировать неструктурированный полный порядок централизовало контроллер и возвращает контроллер порядка 11. В данном примере используйте ту же управляющую структуру, как показано в схеме, но ограничьте структуру K к модели в пространстве состояний пятого порядка.

Во-первых, создайте тот же объект P как в Неструктурированном Устойчивом диспетчере Синтезисе. Объект является неопределенным объектом G увеличенный функцией взвешивания чувствительности Wp.

G0 = tf(1,[1 -1]);
Wu = 0.25*tf([1/2 1],[1/32 1]); 
InputUnc = ultidyn('InputUnc',[1 1]);
G = G0*(1+InputUnc*Wu);
G.InputName = 'u';
G.OutputName = 'y1';

Wp = makeweight(100,[1 0.5],0.25);
Wp.InputName = 'y';
Wp.OutputName = 'e';

SumD = sumblk('y = y1 + d');
inputs = {'d','u'};
outputs = {'e','y'};
P = connect(G,Wp,SumD,inputs,outputs);

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

C0 = tunableSS('K',5,1,1);

Сформируйте систему с обратной связью, которая является обобщенным пространством состояний (genss) модель, которая имеет и настраиваемый блок и неопределенный блок.

CL0 = lft(P,C0)
CL0 =

  Generalized continuous-time state-space model with 1 outputs, 1 inputs, 8 states, and the following blocks:
    InputUnc: Uncertain 1x1 LTI, peak gain = 1, 1 occurrences
    K: Parametric 1x1 state-space model, 5 states, 1 occurrences.

Type "ss(CL0)" to see the current value, "get(CL0)" to see all properties, and "CL0.Blocks" to interact with the blocks.

Используйте musyn настроить свободные входы контроллера.

[CL,CLperf,info] = musyn(CL0);
D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           1.342        1.341        1.356            10
    2           0.796       0.7942       0.7996             6
    3          0.6789       0.6644        0.671             8
    4          0.6591        0.654       0.6615            10
    5          0.6577       0.6512       0.6591             8
    6          0.6572       0.6538       0.6586             6

Best achieved robust performance: 0.651

Даже когда вы задаете структуру K как модель в пространстве состояний пятого порядка, musyn может найти настроенные значения параметров, которые дают к очень похожей устойчивой производительности контроллеру 11-го порядка. Можно попробовать еще более низкие порядки контроллера видеть, сохраняется ли устойчивая устойчивость.

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

свернуть все

Неопределенный объект, заданный как неопределенное пространство состояний (uss) модель. P имеет входные параметры [w; u] и выходные параметры [z; y], где:

  • w представляет входные параметры воздействия.

  • u представляет входные параметры управления.

  • z представляет ошибку выходные параметры, которые будут сохранены маленьким.

  • y представляет измерение выходные параметры, предоставленные контроллеру.

Создайте P таким образом, что измерением выходные параметры y являются последние выходные параметры, и входные параметры управления u, последние входные параметры.

P может опционально содержать функции взвешивания (формирующий фильтры цикла), которые представляют цели управления, которым вы хотите, чтобы контроллер надежно удовлетворил. Для подробного примера, который создает такой увеличенный объект для синтеза μ, смотрите Устойчивое Управление Активной Приостановки.

Количество выходных сигналов измерения на объекте, заданном как неотрицательное целое число. Функция берет последний nmeas объект выходные параметры как измерения y. Возвращенный контроллер K имеет nmeas входные параметры.

Количество входных сигналов управления на объекте, заданном как неотрицательное целое число. Функция берет последний ncont объект вводит как средства управления u. Возвращенный контроллер K имеет ncont выходные параметры .

Начальное значение контроллера, заданного как модель динамической системы, такая как пространство состояний (ss) модель. По умолчанию, musyn начинается путем вычисления H контроллер для номинальной системы. Используйте Kinit запускаться с различного контроллера. Установка Kinit = info(j).K использует контроллер, вычисленный в j th D-K итерация musyn запуститесь это произвело info.

Одно использование этого входного параметра должно продолжить выполнять итерации после musyn достигает максимального количества итераций, заданных 'MaxIter' опция musynOptions. Если отображение показывает тот musyn все еще делает успехи, когда это прекращает выполнять итерации, можно запустить musyn снова, начиная с последнего синтезируемого контроллера, чтобы видеть, как намного больше musyn может улучшать устойчивую производительность.

Дополнительные опции для расчета, заданного как, опции возражают, что вы создаете использование musynOptions. Доступные параметры включают следующее:

  • Включите полное отображение прогресса алгоритма, который делает паузу после каждой итерации D-K так, чтобы можно было исследовать промежуточные результаты.

  • Используйте смешал синтез μ, чтобы обработать действительные неопределенные параметры как действительные, а не как комплекс, для менее консервативного и возможно большего количества устойчивого контроллера.

  • Установите максимальные порядки для функций, используемых, чтобы соответствовать масштабирования G и D.

  • Используйте параллельные вычисления в независимых запусках оптимизации при настройке контроллера фиксированной структуры.

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

Система с обратной связью с настраиваемыми элементами контроллера, указанными как обобщенное пространство состояний (genss) модель и с неопределенными и с настраиваемыми блоками системы управления. Создайте CL0 путем создания и соединения:

  • Числовые модели LTI, представляющие фиксированные компоненты системы управления

  • Неопределенные блоки системы управления, такие как ureal и ultidyn блоки, представляя неопределенные компоненты объекта

  • Дополнительные функции взвешивания LTI (формирующий фильтры цикла), которые представляют цели управления

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

Для примера, который показывает, как создать такую модель, смотрите, Создают Настраиваемую Модель Системы управления Неопределенными Параметрами.

Начальные значения настраиваемых параметров в CL0, заданный как структура или как genss модель. По умолчанию, musyn начинается путем настройки параметров контроллера для номинальной системы. Используйте blockvals запускаться с различного контроллера. Задайте начальные значения параметров как:

  • Структура, поля которой являются именами настраиваемых блоков, и чьи значения являются блоками системы управления, имеющими желаемые текущие значения. Например, если у вас есть настроенная система CL полученный в предыдущем musyn запуститесь, можно инициализировать с настроенными значениями блоков контроллера в CL установкой blockvals = CL.Blocks.

  • genss модель, настраиваемые блоки которой имеют желаемое текущее значение.

Установка blockvals = info(j).K использует настроенные значения, вычисленные в j th D-K итерация musyn запуститесь это произвело info. Например, если у вас есть настроенная система CL, можно инициализировать с его настроенными значениями установкой blockvals = CL. Такая инициализация может быть полезна для продолжения итерации после musyn достигает максимального количества итераций. Если отображение показывает тот musyn все еще делает успехи, когда это прекращает выполнять итерации, можно запустить musyn снова, начиная с последнего синтезируемого контроллера, чтобы видеть, как намного больше musyn может улучшать устойчивую производительность.

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

свернуть все

Контроллер, который дает к устойчивому H производительность CLperf, возвращенный как пространство состояний (ss) модель. У контроллера есть nmeas входные параметры и ncont выходные параметры .

Порядок K зависит от порядка подходящих функций для D и масштабирований G и количества неопределенных блоков в вашей системе. Для получения информации о том, как уменьшать порядок возвращенного контроллера, смотрите, Улучшают Результаты Mu-Synthesis.

Лучше всего достигнутая устойчивая производительность, возвращенная как положительная скалярная величина. musyn попытки оптимизировать контроллер K минимизировать это значение. Усиление с обратной связью от w до z остается ниже CLperf по причине неопределенности 1/CLperf времена неопределенность заданы на объекте. Например, если CLperf 1.125, затем усиление с обратной связью остается ниже 1.125 максимум для 0,8 раза неопределенности, заданной на объекте.

Для получения дополнительной информации о расчете и интерпретации этого количества, смотрите Устойчивый Критерий качества работы для Mu-Synthesis. Для получения информации о том, как улучшать лучшую достигнутую устойчивую производительность, смотрите, Улучшают Результаты Mu-Synthesis.

Детали результатов итерации D-K, возвращенных как массив структур. info(j) содержит результаты j th D-K итерация в запуске. info имеет следующие поля.

Поле Описание
K

Оптимальный контроллер, найденный на шаге K этой итерации, возвратился как пространство состояний (ss) модель или как структура, содержащая настроенные блоки системы управления.

  • Для неструктурированного синтеза контроллера, info(j).K модель в пространстве состояний.

  • Для контроллера фиксированной структуры, настраивающегося, info(j).K структура, имена которой являются именами настраиваемых блоков в CL0. Значения являются настраиваемыми блоками системы управления с набором текущих значений к настроенному значению.

gammaОптимизированный масштабировал H производительность, возвращенная как скаляр. Эта масштабированная производительность достигается оптимальным контроллером info(j).K. Отображение командного окна по умолчанию показывает это значение в K Step столбец. Для получения дополнительной информации о расчете и интерпретации этого количества, смотрите Устойчивый Критерий качества работы для Mu-Synthesis.
KInfo

H данные о синтезе, возвращенные как структура.

  • Для централизованного, контроллер полного порядка синтез, эта структура совпадает с info выходной аргумент hinfsyn.

  • Для контроллера фиксированной структуры, настраивающегося, эта структура совпадает с info выходной аргумент hinfstruct.

PeakMuУстойчивая производительность μ¯ из системы с обратной связью с контроллером info(j).K, возвращенный как значение положительной скалярной величины. Отображение командного окна по умолчанию показывает это значение в Peak MU столбец. Для получения дополнительной информации о расчете и интерпретации этого количества, смотрите Устойчивый Критерий качества работы для Mu-Synthesis.
DG

D и данные о масштабировании G из устойчивого анализа производительности в этой итерации, возвращенной как структура со следующими полями.

  • Frequency — Вектор частот, для которых выполнялся анализ μ

  • Dr, Dc, Gcr — Значения масштабных коэффициентов Dr (ω), Dc (ω) и Gcr (ω) на соответствующих частотах.

Для получения дополнительной информации о D и масштабировании G, смотрите Устойчивый Критерий качества работы для Mu-Synthesis.

dr,dc,PSIРациональный припадок D и данных о масштабировании G, возвращенных как ss модели. Для получения дополнительной информации, о как musyn соответствует масштабирующимся данным, смотрите Устойчивый Критерий качества работы для Mu-Synthesis.
FitOrderПорядки функций, используемых, чтобы приспособить масштабирующиеся данные в этой итерации, возвратились как двухэлементный вектор. Эти две записи являются подходящим порядком для D и масштабирований G, соответственно. Отображение командного окна по умолчанию показывает эти значения в Fit Order столбец.
PeakMuFitМасштабированный H производительность достигается с info(j).K и подходящий D и масштабирования G, возвращенные как скаляр. Отображение командного окна по умолчанию показывает это значение в DG Fit столбец.

Настроенная система с обратной связью, возвращенная как обобщенное пространство состояний genss модель с той же неопределенной и настраиваемой системой управления блокируется как CL0. Текущие значения настраиваемых блоков в CL.Blocks установлены в настроенные значения.

Информация о каждом независимом рандомизированном запуске, возвращенном как массив структур. Используйте этот выход с фиксированной структурой синтез μ, когда вы установите 'RandomStart' опция musynOptions к N> 0. Та опция вызывает musyn выполнять несколько независимых запусков итерации D-K, инициализированных от различных значений параметров контроллера. runs(j) содержит результаты j th независимый перезапуск в следующих полях.

Поле Описание
K

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

muPerfЛучше всего достигнутый устойчивый H ∞ производительность для этого запуска, возвращенного как положительная скалярная величина. Контроллер, что musyn возвращается, когда вы используете несколько запусков, тот для который runs(j).muPerf является самым маленьким.
Info

Детали результатов итерации D-K, возвращенных как массив структур. runs(j).Info содержит поля, соответствующие тем из info выход musyn, для j th запуск.

Советы

Алгоритмы

musyn использует итеративный процесс под названием D-K iteration. В этом процессе, функции:

  1. H использования синтез, чтобы найти контроллер, который минимизирует усиление с обратной связью номинальной системы.

  2. Выполняет анализ робастности, чтобы оценить устойчивый H производительность системы с обратной связью. Эта сумма выражается, как масштабированный H норма, включающая динамические масштабирования, вызвал D и масштабирования G (шаг D).

  3. Находит, что новый контроллер минимизирует масштабированный H норма, полученная на шаге 2 (шаг K).

  4. Шаги 2 и 3 повторений до устойчивой производительности прекращают улучшаться.

Для получения дополнительной информации о том, как этот алгоритм работает, см. Процесс Итерации D-K.

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

Введенный в R2019b

Для просмотра документации необходимо авторизоваться на сайте