Quadprog solver not following constraints

6 次查看(过去 30 天)
Hello!
I am working on a project where I use quadprog to solve an optimization problem for a model predictive controller (MPC). I am trying to apply very simple bounds to the optimization problem but it does not seem to be working.
Here is a snippet of my code:
for i =1:2*iC
lb(i,:)=-50000;
ub(i,:)=50000;
end
duf = quadprog(H,F,[],[],[],[],lb,ub);
The for loop ensures that lb and ub are the same size as duf. However, when I run the program, quadprog seems to simply ignore the constraints. Am I missing something simple? Thank you!
  2 个评论
Nathan Batta
Nathan Batta 2020-9-14
It does follow bounds that are equal to zero though. So if either the upper or lower bound is zero, it will follow that constraint but nothing else
Matt J
Matt J 2020-9-14
编辑:Matt J 2020-9-14
We need a description of what you actually see. What indications do you see that the bounds are not obeyed? How much larger is the violation than the ConstraintTolerance parameter? Also, please attach a .mat file containing H, F, lb, and ub so that we can run the optimization ourselves and try to reproduce your output.

请先登录,再进行评论。

回答(1 个)

Abdolkarim Mohammadi
编辑:Abdolkarim Mohammadi 2020-9-2
Your bounds are the same for all of the variables, so they can be defined easier:
lb = -5e4 * ones(1,2*iC);
ub = 5e4 * ones(1,2*iC);

类别

Help CenterFile Exchange 中查找有关 Refinement 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by