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, и Eccentricity свойства определяются находящейся на диске моделью неопределенности что umargin использование (см. Алгоритмы). Если вы изменяете значение этого свойства на существующем umargin блокируйтесь, другие свойства автоматически обновляются.

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

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

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

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

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

Пример: 0.5

Эксцентриситет смоделированного диска неопределенности в виде скалярного значения. Эксцентриситет скашивает смоделированное изменение усиления к увеличению усиления или уменьшению.

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

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

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

Большее абсолютное значение Eccentricity, больше область значений усиления скашивается. Для дополнительных деталей об эксцентриситете и как это влияет на находящуюся на диске модель неопределенности, смотрите, что Анализ Устойчивости Использует Дисковые Поля.

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

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

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

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

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

Блокируйте уровень упрощения в виде 'basic'полный, или '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Сгенерируйте случайные выборки неопределенной или обобщенной модели
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)

Правильный график показывает область значений значений в комплексной плоскости что мультипликативный факторный 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)

Можно выполнить анализ сложения с этой моделью, такой как анализ системной робастности против смоделированного усиления и изменения фазы с 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)

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

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

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

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

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

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

umargin блок представляет усиление SISO и неопределенность фазы. Чтобы смоделировать усиление и изменения фазы обратной связи MIMO, создайте umargin блокируйтесь для каждого местоположения в цикле, в котором вы хотите ввести изменение фазы и усиление. Например, рассмотрите 2D вход, 2D выходную обратную связь примера Запасы устойчивости MIMO для Вращения Спутника.

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

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

% 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 преобразует изменение усиления specifed ±5% к находящейся на диске модели неопределенности, которая также позволяет фазовые переходы приблизительно ±3 °. Используйте plot визуализировать диск и смоделированную область значений усиления и изменения фазы при каждом вводе и выводе.

plot(u1)

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

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

Создайте модель с обратной связью, вставив u1 и u2 во входных параметрах объекта и y1 и y2 на объекте выходные параметры. Для этого используйте blkdiag объединить u1 и u2 в 2D вход, 2D выходную систему формы [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)

Эта маленькая неопределенность оказывает значительное влияние на производительность системы, иногда даже изменяя знак ответа. Анализ робастности с 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.0939
           UpperBound: 1.0962
    CriticalFrequency: 3.9081

Этот результат показывает, что в дополнение к устойчивой устойчивости против изменения параметра, обратная связь также обеспечивает желаемые запасы по амплитуде и фазе для всех смоделированных значений 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.093            38
    3          0.9988       0.9964        1.005            36
    4          0.9963       0.9947       0.9966            36
    5          0.9959       0.9943        1.001            36

Best achieved robust performance: 0.994

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

MMIO = wcdiskmargin(G,K)
MMIO = struct with fields:
           GainMargin: [0.6030 1.6584]
          PhaseMargin: [-27.8217 27.8217]
           DiskMargin: 0.4954
           LowerBound: 0.4954
           UpperBound: 0.4963
    CriticalFrequency: 1
    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+α[(1E)/2]δ(s)1α[(1+E)/2]δ(s).

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

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

  • ɑ устанавливает сумму усиления и изменения фазы, смоделированного F. Для фиксированного E параметр ɑ управляет размером диска. Для ɑ = 0, мультипликативный фактор равняется 1, соответствуя номинальному L.

  • E, названный eccentricity, скашивает смоделированную неопределенность к увеличению усиления или уменьшению усиления.

Факторный F принимает значения в диске, сосредоточенном на вещественной оси и содержащий номинальную стоимость F = 1. Диск характеризуется его прерыванием DGM = [gmin,gmax] с вещественной осью. gmin <1 и gmin > 1 минимальные и максимальные относительные изменения в усилении, смоделированном F, в номинальной фазе. Неопределенность фазы, смоделированная F, является областью значений DPM = [pmin,pmax] из значений фазы в номинальном усилении (|F | = 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, смотрите, что Анализ Устойчивости Использует Дисковые Поля.

Введенный в R2020a