Conversion to logical from optim.prob​lemdef.Opt​imizationC​onstraint is not possible. Expressing a condition for a parameter.

1 visualización (últimos 30 días)
Hello,
I am trying to formulate an mixed integer optimization problem and one of my parameters (say A) depends on my optimization variable (say x), which is a binary variable.
I would like that when x=1, A=a and when x=0, A=b;
I realized that I couldn't express it with an "If function" after getting the error Conversion to logical from optim.problemdef.OptimizationConstraint is not possible.
Going through Matlab resources I found solutions using big M constraints for cases where A is expected to be above a superior value when x takes a certain value. However I couldn't find the case where A has to be equal to a specific value.
Can someone help me expressing this condition?
Thank you! :)

Respuesta aceptada

Walter Roberson
Walter Roberson el 17 de Sept. de 2019
A = b + x*(a-b)
  2 comentarios
NN
NN el 2 de Mayo de 2021
how can i use the same Pbatt which is calculated from optimisation variables depending on its sign in objective function?
Like if Pbatt is positive i have to multiply with cost and if its negative i have to multiply it with another cost .How do i specify Pbatt in objective function accordingly ?
I am also getting the error
Conversion to logical from optim.problemdef.OptimizationConstraint is not possible.
i have used below code.
for i = 1:N
if PbattV == 200
Cost1 = Costa;
elseif PbattV == -200
Cost2 = Costb;
end
end
prob.Objective = dt*Cost1'*PbattV +Cost2'*PbattV;
Kindly help

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Get Started with Optimization Toolbox en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by