我开始学习 Gekko,并且正在测试最优控制问题。我正在尝试用 Gekko 解决以下最优控制问题
这个问题的解是 (x_1(t) = (t-2)^2 - 2) 如何构建约束 x(0) + x(2) = 0?我的代码给了我一个错误的解决方案。
m = GEKKO(remote=False) # initialize gekko
nt = 101
m.time = np.linspace(0,2,nt)
#end_loc = nt-1
# Variables
x1 = m.CV(fixed_initial=False)
x2 = m.CV(fixed_initial=False)
x3 = m.Var(value=0)
#u = m.Var(value=0,lb=-2,ub=2)
u = m.MV(fixed_initial=False,lb=-2,ub=2)
u.STATUS = 1
p = np.zeros(nt) # mark final time point
p[-1] = 1.0
final = m.Param(value=p)
p1 = np.zeros(nt)
p1[0] = 1.0
p1[-1] = 1.0
infin = m.Param(value=p1)
# Equations
m.Equation(x1.dt()==x2) …Run Code Online (Sandbox Code Playgroud)