Документация Engee
Notebook

Оценка влияния коэффициента усиления на запас устойчивости

В этом примере показано, как исследование влияния коэффициента усиления на запас устойчивости и на характеристики отклика системы управления в замкнутом контуре.

Устойчивость замкнутой системы

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

image.png

Предположим, что коэффициент усиления $K=1$. Зададим описание передаточной функции замкнутого контура с помощью библиотеки ControlSystems.jl.

In [ ]:
using ControlSystems
In [ ]:
G = tf([.5, 1.3],[1, 1.2, 1.6, 0]);
T = feedback(G,1)
Out[0]:
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
         0.5s + 1.3
----------------------------
1.0s^3 + 1.2s^2 + 2.1s + 1.3

Continuous-time transfer function model

Получим полюса системы.

In [ ]:
pole(T)
Out[0]:
3-element Vector{ComplexF64}:
 -0.2305351757522727 + 1.306198675535976im
 -0.2305351757522727 - 1.306198675535976im
 -0.7389296484954546 + 0.0im

Замкнутая система при $K=1$ устойчива, так как все полюса имеют отрицательные действительные значения.

Насколько система устойчива?

Проверка полюсов замкнутого контура дает нам понятие об устойчивости. На практике более полезно знать, насколько устойчива или неустойчива система. Одним из показателей надежности является то, насколько может измениться коэффициент усиления контура до потери стабильности. Для этого можно использовать график корневого годографа, чтобы оценить диапазон значений $K$, для которых система устойчива:

In [ ]:
plot(rlocus(G))
Out[0]:

Асимптота отмеченный синим пересекает действительную ось (ось Y) в точке со значением $2.7$. Вы можете навести курсор на график и убедиться в этом. Из этого можно сделать вывод, что если коэффициент усиления будет лежать в диапазоне $0<K<2.7$ , то система будет устойчива.

Запас по амплитуде и по фазе

Изменения коэффициента усиления в контуре являются лишь одним из аспектов устойчивости. В целом, несовершенное моделирование объекта управления означает, что как коэффициент усиления, так и фаза точно не известны. Поскольку ошибки моделирования наиболее опасны вблизи частоты среза (частота, на которой коэффициент усиления в разомкнутом контуре равен 0 дБ), также важно, насколько допустимо изменение фазы на этой частоте.

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

Построим ЛАЧХ и ЛФЧХ с запасами устойчивости. Определить запасы устойчивости можно с помощью функции marginplot().

In [ ]:
marginplot(G)
Out[0]:

Запас по амплитуде в данном случае составляет около 9 дБ. Можно навести курсор на точку пересесения ветрикальной линии и ЛАЧХ, и убедиться в этом. Пределы устойчивости системы можно увидеть над графиком. Однако, нужно учитывать, что предел устойчивости по амплитуде $Gm=2.75$ выражаются в виде предельного значения коэффициента усиления, а не в дБ.

Запас по фазе (Pm) составляет около 45 градусов.

Рассмотрим отклик системы на ступенчатый сигнал.

In [ ]:
S1 = stepinfo(step(T,25));
plot(S1)
Out[0]:

Перерегулирование в данном случае составляет 21% и присутствут некоторые колебания.

Увеличим коэффициент усиления в 2 раза. Введем значения запасов устойчивости функцией margin() и построим переходную характеристику.

In [ ]:
M = margin(2*G)
GmdB = 20*log(10,M.gm[1][1])
Pm = M.pm[1][1]
display(GmdB) 
display(Pm)
2.758136634183228
8.596209050239025

Чтобы вывести характеристики переходного процесса используем функцию stepinfo(). Такие параметры как время установившегося значения, перерегулирование и тд, отразим на графике с помощью plot().

In [ ]:
S2 = stepinfo(step(feedback(2*G,1),60));
plot(S2, title = "Реакция замкнутого контура при k=2")
Out[0]:

Видим на ЛФЧХ, что запас по фазе (Pm) сократился, перерегулирование (overshoot) и время установившегося значения (setting time) увеличились. Это свидетельствует о приближении к неустойчивому положению.

Системы с несколькими запасами утойчивости по амплитуде

Некоторые системы имеют несколько запасов устойчивости по амплитуде или несколько фазовых переходов через 180 градусов. Например, рассмотрим следующую структурную схему.

image.png

Переходный процесс замкнутой системы в данном случае приходит к установившемуся значению - система устойчива.

In [ ]:
G1 = tf([20],[1, 7]) * tf([1, 3.2, 7.2],[1, -1.2, 0.8]) * tf([1, -8, 400],[1, 33, 700]);
T1 = feedback(G1,1);
plot(step(T1,7), title = "Реакция замкнутого конура при K=1")
Out[0]:

Чтобы оценить насколько устойчива эта система $G1$, построим ЛАЧХ и ЛФЧХ системы.

In [ ]:
marginplot(G1)
Out[0]:

Обратите внимание, что имеются два фазовых перехода через 180 градусов с соответствующими значениями коэффициента усиления -9,35 дБ и +10,6 дБ. Отрицательные значения коэффициента усиления указывают на потерю устойчивости при уменьшении коэффициента. В то время как положительные значения коэффициента усиления указывают на потерю устойчивости при увеличении коэффициента усиления. Это подтверждается построением графика ступенчатого отклика замкнутого контура для изменения коэффициента усиления $\pm$6 дБ при k=1:

In [ ]:
k2 = 2;     
T2 = feedback(G1*k2,1);
k3 = 1/2;  
T3 = feedback(G1*k3,1);
step([T1 T2 T3],12)
plot(step([T1 T2 T3],12), label = ["K = 1" "K = 2" "K = 0.5"])
Out[0]:

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

Вывод

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