The SOCP problem of sidelobe control

Dear friends
I am working on a conventional beamforming problem. I can successfully construct weights of CBF through CVX. But now I want to do some optimization about the sidelobe level of CBF. This is my coding.

cvx_begin
variable W1(N) complex
*aaa=(W1’)W1;
minimize aaa
subject to
W1’a_doa == 1;
abs(W1’
(exp((n-1)’(-1i2pidsin(theta_SLpi/180)/lamda))))<=0.01;
** % it means the sidelobe level shoule be less than -40dB **
cvx_end

I added a constrain that “abs(W1’(exp((n-1)’(-1i2pidsin(theta_SL*pi/180)/lamda))))<=0.01;”
theta_SL is the range of sidelobe angle. But why it shows :
Status: Infeasible
Optimal value (cvx_optval): +Inf
I think it is also a convex problem. Thanks.

Well, you had a feasible problem, then you added a constraint, and it became infeasible. That can happen.If you got to the point that CVX reported the problem as infeasible, that means that it accepted your problem, but your constraints are mutually inconsistent.

Everything in https://yalmip.github.io/debugginginfeasible/ except for paragraph 1, which is YALMIP-specific, should be applicable to you.

Try adding
variable slack nonnegative

Make the objective
minimize(slack)

and add a term
+ slack
to the right-hand side of the inequality constraint. Then you will see how close you can get to satisfying the constraint, while also satisfying the other constraint.

Actually, you don’t really need to declare slack to be nonnegative in this case. if the “optimal” value of slack is negative, that means the problem was already feasible, with room to spare.So presumably, slack will come out positive, given that the problem as in your formulation, is infeasible.

Thanks for your reply