如何更新本地Gekko的IPOPT/MUMPS求解器解决MPC收敛问题?
更新本地Gekko的IPOPT/MUMPS求解器方案
核心问题
本地Gekko自带的IPOPT 3.10.2版本在求解多区域建筑供热系统MPC模型时存在收敛瓶颈,而远程服务器使用的IPOPT 3.12.10版本可顺利收敛,且本地求解速度更具优势,因此需要手动更新本地求解器版本以摆脱对在线服务器的依赖。
手动更新步骤
定位Gekko求解器目录
- Windows系统:路径通常为
你的Python安装路径\Lib\site-packages\gekko\bin\win64\ - Linux/macOS系统:路径通常为
你的Python安装路径/lib/pythonX.X/site-packages/gekko/bin/linux64/(或mac64/)
- Windows系统:路径通常为
下载匹配的IPOPT 3.12.10二进制文件
- 获取对应操作系统、64位架构且搭配MUMPS线性求解器的IPOPT 3.12.10版本二进制文件
- 需确保文件与你的系统环境完全兼容
替换原求解器文件
- 备份原目录中的
ipopt.exe(Windows)或ipopt(Linux/macOS)文件 - 将下载的新版本文件重命名为对应名称,替换原文件
- Linux/macOS系统需额外设置执行权限:
chmod +x ipopt
- 备份原目录中的
验证更新结果
- 运行MPC模型脚本,查看控制台输出,确认显示:
This is Ipopt version 3.12.10, running with linear solver mumps.
- 运行MPC模型脚本,查看控制台输出,确认显示:
备选方案
若手动替换存在困难,可尝试:
- 安装Gekko开发版本:
pip install git+https://github.com/BYU-PRISM/GEKKO.git,部分开发分支可能已更新求解器版本 - 向Gekko官方维护团队提交需求,建议在正式版本中更新默认IPOPT版本
内容的提问来源于stack exchange,提问作者Giulio Tonellato
相关产品推荐
相关产品推荐

