python - 如何在python中模拟传递函数的一步
问题描述
我发现了有助于模拟传递函数行为scipy.signal.dstep
的scipy.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
。但是这些函数不允许仅使用初始值对一步进行建模。
是否有任何其他函数可以对传递函数的一个步骤进行建模,或者如何更好地进行建模?
解决方案
首先,我不确定您是要使用离散时间还是连续时间,因为您使用的是s
运算符 for cont。time,函数dstep
和dlsim
用于离散时间表示。但是,我在示例中使用了连续的。
您可以使用's函数dlti
在 python中创建对象。创建的过滤器对象有一个方法,其中第一个参数用于初始时间向量。lti.step
因此,您可以使用此代码段绘制您的阶跃响应。scipy.signal
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()
推荐阅读
- c++ - 如何管理许多 char 数组变量?
- x86 - 分支预测和推测性提取缓解
- postgresql - 使用 SymmetricDS 同步无效的 Postgis 几何
- c - 为什么我不能将指向结构的指针保存到指向指针数组的指针的索引?
- eclipse - Git commit 显示已更改的文件,如元数据,尽管它们位于 gitignore 文件中
- haskell - GHC,简单性能测试产生疯狂的锯齿图
- .net-core - MVC 属性路由在 .net Core 中找不到链接
- haskell - Haskell以特定顺序加入列表中的函数输入
- java - Maven 万无一失和模块化 JavaFX 11
- c++ - 如果我在指数中输入零,C++ 代码不起作用