自动控制系统¶
本例展示了如何获取比例积分控制器动态系统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]:
研究传递函数响应¶
使用函数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]: