问题标签 [gekko]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - GEKKO 中的非线性输入(操纵变量)
我有一个具有二次输入(操纵变量,[MV])的非线性系统。为了使用 GEKKO 对该系统进行 MPC 仿真,我定义了以下函数来处理二次输入:
然后我定义我的系统方程如下:
模拟运行,但 GEKKO 永远不会改变 MV untv
(无论为 设置什么untv[i].value
,都保持在模拟的那个值),而线性 MVunb
在模拟期间进行了优化,并且会随时间变化。我怀疑我的功能NTVin
应该受到指责(特别是在这一行:)u2[i] = copy(u[i].VALUE
。那么我的问题是,GEKKO 可以处理非线性 MV,如果可以,在声明系统方程时有没有办法处理这个二次输入?
python - 延迟调用应该放在壁虎代码中的什么位置?
我正在尝试使用 GEKKO MPC 来控制水箱的液位,同时操纵入口流量。我想将 GEKKO 控制器建模为 FOPDT。我得到了我需要的所有参数,但我想使用延迟函数来考虑时间延迟。我不确定这个函数的确切位置,因为当我将它放入代码时它给了我一个错误。当我删除它(即没有时间延迟)时,代码可以正常工作,但我想要更现实并延迟时间。下面附上代码:
gekko - 有没有办法在同一个 gekko 类中用 MHE 更新 MPC?
我目前正在使用 MPC 让 TCLab 加热器达到某个设定点温度。我试图让 MHE 每 50 秒更新一次某些参数值。我有一个以前的 MPC 模型,效果非常好,我尝试在我的主循环中添加一个部分,让它切换以提高某些值,然后切换回 MPC 模式。我已经看到其他做同样问题的人已经为 MPC 和 MHE 制作了一个 gekko 类,然后让它们一起工作,但是有没有一种方法可以在我当前的 MPC 循环中添加一个允许MHE 更新某些值然后切换回 MPC?
这是我添加到循环中以更新变量但没有更新我的值的代码
python - 在壁虎中求解方程
这是我的代码的一部分:
但是它没有打印 x。
有什么理由吗?
gekko - 如何在 mpc 中使用矢量设置点,以便为程序提供有关未来设置点将如何变化的信息
我正在使用 MPC 来运行加热器系统。目前,我让它在给定的时间点从我的设定点数组中获取一个单独的值,以调整要达到的过程。我希望能够给它当前的期望值和未来的几个点作为设定点,以便它可以随着设定点的变化更好地调整。我怎样才能给 gekko 一个向量,以便让它更好地适应未来的设定点?
这是我的代码中当前更新我的设定值的部分。
python - 如何在 Python Gekko 中最大化目标函数?
我试图在我的优化问题中最大化利润。当我使用 Gekkom.Obj
函数时,它总是使利润最小化。
报告的最优解是profit=1
。如何切换到使用 Python Gekko 最大化目标函数,以便最佳解决方案是profit=10
?我的问题有多个目标。有一些是我想最小化的(公用事业、饲料、运营费用),还有一些是我想最大化的(利润、生产)。
gekko - 如何处理 GEKKO 中的离散时间系统?
我正在处理一个采样时间为 300 秒的离散时间系统。
我的问题是如何表达状态方程或输出 eqatuin
其中x(k)
是状态,y(k)
是输出。我拥有 A、B、C 矩阵的所有值。
我在网页https://apmonitor.com/wiki/index.php/Apps/DiscreteStateSpace上找到了一些关于离散时间系统的信息
我想知道除了
python - 如何使用 Python Gekko 修复 IPOPT 中的本地不可行性?
我在 IPOPT (v3.12.10) 中遇到本地不可行错误。
我还使用 APPT 求解器进行了尝试,m.options.SOLVER=1
并得到了类似的错误。
这个问题有多个可行的解决方案,有两个方程和三个变量。这个问题的解决方案是平面与球体相交的地方。
当我添加一个目标函数来最大化z
时,IPOPT 会收敛到一个解决方案。
如何在不添加目标函数的情况下避免失败的解决方案?