Dear All,
I want to model a conditional constraint of:
where QUR, QP, QT, and Gpv are variables, and load and Qmin are parameters. t is time index.
How to implement this function in AIMMS?
Thank You.
Dear All,
I want to model a conditional constraint of:
where QUR, QP, QT, and Gpv are variables, and load and Qmin are parameters. t is time index.
How to implement this function in AIMMS?
Thank You.
Hi
Hello
The complete formulation of the constraint is:
Thank you...
This is going to be ugly. Assuming that these are the only 5 options for QUR(t+1) (although not all possible combinations of Gpv(t) and QUR(t) are covered) you can use indicator constraints if you use CPLEX or Gurobi.
Introduce a new binary variable BV1(t) for the first option. Then add the following indicator constraints:
BV1(t) = 1 → QUR(t+1) = QUR(t) + QP(t)
BV1(t) = 1 → Gpv(t) >= load(t)
BV1(t) = 1 → QUR(t) <= Qmin(t)
The left part of each of these constraints represents the activating condition.
For the second option introduce a new binary variable BV2(t) and the following indicator constraints:
BV2(t) = 1 → QUR(t+1) = QUR(t) - QT(t)
BV2(t) = 1 → Gpv(t) <= load(t) - eps
BV2(t) = 1 → QUR(t) >= Qmin(t) + eps
AIMMS does not support inequality constraints of type ‘>’ or ‘<’ (except for CP problems) so you have to use a small value eps to transform them into ‘>=’ or ‘<=’ respectively.
In the same way, introduce BV3(t), BV4(t) and BV5(t) for the other three options, plus the corresponding indicator constraints.Then, finally, add the following constraint:
BV1(t) + BV2(t) + BV3(t) + BV4(t) + BV5(t) = 1
Note that this formulation does not allow, e.g., Gpv(t) >= load(t) and Qmin(t) < QUR(t) < Qmax(t). If that should be possible as well then this is not going to work (but what should then be the value of QUR(t+1)?).
Hello
Thank you for the advice that has been given. I'll try to apply to the model I'm designing.
Already have an account? Login
Please use your business or academic e-mail address to register
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
Didn't find what you were looking for? Try searching on our documentation pages: