首页 > 解决方案 > 如何在python中模拟传递函数的一步

问题描述

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

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

标签: pythonscipysignal-processing

解决方案


首先,我不确定您是要使用离散时间还是连续时间,因为您使用的是s运算符 for cont。time,函数dstepdlsim用于离散时间表示。但是,我在示例中使用了连续的。

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

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()

推荐阅读