Engee 文档
Notebook

时域系统特征数值

本例展示了如何使用stepinfo 获取阶跃响应特性的数值,如上升时间、稳态时间和过冲。您可以使用lsim 中的类似方法,获取任意输入数据或初始条件下的系统响应特性。

开始之前,请连接ControlSystems.jl

In [ ]:
import Pkg
Pkg.add("ControlSystems")
In [ ]:
using ControlSystems
s = tf('s');
In [ ]:
H = tf([8, 18, 32],[1, 6, 14, 24]);
data = stepinfo(step(H))
Out[0]:
StepInfo:
Initial value:     0.000
Final value:       1.333
Step size:         1.333
Peak:              1.687
Peak time:         0.609 s
Overshoot:         26.54 %
Undershoot:         0.00 %
Settling time:     3.507 s
Rise time:         0.210 s

输出结果是一个包含阶跃响应特征值的结构。要访问这些值或在其他计算中使用它们,请使用点记录。例如,data.overshoot 是过冲值。

In [ ]:
data.overshoot
Out[0]:
26.543295948871087

要查看结构StepInfo 中其他特性的标注方式,请运行以下代码框。将显示简要帮助。

In [ ]:
?stepinfo
search: stepinfo StepInfo CompositeException InvalidStateException

Out[0]:

?stepinfo

计算阶跃特性 H 稳定在其最终值 0.5%以内所需的时间。

In [ ]:
data = stepinfo(step(H), settling_th = 0.005)
t05 = data.settlingtime
Out[0]:
4.893

默认情况下,stepinfo 将稳态时间定义为输出信号稳定在其最终值的 2% 以内所需的时间。指定更严格的 "时间管 "值 0.005 将增加settlingtime 的值。

结论

在本演示示例中,我们介绍了一种用于分析时域系统响应数值特征的功能。