uscale

Масштабная неопределенность блока или системы

Описание

пример

blk_scaled = uscale(blk,factor) масштабирует количество неопределенности в блоке неопределенных систем управления по factor. Как правило, factor - маржа робастности, возвращаемая robstab или robgain, или устойчивая эффективность, возвращенная musynperf. Неопределенный элемент blk_scaled имеет тот же тип, что и blk, с масштабом неопределенности в нормированных модулях. Для образца, если factor равен 0,75, нормированная неопределенность blk_scaled составляет 75% от нормализованной неопределенности blk.

пример

M_scaled = uscale(M,factor) масштабирует все неопределенные блоки в модели M. Неопределенные элементы не изменяются.

Примеры

свернуть все

Рассмотрим цикл обратной связи со следующим коэффициентом усиления без разомкнутого контура.

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

Предположим, что система имеет неопределенность усиления 1,5 (коэффициент усиления может увеличиться или уменьшиться в 1,5 раза) и неопределенность фазы ± 30 °.

DGM = getDGM(1.5,30,'tight');
F = umargin('F',DGM)
F = 
  Uncertain gain/phase "F" with relative gain change in [0.472,1.5] and phase change of ±30 degrees.

Исследуйте устойчивость системы с обратной связью.

T = feedback(L*F,1);
SM = robstab(T)
SM = struct with fields:
           LowerBound: 0.8303
           UpperBound: 0.8319
    CriticalFrequency: 1.4482

robstab показывает, что система может переносить только 0,83 смоделированную неопределенность, прежде чем стать нестабильной. Масштабируйте umargin блочное F на эту величину, чтобы найти наибольший коэффициент усиления и изменения фазы, которые система может терпеть.

factor = SM.LowerBound;
Fsafe = uscale(F,factor)
Fsafe = 
  Uncertain gain/phase "F" with relative gain change in [0.563,1.42] and phase change of ±24.8 degrees.

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

DGM = F.GainChange;
DGMsafe = Fsafe.GainChange;
diskmarginplot([DGM;DGMsafe])
legend('original','safe')

Figure contains an axes. The axes with title Range of gain and phase variations contains 2 objects of type patch. These objects represent original, safe.

Рассмотрим неопределенную систему управления примера «Робастная эффективность системы с обратной связью» на robgain страница с описанием. Этот пример исследует чувствительность обратной связи на выходе объекта к нарушениям порядка на входе объекта.

k = ureal('k',10,'Percent',40);
delta = ultidyn('delta',[1 1]); 
G = tf(18,[1 1.8 k]) * (1 + 0.5*delta);
C = pid(2.3,3,0.38,0.001);
S = feedback(1,G*C)
S =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 4 states.
  The model uncertainty consists of the following blocks:
    delta: Uncertain 1x1 LTI, peak gain = 1, 1 occurrences
    k: Uncertain real, nominal = 10, variability = [-40,40]%, 1 occurrences

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

Предположим, что вы не хотите, чтобы пиковое усиление этой функции чувствительности превышало 1,5. Использование robgain чтобы выяснить, какую часть смоделированной неопределенности система может терпеть, в то время как пиковый коэффициент усиления остается ниже 1,5.

perfmarg = robgain(S,1.5)
perfmarg = struct with fields:
           LowerBound: 0.7821
           UpperBound: 0.7837
    CriticalFrequency: 7.8565

С учетом этого требования к эффективности система может переносить только около 78% смоделированной неопределенности. Масштабируйте все неопределенные элементы в S создать модель системы с обратной связью с максимальным уровнем неопределенности, который удовлетворяет требованиям эффективности.

factor = perfmarg.LowerBound;
S_scaled = uscale(S,factor)
S_scaled =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 4 states.
  The model uncertainty consists of the following blocks:
    delta: Uncertain 1x1 LTI, peak gain = 0.782, 1 occurrences
    k: Uncertain real, nominal = 10, variability = [-31.3,31.3]%, 1 occurrences

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

На отображении показано, как неопределенные элементы в S_scaled изменились: пиковое усиление ultidyn элемент delta уменьшается с 1 до 0,78, и область значений изменений неопределенного действительного параметра k уменьшается с ± 40% до ± 31,3 %.

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

свернуть все

Неопределенная система управления для масштабирования, заданный как ureal, umargin, ultidyn, или другой неопределенный блок.

Масштабный коэффициент, заданный как скаляр. Этот аргумент является суммой, на которую uscale масштабирует нормированную неопределенность blk или M. Для образца, если factor = 0,8, тогда функция уменьшает неопределенность до 80% от ее исходного значения в нормализованных модулях. Точно так же, если factor = 2, тогда функция удваивает неопределенность.

Как правило, factor - маржа робастности, возвращаемая robstab или robgain, или устойчивая эффективность, возвращенная musynperf. Таким образом, можно использовать uscale найти наибольшую область значений смоделированной неопределенности в системе, для которой система имеет хорошую устойчивую стабильность или эффективность.

Неопределенная модель, заданная как uss, umat, ufrd, или genss с неопределенными блоками системы управления. uscale команда масштабирует неопределенные блоки проекта системы управления в M. Другие блоки M не изменяются.

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

свернуть все

Масштабированный неопределенный блок, возвращенный как блок того же типа, что и blk, таких как ureal, umargin, ultidyn, или другой неопределенный блок. Неопределенность blk_scaled совпадает с неопределенностью в M, масштабируется factor.

Масштабированная неопределенная модель, возвращенная как модель того же типа, что и M, например, uss, umat, ufrd, или genss с неопределенными блоками системы управления. Неопределенные системы управления в M_scaled те же, что и блоки в M, с размером неопределенности, масштабируемой factor в нормированных модулях.

Введенный в R2020a