Engee 文档
Notebook

自动化控制系统

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

PI控制器可以使期望值和实际值之间的误差变为零。 这意味着它可以实现精确的调节。

它的设置非常简单。 只需要配置两个参数:增益因子(Kr)和积分时间常数(Ti)。 利用这些参数,能够实现最小的调节误差。

一些图书馆的参考资料:
-https://github.com/JuliaControl/ControlSystems.jl
-https://lampspuc ...github.io/StateSpaceModels.jl/latest/

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

研究传递函数的响应

使用函数构造开闭系统的LFCS$ $ gangoffourplot() 以得出关于系统对不同频率波动的敏感性的结论。

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

这些图表表明,系统在周围的频率下过于敏感 高兴/小号.

设置PI控制器

为系统设置PI控制器$ $

使用功能 loopshapingPI,表示在频率范围 Rad/s系统应具有60度相位裕度。

输出4个图形-使用函数的开放和封闭系统的LFC gangoffourplot 和使用该函数的奈奎斯特霍德图 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控制器。