使用 gekko 进行优化时返回“@Error:未找到解决方案”

2024-04-14

我正在尝试完成长达一年的电池优化问题(8760 小时)。 “ind_1”和“ind_2”是长度为8760的列表,包含0/1。一年中的某些时间可能会获得额外的收入,因此这些指标列表用于区分这些时间(进一步用于最大化函数)。

m = Gekko(remote=False)
#variables
e_battery = m.Var(lb=0, ub=4000, value=2000) #energy in battery at time t, battery size 4 MWh, initial value is 2MWh
command = m.Var(lb=-1000, ub=1000) #command power -1 to 1 (in MW)
e_price = m.Param(value = price) #price is a list of 8760 values
ind_1 = m.Param(value = ind_1) 
ind_2 = m.Param(value = ind_2)
m.time = np.linspace(0,8759, 8760)
m.Equation(e_battery.dt() == e_battery + command)
m.Maximize((-command)*(e_price + ind_1*ind1_price + ind_2*ind2_price))
m.options.IMODE = 6
m.solve()

当我运行上述模型时,它运行大约 20 次迭代,然后返回错误:“@error:未找到解决方案”。此任务的目标是返回一个包含 8760 个值的数组(命令变量),从而最大化返回值。有什么想法这个错误来自哪里吗?


看起来其中一个方程不正确:

m.Equation(e_battery.dt() == e_battery + command)

这会导致 e_battery 呈指数增长,超过上限。大概应该是:

m.Equation(e_battery.dt() == command)

有一个特定的错误代码可以让您深入了解求解器未能找到解决方案的原因。最常见的两个是最大迭代次数和不可行解。如果是最大迭代次数,则尝试设置m.options.MAX_ITER到更高的数字(最多 1000?)。如果它是不可行的解决方案,那么看看infeasibilities.txt运行目录下的文件m.path找到导致问题的约束。另一件要尝试的事情是最初使用较小的时间范围来验证它是否适用于大约 100 个时间步长的事物。

from gekko import Gekko
import numpy as np
m = Gekko(remote=False)
#variables
n = 100
price=np.ones(n)
e_battery = m.Var(lb=0, ub=4000, value=2000) #energy in battery at time t
# battery size 4 MWh, initial value is 2MWh
command = m.Var(lb=-1000, ub=1000) #command power -1 to 1 (in MW)
e_price = m.Param(value = price) #price is a list of 8760 values
ind_1=1; ind_2=1
ind1_price=1; ind2_price=1
ind_1 = m.Param(value = ind_1) 
ind_2 = m.Param(value = ind_2)
m.time = np.linspace(0,n-1,n)
m.Equation(e_battery.dt() == command)
m.Maximize((-command)*(e_price + ind_1*ind1_price + ind_2*ind2_price))
m.options.IMODE = 6
m.solve()

这给出了一个成功的解决方案:

EXIT: Optimal Solution Found.

 The solution was found.

 The final value of the objective function is  -6000.00005999999
 
 ---------------------------------------------------
 Solver         :  IPOPT (v3.12)
 Solution time  :  0.05 sec
 Objective      :  -6000.00005999999
 Successful solution
 ---------------------------------------------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 gekko 进行优化时返回“@Error:未找到解决方案” 的相关文章

  • 区分大小写的实体识别

    我的关键字全部以小写形式存储 例如 折扣耐克鞋 我正在尝试对其执行实体提取 我遇到的问题是 spaCy 在 NER 方面似乎区分大小写 请注意 我不认为这是 spaCy 特有的 当我跑步时 doc nlp u i love nike sho
  • 确定向量中是否存在元素的最有效方法

    我有几种算法取决于确定元素是否存在于向量中的效率 在我看来 这 in 这相当于is element 应该是最有效的 因为它只返回一个布尔值 在测试了几种方法之后 令我惊讶的是 这些方法是迄今为止效率最低的 以下是我的分析 随着向量大小的增加
  • 如何检索分配给 Django 中的组的所有权限

    我正在执行一项任务来检索分配给 Django 中的组的一组权限 我可以使用以下代码获取创建的组 但无法使用它来获取分配给它们的权限 from django contrib auth models import Group Permissio
  • 在 PhotoImage 下调整图像大小

    我需要调整图像大小 但我想避免使用 PIL 因为我无法使其在 OS X 下工作 不要问我为什么 无论如何 因为我对 gif pgm ppm 感到满意 所以 PhotoImage 类对我来说没问题 photoImg PhotoImage fi
  • 如何将脚本作为 pytest 测试运行

    假设我有一个用简单脚本表示的测试assert 陈述 请参阅背景了解原因 例如 import foo assert foo 3 4 我如何以一种好的方式将该脚本包含在我的 pytest 测试套件中 我尝试了两种有效但不太好的方法 一种方法是将
  • Python 中 time.sleep 和多线程的问题

    我对 python 中的 time sleep 函数有疑问 我正在运行一个脚本 需要等待另一个程序生成 txt 文件 虽然 这是一台非常旧的机器 所以当我休眠 python 脚本时 我遇到了其他程序不生成文件的问题 除了使用 time sl
  • 如何在 numpy 数组中查找并保存重复的行?

    我有一个数组 例如 Array 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 1 1 1 2 2 2 我想要输出以下内容的东西 Repeated 1 1 1 2 2 2 保留重复行的数量也可以 例如 Repeated 1 1
  • 烧瓶 - 404 未找到

    我是烧瓶开发的新手 这是我在烧瓶中的第一个程序 但它向我显示了这个错误 在服务器上找不到请求的 URL 如果您输入了网址 请手动检查拼写并重试 这是我的代码 from flask import Flask app Flask name ap
  • 如果另一列中的值为空,则删除重复项 - Pandas

    我拥有的 df Name Vehicle Dave Car Mark Bike Steve Car Dave Steve 我想从 名称 列中删除重复项 但前提是 车辆 列中的相应值为空 我知道我可以使用 df dropduplicates
  • 导入目录下的所有模块

    有没有办法导入当前目录中的所有模块 并返回它们的列表 例如 对于包含以下内容的目录 mod py mod2 py mod3 py 它会给你
  • 错误:尝试使用 scrappy 登录时出现 raise ValueError("No element found in %s" % response)

    问题描述 我想从我大学的bbs上抓取一些信息 这是地址 http bbs byr cn http bbs byr cn下面是我的蜘蛛的代码 from lxml import etree import scrapy try from scra
  • 将 Python Selenium 输出写入 Excel

    我编写了一个脚本来从在线网站上抓取产品信息 目标是将这些信息写入 Excel 文件 由于我的Python知识有限 我只知道如何在Powershell中使用Out file导出 但结果是每个产品的信息都打印在不同的行上 我希望每种产品都有一条
  • 操作错误:尝试在 ubuntu 服务器中写入只读数据库

    我正在使用 FlaskApp 运行mod wsgi and apache2在 Ubuntu 服务器上 我尝试运行烧瓶应用程序localhost成功 然后部署到ubuntu服务器上 但是当我尝试更新数据库时 出现错误 Failed to up
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 如何在 Python 中跟踪日志文件?

    我想在 Python 中提供 tail F 或类似内容的输出 而无需阻塞或锁定 我找到了一些非常旧的代码来做到这一点here http code activestate com recipes 436477 filetailpy 但我认为现
  • RuntimeError(f"目录 '{directory}' 不存在") RuntimeError: 目录 'app/static' 不存在

    当我运行 server py 文件时出现错误 File C Users nawin AppData Local Programs Python Python38 lib site packages starlette staticfiles
  • 重定向 python 交互式帮助()

    我正在为使用 Qt 的应用程序开发交互式 python shell 但是我似乎无法获得重定向的交互式帮助 我的 python 代码中有这个 class OutputCatcher def init self self data def wr
  • 避免“散点/点/蜂群”图中的数据点重叠

    使用绘制点图时matplotlib 我想偏移重叠的数据点以使它们全部可见 例如 如果我有 CategoryA 0 0 3 0 5 CategoryB 5 10 5 5 10 我想要每一个CategoryA 0 数据点并排设置 而不是彼此重叠
  • python 日志记录替代方案 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 蟒蛇记录模块 http docs python org library logging html使用起来
  • PYTHON:从 txt 文件中删除 POS 标签

    我有以下 txt 文件 其中包含 POS 词性 http en wikipedia org wiki Part of speech tagging 每个单词的标签 不用 jj到 说 vb 我 ppss是 bedz愤怒 jj在 在 dt无与伦

随机推荐

  • Hibernate JPA 序列(非 Id)

    是否可以对某些列使用数据库序列不是标识符 不是复合标识符的一部分 我使用 hibernate 作为 jpa 提供程序 并且我有一个表 其中有一些生成值的列 使用序列 尽管它们不是标识符的一部分 我想要的是使用序列为实体创建新值 其中序列的列
  • 合并 JSON 数组

    所以我的目标是合并 json 文件以获得以下格式 title NamesBook list name Ajay name Al 我的文件看起来像这样的格式 等等 json title NamesBook list name Ajay blu
  • 如何使用QtCopyDialog?

    我包括这个库 include
  • 如何在Python中检测两个文件是否相同[重复]

    这个问题在这里已经有答案了 在这种情况下 对 md5sum file1 和 md5sum file2 进行系统调用并比较两个返回值是否足够 如果您想做的不仅仅是检测它们是否不同 或者不信任哈希解决方案 标准库中有一些名为difflib ht
  • 我可以将 pandas.dataframe.isin() 与数字容差参数一起使用吗?

    我事先查看了以下帖子 有没有办法将 DataFrame isin 与近似因子或容差值一起使用 或者还有其他方法可以吗 如果列中的值位于一组值列表中 则过滤数据框行 https stackoverflow com questions 1206
  • 网页中的复选框 - 如何使它们更大?

    大多数浏览器中呈现的标准复选框都非常小 即使使用较大的字体也不会增加大小 显示较大复选框的最佳 独立于浏览器的方式是什么 如果这可以帮助任何人 这里有一个简单的 CSS 作为起点 将其变成一个基本的圆角正方形 大到足以容纳拇指 并具有切换的
  • Windows Phone 8 Facebook 身份验证

    我正在开发一个适用于 Windows Phone 8 的应用程序 我想让用户可以使用他们的 Facebook 帐户登录 这样他们就不必在我的应用程序上创建帐户 我看到了 Facebook SDK for NET 并决定使用它 因为它似乎非常
  • Axios:收到两个请求 OPTIONS 和 POST

    我正在尝试发布数据 一切正常 但我不知道为什么我收到两个请求OPTIONS POST POST OPTIONS 这是代码 const url http rest learncode academy api johnbob myusers e
  • 重叠圆的组合面积

    我最近遇到一个问题 我有四个圆 中点和半径 并且必须计算这些圆的并集面积 示例图片 对于两个圆来说 这很容易 我可以计算不在三角形内的每个圆圈面积的分数 然后计算三角形的面积 但是当有两个以上的圆圈时 我可以使用一种聪明的算法吗 找到外周上
  • Java“相当于”CSLA

    我读过该书的好几章CSLA http www lhotka net cslanet 我喜欢这本书 但最近我更倾向于 Java 所以我正在寻找基于 Java 的等效书 有谁知道任何接近的东西Java 中的 CSLA 我还愿意将其他现有技术很好
  • 一个 RDD 中的值与另一个 RDD 中的值部分/完全匹配

    我有两个 RDD 其中第一个 RDD 具有以下形式的记录 RDD1 1 2017 2 13 ABX 3354 gsfette 2 2017 3 18 TYET 3423 asdsad 3 2017 2 09 TYET 3423 rewriu
  • WPF滚动和焦点改变问题

    我的 WPF 应用程序滚动时遇到问题 这是交易 我的用户界面如下 我的应用程序的作用是充当许多应用程序的中心枢纽并启动它们 管理员可以启动其他用户记录的转储 因此 我有一个ListView 显示应用程序列表 如果需要 可以滚动 我定义了一个
  • Android 地图 v2 自定义标记的缩放位置不正确

    我知道这个问题以前已经讨论过 但我实际上找不到解决方案 我正在为我的标记添加自定义图标 markerUserLocation mMap addMarker new MarkerOptions position new LatLng poin
  • 为什么我无法在 Visual Studio 中整合项目 sdk 版本?

    首先 我收到此构建错误 但仅在某些机器上 错误 CS1705 程序集 与标识 版本 1 0 0 0 文化 中立 PublicKeyToken null 使用 System Net Http 版本 4 1 1 1 Culture neutra
  • 在功能测试方法中运行 for 循环可以吗?

    在测试方法中运行 for 循环可以 概念上 吗 我想测试控制器中的一系列参数值 以确定不同的输入是否返回正确的值 test logged in user add something 0 qty do app Factory create a
  • 将 PHP 变量传递到 MySQL

    我在 PHP 中有一个函数 可以将值插入到 MYSQL 表中 function insertRow db new table ID Partner Merchant insert INSERT INTO new table VALUES n
  • 如何从 Visual Studio 调试器和立即窗口中运行 Windbg/dbeng.dll 命令?

    我在 Bart de Smet 的视频演讲中看到 他通过将 Windbg 命令输入到即时窗口在 Visual Studio 中 当在 Visual Studio 调试器内以调试模式运行项目时 所以 我想自己尝试一下 这就是我所做的 我去了项
  • Laravel 拒绝在 iFrame 中显示为“'X-Frame-Options' to 'SAMEORIGIN'”。

    因此 我在 Laravel 中构建了一个表单并在外部托管 但我想在 HTML 页面中显示它 但 X Frame Options 存在问题 确切的错误消息是 Refused to display url in a frame because
  • 注意使用 nusoap 进行数组到字符串的转换

    我正在使用 nosoap 用 PHP 开发一个 Web 服务 这是我的文件 webservice php
  • 使用 gekko 进行优化时返回“@Error:未找到解决方案”

    我正在尝试完成长达一年的电池优化问题 8760 小时 ind 1 和 ind 2 是长度为8760的列表 包含0 1 一年中的某些时间可能会获得额外的收入 因此这些指标列表用于区分这些时间 进一步用于最大化函数 m Gekko remote