gpt4 book ai didi

python - 使用 Gekko 求解固定端点的最优控制

转载 作者:行者123 更新时间:2023-12-05 06:59:50 30 4
gpt4 key购买 nike

我想用 Gekko 中状态变量的固定端点条件解决最优控制问题。我想知道如何在 Gekko 中定义固定端点的最优控制问题,如下所示:

$\min \int_{0}^{1} u^2+(u-x)^2 $

$\dot{x}=x+u$

$x(0)=1$

$x(1)=4$

此外,如何获取目标函数值?

最佳答案

您可以使用 m.options.OBJFCNVAL 检索目标函数值。这是与一些 Benchmark problems 类似的脚本(具体参见 1b)。

Optimization solution

import numpy as np
from gekko import GEKKO
m = GEKKO()
nt = 101; m.time = np.linspace(0,1,nt)
x = m.Var(1)
u = m.Var()
p = np.zeros(nt); p[-1] = 1.0; final = m.Param(value=p)
m.Equation(x.dt()==x+u)
m.Equation(final*(x-4)==0)
m.Minimize(m.integral(u**2+(u-x)**2)*final)

m.options.IMODE = 6; m.solve()
print('Objective: ' + str(m.options.OBJFCNVAL))

import matplotlib.pyplot as plt
plt.plot(m.time,x.value,'k:',LineWidth=2,label=r'$x$')
plt.plot(m.time,u.value,'b--',LineWidth=2,label=r'$u$')
plt.legend(loc='best'); plt.xlabel('Time')
plt.show()

关于python - 使用 Gekko 求解固定端点的最优控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64313133/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com