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

PSO与GEKKO结合报错:Intermediate variable with no equality (=) expression及温度分布多项式系数优化问题求助

PSO与GEKKO结合报错:Intermediate variable with no equality (=) expression及温度分布多项式系数优化问题求助

各位大佬好,我现在卡在一个化工过程的优化问题上,想请大家帮忙诊断下!

先给大家梳理下我的需求和当前的困境:
我要优化一个描述[0, 100min]区间内温度分布的多项式系数,多项式形式如下:

p0 = 0.1
p1 = (t - 50)*(3**0.5/500)
p2 = (t**2 - 100*t + 5000/3)*(3/(500000000**0.5))   
T = coef0*p0 + coef1*p1 + coef2*p2

我的核心目标是最大化终态(tf=100min)的生物柴油浓度x4(tf),同时需要满足两个约束:

  1. 一组控制反应速率的常微分方程(ODE)系统
  2. 温度的硬约束:298 K < T < 338 K

这个问题出自一篇学术文献,原作者用蒙特卡洛随机搜索+遗传算法来拟合多项式参数,再用Matlab的Ode45求解x4(tf)的最优值。我想换个技术栈试试,用粒子群优化(PSO)作为外层算法搜索最优的多项式系数,然后用GEKKO作为内层工具求解ODE并计算对应的x4(tf)——也就是每完成一轮PSO迭代,就把当前粒子对应的coef0/coef1/coef2传给GEKKO,让GEKKO求解ODE得到x4(tf),再把这个结果反馈给PSO,用来更新粒子的位置和速度。

但现在在整合PSO和GEKKO的过程中,我遇到了报错:Intermediate variable with no equality (=) expression,反复检查了代码还是没找到问题所在,想问问有没有大佬遇到过类似的GEKKO报错,或者能给我一些调试的建议?

另外,我也想请教一下:这种"外层启发式算法调参数,内层求解器做ODE优化"的架构,有没有更高效的实现方式?或者我的思路本身有没有可以优化的地方?

备注:内容来源于stack exchange,提问作者Luiz Miguel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 12:29:30