首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyomo:忽略了一个约束的投资组合优化

Pyomo:忽略了一个约束的投资组合优化
EN

Stack Overflow用户
提问于 2022-06-11 16:48:51
回答 1查看 87关注 0票数 0

耽误您时间,实在对不起。这是一个能源组合优化,problem.My代码可以运行并输出一个result.But,一个关键约束根本不起作用。所以结果是错误的。

背景:

风力或太阳能发电的形状是给定的,但风能或太阳能发电的容量是unknown.

  • capacity的,风力发电的solar.

  • capacity也是固定的,水力发电必须全部转移,所以风能和太阳能发电的部分可能是abounded.

  • total丰富的风力发电,太阳能不应超过10%(这是一个不起作用的)。

  • 的目标是找出一定数量的风能和太阳能的容量,它应该满足所有的约束条件,产生最大的转移功率。尤其是丰富的世代比例不应超过10%。

结果表明:风量= MaxW,太阳能容量= MaxS,发电量约为86%。几天来,我一直在努力解决这个问题,但仍然很困惑。请帮帮我。

[问题解决了]原来我印错了。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-06-11 17:40:15

这里有很多遗漏的地方,我不知道你从中得到了什么,因为它有语法错误。

不能使用10%表示小数点0.10。只需使用十进制值。而且它肯定不是函数的参数,因为它是一个非法的变量名。??

通常,“容量”是一个参数(固定值),而不是变量。???

修复它,清理它,如果你还停留在上面,你可以编辑你上面的代码(包括一些数据,这样帮助你的人就可以剪切/粘贴/运行整个程序)。

编辑(编辑后):

好的,这就更清楚了。现在还不清楚你在哪里尝试将风能+太阳能总量限制在10%以内。

在约束m.abo_c1中,你似乎在约束风能+太阳能的总量,使其至少达到你想要建造的总容量的90%,对吗?如果这不是你的意图,你应该重新考虑这个约束。

因此,在另一个约束中,您需要对风和太阳能施加上限,如果您有,(以伪代码表示):

代码语言:javascript
复制
wind + solar + hydro = tot_power

你想:

代码语言:javascript
复制
wind + solar <= 0.1 x tot_power 

然后,您只需要一个小代数就可以将其重新排列为:

代码语言:javascript
复制
wind + solar <= 0.9 x hydro

我在你的模型中看不到那种约束

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72586208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档