我正在使用 Gekko 对多个系统的多个问题进行基准测试,我想让我的代码返回函数调用、迭代和解决所需的时间。我知道求解器会自动打印所有这些数据,但是是否有可以返回的对象或属性以允许我的函数返回数值?
下面是如何设置代码的示例。
def model(plot=False):
t = np.linspace(0, 1, 101)
m = GEKKO(remote=False); m.time=t
fe = m.Param(np.cos(2*np.pi*t)+3)
de = m.Var(fe[0])
e = m.CV(0); e.STATUS=1; e.SPHI=e.SPLO=0; e.WSPHI=1000; e.WSPLO=1
der = m.MV(0, lb=-1, ub=1); der.STATUS=1
m.Equations([de.dt() == der, e == fe-de])
m.options.IMODE=6; m.solve()
if plot:
import matplotlib.pyplot as plt
plt.plot(t, fe)
plt.plot(t, de)
plt.plot(t, der)
plt.show()
return m.fcalls
if __name__ == "__main__":
model(plot=True)
BIG阳
相关分类