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

电力定价模型GAMS代码报错求助:Total_Bills公式问题

解决GAMS总账单计算公式的语法与维度错误

错误根源

  1. 括号语法错误:原代码中第二个sum的索引列表未用括号包裹,且整体求和逻辑错误——应该将电价与对应时段需求的乘积纳入同一求和循环,而非分开求和后再相乘。
  2. 维度关联错误:原代码的外层求和结构导致Price_ToU(j,p)与Demand_ToU的索引映射逻辑混乱,GAMS无法识别跨集合的小时索引计算与定价时段的关联关系。

修正后的代码

两种等价写法,按需选择:

写法1(平铺所有循环)

Total_Bills.. B = e= sum((j,p,d,h), Price_ToU(j,p) * Demand_ToU(j, (p-1)*8 + (d-1)*24 + h));

写法2(内层聚合小时需求,更高效)

Total_Bills.. B = e= sum((j,p), Price_ToU(j,p) * sum((d,h), Demand_ToU(j, (p-1)*8 + (d-1)*24 + h)));

修正说明

  • 修正sum语法:所有求和索引均用括号包裹,严格遵循GAMSsum(索引集合, 表达式)的语法规则。
  • 逻辑对齐:将Price_ToU(j,p)与对应定价时段下的所有小时需求(由d和h遍历生成)绑定,确保电价只乘对应时段的需求,符合账单计算逻辑。
  • 维度匹配:小时索引(p-1)*8 + (d-1)*24 + h的计算结果落在1-8760范围内,与集合k的定义完全匹配,解决维度不匹配报错。
  • 括号完全匹配:消除了原代码中括号缺失/冗余的问题,符合GAMS的语法解析要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 02:20:13