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.

结论

在这个演示示例中,我们研究了在时域中分析系统响应的数值特征的功能。