如何在 python 中模拟一个传递函数的一步

How to simulate one step to a transfer function in python

我发现 scipy.signal.dstepscipy.signal.dlsim 函数有助于模拟传递函数的行为,例如: signal.dlsim(signal.cont2discrete(([1], [1, 1]), 0.1), u=[1, 1], t=[0.0, 0.1]) 允许在 [0, 0.1] 时间间隔内使用值为 1 的控制信号对 1/(s+1) 函数进行建模。 但是这些函数不允许仅使用初始值对一步进行建模。

是否有任何其他函数可以对传递函数的一步建模,或者如何更好地建模?

首先,我不确定,如果你想使用离散时间或连续时间,因为你正在使用 s 运算符作为 cont。时间,函数dstepdlsim用于离散时间表示。但是,我在示例中使用了连续的。

您可以使用 scipy.signallti 函数在 python 中创建一个 dlti 对象。创建的过滤器对象有一个方法 step,其中第一个参数用于初始时间向量。 lti.step 因此,您可以使用此代码段绘制阶跃响应。

import scipy.signal as sig
import matplotlib.pyplot as plt

filt = sig.lti(1, (1,1))

plt.plot(*filt.step())
plt.plot(*filt.step(-1))
plt.show()

如果您不想绘制它们,只需调用

t, a = filt.step()