【发布时间】:2015-07-26 03:25:10
【问题描述】:
我使用 IBM Optimization Studio CPLEX(OPL) 开发了一个程序,我尝试这样做:
If (P_p(t) >= (P_L(t))/(Einv ))
Pb(t) = Pb0+(Eb_c/3600)*(Pp(t)-P_L(t))/Einv)
t Є {t0,t0+1,,t0+nΔt} , Δt: step time
我做了类似的事情:
maximize ....
subject to {
....
forall(j in NH: Pp[j] >= Pl[j]/Einv)
Pb[j] == Pb0 + (Eb_c/3600)*(Pp[j]- Pl[j]/Einv);
...
}
这给了我这个错误:“不允许决策变量(或表达式)”,我尝试了很多解决方案但它不起作用,我在任何文档、表达式或方法中都找不到的问题这样做?!
编辑
但是我没有什么要补充的,我在我的主题中写的第一个代码,我应该使用工作室 CPLEX 创建它。
我试图最小化系统产生的电力成本,因此在主题内,我必须在 T 期间的每次模拟中检查一个 if 条件,如果 if 条件正确,则执行下一行否则我们将传递给 Pb(t) 的另一个值?!
问题是在 if 条件和在 subject to 内使用采样时间 T!
【问题讨论】:
-
请明确定义您的决策变量和输入。