Неопределенность усиления и фазы модели в обратной связи

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

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

Рассмотрите обратную связь SISO с передаточной функцией разомкнутого контура

L=3.5s3+2s2+3s.

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

Из-за неопределенности объекта и других источников изменчивости, усиление цикла и фаза подвергаются колебаниям. В общем случае можно определить сумму неопределенности посредством экспериментирования на системе или аппроксимировать его на основе понимания или опыта. В данном примере предположите, что коэффициент усиления разомкнутого контура может увеличиться или уменьшиться на 50%, и фаза на ±30 °. Можно использовать umargin блокируйтесь, чтобы смоделировать такую неопределенность. umargin представляет изменение как неопределенный мультипликативный факторный F с номинальной стоимостью 1. Множество значений F может взять, получает усиление и неопределенность фазы, которую вы задаете.

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

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.

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

plot(F)

Графики показывают, что усиление может варьироваться между 47% и 150% его номинальной стоимости (принимающий изменение фазы), и фаза может варьироваться на ±30 ° (принимающий изменение усиления). Когда и усиление и фаза варьируются, их изменение остается в теневой области в левом графике.

Неопределенность 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.472,1.5], phase ± 30 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. В целом коэффициент усиления разомкнутого контура может содержать другие неопределенные блоки также.

Анализ робастности

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

clf 
rng default
step(T)

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

SM = robstab(T)
SM = struct with fields:
           LowerBound: 0.8303
           UpperBound: 0.8319
    CriticalFrequency: 1.4482

Устойчивый запас устойчивости - только 0,83, означая, что обратная связь может только противостоять 83% заданной неопределенности. Фактор 0.83 находится в нормированных единицах. Чтобы перевести это значение в фактическую безопасную область значений усиления и изменений фазы, используйте uscale. Эта команда берет смоделированный диск неопределенности и масштабный коэффициент, и преобразует его в новый диск неопределенности.

Fsafe = uscale(F,0.83)
Fsafe = 
  Uncertain gain/phase "F" with relative gain change in [0.564,1.42] and phase change of ±24.8 degrees.

Отображение показывает, что 83% неопределенности задали в F (и поэтому в L) суммы, чтобы получить изменение между 56% и 142% номинальной стоимости, и изменение фазы ±25 °. Постройте диск Fsafe видеть полный спектр одновременного усиления и изменений фазы, которые может терпеть система с обратной связью.

plot(Fsafe)

В модели L, неопределенность усиления и фазы является единственным источником неопределенности. Поэтому можно получить тот же результат непосредственно вычислительным находящиеся на диске поля с diskmargin. Убедитесь с учетом "скоса" модели F неопределенности, который смещает неопределенность к увеличению усиления или уменьшению.

sigma = F.Skew;
DM = diskmargin(L,sigma)
DM = struct with fields:
           GainMargin: [0.5626 1.4178]
          PhaseMargin: [-24.8091 24.8091]
           DiskMargin: 0.4274
           LowerBound: 0.4274
           UpperBound: 0.4274
            Frequency: 1.4505
    WorstPerturbation: [1x1 ss]

Это возвращает находящиеся на диске запасы по амплитуде и фазе для обратной связи L. Эти значения совпадают с областями значений, отображенными для масштабированной неопределенности Fsafe.

Выбор скоса

В вычислениях выше, вы использовали getDGM сопоставлять ±50%-е усиление и неопределенность фазы на ±30 ° в диск неопределенности F. Вы использовали 'tight' опция, которая выбирает самый маленький диск, который получает и заданное усиление и неопределенность фазы. Исследование области значений усиления и изменений, охваченных F снова, показывает, что область значений усиления смещается к уменьшению усиления.

plot(F)

В качестве альтернативы можно использовать 'balanced' опция getDGM использовать модель с равными объемами (относительного) увеличения усиления и уменьшения. Сбалансированная область значений соответствует нулевому скосу (sigma = 0) в diskmargin.

DGM = getDGM(1.5,30,'balanced');
Fbal = umargin('Fbal',DGM);
plot(Fbal)

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

Затем сравните диск значений для двух моделей F неопределенности и Fbal. Диск неопределенности больше для 'balanced' опция.

clf 
DGM = F.GainChange;
DGMbal = Fbal.GainChange;
diskmarginplot([DGM;DGMbal],'disk')
legend('F','Fbal')
title('Two models for 50% gain and 30 degree phase variations')

Теперь вычислите устойчивый запас устойчивости для системы с Fbal и сравните безопасные области значений усиления и изменений фазы для этих двух моделей.

SM2 = robstab(feedback(L*Fbal,1));
Fbalsafe = uscale(Fbal,SM2.LowerBound);

DGMsafe = Fsafe.GainChange;
DGMbalsafe = Fbalsafe.GainChange;
diskmarginplot([DGMsafe;DGMbalsafe])
legend('F','Fbal')
title('Safe ranges of gain and phase variations')

'tight' подходящий F дает к более крупной безопасной области и становится ближе к исходной цели робастности (3,5 поля усиления дБ и 30 запасов по фазе степеней).

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

| | |

Похожие темы