问题标签 [gekko]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gekko - 如何解决gekko中的简单混合操作?
我正在尝试解决 gekko 中的简单混合操作。混合器mx
采用两个入口流Feed1
和Feed2
。预期结果是出口流的质量流量mx.outlet
应该是入口流的质量流量的总和。这是我尝试过的。
代码运行成功。但是,on mf.mdot
似乎输出不正确的值 [-1.8220132454e-06]。预期值为 400。任何帮助,我的代码有什么问题?
python - 从温度向量中最小化每个 T 值的多变量函数
我尝试按照在这个社区中找到的答案使用 GEKKO 构建代码,但我无法解决我的问题。它是一个函数G(T)
,应该为向量的每个分量求解T
。是部分的错误m.Obj
吗?
错误和代码如下:
过程以退出代码 1 结束。
我只需要知道错误消息的来源。
我该如何解决这个问题?
python - Exporting large array variables (type = object) to CSV files
I have used Gekko from APM in Python to solve an optimization problem. The two main decision variables (DVs) are large arrays. The problem has converged successfully, however, I need the results of these tables in an excel worksheet for further work.
An example variable name is 's'
. Since the arrays created within Gekko
are GKVariable/Object variable types I cannot simply use:
pd.DataFrame(s).to_csv(r'C:\Users\...\s.csv')
because the result gives every cell of the array the label of each variable defined in the model (i.e. v1, v2, etc.)
Using print 's'
within the kernel will show the numbers of the array from the optimization results but in a format that doesn't guarantee that each line is a new row of the matrix because of the many columns.
Is there another solution to copy just the resulting value of the DV 's' so it becomes a normal np.array
instead of the object type variable? Open to any ideas for this.
python - 如何在 Python 中构建和打印 - GEKKO 循环生成的优化值列表?
我有一个目标函数,其中有四个要优化的参数(n1、n2、n3 和 n4)。这种优化应该在“for T in T”循环中完成,因为目标函数是 T 的函数。结果,我为每个 T 得到一组参数。如何构建和打印包含 T、n1、n2、n3 和 n4 的个性化列表?
我尝试了不同的“打印”方式,在循环内部和外部。我还在这里和 GEKKO 的文档中搜索了示例,但这对我来说仍然是一个挑战。提前致谢。
python-3.x - 如何定义时间相关的离散参数?
最近用GEKKO搭建了一个小模型。它包含一个实际随时间变化的参数。我该如何实施?我尝试使用if3
,但它给出了一个错误。
这是MWE:
我尝试了以下方法:
所以q_in
最初是 0,然后在 2.5 时变为 2.5 time = 2
。但我收到以下错误:
你知道我怎么能做到这一点吗?实际上,这个变量在 0 到 60 之间跳跃了几次,我在 CSV 文件中有可用的时间点。理想情况下,我可以创建一个循环,在每次迭代时检查是否q_in
需要更改,并相应地覆盖当前值。
python-3.x - 如何在 ODE 右侧实现矩形脉冲(不连续性)?
除了这个问题之外,我还想在模拟期间进行几次跳跃。正如@LutzL 建议的那样,我尝试在循环中的每个阶段执行一个模拟,并使用该Connection
方法将它们缝合在一起,最终状态为Phase 1 == initial states of Phase 2
等。但我得到一个错误,说
异常:@error:模型表达式 *** 函数字符串语法错误:缺少运算符
位置:6
11.55,11.55,11.55,11.55,11.55 ?
喂食时间和速率应理解为:[t_start, t_end]
,因此有两个喂食事件(分别从t = 2
和开始t = 3.1
)。一个需要 0.7,另一个需要 0.2(天)。所以有五个阶段(numOfPhases
):第一次喂食前,第一次喂食,第一次和第二次喂食之间,第二次喂食,第二次喂食后。
这是我的代码:
python - 如果我的目标函数是非线性(也是指数解释)函数,我应该使用什么求解器?蟒蛇GEKKO
我正在尝试使用 GEKKO 优化指数目标函数,但我不知道所选求解器是否是此类问题的最佳求解器。
被选中的是一个有效的选择吗?
python-3.x - 如何在 Gekko 中实现缺失数据的动态参数估计?
来回浏览文档,我能够在 Gekko中设置 动态参数估计。
这是代码,测量值如下所示(该文件MeasuredAlgebrProductionRate_30min_18h.csv
在我的系统上命名,并;
用作分隔符):
0.0208333333 NaN 30.8306036
0.0416666667 NaN 29.1200832
0.0625 74.866 28.7700549
0.0833333333 NaN 29.2318865
0.104166667 NaN 30.7727362
0.125 NaN 29.8743804
0.145833333 NaN 29.9923447
0.166666667 NaN 30.9169679
0.1875 NaN 28.5956184
0.208333333 NaN 27.7361632
0.229166667 NaN 26.6669496
0.25 NaN 27.17477
0.270833333 75.751 23.6270346
0.291666667 NaN 23.0646928
0.3125 NaN 23.6442113
0.333333333 NaN 23.089118
0.354166667 NaN 22.9101616
0.375 NaN 22.7453854
0.395833333 NaN 23.2182759
0.416666667 NaN 21.4901903
0.4375 NaN 21.1449899
0.458333333 NaN 20.7093537
0.479166667 NaN 20.3109086
0.5 NaN 20.6825141
0.520833333 NaN 19.199583
0.541666667 NaN 19.6173416
0.5625 NaN 19.5543139
0.583333333 NaN 20.4501879
0.604166667 NaN 18.7678061
0.625 NaN 18.4629262
0.645833333 NaN 18.3730322
0.666666667 NaN 19.5375442
0.6875 NaN 18.1975297
0.708333333 NaN 18.0370627
0.729166667 NaN 17.5734727
0.75 NaN 18.8632046
到目前为止,一切都很好。假设我在某些时间点(第一列)也有 X(第二列)的测量值,其余的不可用(因此NaN
)。我想调整k_1
and f_1
,以便模拟和观察到的变量尽可能地匹配X
。 q_prod
这对 Gekko 可行吗?如果是这样,怎么做?
m.time
另一个问题:如果元素多于观察变量的时间点,Gekko 会抛出错误。X
但是,我的和的初始值Y
指的是t=0
,而不是t=0.0208333333
。因此,后面的注释掉的部分m.time =
,见上文。(在 处t=0
的测量不可用。)Gekko 中的初始条件是指 的第一个元素m.time
,就像在 Matlab 中所做的那样,还是指t=0
?
python - 使用 GEKKO 的服务器无法访问。到底是怎么回事?
我正在尝试使用 GEKKO 运行/解决我的模型。昨天它正在工作,但今天我收到服务器错误。
Pyomo 是否需要连接到服务器,或者我可以在没有服务器连接的情况下使用它进行建模?
文件“C:\ProgramData\Anaconda3\lib\site-packages\gekko\gekko.py”,第 2024 行,在解决 raise ImportError('Results files not found. APM did not find a solution or the server is unreachable.')
ImportError:未找到结果文件。APM 未找到解决方案或服务器无法访问。
python - 我应该如何使用 GEKKO 对 log 或 sqrt 建模?约束
我正在尝试使用 GEKKO 开发我的约束,并且我需要包含一些数学运算,例如 log、coth 或 sqrt。
我最初尝试使用我的习惯程序,使用 numpy 或 mpmath,但我发现使用 GEKKO 我需要使用它们的运算符定义,如 m.wathever (log,...),一旦 m = GEKKO() 完成
开发它的最佳方式是什么?我在改变它时应该考虑一些因素吗?