Engee 文档
Notebook

估计增益对稳定裕度的影响

本例展示了如何研究增益对稳定裕度和闭环控制系统响应特性的影响。

闭环系统的稳定性

稳定性通常意味着所有内部信号保持受限。这是控制系统的标准要求,以避免失控和设备损坏。对于线性反馈系统,可以通过观察闭环传递函数的极点来评估稳定性。下面是一个系统的结构图:

image.png

假设增益为$K=1$ 。使用库ControlSystems.jl 定义闭环传递函数的描述。

In [ ]:
Pkg.add(["ControlSystems"])
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 dB 的频率)时最为危险,因此在该频率上允许多少相位变化也很重要。

相位裕量表明在失去稳定性之前可容忍多大的相位变化。同样,幅值余量表明在截止频率上需要多大的增益变化才会失去稳定性。这两项指标共同估算出了闭环稳定性的 "稳定裕量"。稳定裕度越小,稳定性就越脆弱。

让我们绘制带有稳定裕度的 LFCC 和 LFCC 图。稳定裕度可通过函数marginplot() 确定。

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

本例中的振幅余量约为 9 dB。您可以将光标放在风向线和 LFC 的交叉点上,然后自己观察。从图上可以看到系统的稳定极限。不过,需要注意的是,振幅稳定极限$Gm=2.75$ 是以增益的极限值表示的,而不是以 dB 为单位。

相位裕量 (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]:

我们可以从 LFCC 上看到,相位裕度 (Pm) 减小,过冲和稳定时间增加。这表明我们正在接近不稳定位置。

具有多个振幅稳定裕度的系统

有些系统具有多个振幅稳定裕度或 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$ ,我们绘制了系统的 LFC 和 LFCC 图。

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

请注意,系统有两个 180 度的相位转换,相应的增益值分别为 -9.35 dB 和 +10.6 dB。增益值为负数时,表示随着增益的减小,稳定性下降。而正增益值则表示增益增加时稳定性下降。通过绘制 k=1 时增益$\pm$6 dB 变化时闭环的阶跃响应,可以证实这一点:

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]:

从图中可以看出,在增益值较低和较高时,振荡都会增加。

结论

因此,我们考虑了增益对闭环稳定性的影响,特别是对振幅稳定裕度的影响。