当前位置: 首页 > news >正文

计及源荷不确定性的综合能源生产单元运行调度与容量配置两阶段随机优化模型》复现程序

本程序复现《计及源荷不确定性的综合能源生产单元运行调度与容量配置两阶段随机优化》模型,采用全年光伏、风电数据通过kmeans聚类得到6种场景,构建了随机优化模型,在研究融合P2G与CCS的IEPU系统框架基础上,建立了各关键设备及生产环节数学模型,基于混合整数线性规划(mixed integer linear programming,MILP)算法,以全生命周期内经济成本最低为优化目标,考虑物料及能量平衡约束,实现典型周内各设备功率的最优逐时调度优化,并得到最佳综合能源系统中碳捕集+电制氢+甲烷化+氢存储+CO2存储的容量配置结果。 本程序不仅复现了主模型,而且实现了文献的对比算例和敏感性分析部分,分别是确定性模型和随机模型对比、无储气与有储气对比、甲烷价格灵敏度分析、煤价灵敏度分析。 程序采用matlab+yalmip(求解器为gurobi)进行优化,注意:由于非线性问题的存在,该程序采用cplex求解会报错,需要学习的同学可以下载安装gurobi并配置好环境后运行使用。

最近复现了一篇关于综合能源系统优化的论文,整个项目踩了不少坑也解锁了新姿势。核心是玩转风光场景聚类+多能耦合调度,顺手把P2G(电制气)和CCS(碳捕集)这对CP揉进能源系统里搞事情。下面边撸代码边唠嗑,给想实操的同学递个扳手。

先看风光数据怎么变魔术。原始数据是8760小时的光伏风电出力,直接甩进kmeans就像把大象塞冰箱——得讲究步骤。MATLAB里这段骚操作特别有意思:

[cluster_idx, centroids] = kmeans(normalized_data, 6, 'Replicates', 10); scenario_prob = hist(cluster_idx, 1:6)/8760;

这里'Replicates'参数设成10防止局部最优,归一化处理用z-score还是min-max得看数据分布。最终生成的6个典型场景概率可不是简单平均,得用hist统计原始数据聚类后的分布频率,这步直接影响后续随机优化的权重。

建模时最烧脑的是氢系统平衡。P2G链路上的电解槽、储氢罐、甲烷反应器得玩接力赛。举个约束条件的例子:

Constraints = [Constraints; sum(P_elec) == H2_demand + H2_storage_in - H2_storage_out; % 电解制氢平衡 H2_storage(t) == H2_storage(t-1) + H2_storage_in*eta_in - H2_storage_out/eta_out; % 储氢动态 ];

这里etain/etaout是储氢效率,注意入库出库的效率要分开算。之前漏了这茬直接导致氢气莫名消失,debug时差点怀疑氢被黑洞吃了。

目标函数全生命周期成本计算是个重头戏,设备容量变量和运行变量得拆开处理。YALMIP里这样搞:

cost = sdpvar(1); cost = cost + sum(Cap_CCS*CRF_CCS + Cap_P2G*CRF_P2G); % 容量成本 cost = cost + sum(Price_coal.*P_coal + Price_gas.*P_gas); % 运行成本 optimize([Constraints], cost);

CRF是资金回收系数,这里涉及到折现率的计算。有个坑点:文献里的折现率假设是5%,但实际测试时发现对储氢容量配置影响巨大,敏感度分析部分会看到有趣的现象。

跑完优化后验证结果时,发现储气罐的存在让系统有了"缓震"能力。对比有/无储气的成本曲线差异明显:

figure('Position',[200 200 600 400]) plot(1:168, Cost_with_storage, 'b-', 1:168, Cost_without, 'r--') legend('带储氢','无储氢','Location','northwest') title('典型周运行成本对比')

蓝色曲线像过山车,红色曲线直接蹦极——储氢罐平抑波动的作用一目了然。这也解释了为什么随机模型比确定性的省8%成本,毕竟风光出力跟开盲盒似的,没点缓冲装置容易翻车。

最后说说求解器玄学问题。Gurobi和CPLEX本是同根生,但遇到非线性项就翻脸。比如甲烷化反应器的效率曲线原本是二次函数,论文里做了分段线性化处理:

addPiecewiseLinear(converter, efficiency_curve, 'n=5');

这种处理方式CPLEX有时会报错"Non-convex",而Gurobi能自动识别凸性。建议新手直接装Gurobi,毕竟不想在求解器调试上耗三天的话...

整套代码跑下来最大的收获是:能源系统优化就像调鸡尾酒,风光是基酒,P2G和CCS是苦精,储氢罐则是摇酒的手速——比例手法不对就成黑暗料理。论文里的煤价敏感度分析也验证了这点:当煤价超过650元/吨时,系统会疯狂上电制氢设备,就像双十一剁手党清空购物车似的。

http://www.cnnetsun.cn/news/167316.html

相关文章:

  • 还在手动回复希音咨询?RPA+AI自动客服,效率提升30倍![特殊字符]
  • AI应用开发全景图:从LLM到Agent的硬核指南!这些大模型核心概念你必须懂
  • 揭秘Open-AutoGLM如何实现毫秒级快递轨迹更新:技术架构全解析
  • 换个角度看境外支付系统:警惕金融风险之安全测试实践
  • Home-Assistant智能家居平台搭建与远程控制
  • 盲盒小程序定制案例|轻松打造专属盲盒乐园
  • 【Open-AutoGLM快递轨迹追踪实战】:掌握AI驱动物流监控的5大核心技术
  • 【Open-AutoGLM酒店比价实战】:揭秘AI驱动的实时价格监控系统核心技术
  • requirements.txt配置踩坑实录,99%新手都会忽略的5个关键包
  • Open-AutoGLM部署效率提升10倍?你不可错过的Docker优化策略
  • 收藏!非技术党也能玩转大模型:10大行业落地指南+可复制提示词模板
  • Hugging Face下载Open-AutoGLM太慢怎么办?资深工程师推荐4种加速方案
  • 【专家级调优建议】:提升Open-AutoGLM ModelScope镜像运行效率的7种方法
  • 多进程相关函数
  • 持续集成中的测试策略:构建高效质量保障体系
  • 什么是持续集成CI,与DevOps关系
  • 结构类算法题
  • 为什么你的Open-AutoGLM部署总失败?Docker最佳实践全解析
  • Open-AutoGLM安装总失败?深度解析Python依赖树中的隐藏陷阱
  • 软件测试生命周期管理的核心框架与实践策略
  • 计算机毕设java疫情背景下大学生宿舍管理系统 基于Java的疫情环境下高校宿舍智能化管理系统开发 疫情防控期间大学生宿舍管理的Java平台构建与应用
  • 别再有线连接了!Open-AutoGLM无线调试究竟有多强大?
  • Open-AutoGLM权限困境破解,一文搞定非root环境下的完整部署流程
  • 安卓13适配倒计时,Open-AutoGLM开发者必须掌握的8项声明式权限配置技巧
  • Open-AutoGLM模型下载加速指南(仅限内部使用的CDN加速方案曝光)
  • 复盘:我们是如何将测试周期缩短50%的
  • spring16,17-加载properties文件,容器
  • 黑客和程序员谁更胜一筹?从技术实力、就业范围到赚钱潜力的全方位对比
  • 揭秘Open-AutoGLM虚拟机部署难题:99%新手都会忽略的3个关键细节
  • Open-AutoGLM如何秒连WiFi?:工程师不会告诉你的4种高效方案