start=[5,10,25];% start time
arrival=[8,20,45];%arrival time
dis=[10,80,100]; %distance
u=binvar(1,96);
soc=sdpvar(1,96);
Constraints1=[];
Constraints1=[Constraints1,soc(1,arrival(1,1))==1-energycon.*dis(1,1)./capacity];
Constraints1=[Constraints1,u(1,1:arrival(1,1))==0];
Constraints1=[Constraints1,soc(1,arrival(1,1))>=0.5 &soc(arrival(1,1))<=1];
for jj=2:3
Constraints1=[Constraints1,soc(1,start(1,jj))==soc(1,arrival(1,jj)-1)+sum(u(1,(arrival(1,jj-1)+1):start(1,jj))).*chargingrate*int];%43=43+
Constraints1=[Constraints1,u(1,(start(1,jj)+1):arrival(1,jj))==0];
Constraints1=[Constraints1,soc(1,arrival(1,jj))==soc(1,start(1,jj))-energycon.*dis(1,jj)./capacity];
Constraints1=[Constraints1,soc(1,arrival(1,jj)) >= 0.5 & soc(1,arrival(1,jj)) <= 1];% constraint: soc should between 0 and 1
Constraints1=[Constraints1,soc(1,start(1,jj)) >= 0.5 & soc(1,start(1,jj)) <= 1];% constraint: soc should between 0 and 1
end
ops = sdpsettings('solver','cplex','cachesolvers',11);
optimize(Constraints1,max(sum(u,1).*chargingrate),ops)
%u1=value(u)
%soc1=value(soc)
But there is still an error as:
Row 'c127' infeasible, all entries at implied bounds.
Presolve time = 0.00 sec. (0.02 ticks)
ans =
struct with fields:
yalmiptime: 0.1150
solvertime: 0.0135
info: 'Infeasible problem (CPLEX-IBM)'
problem: 1