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')

Считайте неопределенную систему управления примером "Устойчивой Эффективностью Системы С обратной связью" на 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%.

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

свернуть все

Неопределенный блок системы управления, чтобы масштабироваться в виде a 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, такой как a ureal, umargin, ultidyn, или другой неопределенный блок. Неопределенность в blk_scaled совпадает с неопределенностью в M, масштабируемый factor.

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

Смотрите также

| | | |

Введенный в R2020a