I run my matlab code using CVX (version 2.1, mosek).I am confused by the my matlab results.
First, if I delete the first constraint, i.e., sum(E_um)+sum(E_u)<=EU;
, and set L=5*10^3
, the CVX works, and the window shows Status:
Inaccurate/Solved
Optimal value (cvx_optval): +7.96431e-05
if I scale the parameter L
, for example , L=20*10^3
, the cvx doesnot works, the window shows Status:
Status: Inaccurate/Unbounded
Optimal value (cvx_optval): -Inf
From code E_um(n,1)=(2^(L_um(n,1)./(B*delta1))-1)*delta1*h_G2U(n+2,1).^2/SNR;
, the increasing L
will increase the objective results. Why scale parameter L
can not solved by CVX ?
Second, if the first constraint, i.e., sum(E_um)+sum(E_u)<=EU;
, is not deleted. We still set L=5*10^3
, however, the CVX does not work, and the window shows Status:
Status: Failed
Optimal value (cvx_optval): NaN
In fact, from the obtained results, E_um and E_u
, by deleting first constraint, i.e., sum(E_um)+sum(E_u)<=EU;
, I calculate sum(E_um)+sum(E_u)=4.8695e-04
is small EU
.
Why adding this constraint cannot get the results. The codes are given as following
B=20e6; % in Hz
SNR_dB=20;
SNR=10^(SNR_dB./10); %in W
EU=1000*10^3;
k=0.9;
C=1550.7;
gamma=10^(-28);
L=5*10^3;
delta1=2.5*10^(-3);
delta2=100*10^(-3);
T=5; % in s
N=T./delta2;
v=[-3 -3 -3].';
UserPosition=[0 0 0].';
q0=[5 5 5].';
q=q0+v*[1:N]*delta2;
%%
h_G2U=sqrt(sum((q-UserPosition).*(q-UserPosition))).';
cvx_begin
variable L_mu(N-2,1)
variable L_um(N-2,1)
variable L_u(N-2,1)
expression E_mu(N-2,1)
expression E_u(N-2,1)
expression E_um(N-2,1)
for n=1:N-2
E_um(n,1)=(2^(L_um(n,1)./(B*delta1))-1)*delta1*h_G2U(n+2,1).^2/SNR;
end
for n=1:N-2
E_u(n,1)=C^3*gamma*pow_pos(L_u(n,1),3)./delta1^2;
end
for n=1:N-2
E_mu(n,1)=(2^(L_mu(n,1)./(B*delta1))-1)*delta1*h_G2U(n,1).^2/SNR;
end
minimize sum(E_mu)
subject to
sum(E_um)+sum(E_u)<=EU;
for n=1:N-2
sum(L_u(1:n,1))<=sum(L_mu(1:n,1));
end
for n=1:N-2
sum(L_um(1:n,1))<=k*sum(L_u(1:n,1));
end
sum(L_mu)==L;
sum(L_u)==L;
sum(L_um)==k*L;
L_mu>=0;
L_um>=0;
L_u>=0;
cvx_end
Thanks in advance for anyone help me.