时域中几种模型的响应
此示例演示如何使用以下方法比较同一图形上多个模型的逐步反应 step. 这个例子比较了一个不受控制的对象与一个闭环和两个不同的PI调节器的逐步反应。 您可以使用类似的方法与其他反应命令,如 impulse 或 lsim 得到几个模型的反应图。
在此示例中,获取要比较其时间特征的两个模型,并将它们的图形绘制在一起。 例如,可以比较三阶体系G和封闭体系G与调节剂C1的反应。
In [ ]:
Pkg.add(["ControlSystems"])
In [ ]:
import Pkg;
Pkg.add("ControlSystems")
In [ ]:
using ControlSystems
In [ ]:
G = zpk([], [-5, -5, -10], 100)
Out[0]:
In [ ]:
C1 = pid(0, 4.4; form=:parallel)
Out[0]:
In [ ]:
CL1 = feedback(G*C1)
Out[0]:
功能 step 接受系统的描述作为输入,并在输出处生成类型的对象。 ControlSystemsBase.SimResult. 如果将此对象传递给函数 plot,然后构建过渡过程的时间表。
In [ ]:
step(CL1)
Out[0]:
In [ ]:
plot([step(G), step(CL1)], label=["G" "CL1"])
xlims!(0,7)
hline!([1], linecolor=:black, style=:dash, label=:false)
Out[0]:
如果发送多个函数对象 step作为输入参数 plot,如果未指定绘图的时间范围,则一个图形显示指定模型的响应, step 尝试选择说明模型动态的时间范围。
将对反馈模型步骤的反应与另一个控制器的反应进行比较。 为每个反应指定图形的颜色和样式。
In [ ]:
C2 = pid(2.9, 7.1; form=:parallel)
CL2 = feedback(G * C2)
plot(step(G,7), label="G", color=:blue)
plot!(step(CL1,7), label="CL1", color=:green)
plot!(step(CL2,7), label="CL2", color=:red)
hline!([0.4, 1], linestyle=:dash, color=:black, label=:false)
Out[0]:
您可以通过更改参数为每个过渡过程设置自己的颜色和图形样式。 linestyle 和 color.