我使用 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 condition 和 inside subject to 中使用采样时间 T!