- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我终于回到了我的项目上并找到了我的下一个障碍。
我可以让我的系统像普通汽车一样运行。我很好奇在 gekko 中合并这种类型的约束的最佳方法是什么。流形看起来像一个具有圆角和圆角的立方体。我目前的想法是创建一个 MLP(多层感知器)来近似表面上每个点的流形上的法向量。我尝试使用 GEKKO 大脑模型来执行此操作,但最终速度非常慢,因此我转向了 keras 模型。我现在有一个 keras 模型,连接位置到法向量的准确率约为 89%(这可能就足够了)。
所以我的第一件事是,如何将 keras 模型合并到我的 gekko 方程中?如果我能够在每个点计算神经网络输出的导数,那么是否有可能将模型黑盒化,这样gekko就可以放置一个位置,然后黑盒函数吐出一个法向量和这个法向量最终计算出最优轨迹的导数?
如果这不可能,您认为我可以轻松地将此流形建模为 bspline 吗?当系统处于驱动状态时,我应该采用什么方法使流形表面成为系统的约束?我的想法是,我会采用系统的当前速度矢量并将其与系统位置处流形的法向矢量点在一起,以获得速度矢量沿流形旋转了多少。我已经看到一些问题,例如大时间步缺少流形的曲率并导致系统驱动流形的表面。我认为进行此数学运算的典型方法是将系统的速度投影到流形的“切空间”中,在切空间中导出 future 状态,然后使用收缩映射回流形。我对拓扑和流形这个话题还很陌生,所以如果我在理论上犯了错误,请纠正我。
我还没有太多代码可以执行此操作,因为我一直在弄清楚如何在方程式中使用 keras 模型。我确实有一个更简单的问题可用,它不是在这个复杂的流形上行驶,而是在 R2 中的一个圆上行驶。我也使用 keras 模型在 R2 中为这个圆圈建模。如果我能够在方程式中使用 keras,然后再开始在 R3 的流形上驾驶,我打算从更简单的版本开始。
有没有类似的例子可以让我学习?
谢谢!很高兴回到这个项目。
最佳答案
这种路径规划优化应用程序可能会更好地采用射击方法,其中模型是优化器反复调用模拟器的“黑匣子”。一些挑战是当车辆与地面或空中相互作用时方程式的变化。如果您确实想尝试对地面和空中进行建模,if3
语句将允许切换或使用松弛变量。
对于边界约束,也许有一种更简单的方法来开始对其建模,例如可以形成一个盒子的简单不等式约束。您可以为边缘添加额外的不等式约束来模拟曲率。
下面是一个带有 rocket launch 的相关应用程序这适用于空气动力学。您需要将其扩展到 3D。
import numpy as np
import matplotlib.pyplot as plt
from gekko import GEKKO
# create GEKKO model
m = GEKKO()
# scale 0-1 time with tf
m.time = np.linspace(0,1,101)
# options
m.options.NODES = 6
m.options.SOLVER = 3
m.options.IMODE = 6
m.options.MAX_ITER = 500
m.options.MV_TYPE = 0
m.options.DIAGLEVEL = 0
# final time
tf = m.FV(value=1.0,lb=0.1,ub=100)
tf.STATUS = 1
# force
u = m.MV(value=0,lb=-1.1,ub=1.1)
u.STATUS = 1
u.DCOST = 1e-5
# variables
s = m.Var(value=0)
v = m.Var(value=0,lb=0,ub=1.7)
mass = m.Var(value=1,lb=0.2)
# differential equations scaled by tf
m.Equation(s.dt()==tf*v)
m.Equation(mass*v.dt()==tf*(u-0.2*v**2))
m.Equation(mass.dt()==tf*(-0.01*u**2))
# specify endpoint conditions
m.fix(s, pos=len(m.time)-1,val=10.0)
m.fix(v, pos=len(m.time)-1,val=0.0)
# minimize final time
m.Obj(tf)
# Optimize launch
m.solve()
print('Optimal Solution (final time): ' + str(tf.value[0]))
# scaled time
ts = m.time * tf.value[0]
# plot results
plt.figure(1)
plt.subplot(4,1,1)
plt.plot(ts,s.value,'r-',linewidth=2)
plt.ylabel('Position')
plt.legend(['s (Position)'])
plt.subplot(4,1,2)
plt.plot(ts,v.value,'b-',linewidth=2)
plt.ylabel('Velocity')
plt.legend(['v (Velocity)'])
plt.subplot(4,1,3)
plt.plot(ts,mass.value,'k-',linewidth=2)
plt.ylabel('Mass')
plt.legend(['m (Mass)'])
plt.subplot(4,1,4)
plt.plot(ts,u.value,'g-',linewidth=2)
plt.ylabel('Force')
plt.legend(['u (Force)'])
plt.xlabel('Time')
plt.show()
这是另一个应用 landing of a reusable rocket与 source files .他们开发了火箭动力学的替代模型,以将该模型应用于预测控制。
这是一个 3D 火箭应用的示例,但它们没有地面相互作用与不断变化的动力学方程的复杂性。
关于gekko - 在 GEKKO 中推导流形上的最佳轨迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66189542/
我很好奇 IPOPT 求解器的每个求解器输出列的建议。有什么 Material 可以解释这个吗? 以下是IPOPT求解器的求解器输出。我想知道 inf_pr , inf_du , lg(mu) , |
我是 Python 中的 Gekko 库的新手,想知道我是否可以在 Gekko 中按照 LP 公式建模。 LP 公式意味着我想找到最佳的电器调度类次,以使总电力成本最小化。但是,如约束所示,每天的总耗
当使用 max2 在 Python GEKKO 中按顺序求解模型(即 IMODE >= 4)失败时和 max3 GEKKO 附带的功能。 这是针对用例,其中 np.maximum或标准max函数将 G
我正在学习如何根据实验室批量 react 器数据使用 GEKKO 进行动力学参数估计,该数据主要由 A、C 和 P 三种物质的浓度分布组成。为了我的问题,我使用的是我以前的模型精选于 question
我正在尝试使用 GEKKO 优化电力系统.具体使用 MPC 到 IEEE 14 bus测试用例。 该系统包含 14 条总线,模型由状态变量 theta 和 omega(分别为发电机的功率角和旋转频率)
EDIT2:好吧,我是个白痴。我关于横向误差的数学有问题。我已经将该等式重写为更简单的东西并且它现在可以工作了。我会离开这里以防它对任何人有用。但如果可能的话,我仍然希望有人能确保我没有做任何过分的事
我终于回到了我的项目上并找到了我的下一个障碍。 我有一个封闭的歧管: 这也是游戏即时建模中的示例轨迹 我可以让我的系统像普通汽车一样运行。我很好奇在 gekko 中合并这种类型的约束的最佳方法是什么。
Gekko 中是否有一个类轮来检索拉格朗日乘数(例如 GAMS 中的边际),或者如果不是其他方式的单行? 谢谢您的帮助。 最佳答案 这是检索拉格朗日乘数的一行。 lam = np.loadtxt(m.
我喜欢在 y 模型中约束变量值 u -0.5) # Model objective m.Obj(-Tc) # options m.options.IMODE = 6 # Problem type:
我正在尝试解决 gekko 中的一个简单混合操作。 blender mx采用两个入口流 Feed1和 Feed2 .预期结果是导出流的质量流量mx.outlet应该是入口流的质量流量的总和。 这是我尝
我想将 LINGO 代码转换为 Python GEKKO 代码。这是 Lingo 代码、lingo 结果和 gekko 代码。我不能写第二个和第三个约束。它返回索引错误,但我不明白为什么?有人可以帮忙
我正在研究一个相当大的 MINLP,模型大小约为 270,000 个变量和方程 - 5,000 个二进制文件。将 Gekko 与 APOT 求解器结合使用,我可以在大约 868 秒(不到 15 分钟)
我有一个 RTO 问题,我想用一些时间相关的参数解决多个模拟时间步长。但是,我在运行时遇到了困难,并注意到总系统时间与实际求解时间相比相对较大。因此,我试图减少总的解析时间,因为所有方程式都保持不变—
intpolatn 函数从 GEKKO 最大化目标函数接收整数变量 u_hub_next。 intpolatn 只是为了检查整数是否落在 windvel[0] 和 windvel[1] 之间以及后续的
我正在优化的问题是在传输网络中 build 发电厂。为此,我在每辆公交车上放置了发电厂,并让优化告诉我应该 build 哪些发电厂以最大限度地降低运行成本。 为了模拟植物的放置,我尝试使用一组二进制变
我在 super 计算中心本地使用 Gekko。我有一个解决 MINLP 的脚本,它可以轻松扩展以添加更多混合整数变量。我想了解随着变量数量的增加以及我需要请求的内存量,计算的成本会有多高。 当我只请
我目前正在使用 MPC 让 TCLab 加热器达到某个设定点温度。我试图让 MHE 每 50 秒更新一次某些参数值。我有一个以前的 MPC 模型,效果很好,我尝试在我的主循环中添加一个部分,让它切换以
使用 Gekko 拟合数据的数值 ODE 解。 嗨,大家好! 我想知道是否可以使用 GEKKO 拟合 ODE 的系数。 我尝试复制 example given here 失败. 这是我想出的(但有缺陷
祝大家节日快乐!我终于有一些时间来处理我的项目了,当然我和往常一样被困住了,哈哈。 我正在寻找可以让我能够模拟以下内容的指导/示例: 我有一个二进制(0 或 1)输入(我们称之为“跳跃”),我希望它只
我无法理解从 GEKKO 模型收到的错误消息。 就上下文而言,该模型应该优化气 Spring 辅助门的气 Spring 力和尺寸参数,以最大限度地减少运算符(operator)关闭门所需的力。我的目的
我是一名优秀的程序员,十分优秀!