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 条件内および対象内でサンプル時間 T を使用することです!