You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GEKKO含随机变量约束构建及tau减小致不可行问题求助

GEKKO跟踪优化问题求解求助

我尝试用GEKKO求解下述跟踪优化问题,但无法确认代码是否正确。当前出现了理论上不应有的情况:当略微减小tau值时,问题变得不可行,特此寻求协助。

这是一个状态变量依赖多个xi值的跟踪问题,优化问题公式如下:

Optimization problem

我的实现代码如下:

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

# Initialize model
m = GEKKO(remote=False)

# Time points
n = 10
m.time = np.linspace(0, 10, n)

# parameters
alpha = 0.95
m1 = 0.5
m2 = 0.3
tau = 0.5

# Number of random samples
N = 10

# create the samples
Xi = np.random.rand(N,n)
S = []
for i in range(N):
  S.append(m.Param(list(Xi[i])))

# State variables
x = m.Array(m.Var, N, value=5.0)

# Control variable
u = m.Var()

# reference trajectory
x_val = [5.0, 2.31, 1.45, 1.01, 0.75, 0.57, 0.45, 0.36, 0.31, 0.28]
x_r = m.Param(x_val)

# Equation
m.Equations(5 * x[i].dt() == -x[i]**2 + u + S[i] for i in range(N)) 

m.Equation((1/N)*m.sum([(1 + m1 * tau) / (1 + m2 * tau * m.exp((-(x[i] - x_r[i])**2 + 10) / tau)) for i in range(N)]) <= 1 - alpha)

m.Obj((1/N)*(m.sum([(x[i] - x_r[i])**2 for i in range(N)])) + u**2)

# Solve the differential equation
m.options.IMODE = 6  #
m.options.SOLVER = 3; # 1: APOPT, 2:BPOPT, 3:IPOPT
m.options.MAX_ITER = 10000 # change maximum iterations
m.solve(disp=True)

我期望tau减小时目标值随之降低,但当前tau略减就导致问题不可行,恳请协助排查。


内容的提问来源于stack exchange,提问作者Ineza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:10:01