Engee 文档
Notebook

自动控制系统

本例展示了如何获取比例积分控制器动态系统SISO模型的频率响应数据。

比例积分控制器可使期望值与实际值之间的误差为零。这意味着它可以实现精确调节。

其设置非常简单。只需调整两个参数:增益 (Kr) 和积分时间常数 (Ti)。有了这些参数,就可以实现最小的调节误差。

一些图书馆的参考资料:

In [ ]:
Pkg.add(["ControlSystems"])
In [ ]:
# Установка новой библиотеки может занять около минуты
using ControlSystems

using Plots;
gr()
#plotlyjs() # для интерактивных графиков

print("Библиотеки готовы!")
Библиотеки готовы!

连接状态空间描述的 SISO 系统

In [ ]:
P1 = ssrand(1,1,1);
P2 = ssrand(1,1,1);
append(P1, P2)
Out[0]:
StateSpace{Continuous, Float64}
A = 
 -0.2524536214471187   0.0
  0.0                 -0.3574162051285983
B = 
 0.30175105771317484  0.0
 0.0                  1.1500354139870772
C = 
 0.6210941061472228  0.0
 0.0                 0.9581047028078271
D = 
 0.3742222874580735  0.0
 0.0                 0.1848146926902994

Continuous-time state-space model

研究传递函数响应

使用函数gangoffourplot() 绘制开放和封闭系统 $$P(s) = \frac{1}{(s+1)^4}$$ 的 LAFFC 图,以得出系统对不同频率振荡的敏感性的结论。

In [ ]:
P = ControlSystems.tf(1,[1,1])^4
gangoffourplot( P, tf(1), titlefont = font(9), guidefont = font(8))
Out[0]:

图表显示,在$\omega = 0.8$ rad/s 左右的频率下,系统过于敏感。

设置 PI 控制器

为系统设置 PI 控制器 $$P(s) = \frac{1}{(s+1)^4}$$$

使用函数loopshapingPI ,指定系统在频率$\omega = 0.8$ rad/s 附近的相位裕度为 60 度。

绘制 4 幅图--使用函数gangoffourplot 绘制开放和封闭系统的 LAFCC 图,使用函数nyquistplot 绘制奈奎斯特霍德图。

In [ ]:
using ControlSystems, Plots

P = tf(1,[1,1])^4
ωp = 0.8
C,kp,ki = loopshapingPI(P, ωp, phasemargin=60, form=:parallel)

p1 = gangoffourplot(P, [tf(1), C]);
p2 = nyquistplot([P, P*C], ylims=(-1,1), xlims=(-1.5,1.5));

plot(p1,p2, layout=(2,1), size=(800,800))
Out[0]:

结论

在所探讨的示例中,对 PI 控制器的自动控制系统进行了分析。

还研究了传递函数的响应,并对 PI 控制器进行了调整。