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

GAMS Studio 39.3中Error 148维度不匹配问题求助

修复GAMS Error 148(维度不匹配)问题

错误根源分析

你的代码中有多处维度声明与引用不匹配的问题,直接触发Error 148:

  1. 标量Pev被错误引用:Pev声明为无维度的标量,但在方程中被当作带(ev,t,w)三个索引的符号使用,维度完全不匹配。
  2. 参数Asev维度缺失且引用错误:Asev未声明维度,且在方程中用字符串'ev,t,w'作为索引,不符合GAMS的索引规则。
  3. 变量引用错误:方程中误将标量Pev当作变量使用,实际应该引用你声明的3维度变量As。
  4. 中文单引号问题:代码中部分集合/参数的注释使用了中文单引号’,GAMS仅识别英文单引号',可能引发语法解析问题。

修复后的代码

Sets
EV          'EV unit'/ev1*ev1/
Asev1       'set ev index for values of sch' /1*2/
taev        'set of arrival'/taev1*taev1/
tdev        'set of departure'/tdev1*tdev1/
t           'time periods' /t1*t2/
w           'scenarios' /w1*w2/;


SCALAR 
Pev          'EV power traded in the Energy market'/7.8/;


PARAMETER    
Asev(Asev1)  'alphasch values of alphasch'
/1         0
2          1/;


PARAMETER 
weigth(w)    'weight of scenarios'
/w1  0.05
w2   0.05/;


POSITIVE VARIABLES
As(ev,t,w)   'EV scheduling in time period t';


EQUATION
Pev1         'power output of EV';

# 若需结合Asev1维度求和,按此写法;若逻辑是EV对应单个Asev值,可调整Asev维度为Asev(ev)并修改赋值
Pev1(t,w)..  Pev = e= sum((ev, a), As(ev,t,w)*Asev(a));

关键修复说明

  • 修正Pev的引用:方程中不再使用Pev(ev,t,w),改为引用正确的变量As(ev,t,w)。
  • 补全Asev维度:根据你的赋值逻辑,将Asev声明为Asev(Asev1),匹配赋值时的1、2索引;如果每个EV对应单独的Asev值,可改为Asev(ev),赋值调整为ev1 0或ev1 1。
  • 修正方程索引逻辑:确保sum中的索引数量与对应符号的声明维度一致,避免维度不匹配。
  • 替换中文单引号:所有注释的单引号改为英文格式,消除语法解析隐患。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:06:02