Hi All,

I am running a DNLP model using the global solver BARON. The error message said the BARON cannot handle the “sign” function for one of my equations as attached.

Could anyone help rewrite the equation by posing the following conditions:

(1) if vpi(i)-vpi(j) >0,

eweymouthp(aij(ap,i,j))… vf(aij) * vf(aij) =e= (pipe_data_gg(aij,‘Mk’)) * (vpi(i) - vpi(j));

(1) if vpi(i)-vpi(j) <0,

negative_condition(aij(ap,i,j))… -vf(aij) * vf(aij) =e= (pipe_data_gg(aij,‘Mk’)) * (vpi(i) - vpi(j));

I understand we cannot pose conditional operations on variables, and one way seems to introduce binary variables (or big M). But I do not know how that would work. Thank you for the help if you have any ideas.

Doris

DNLP.gms (384 Bytes)