# Greater than equal restriction on CVX

Hello i am on the develop of an algorithm that allows the voltage regultation, when i try to delimit the minimum and maximum allowed values i have a litte problem.

% optimizacion
cvx_solver SeDuMi
cvx_precision high
cvx_begin quiet
variable Vn(MG.NumN*3-3) complex;
variable Si(MG.NumS) complex;
variable perdidas;
variable xi(MG.NumS);

``````subject to

(Dg*Si(:)+Spn)== H*conj(Vn(:)) + M*Vn(:) + T;
abs(Si(:)) <= abs(Smax);
real(Si(:))>= 0;
real(Si(:)) == real(Smax);
imag(Si(:)) <= imag(Smax);
imag(Si(:)) ==  xi.*imag(Smax);
abs(Vn(:))<= 1.05;
if real(Smax)<=0.3*imag(Smax)
imag(Si(:))==-imag(Smax)
else
imag(Si(:)) ==  xi.*imag(Smax);
abs(Vn(:))<= 1.05;
xi >= -1
xi <= 1;
end
cvx_end
``````

the problem appears when i want to define the lower bound abs(Vn(:))>=0.95, the optimization model works without and with the upper bound, but not with it.

theres any form to redefine the abs(Vn(:))>=0.95 in a way that the bound got define on the model and still work on CVX

`abs(Vn(:))>=0.95` is a non-convex constraint.

if `Vn` were real,it could be modeled in CVX using Big M logic constraints, as shown in section 9.1.6 “Exact absolute value” of the Mosek Modeling Cookbook

However, I am not aware of any way of using binary or integer variables to handle `abs(complex variable)`.