【发布时间】:2026-01-06 08:50:01
【问题描述】:
我正在尝试解决 Python GEKKO 中的 MINLP 优化问题。我想问你两件事。
首先;我仔细检查了下面的链接,并试图了解 Hedengren 先生所做的更改。
Python GEKKO MINLP optimization of energy system: How to build intermediates that are 2D arrays
在本例的 .apm 模型文件中,带有文本编辑器;有“连接”。我了解那里的操作,但是我不知道代码中的哪个部分带来了这些连接。我试图效仿这个例子;我使用了类似的中间结构,但在我自己的模型中从未得到类似的连接。
另一件事;在我的中间代码中,我有求和函数。再次在模型的文本文件版本中,我看到总和总是以 0 开头,然后将变量相互添加。例如:
.....[((((((((((((0+(((((((((1+i5))^(-9)))) (2711)))(v230)))*(int_v340)))+
在模型中; T=10 G=11 上面的等式是这样的:
INV=m.Intermediate ([[sum (pow((1+r), -t)*IC[g]*Z[g,t]*Y[g,t] for g in range(G) )]for t in range(T) ] )
操作看起来正确但我不明白为什么每个括号中都有 0(零)? 它给出了无效元素错误,并用最后一个 t 值指向变量...
*** 函数字符串语法错误:无效元素:v230
这个变量 (v230) 代表 Z[11,10]。我发现它总是给出去年的错误,这意味着最高的 t 值。
另外,如果我使用 m.sum 而不是 sum;它给出了这个错误:“ x 必须是 GEKKO 参数、变量或表达式的 python 列表”
如果您能给我一个提示,我将非常感激。这可能不是什么大问题,但是我自己找不到任何解决方案。
感谢您的时间和理解。
最好的问候
【问题讨论】:
-
感谢您发布问题。您能否发布一个显示错误的最小、可重现的示例? *.com/help/minimal-reproducible-example 它可以帮助我们提出修复建议。您可以在开头和结尾包含三个重音符号en.wikipedia.org/wiki/Grave_accent 的代码。
标签: python nonlinear-optimization gekko