如何在 GEKKO GUI 中显示解决方案?

2024-01-08

我想探索 GEKKO Web GUI 用于可视化结果的功能,如中所述https://www.researchgate.net/publication/326740143_GEKKO_optimization_suite https://www.researchgate.net/publication/326740143_GEKKO_optimization_suite.

我已启用m.options.WEB=1并解决了m.solve(GUI=True).

The GUI spawns but with no trends as expected (see below). How do I show the variable content and how are the web interface html files generated used by the GUI? Global Options Variable display HTML files


The Gekko显示版本是GUI=True正如你问题中的情节所示。仅有的FV, MV, SV, and CV值显示在 Web 界面中。

Edit:正如您的评论中所述,您通过升级解决了趋势显示不足的问题flask.

pip install flask --upgrade

选项WEB是 Web 界面的 APMonitor 版本,它使用 AJAX 和 Flash 绘图(已弃用,将在未来版本中替换)来显示 Web 界面。这可以保留为m.options.WEB=0使用 Gekko GUI。

下面是生成 Web 界面的示例。这flaskpackage 是 Web 界面的依赖项,第一次启动时需要刷新网页。选择绘图上的变量以显示或添加新绘图。

from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt  

m = GEKKO()
m.time = np.linspace(0,20,41)

# Parameters
mass = 500
b = m.Param(value=50)
K = m.Param(value=0.8)

# Manipulated variable
p = m.MV(value=0, lb=0, ub=100)
p.STATUS = 1  # allow optimizer to change
p.DCOST = 0.1 # smooth out gas pedal movement
p.DMAX = 20   # slow down change of gas pedal

# Controlled Variable
v = m.CV(value=0)
v.STATUS = 1  # add the SP to the objective
m.options.CV_TYPE = 2 # squared error
v.SP = 40     # set point
v.TR_INIT = 1 # set point trajectory
v.TAU = 5     # time constant of trajectory

# Process model
m.Equation(mass*v.dt() == -v*b + K*b*p)

m.options.IMODE = 6 # control
m.solve(disp=False,GUI=True)

Calling m.solve(GUI=True)每次调用时生成(或更新)Web 界面。还可以使用 Matplotlib 显示 MPC 解决方案。

# get additional solution information
import json
with open(m.path+'//results.json') as f:
    results = json.load(f)

plt.figure()
plt.subplot(2,1,1)
plt.plot(m.time,p.value,'b-',label='MV Optimized')
plt.legend()
plt.ylabel('Input')
plt.subplot(2,1,2)
plt.plot(m.time,results['v1.tr'],'k-',label='Reference Trajectory')
plt.plot(m.time,v.value,'r--',label='CV Response')
plt.ylabel('Output')
plt.xlabel('Time')
plt.legend(loc='best')
plt.show()

More 复杂的 Matplotlib 绘图 https://apmonitor.com/do/uploads/Main/tclab_mhe_mpc.mp4还可以生成以显示未来预测范围、移动范围估计或 MPC 解决方案的其他定制功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 GEKKO GUI 中显示解决方案? 的相关文章

随机推荐

  • Rest 集合中的分页

    我有兴趣向 JSON 文档集合公开一个直接的 REST 接口 想想CouchDB http couchdb apache org or 坚持不懈 http persvr org 我遇到的问题是如何处理GET如果集合很大 则对集合根进行操作
  • Bootstrap 4.0.0 的 Jquery 兼容版本是什么

    请建议与Bootstrap版本4 0 0一起使用的jquery的兼容版本 也只是为了了解知识 列出了 bootstrap 和 Jquery 一起工作的版本 有什么建议或者参考 谢谢 Bootstrap 4 3 对导航栏菜单的创建方式进行了重
  • 带有 Html.ActionLink 的绝对(外部)URL

    我无法让 Html ActionLink 生成绝对网址 Html ActionLink DataBinder Eval c DataItem Name ToString DataBinder Eval c DataItem Path ToS
  • 使用 prometheus 统计 k8s 集群 cpu/内存使用情况

    我想用prometheus计算k8s集群cpu 内存使用情况 不是k8s pod使用情况 这样我就可以在grafana中显示 I use sum container memory usage bytes id 获取 k8s 集群使用的内存
  • JavaScript 中类型化数组的优点是它们在 C 中的工作方式相同或相似吗?

    我一直在玩类型化数组 https developer mozilla org en US docs JavaScript typed arrays在 JavaScript 中 var buffer new ArrayBuffer 16 va
  • Windows Azure Active Directory 应用程序中的“登录 URL”是什么?

    我已经在 Windows Azure Active Directory 中配置了我的第一个应用程序 一切正常 我可以使用目录中的帐户登录 但是 我还不完全清楚所有概念 尤其是登录网址 工具提示说 用户可以登录并使用您的应用程序的 URL 您
  • 有没有办法在Java中嵌入浏览器? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法在Java中嵌入浏览器 更具体地说 是否有一个可以模拟浏览器的库 从 JavaFX 2 0 开始 您现在可以使用webvie
  • Java 中未处理的异常

    我目前正在学习如何正确执行自定义异常 我偶然发现了一个问题 每当我尝试使用抛出此自定义异常的类的对象时 我的 IDE 调试器 我使用的是 IntelliJ idea 会显示 未处理的异常 InsertExceptionName 代码以简化的
  • 在不活动的情况下以编程方式停止 AWS EC2

    当开发环境中没有活动 例如 2 小时不活动后 时 我们是否可以停止开发环境的 AWS Windows Server EC2 实例 我无法确定是否有任何用户虚拟连接到服务器 我可以轻松地以编程方式在固定时间启动 停止 EC2 但为了降低服务器
  • 如何在堆栈上分配具有灵活数组成员的结构

    假设我们有一个以灵活数组成员结尾的结构 struct foo size t len uint8 t data 如何在堆栈上分配这个结构 即内存在作用域结束时自动释放 另外 如果len可以包含字段的大小data 目前 我做的事情如下 uint
  • 为什么 if [ ...某事... ];然后回显“退出状态是$?”总是发出 0?

    在 bash 中输出退出状态的正确方法是什么 据我所知 退出状态由 对应于最后执行的命令的状态 正在处理的脚本对作为参数提供的文件进行一些条件检查 例如 检查是否有任何文件被命名或文件是否存在 所以我有这样的条件语句 if eq 0 the
  • Kotlin 高阶函数组合

    我试图弄清楚如何在 Kotlin 中将一个函数声明性地定义为其他两个函数的组合 但我正在努力 这是我的代码 fun compose a Int Int gt Int b Int Int gt Int Int return a invoke
  • 如何从带有 url 的网页读取 Open Graph 和元标记

    我希望我的网站能够在用户将链接粘贴到邮箱时提取有关网页的信息 类似于 Facebook 我想知道像 Google Reddit 和 Facebook 这样的网站如何能够仅通过 URL 来检索缩略图 标题和描述 有人知道他们是如何做到这一点的
  • WordPress 表单未提交

    您好 我对 WordPress 非常陌生 根据我的要求 我在 WordPress 主题中创建了几个 php 文件 其中detailsform php包含
  • 如何通过 MongoDB PHP 中的嵌入项查找文档

    我在 MongoDB 中有下一个文档 竞赛文件 id ObjectId 502aa915f50138d76d11112f7 contestname Contest1 description java programming contest
  • JavaScript 可以连接 MySQL 吗?

    JavaScript 可以连接 MySQL 吗 如果是这样 怎么办 如果没有某种桥接器 客户端 JavaScript 无法访问 MySQL 但上面关于 JavaScript 只是一种客户端语言的大胆说法是不正确的 JavaScript 可以
  • Android:GridLayout 大小和 View.GONE 行为

    I want to make a GridLayout that when one of it s children s Visibility is set to GONE it is replaced by the next child
  • 将变量传递给 JavaScript 对象

    你能帮我解决我的问题吗 我有以下 JavaScript 对象 var data rows 0 name foshka rows 0 tel 096 rows 0 opt none 问题是我在尝试将变量作为行索引传递时收到错误 var i 0
  • 如何在 PowerShell 中获取数字 HTTP 状态代码

    我知道有一个几个好方法 http scriptolog blogspot com 2007 08 query http status codes and headers html在 PowerShell 中构建 Web 客户端 NET 类
  • 如何在 GEKKO GUI 中显示解决方案?

    我想探索 GEKKO Web GUI 用于可视化结果的功能 如中所述https www researchgate net publication 326740143 GEKKO optimization suite https www re