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

如何在python中模拟传递函数的一个步骤,python,scipy,signal-processing,Python,Scipy,Signal Processing,我发现了有助于模拟传递函数行为的scipy.signal.dstep,scipy.signal.dlsim函数,例如: signal.dlsim(signal.cont2discrete(([1],[1,1]),0.1),u=[1,1],t=[0.0,0.1]) 允许在[0,0.1]时间间隔内对1/(s+1)函数建模,控制信号的值为1。 但这些函数不允许仅用初始值对一个步骤进行建模 是否有其他函数允许对传递函数的一个步骤进行建模或如何更好地进行建模?首先,我不确定是否要使用离散时间或连续时间

我发现了有助于模拟传递函数行为的
scipy.signal.dstep
scipy.signal.dlsim
函数,例如:

signal.dlsim(signal.cont2discrete(([1],[1,1]),0.1),u=[1,1],t=[0.0,0.1])
允许在
[0,0.1]
时间间隔内对
1/(s+1)
函数建模,控制信号的值为
1
。 但这些函数不允许仅用初始值对一个步骤进行建模


是否有其他函数允许对传递函数的一个步骤进行建模或如何更好地进行建模?

首先,我不确定是否要使用离散时间或连续时间,因为您使用的是连续时间的
s
运算符,函数
dstep
dlsim
用于离散时间表示。但是,我在示例中使用了连续的一个

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

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

谢谢你的回答,但我的意思是我需要一个函数,它不是给我一系列的输出值,而是给我一个。我的意思是,我可以像
t1,y1,state1=one_step(filt,state0)
那样调用它,在
t2,y2,state2=one_step(filt,state1)
之后,我找到了一个答案:
,yout,xout=signal.lsim(tf,U=[self\U,U],T=[0.,.1],X0=X0)
,然后依次调用它