|Subject:||[Help-glpk] conditional constraint Matlab|
|Date:||Tue, 29 Apr 2014 19:32:11 +0200|
Hello help-glpk members
I am working on a model with batteries using Matlab. I would like to optimize how much power goes into or out of battery.
P(i) represents power for time step i. This is the variable to be optimized. If P is positive, it represents dicharging of battery, if P is negative then it is charging. Since charging and discharging conditions for battery are different, I need to use conditional constraints. I have read about using binary variables for conditional constraints but I cannot figure out how to apply it here.
I want to model contraints of following form:
if P(i) >0 (discharging)
limit1<= K(i,1)*P(1)+ K(i,2)*P(2)+ K(i,3)*P(3)...K(i,i)*P(i) <= limit2
K(i,1),K(i,2)... are constants
else if P(i)<=0 (charging)
limit1<= C(i,1)*P(1)+ C(i,2)*P(2)+ C(i,3)*P(3)...C(i,i)*P(i) <= limit2
C(i,1),C(i,2)... are constants different from K(i,1)..
Is it possible to represent such constraint for linear programming? Also, I am working with 72 time steps and three batteries. So it is 216 variables. Would that be too complicated?
For more details, the above constraint is reformulation of following:
The energy in battery at time i+1 depends on energy in battery at time i and power in/output in time step i.
E(i+1)=E(i)- P(i)/discharging_efficiency * time_step
E(i+1)=E(i)+ P(i)*charging_efficiency * time_step
So, the constant K(i,1) depends upon the signs of P(1),P(2)..P(i). i.e. if we were charging or discharging for each step.
I would appreciate any help I can get. Thank you so much. :)
|[Prev in Thread]||Current Thread||[Next in Thread]|