我试图用Python GEKKO解决一个MINLP优化问题。有两件事我想问你
首先;我仔细检查了下面的链接,并试图理解何登仁先生所做的更改
Python GEKKO MINLP optimization of energy system: How to build intermediates that are 2D arrays
在本例中,是带有文本编辑器的.apm模型文件;存在“连接”。我理解那里的操作,但是我不知道代码中的哪个部分带来了这些连接。我试着效仿这个例子;我使用了类似的中间结构,但在我自己的模型中从未得到过类似的连接
另一件事;在我的中间代码中,我有求和函数。在模型的文本文件版本中,我再次看到求和总是以0开头,然后将变量添加到彼此。例如:
在模型中,T=10 G=11,上述方程为:
INV=m.Intermediate([[sum(pow((1+r),-t)*IC[g]*Z[g,t]*Y[g,t]表示范围(g)中的g]表示范围(t)])
操作看起来是正确的,但我不明白为什么每个括号中都有0(零)? 它给出无效元素错误,并用最后一个t值指向变量
***函数字符串语法错误:无效元素:v230
这个变量(v230)代表Z[11,10]。我发现它总是给出去年的一个错误,这意味着t值最高
另外,如果我使用m.sum而不是sum,它会给出这样一个错误:“x必须是GEKKO参数、变量或表达式的python列表”
如果你能给我一个提示,我将非常感激。这可能不是一个大问题,但是我自己找不到任何解决办法
感谢您的时间和理解
致意
中间体总是在开头加一个零,以防表达式中没有参数。下面是一个简单的Gekko脚本,它显示了中间产物和
m.sum()
的使用这是由Gekko生成并由APMonitor编译成字节码的
gk_model0.apm
模型文件如果将
x
numpy数组转换为带有x=list(x)
的列表,则它将创建一个对象,并将connections转换为这些对象作为shown in the documentation。这是APMonitor模型相关问题 更多 >
编程相关推荐