我使用IBM优化工作室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);
...
}
这给我这个错误:决策变量(或表达式)不允许,我尝试了很多解决方案,但它不工作,我不能在任何文档中找到的问题,表达式或方法?!
编辑
但我没有任何补充来解释这一点,我在我的主题中写的第一个代码,我应该使用studiocplex创建它。
我试图将系统产生的电力成本降至最低,因此在受影响的情况下,我必须检查周期T内每次模拟的if条件,如果if条件正确,则执行下一行代码,否则我们将传递到另一个值Pb(T)?!
问题是使用采样时间T in-if条件和in-subject!
虽然这个问题已经3年了,但我还是要回答,因为这是一个常见的问题。
不能在forall
或if
语句的条件中使用决策变量。不过,你可以通过逻辑约束来实现你想要的。在你的例子中,你需要的是一个暗示约束(使用=
forall(j in NH) {
(Pp[j] >= Pl[j]/Einv) => (Pb[j] == Pb0 + (Eb_c/3600)*(Pp[j]- Pl[j]/Einv));
}
“的右侧”=
添加了堆栈跟踪和pom.xml
完整的程序代码在此处:单击此处 启动时,我会遇到以下异常: 请告诉我如何解决这个问题?为什么会出现这种情况? 对评论的答复: @Kandy“您使用的数据库是什么,您能告诉驱动程序名还是显示您的数据库配置代码?” 我正在使用Postgresql。 pom.xml 和配置应用程序。性质
我有以下课程: DBEntity.java 使用者JAVA 用户服务。JAVA UserRepository.java
我为一些带有自定义应用内键盘的 Android 4.2 设备编写了一个网络视图应用程序。实际上,该应用程序在装有Android 4.2的设备上运行没有任何错误。 我知道这是一个非常旧的Android版本,这就是为什么我现在得到了一个带有Android 7.1.2的新设备的原因,但不幸的是,该应用程序无法在此设备上运行。 在下面的代码示例中,我创建了一个到WebView的InputConnectio
对容器类型为泛型的 trait 有类型规范需要——trait 的成员必须指出全部关于它的泛型类型。 在下面例子中,Contains trait 允许使用泛型类型 A 或 B。然后这个 trait 针对 Container 类型实现,指定 i32 为 A 和 B,因而它可以用到 fn difference()。(本段原文:In the example below, the Contains trai
我使用intellij IDEA进行开发,我注意到IDEA在Java7上运行时,maven插件在下载依赖项时出现了问题(我在Windows7)。然而,在Java6上运行它就没有这个问题了。 以下是idea.log的摘录 我按照建议做了以下几点 > 确保我的/etc/hosts文件中有 将添加到我的idea64.exe.vmoptions,因此文件如下所示 谢谢你的帮助。
我对Android Studio和应用程序设计非常陌生,我在设计应用程序时面临一些问题。 我使用相对布局来设置页面上不同元素的位置,但它不起作用。我在下面列出了我的语法和结果供您参考。 但结果是: 设备: on Nexus 6P API 27 Oreo 我确实检查了与相对布局问题相关的其他问题,但我不认为它们像这个案例一样糟糕,所以我把它作为一个单独的问题来问。
我很抱歉,只有Firefox存在一个奇怪的问题。 我正在将项目保存到localStorage(其中一个是我用JSON.stringify字符串化的相当大的JSON对象)。问题是,当我尝试在localStorage对象上使用removeItem()时,它会清除整个内容。所有属性都被清除。但是如果我刷新页面,属性就会返回。这适用于Safari、Chrome和Opera(最新版本),但只有Firefox