Engee 文档
Notebook

ACS频率特性的研究

在这个例子中,我们来看看Engee环境研究ACS频率特性的可能性。

结构转换

ACS模型是一种包括典型动态链路块的结构方案。 使用这些链路的传递函数找到ACS的传递函数。

当串联连接时,链节的传递函数等于它们的传递函数的乘积。:

一组并联连接的链路的传递函数等于它们的传递函数之和:

如果链路具有传递函数 它被反馈所复盖,其中有一个链接 ,则闭环传递函数 它由公式确定:

分母中的加号或减号分别对应负反馈和正反馈。

考虑库函数 ControlSystems.jl,允许您对电路进行结构转换。

In [ ]:
Pkg.add(["ControlSystems"])
In [ ]:
#Подключим библиотеку для работы с САУ
using ControlSystems

#Зададим передаточные функции
W1 = tf([1],[0.5, 1]);
W2 = tf([1],[1, 1]);

对于传递函数的顺序乘法,有一个函数ControlSystemsBase.series.

In [ ]:
#Последовательное перемножение систем
series(W1,W2)
Out[0]:
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
        1.0
-------------------
0.5s^2 + 1.5s + 1.0

Continuous-time transfer function model

一组并行链路的传递函数可以使用函数ControlSystemsBase.parallel.

In [ ]:
#Параллельное соединение звеньев
parallel(W1,W2)
Out[0]:
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
    1.5s + 2.0
-------------------
0.5s^2 + 1.5s + 1.0

Continuous-time transfer function model

要确定由反馈复盖的链接组成的轮廓的传递函数,有一个函数ControlSystemsBase.feedback.

In [ ]:
#Если звено охвачено единичной обратной связью, вторым аргументом указывается 1
W3 = feedback(W1,1)

#Если обратная связь проходит через звено W2
W4 = feedback(W1,W2)

display([W3,W4])
2-element Vector{TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}}:
 TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
   1.0
----------
0.5s + 2.0

Continuous-time transfer function model
 TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
    1.0s + 1.0
-------------------
0.5s^2 + 1.5s + 2.0

Continuous-time transfer function model

默认情况下,使用函数时 ControlSystemsBase.feedback 形成负反馈连接。 但是,您可以通过传递-1作为第二个参数来指定关系应该是正的。

In [ ]:
#Звено охвачено единичной положительной обратной связью
feedback(W1, -1)
Out[0]:
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
1.0
----
0.5s

Continuous-time transfer function model

ACS频率特性的获取与研究

让我们设置下图所示的ACS的传递函数。

image.png
In [ ]:
#Зададим параметры САУ
Ku = 10;
Tu = 0.001;
Km = 3;
Tm = 0.1;
Te = 0.02;
Kp = 0.01;
In [ ]:
#Задаем передаточные функции звеньев САУ
W_1 = Ku*tf([1],[Tu, 1]);
W_2 = Km*tf([1],[Tm*Te, 1, 1]);
W_3 = Kp*tf([1],[1, 0]);

display([W_1, W_2, W_3])
3-element Vector{TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}}:
 TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
    10.0
------------
0.001s + 1.0

Continuous-time transfer function model
 TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
         3.0
---------------------
0.002s^2 + 1.0s + 1.0

Continuous-time transfer function model
 TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
0.01
----
1.0s

Continuous-time transfer function model

链接按顺序排列,因此我们使用已经熟悉的ControlSystemsBase.series.

In [ ]:
#Получаем передаточную функцию разомкнутой системы
W = series(W_1, W_2)
W = series(W, W_3)
Out[0]:
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
                 0.3
--------------------------------------
2.0e-6s^4 + 0.003s^3 + 1.001s^2 + 1.0s

Continuous-time transfer function model

让我们绘制AFCH和LAPCH图表。

In [ ]:
#Получение АФЧХ
w = -100:0.1:100
nyquistplot(W,w,title="АФЧХ",label="W")
Out[0]:

我们还将构建一个开环频率响应,显示振幅和相位的稳定性储备。 为此,请使用函数ControlSystemsBase.marginplot.

In [ ]:
#Определим запасы устойчивости по амплитуде и по фазе
marginplot(W,label="W")
Out[0]:

可持续性股票显示在图表的名称中。 幅度裕度为1111.76db,相位裕度为73.89度。 LFCH以18.26rad/s的频率交叉180度,截止频率为0.29rad/s。您还可以将光标悬停在图形上,查看任何选定点的幅度、相位和频率值。

结论

在这个例子中,我们熟悉了用于研究ACS频率特性的Engee功能。 我们还学习了如何使用库函数转换框图。 ContolSystems.jl. 要了解有关绘制频率特性的更多信息,请参阅绘制函数