Моделируйте коэффициент усиления и Фазы неопределенности в циклах обратной связи

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

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

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

L=3.5s3+2s2+3s.

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

Figure contains 2 axes. Axes 1 contains an object of type line. This object represents L. Axes 2 contains an object of type line. This object represents L.

Из-за неопределенности объекта и других источников изменчивости коэффициент усиления и фаза цикла подвержены колебаниям. В целом можно количественно определить величину неопределенности путем экспериментов над своей системой или аппроксимировать ее на основе понимания или опыта. В данном примере предположим, что коэффициент усиления без разомкнутого контура может увеличиться или уменьшиться на 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)

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.

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

Figure contains an axes. The axes contains 21 objects of type line. This object represents 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)

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.

В модель 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)

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.

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

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

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

Figure contains an axes. The axes with title Two models for 50% gain and 30 degree phase variations contains 3 objects of type patch, line. These objects represent F, Fbal.

Теперь вычислите устойчивый запас устойчивости для системы с 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')

Figure contains an axes. The axes with title Safe ranges of gain and phase variations contains 2 objects of type patch. These objects represent F, Fbal.

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

См. также

| | |

Похожие темы