小编use*_*128的帖子

如何在Scipy中定义具有时间延迟的LTI系统?

具有时间延迟的LTI系统的传递函数具有分子项exp(-Td*s),其中Td是时间延迟.在Matlab中,可以通过多种方式创建这样的LTI系统(例如,使用"s"运算符并直接设置指数项或通过设置对象的inputdelay outputdelay属性tf.)但是,我无法在Scipy Signal LTI中找到任何方法对象.我还检查了Python控制系统库,但仍然找不到方法.

我不想将Pade近似用于时间延迟,并且想要为LTI系统设置准确的时间延迟.

有谁知道如何在Scipy或任何其他外部Python库中实现这一点?

python matlab signal-processing scipy lti

7
推荐指数
1
解决办法
2659
查看次数

为什么 scipy.optimize 将 ndarray 展平为一维数组?

请看下面的代码。

import numpy
def f(u):
    print(u) # to check dimensions of the input 
    return 10
u= numpy.array([[1,2],[3,4]])
scipy.optimize.minimize(f,u)
Run Code Online (Sandbox Code Playgroud)

输出:

[ 1.  2.  3.  4.]
[ 1.00000001  2.          3.          4.        ]
[ 1.          2.00000001  3.          4.        ]
[ 1.          2.          3.00000001  4.        ]
[ 1.          2.          3.          4.00000001]
[ 1.  2.  3.  4.]
Out[24]:
      fun: 10
 hess_inv: array([[1, 0, 0, 0],
       [0, 1, 0, 0],
       [0, 0, 1, 0],
       [0, 0, 0, 1]])
      jac: array([ 0.,  0.,  0.,  0.])
  message: 'Optimization …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy scipy

5
推荐指数
0
解决办法
588
查看次数

如何解决gekko中简单的混合操作?

我正在尝试解决gekko中的简单混合操作。混合器mx需要两个入口流Feed1Feed2。预期结果是出口流mx.outlet的质量流量应为入口流的质量流量的总和。这是我尝试过的。

from gekko import GEKKO, chemical
m = GEKKO(remote=False)    

f = chemical.Flowsheet(m)
P = chemical.Properties(m)

c1 = P.compound('Butane')
c2 = P.compound('Propane')

feed1 = f.stream()
m_feed1 = f.massflows(sn= feed1.name)
m_feed1.mdot = 200
m_feed1.mdoti = [50,150]

feed2= f.stream()
m_feed2 = f.massflows(sn= feed2.name)
m_feed2.mdot = 200
m_feed2.mdoti = [50,150]      

mx = f.mixer(ni=2)
mx.inlet = [feed1.name,feed2.name]
m.options.SOLVER = 1

mf = f.massflows(sn = mx.outlet)
m.solve()
Run Code Online (Sandbox Code Playgroud)

代码成功运行。但是,打开 mf.mdot似乎输出了不正确的值[-1.8220132454e-06]。预期值为400。有什么帮助,我的代码有什么问题?

gekko

3
推荐指数
1
解决办法
35
查看次数

标签 统计

python ×2

scipy ×2

arrays ×1

gekko ×1

lti ×1

matlab ×1

numpy ×1

signal-processing ×1