微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在spyder IDE中以时间相关的值显示gekko变量值

如何解决在spyder IDE中以时间相关的值显示gekko变量值

我正在将GEKKO用于与时间相关的DE模型。我正在使用GEKKO变量跟踪充分混合的隔室模型中的物种浓度。但是,我无法查看spyder IDE中浓度随时间变化的数组。我可以绘制浓度并以图表形式查看值,也可以使用“结果” excel文件中报告的值,但是查看spyder中与时间相关的值会很有用。现在,在spyder的变量浏览器中,变量显示为gk_variable.GKVariable类型。

这是我使用的代码示例

from gekko import GEKKO
import numpy as np
import pandas as pd

myFile = pd.read_csv('Time_Array.csv',sep = ',')
myFile.index
myFile.columns
time = np.array(myFile)

m.time = time

FCG = m.Var(value = 6.934045,lb = 0) 
CMG = m.Var(value = 7.01148,lb = 0)

m.Equations([FCG.dt() == Qdiet/Vintestines + Qsynintestine + Kfclg*FCL*(Vliver/Vintestines) - Kfcex*FCG - Kfccm*FCG,CMG.dt() == Kfccm*FCG - Kcmgb * CMG])

m.options.IMODE = 4
m.solve(disp = True)

上面的代码是模型的片段。在实际模型中,有更多的常数和方程式。但是,我基本上想在不离开spyder IDE的情况下查看FCG和CMG等浓度随时间变化的值。我知道您可以通过在代码中插入打印语句来做到这一点,我想知道是否有人知道任何其他更清洁的修复程序。

非常感谢!

解决方法

.value属性可用于查看Gekko参数或变量的数值。这不会显示在变量浏览器中,因此一种解决方法是创建一个新的Python变量。

fcg_values = FCG.value

您还可以看到第一个值:

fcg_init = FCG.value[0]

最后一个值:

fcg_last = FCG.value[-1]

或介于两者之间的值范围:

fcg_inner = FCG.value[2:5]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。