umargin

Моделируйте неопределенность усиления и фазы

Описание

Используйте umargin управляйте проектируемым блоком, чтобы смоделировать изменения коэффициента усиления и фазы в циклах обратной связи. Моделирование изменений усиления и фазы в вашей системе позволяет вам проверить запасы устойчивости во время анализа робастности или применить их во время устойчивого проектирования контроллера.

Чтобы добавить неопределенность усиления и фазы в цикл обратной связи, вы включаете umargin блокируется в неопределенное пространство состояний (uss) модель системы с обратной связью. umargin - блок системы управления SISO, представляющий изменение усиления и фазы в одном местоположении в одном цикле обратной связи. Чтобы смоделировать неопределенность усиления и фазы в системах обратной связи MIMO, вставьте отдельную umargin объект в каждом месте в системе, в котором вы хотите ввести неопределенность усиления и фазы.

umargin моделирует изменения усиления и фазы как коэффициент F умножения L отклика без разомкнутого контура. Этот коэффициент принимает значения в диске с центром на действительной оси и содержащем F = 1. Этот диск задается его пересечением DGM = [gmin,gmax] с действительной осью, которая представляет относительную величину изменения усиления вокруг номинального значения F = 1. Чтобы задать как неопределенность усиления, так и фазы, сначала используйте getDGM для получения DGM значение, которое описывает диск, который захватывает и указанный диапазон усиления, и области значений фаз. Для получения дополнительной информации о дисковой модели неопределенности см. Алгоритмы.

Когда у вас есть uss модель, содержащая umargin Система управления блоков можно выполнить анализ робастности и наихудшего случая, чтобы изучить, как изменение усиления и фазы влияет на реакцию системы. Для образца используйте robstab и robgain анализ устойчивой устойчивости и устойчивой эффективности системы с неопределенностью усиления и фазы. Использовать wcgain и wcsigmaplot изучить наихудшие отклики системы.

Требование устойчивой устойчивости для системы с обратной связью с umargin неопределенность усиления и фазы эквивалентна применению дискового запаса по амплитуде [gmin,gmax] и соответствующий запас по фазе. Поэтому можно использовать umargin блоки для обеспечения соответствующих полей диска при разработке устойчивых контроллеров с musyn.

Создание

Описание

пример

F = umargin(name,DGM) моделирует относительную неопределенность усиления в области значений DGM = [gmin,gmax] с gmin < 1 и gmax > 1. Коэффициент усиления, смоделированный F изменяется в этой области значений для фазы, удерживаемой на его номинальном значении. Когда у вас есть неопределенность усиления и фазы, используйте getDGM для поиска соответствующей DGM. Этот синтаксис также устанавливает Name свойство F.

пример

F = umargin(name,GM) то же, что и umargin(name,[1/GM,GM]). Этот синтаксис задает коэффициент усиления, который может увеличиться или уменьшиться на множитель GM при отсутствии фазы неопределенности. Соответствующее количество неопределенности фазы определяется дисковой моделью неопределенности, которая umargin использует (см. Алгоритмы).

F = umargin(___,Name,Value) устанавливает дополнительные свойства F использование пар "имя-значение". Для примера, F = umargin('F',[0.8,1.4],'InputName','u0','OutputName','u') создает umargin Блок и устанавливает имена входа и выхода для использования с connect. Заключайте каждое имя свойства в кавычки.

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

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

Область значений относительных изменений усиления, заданный как двухэлементный вектор вида [gmin,gmax], где gmin < 1 и gmax > 1. Для образца, DGM = [0.8 1.5] означает, что смоделированный коэффициент усиления может варьироваться между 80% и 150% от его номинального значения (то есть изменяться в множителе между 0,8 и 1,5). gmin может быть отрицательным, определяющим область значений относительных изменений усиления, который включает изменение знака.

Смоделированная неопределенность включает соответствующее изменение фазы, определяемое дисковой моделью неопределенности (см. Алгоритмы). Чтобы получить область значений усиления DGM который лучше всего представляет изменение усиления и фазы, которые вы хотите смоделировать, использовать getDGM.

Количество увеличения или уменьшения, заданное как скаляр. Например, если вы используете GM = 2, затем umargin блок представляет усиление, которое может увеличиться или уменьшиться в два раза. umargin(name,GM) эквивалентно umargin(name,[1/GM,GM]). Получившаяся смоделированная неопределенность включает соответствующее изменение фазы, определяемое дисковой моделью неопределенности (см. Алгоритмы).

Свойства

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

Область значений относительных изменений усиления в абсолютных модулях, заданный как двухэлементный вектор вида gmin, gmax, где gmin < 1 и gmax > 1. Для примера GainChange = [0.8,1.5] означает, что коэффициент усиления может варьироваться между 80% и 150% от его номинального значения. gmin может быть отрицательным, что моделирует возможные изменения знака в усилении цикла.

Связь между этим свойством и PhaseChange, DiskMargin, и Skew свойства определяются дисковой моделью неопределенности, которая umargin использует (см. Алгоритмы). Если вы измените значение этого свойства на существующей umargin блок, другие свойства автоматически обновляются.

Это свойство доступно только для чтения.

Количество изменения фазы в степенях, заданное как двухэлементный вектор вида [-pm,pm]. Значение этого свойства определяется значением GainChange и дисковая модель неопределенности, которая umargin использует (см. Алгоритмы).

Пример: [-30,30]

Нормализованный уровень неопределенности, заданный как положительная скалярная величина. Это значение является ɑ параметра, который устанавливает размер диска неопределенности (см. Алгоритмы).

Связь между этим свойством и GainChange, PhaseChange, и Skew свойства определяются дисковой моделью неопределенности, которая umargin использует. Если вы измените значение этого свойства на существующей umargin блок, другие свойства автоматически обновляются.

Пример: 0.5

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

  • Skew = 0 моделирует сбалансированную область значений усиления [gmin,gmax], с gmin = 1/gmax.

  • Положительное Skew моделирует меняющийся коэффициент усиления, который может увеличиться больше, чем может уменьшиться, gmax > 1/gmin). Для образца, GainChange = [0.8,2] соответствует положительному Skew значение, потому что коэффициент усиления может увеличиться на 100%, но уменьшиться только на 20%.

  • Отрицательные Skew моделирует меняющийся коэффициент усиления, который может уменьшаться больше, чем может увеличиться, gmin < 1/gmax. Для образца, GainChange = [0.5,1.2] соответствует отрицательному Skew значение, потому что может уменьшиться на 50%, но увеличиться только на 20%.

Чем больше абсолютное значение Skewчем больше диапазон усиления смещен. Для получения дополнительной информации о Skew и как это влияет на дисковую модель неопределенности, см. Анализ устойчивости с использованием полей диска.

Связь между этим свойством и GainChange, PhaseChange, и DiskMargin свойства определяются дисковой моделью неопределенности, которая umargin использует (см. Алгоритмы). Если вы измените значение этого свойства на существующей umargin блок, другие свойства автоматически обновляются.

Количество состояний в случайных выборках блока, заданное в виде целого числа. Некоторые команды анализа, такие как usample и bode взять случайные выборки неопределенной динамики. Это свойство определяет количество состояний в выборках. Для получения дополнительной информации о том, как работает выборка динамической неопределенности, смотрите Сгенерировать выборки неопределенных систем.

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

Это свойство доступно только для чтения.

Номинальное значение, заданное как модель пространства состояний, представляющая статический коэффициент усиления SISO 1 (A, B, C = 0, D = 1). Номинальное значение umargin блок всегда равен 1 (без изменения коэффициента усиления и фазы) независимо от области значений коэффициента усиления и фазы, которые представляет блок.

Уровень упрощения блока, заданный как 'basic', 'full', или 'off'. В целом, когда вы комбинируете неопределенные элементы, чтобы создать неопределенные модели пространства состояний, программное обеспечение автоматически применяет методы, чтобы исключить избыточные копии неопределенных элементов. (См. simplify.) Используйте это свойство, чтобы задать упрощение для применения при использовании методов арифметики модели или взаимосвязей с неопределенным блоком.

  • 'basic' - Применять элементарный метод упрощения после каждой арифметической или соединительной операции.

  • 'full' - Применить методы, подобные снижению сложности модели.

  • 'off' - Упрощения не выполняйте.

Имя неопределенного элемента, заданное как вектор символов. Когда вы создаете неопределенное пространство состояний (uss или genss) моделируйте используя неопределенные блоки проекта системы управления, программное обеспечение отслеживает блоки, используя имя, заданное вами в этом свойстве, а не имя переменной в MATLAB® рабочей области. Для примера, если вы создаете umargin блокировать, используя F = umargin('um',2), и объедините блок с числовой моделью LTI, Blocks свойство получившегося uss модель приводит список неопределенных блоков проекта системы управления um.

Шаг расчета, заданная как:

  • 0 - Для моделей в непрерывном времени.

  • Положительное скалярное значение - для моделей в дискретном времени. Задайте шаг расчета в модулях, заданных в TimeUnit свойство модели.

  • -1 - Для моделей в дискретном времени с неопределенным шагом расчета.

Изменение этого свойства не приводит к повторной выборке блока.

Моделируйте модули измерения времени, заданные в качестве одного из следующих значений:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

Можно задать TimeUnit использование строки, например "hours", но временные модули хранятся как вектор символов, 'hours'.

Свойства модели, такие как шаг расчета Ts, InputDelay, OutputDelay, и другие временные задержки выражаются в модулях, заданных TimeUnit. Изменение этого свойства не влияет на другие свойства и, следовательно, изменяет общее поведение системы. Использовать chgTimeUnit для преобразования между модулями времени без изменения поведения системы.

Имя входа канала, заданное как массив ячеек, содержащий вектор символов. Можно задать InputName использование вектора символов, такого как F.InputName = 'u', или использование строки, например F.InputName = "u". В любом случае, входное имя сохранено как массив ячеек, содержащий вектор символов, {'u'}.

Модули входного сигнала, заданные как массив ячеек, содержащий вектор символов. Использование InputUnit для отслеживания модулей каждый входной сигнал выражается в. InputUnit не влияет на поведение системы. Можно задать InputUnit использование вектора символов, такого как F.InputUnit = 'V', или использование строки, например F.InputUnit = "V". В любом случае, входное имя сохранено как массив ячеек, содержащий вектор символов, {'V'}.

Входные группы каналов, заданные как структура, где поля являются именами групп, а значения являются индексами входных каналов, принадлежащих соответствующей группе. Потому что umargin блоки всегда SISO, вам не нужно задавать входные группы.

Имя выхода канала, заданное как массив ячеек, содержащий вектор символов. Можно задать OutputName использование вектора символов, такого как F.OutputName = 'y', или использование строки, например F.OutputName = "y". В любом случае имя выхода сохранено как массив ячеек, содержащий вектор символов, {'y'}.

Модули выхода сигнала, заданная как массив ячеек, содержащий вектор символов. Использование OutputUnit для отслеживания модулей каждый выходной сигнал выражается в. OutputUnit не влияет на поведение системы. Можно задать OutputUnit использование вектора символов, такого как F.OutputUnit = 'V', или использование строки, например F.OutputUnit = "V". В любом случае имя выхода сохранено как массив ячеек, содержащий вектор символов, {'V'}.

Выходы каналов, заданные как структура, где поля являются именами групп, а значения являются индексами входных каналов, принадлежащих соответствующей группе. Потому что umargin блоки всегда SISO, вам не нужно задавать выходные группы.

Текстовые заметки о модели, сохраненные как строка или массив ячеек из векторов символов. Свойство сохраняет любой из этих двух типов данных, которые вы предоставляете. Например, предположим, что sys1 и sys2 Динамической системой модели и установите их Notes свойства для строки и вектора символов, соответственно.

sys1.Notes = "sys1 has a string.";
sys2.Notes = 'sys2 has a character vector.';
sys1.Notes
sys2.Notes
ans = 

    "sys1 has a string."


ans =

    'sys2 has a character vector.'

Данные любого рода, которые вы хотите связать и хранить с моделью, заданные как любой тип данных MATLAB.

Функции объекта

Многие функции, которые работают с числовыми моделями LTI, также работают с неопределенными блоками системы управления, такими как umargin. Они включают функции соединения моделей, такие как connect и feedback, и функции линейного анализа, такие как bode и stepinfo. Некоторые функции, которые генерируют графики, такие как bode и step, постройте случайные выборки неопределенной модели, чтобы дать вам ощущение распределения неопределенной динамики. Однако при использовании этих команд для возврата данных они работают только с номинальным значением системы. Следующие списки содержат репрезентативное подмножество функций, с которыми можно использовать umargin модели.

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

feedbackCоединение обратной связи многих моделей
connectБлок взаимосвязей динамических систем
seriesПоследовательное соединение двух моделей
parallelПараллельное соединение двух моделей
uscaleМасштабная неопределенность блока или системы
plot (umargin)Визуализация неопределенности усиления и фазы umargin блок
usampleСгенерируйте случайные выборки неопределенной или обобщенной модели
usubsПодстановка заданных значений для неопределенных элементов неопределенных объектов
stepПереходный процесс динамической системы; переходные характеристики
bodeДиаграмма Боде частотной характеристики, или данные величины и фазы

Примеры

свернуть все

Создайте модель цикла управления SISO с неопределенностью усиления ± 6 дБ и неопределенностью фазы ± 30 °. Используйте передаточную функцию без разомкнутого контура

L=3.5s3+2s2+3s.

L = tf(2.5,[1 2 3 0]);

Чтобы смоделировать неопределенность, сначала используйте getDGM для преобразования изменения коэффициента усиления и фазы в дисковую область значений запаса по амплитуде. Поскольку коэффициент усиления может увеличиться или уменьшиться на ту же величину, можно использовать 'balanced' опция для моделирования диска неопределенности, который симметричен вокруг номинального значения.

GM = db2mag(6);
PM = 30;
DGM = getDGM(GM,PM,'balanced')
DGM = 1×2

    0.5012    1.9953

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

F = umargin('F',DGM)
F = 
  Uncertain gain/phase "F" with relative gain change in [0.501,2] and phase change of ±36.8 degrees.

F представляет наименьший диск неопределенности, который может захватывать и целевой коэффициент усиления, и изменение фазы. Фактическое изменение фазы, смоделированное F немного больше целевой области значений ± 30 °. Чтобы визуализировать полную область значений изменений усиления и фазы, представленных F, включая одновременные изменения коэффициента усиления и фазы, используйте plot.

plot(F)

Figure contains 2 axes. Axes 1 with title Range of gain and phase variations contains 5 objects of type patch, text, line. Axes 2 with title Values of multiplicative factor F contains 8 objects of type patch, line, text.

Правый график показывает область значений значений в комплексной плоскости, который имеет мультипликативный коэффициент F может взять. Размер диска определяет количество изменений. Затененная область на левом графике показывает одновременные изменения усиления и фазы, охватываемые F. Для получения дополнительной информации об этой модели неопределенности см. Анализ устойчивости с использованием полей диска.

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

T = feedback(L*F,1)
T =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 3 states.
  The model uncertainty consists of the following blocks:
    F: Uncertain gain/phase, gain × [0.501,2], phase ± 36.8 deg, 1 occurrences

Type "T.NominalValue" to see the nominal value, "get(T)" to see all properties, and "T.Uncertainty" to interact with the uncertain elements.

Результатом является неопределенное пространство состояний (uss) модель с одним блоком системы управления, F. Исследуйте эффект смоделированных неопределенности усиления и фазы на переходную характеристику системы с обратной связью.

figure;
rng default  % for reproducibility
step(T)

Figure contains an axes. The axes contains 21 objects of type line. This object represents T.

Можно выполнить дополнительный анализ с помощью этой модели, такой как анализ робастности системы с учетом смоделированного усиления и изменения фазы с помощью robstab. Или можно использовать musyn для разработки надежного контроллера для неопределенной системы L*F. Для примеров см.

Создайте umargin блок, который моделирует коэффициент усиления, который может уменьшиться на 10%, но увеличиться на 60% в отсутствие изменения фазы и изменение фазы на ± 15 ° в отсутствие изменения усиления. Для этого используйте getDGM с 'tight' опция. Эта опция находит наименьший диск, который захватывает области значений усилений и фаз, которые вы предоставляете.

DGM = getDGM([0.9,1.6],[-15,15],'tight');
F = umargin('F',DGM)
F = 
  Uncertain gain/phase "F" with relative gain change in [0.86,1.6] and phase change of ±15 degrees.

В этом случае самый маленький диск охватывает указанное изменение фазы и изменение усиления, которое немного больше, но все еще наклоняется к увеличениям усиления. Визуализируйте соответствующий диск и области значений изменений усиления и фазы, моделируемые F.

plot(F)

Figure contains 2 axes. Axes 1 with title Range of gain and phase variations contains 5 objects of type patch, text, line. Axes 2 with title Values of multiplicative factor F contains 8 objects of type patch, line, text.

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

Сгенерируйте другую umargin блокируйте, на этот раз используя 'balanced' опция в getDGM.

DGMb = getDGM([0.9,1.6],[-15,15],'balanced');
Fb = umargin('Fb',DGMb);

Сравните диск неопределенности, смоделированный каждым блоком.

figure;
diskmarginplot([F.GainChange;Fb.GainChange],'disk')

Figure contains an axes. The axes with title Values of multiplicative factor F contains 3 objects of type patch, line. These objects represent DGM = [0.86,1.6], DPM = 15, DGM = [0.625,1.6], DPM = 26.

Диск Fb моделирует больший, симметричный область значений усиления (gmin = 1/gmax) и большие изменения фазы, чем заданные вами. Если вы уверены, что коэффициент усиления изменяется больше в одном направлении, чем другой в вашей системе, то эта сбалансированная модель может быть чрезмерно консервативной.

The umargin блок представляет усиление SISO и фазы неопределенность. Чтобы смоделировать изменения усиления и фазы в цикле обратной связи MIMO, создайте umargin блок для каждого местоположения в цикле, в котором вы хотите ввести изменение усиления и фазы. Для образца рассмотрим цикл обратной связи с двумя входами и двумя выходами примера Запасов устойчивости MIMO для спиннинга спутника.

Предположим, что вы хотите изучить поведение системы с изменениями усиления и фазы на входах и выходах объекта. Можно смоделировать эти изменения, создав отдельные umargin блоки для каждого канала и создание их в модель с обратной связью.

Создайте объект и модели контроллеров из Запасов устойчивости MIMO для Spinning Satellite. Объект является моделью пространства состояний с двумя входами, двумя выходами, а фильтр Kf с feedforward является статическим усилением с двумя входами и двумя выходами.

% Plant
a = 10;
A = [0 a;-a 0];
B = eye(2);
C = [1 a;-a 1];
D = 0;
P = ss(A,B,C,D);

% Prefilter
Kf = [1 -a;a 1]/(1+a^2);

Затем создайте umargin блоки, чтобы представлять неопределенность усиления и фазы в каждом канале. Предположим, что вы хотите смоделировать неопределенность усиления около 5% в любом направлении во всех четырех местоположениях. Создайте umargin блок, чтобы смоделировать эту неопределенность.

GM = 1.05;
u1 = umargin('u1',GM)
u1 = 
  Uncertain gain/phase "u1" with relative gain change in [0.952,1.05] and phase change of ±2.79 degrees.

umargin преобразует заданное изменение коэффициента усиления ± 5% в дисковую модель неопределенности, которая также позволяет изменять фазу примерно ± 3 °. Использование plot визуализировать диск и смоделированную область значений изменения усиления и фазы на каждом входе и выходе.

plot(u1)

Figure contains 2 axes. Axes 1 with title Range of gain and phase variations contains 5 objects of type patch, text, line. Axes 2 with title Values of multiplicative factor F contains 8 objects of type patch, line, text.

Чтобы получить лучшие оценки влияния неопределенности усиления и фазы на производительность системы, вы хотите, чтобы коэффициент усиления и фаза изменялись независимо в каждом из четырех местоположений. Поэтому создайте дополнительные umargin блоки для каждого входа и выхода объекта с одной и той же спецификацией усиления.

u2 = umargin('u2',GM);
y1 = umargin('y1',GM);
y2 = umargin('y2',GM);

Создайте модель замкнутой системы, вставив u1 и u2 на входах объекта управления и y1 и y2 на выходах объекта. Для этого используйте blkdiag для объединения u1 и u2 в систему с двумя входами и двумя выходами вида [u1,0;0,u2]. Создайте аналогичную комбинацию y1 и y2.Соедините их с объектом и используйте feedback команда для закрытия двухканального цикла обратной связи.

Fu = blkdiag(u1,u2);
Fy = blkdiag(y1,y2);
L = Fy*P*Fu;    
Tunc = feedback(L,eye(2))*Kf
Tunc =

  Uncertain continuous-time state-space model with 2 outputs, 2 inputs, 2 states.
  The model uncertainty consists of the following blocks:
    u1: Uncertain gain/phase, gain × [0.952,1.05], phase ± 2.79 deg, 1 occurrences
    u2: Uncertain gain/phase, gain × [0.952,1.05], phase ± 2.79 deg, 1 occurrences
    y1: Uncertain gain/phase, gain × [0.952,1.05], phase ± 2.79 deg, 1 occurrences
    y2: Uncertain gain/phase, gain × [0.952,1.05], phase ± 2.79 deg, 1 occurrences

Type "Tunc.NominalValue" to see the nominal value, "get(Tunc)" to see all properties, and "Tunc.Uncertainty" to interact with the uncertain elements.

Исследуйте эффект этих вариаций на отклик системы.

rng(1)  % for reproducibility
figure
step(Tunc,Tunc.NominalValue,10)

Figure contains 4 axes. Axes 1 with title From: In(1) contains 22 objects of type line. These objects represent Tunc, untitled1. Axes 2 contains 22 objects of type line. These objects represent Tunc, untitled1. Axes 3 with title From: In(2) contains 22 objects of type line. These objects represent Tunc, untitled1. Axes 4 contains 22 objects of type line. These objects represent Tunc, untitled1.

Эти небольшие неопределенности оказывают значительное влияние на производительность системы, иногда даже меняя признак отклика. Анализ робастности с robstab показывает, что только немного большее изменение приводит к нестабильности системы с обратной связью.

stabmarg = robstab(Tunc)
stabmarg = struct with fields:
           LowerBound: 1.0210
           UpperBound: 1.0231
    CriticalFrequency: 1.0000e-04

Требование, чтобы система с обратной связью была устойчива к определенной величине усиления и неопределенности фазы, эквивалентно утверждению, что система имеет такое количество запаса по амплитуде и фазе. Поэтому можно использовать umargin блок для проверки усиления и запасов по фазе системы, которая также требует робастности против других типов неопределенности. Для этого захватите необходимые поля диска в umargin блокируйте и используйте robstab проверять устойчивость по всей неопределенности, смоделированной в системе.

Рассмотрим следующую систему с обратной связью с неопределенностью параметра.

k = ureal('k',10,'Percent',40);
G = tf(18,[1 k k]);
C = pid(1,2);
CL = feedback(G*C,1);

robstab показывает, что система устойчива к смоделированной неопределенности. На самом деле, система остается стабильной до двух чуть более чем в два раза больше, чем смоделированная неопределенность.

stabmarg = robstab(CL)
stabmarg = struct with fields:
           LowerBound: 2.0458
           UpperBound: 2.0458
    CriticalFrequency: 4.4517

Предположим, что вы также требуете, чтобы система переносила увеличение или уменьшение усиления до 50% и изменение фазы до ± 20 ° на входе объекта. Чтобы проверить, есть ли у системы эти поля, создайте umargin блок, который моделирует эти изменения и вставляет их в модель с обратной связью.

DGM = getDGM(1.5,20,'tight');
F = umargin('F');
Gf = G*F;
CLf = feedback(Gf*C,1);

stabmarg = robstab(CLf)
stabmarg = struct with fields:
           LowerBound: 1.0940
           UpperBound: 1.0962
    CriticalFrequency: 3.9049

Этот результат показывает, что в дополнение к устойчивой устойчивости против изменения параметра, цикл обратной связи также поддерживает желаемые запасы по усилению и фазе для всех смоделированных значений k (на самом деле примерно на 9% больше, чем смоделированная область значений k).

Можно также использовать эквивалентность между полями диска и устойчивой устойчивостью для усиления и изменения фазы, чтобы спроектировать устойчивый контроллер, который удовлетворяет определенным усилениям и запасам по фазе. Для примеров смотрите Проект робастного контроллера с заданным усилением и запасами по фазе и робастного контроллера для вращающего спутника.

Устойчивый контроллер, возвращенный musyn оптимизирует устойчивую эффективность неопределенных систем обратной связи. Когда неопределенный объект содержит umargin блоки, это требование устойчивой устойчивости эквивалентно обеспечению дискового усиления и запасы по фазе равны umargin неопределенность. В этом примере проектируйте устойчивый контроллер для неопределенного объекта, обеспечивая стабильность замкнутого контура против изменений усиления и фазы на входах и выходах объекта.

Используйте объект из примера "Цикл с mixsyn"на mixsyn страница с описанием, вводящая некоторую неопределенность в местоположение полюсов системы и нуль.

a = ureal('a',1,'PlusMinus',[-0.1,0.1]);
s = zpk('s');
G = (s-a)/(s+a)^2;

Цель состоит в том, чтобы обеспечить стабильность замкнутого контура против изменения усиления и фазы на входах и выходах объекта во всей области значений изменений параметра, смоделированных на заводе G. Для этого используйте целевой коэффициент усиления и запасов по фазе для создания umargin неопределенные блоки и прикрепить их к объекту. В данном примере предположим, что вы хотите стабильность против изменений коэффициента усиления 1,5 в любом направлении или изменения фазы ± 20 °.

DGM = getDGM(1.5,20,'tight');
Fin = umargin('Fin',DGM);
Fout = umargin('Fout',DGM);
Gmarg = Fout*G*Fin
Gmarg =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 7 states.
  The model uncertainty consists of the following blocks:
    Fin: Uncertain gain/phase, gain × [0.667,1.5], phase ± 22.6 deg, 1 occurrences
    Fout: Uncertain gain/phase, gain × [0.667,1.5], phase ± 22.6 deg, 1 occurrences
    a: Uncertain real, nominal = 1, variability = [-0.1,0.1], 3 occurrences

Type "Gmarg.NominalValue" to see the nominal value, "get(Gmarg)" to see all properties, and "Gmarg.Uncertainty" to interact with the uncertain elements.

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

W1 = makeweight(10,[1 0.1],0.01);
W2 = makeweight(0.1,[32 0.32],1);
W3 = makeweight(0.01,[1 0.1],10);

Gaug = augw(Gmarg,W1,W2,W3);

Использование musyn для разработки контроллера.

[K,gam] = musyn(Gaug,1,1);
D-K ITERATION SUMMARY:
-----------------------------------------------------------------
                       Robust performance               Fit order
-----------------------------------------------------------------
  Iter         K Step       Peak MU       D Fit             D
    1           7.753        1.527        1.539            24
    2           1.131        1.084        1.091            40
    3               1       0.9964        1.004            38
    4           0.997       0.9945        1.003            44
    5          0.9995       0.9939        1.001            38

Best achieved robust performance: 0.994

musyn достигает устойчивой эффективности около 1, что говорит о том, что коэффициент усиления в системе с обратной связью остается ниже 1 для полной области значений неопределенностей, заданных на объекте. Чтобы подтвердить, что получившийся контроллер достигает целевых коэффициентов усиления и запасов по фазе, используйте wcdiskmargin изучить наихудшие коэффициент усиления и запасов по фазе системы при одновременных изменениях на входах и выходах объекта. Используйте заводскую G который содержит неопределенность параметра, но не неопределенность усиления и фазы.

MMIO = wcdiskmargin(G,K)
MMIO = struct with fields:
           GainMargin: [0.6027 1.6593]
          PhaseMargin: [-27.8480 27.8480]
           DiskMargin: 0.4958
           LowerBound: 0.4958
           UpperBound: 0.4968
    CriticalFrequency: 0.9146
    WorstPerturbation: [1x1 struct]

Наихудший дисковый запас по амплитуде [0,6 1,66] немного больше целевого запаса [0,66 1,5], а наихудший запас по фазе ± 28 ° также лучше необходимого запаса ± 20 °. Таким образом, контроллер K применяет требуемые поля для всей области значений параметр-неопределенность объекта G.

Для примера, который использует umargin блоки с musyn для обеспечения усиления и запасов по фазе в цикл управления MIMO, смотрите Робастный Контроллер для Вращающегося Спутника.

Алгоритмы

umargin моделирует изменения коэффициента усиления и фазы в отдельном канале обратной связи как частотно-зависимый множительный коэффициент F (s), умножающий номинальную L отклика без разомкнутого контура (s), так что возмущенная характеристика является L (s) F (s). Коэффициент F (s) параметризован:

F(s)=1+α[(1σ)/2]δ(s)1α[(1+σ)/2]δ(s).

В этой модели,

  • δ (s) является динамической неопределенностью с ограничением по усилению, нормированной так, что она всегда изменяется внутри единичного диска (||<reservedrangesplaceholder0>||∞ < 1).

  • ɑ устанавливает величину усиления и изменения фазы, смоделированные F. Для фиксированных σ параметр ɑ управляет размером диска. Для ɑ = 0 мультипликативный коэффициент равен 1, соответствующий номинальной L.

  • σ, называемое skew, смещает смоделированную неопределенность в сторону увеличения или уменьшения усиления.

Коэффициент F принимает значения в диске с центром на действительной оси и содержащем номинальное значение F = 1. Диск характеризуется своей точкой пересечения DGM = [gmin,gmax] с действительной осью. gmin < 1 и gmin > 1 - минимальные и максимальные относительные изменения в усилении, моделируемые F, в номинальной фазе. Фаза неопределенность, смоделированная F, является областью значений DPM = [pmin,pmax] значений фазы при номинальном усилении (|<reservedrangesplaceholder1>| = 1). Например, на следующем графике правая сторона показывает дисковое F, которое пересекает действительную ось в интервале [0.71.1.4]. Левая сторона показывает, что этот диск моделирует изменение усиления ± 3 дБ и изменение фазы ± 19 °.

F = umargin('F',1.4125)
plot(F)

Multiplicative disk and range of gain and phase variations for umargin block modeling gain variation of plus or minus 3 dB and phase variation of plus or minus 19 degrees.

Когда вы создаете umargin блок, вы задаете величину неопределенности путем определения DGM. Использовать getDGM чтобы переместить определенные величины изменений усиления и фазы в подходящую DGM область значений, который захватывает эти изменения. Для получения дополнительной информации о модели неопределенности, используемой umargin, см. Анализ устойчивости с использованием полей диска.

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

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

Не рекомендуемый запуск в R2020b

Введенный в R2020a