The variable are
xa only,and the other are known vector or scalar
%transmitted power in the first phase P1_A=(gamma_BC*x1bc*N0)/g1_ACc; P1_B=(xa*gamma_A*N0)/(g_BAw); P1_C=(xa*gamma_A*N0)/(g_CAw); %harvested power in the first phase H1_A=R_D*N0*gamma_A*(xa-1)*( (real(g_BA)/real(g_BAw)) + (real(g_CA)/real(g_CAw))); H1_B=R_D*gamma_BC*N0*(g1_AB/g1_ACc)*( (g1_ABc*x1bc-g1_ACc)/g1_ABc ); H1_C=R_D*N0*gamma_BC*(x1bc-1)*(g1_AC/g1_ACc); %transmitted power in the second phase P2_A=(gamma_BC*x2bc*N0)/g2_ACc; P2_B=Pda; P2_C=Pda; %harvested power in the second phase H2_A =R_D* ((P2_B*g_BA) + (P2_C*g_CA) + (P2_A*g_A)); H2_B=R_D*gamma_BC*N0*(g2_AB/g2_ACc)*( (g2_ABc*x2bc-g2_ACc)/g2_ABc ); H2_C=R_D*N0*gamma_BC*(x2bc-1)*(g2_AC/g2_ACc); B1_A = B0_A-P1_A+H1_A;%The remaining power after first phase ends B2_A = B1_A-P2_A+H2_A;%The remaining power after second phase ends %Constraint B0_A >= P1_A; B1_A >= P2_A; stop_charge>=B1_A; stop_charge>=B2_A;
B0_A= stop_charge=450.i have a trouble,sometimes that H1_A>P1_A,and it will cause that stop_charge<B1_A ,so the cvx will show infeasible to me.we call that this situation is that the battery is overcharged,and that i have already add a constraint that
So i want to write a code to avoid the overcharged happen,so i write that
if H1_A > B0_A-P1_A rH1_A=B0_A-P1_A end B1_A = B0_A-P1_A+rH1_A;
However,cvx told me that
The following error occurred converting from cvxcnst to logical: Disciplined convex programming error: Constraints may not appear in if/then statements.
How do i write the if -loop in other way?