I’m doing an optimization problem using CVX where the original author said that he used CVX to solve. I have 3 constraints that cause problems
My code is
cvx_begin %quiet %quiet for not producing any screen outputs
variables POP(NEV,t) MxAP(NEV,t) MnAP(NEV,t) Deg(NEV,t) Rup(t) Rdw(t) EPD(NEV,t,day) EPD_minus(NEV,t,day) SOC(NEV,t) CR(NEV,t) Inn(t) cost(t) Ro(NEV,t) DC(NEV)
maximize ( sum(Inn)- sum(cost) ) % the sum was done here
subject to
% the for loop was done to apply the constraints for each time
for k = 1:t %number of hours
Comp(:,k) = (total_comp(:,k));
k
%Inn(k) == alpha*(Pregup(k)*Rup(k) + Pregdw(k)*Rdw(k)) + (sum(sum(EPD(:,k,day)*(FPriceD(k,day)+Mk)))); %why the second sum
Inn(k) == ((Pregup(k)*Rup(k) + Pregdw(k)*Rdw(k))*EvPer(k)) + Beta*(sum(EPD(:,k,day)*EvPer(k)));
%cost(k)== (sum(sum(EPD(:,k,day)*(FPriceD(k,day)))));
cost(k)== (sum(EPD(:,k,day)*(FPriceD(k,day))*EvPer(k)))+ (sum(Deg(:,k)));
Rup(k) == sum(MnAP(:,k));
Rdw(k) == sum(MxAP(:,k));
for i = 1:NEV
if k<ttrip(i)
Trip(i)=0;
else
Trip(i)=trip(i);
end
sum(EPD(i,:,day)*Comp(i,:) + Ro(i,:))*Ef + SOCI(i) -Trip(i) <= Mci(i);
sum(EPD(i,:,day)*Comp(i,:) + Ro(i,:))*Ef + SOCI(i) -Trip(i) >= 0;
if k==t
sum(EPD(i,:,day)*Comp(i,:) + Ro(i,:))*Ef + SOCI(i) -Trip(i) >= 0.99*Mci(i);
end
if k == 1
(MxAP(i,k) + POP(i,k))*Ef*Comp(i,k) + SOC(i,k) <= Mci(i);
(POP(i,k)- MxAP(i,k))*Ef*Comp(i,k) + SOC(i,k) >= 0; % To make sure that energy in the battery is not 0 at beginning of work
SOC(i,k) == SOCI(i);
elseif k > 1 && k <= t
(MxAP(i,k) + POP(i,k))*Ef*Comp(i,k) + SOC(i,k) <= Mci(i);
(POP(i,k)- MxAP(i,k))*Ef*Comp(i,k) + SOC(i,k) >= 0;
SOC(i,k) == EPD(i,k-1,day) + SOC(i,k-1);
end
(POP(i,1) - MnAP(i,1) + Ro(i,1))*Comp(i,1)*Ef + SOCI(i) >=0;
(POP(i,k) - MnAP(i,k) + Ro(i,k))*Comp(i,k)*Ef + SOCI(i) >=0.5*Mci(i) %SOC is higher than 50% at any time
(MxAP(i,k) + POP(i,k))*Comp(i,k) <= MP(i);
MnAP(i,k) <= POP(i,k) + MP(i);
POP(i,k) <= MP(i);
MxAP(i,k) >= 0;
MnAP(i,k) >= 0;
POP(i,k) >= -MP(i);
Deg(i,k)>=0;
DC(i)==0.042*(BatC/5000)+ ((1-Ef^2)/Ef)*Beta;
Deg(i,k)>= (DC(i)*EPD_minus(i,k,day)*(Comp(i,k)/Ef));
Ro(i,k)==(Deg(i,k)/DC(i))*((1-Ef^2)/Ef);
EPD(i,k,day) == (MxAP(i,k)*ExD(k,day) + POP(i,k) - MnAP(i,k)*ExU(k,day));
EPD_minus(i,k,day) == (POP(i,k) - MnAP(i,k)*ExU(k,day)); % more conservative than the previous
end
end
cvx_end
The first constraint is
Deg(i,k)>= (DC(i)EPD_minus(i,k,day)(Comp(i,k)/Ef));
and I got the error:
Error using cvx/times (line 262)
Disciplined convex programming error:
Invalid quadratic form(s): not a square.
If I erase this constraint and ran the program I got an error related to this constraint
Ro(i,k)==(Deg(i,k)/DC(i))*((1-Ef^2)/Ef);
and the error is
Error using cvx/times (line 173)
Disciplined convex programming error:
Cannot perform the operation: {real affine} ./ {real affine}
I hope if I can get some help from you