필터 지우기
필터 지우기

I am trying to use fmincon and I have problem in constraint.

조회 수: 3 (최근 30일)
Sina
Sina 2014년 6월 23일
편집: Matt J 2014년 6월 23일
Hi,
I am trying to use fmincon and I have problem in constraint. my constraint change in the case of input and in one case I have 9 and in another case I have 18 constraints. The way that I define my constraint is like below:
if Input(1+(i-1)*3600*Tpred/Nu/60,3) == 0
%Tamb
ineq1(i,1)=(-y1(i,1)+16);
ineq1(i,2)=(-y2(i,1)+16);
ineq1(i,3)=(-y3(i,1)+16);
%Tamb+1
ineq1(i,4)=(-y12(i,1)+16);
ineq1(i,5)=(-y22(i,1)+16);
ineq1(i,6)=(-y32(i,1)+16);
%Tamb-1
ineq1(i,7)=(-y13(i,1)+16);
ineq1(i,8)=(-y23(i,1)+16);
ineq1(i,9)=(-y33(i,1)+16);
else
%Tamb
ineq1(i,1)=(y1(i,1)-25);
ineq1(i,2)=(-y1(i,1)+21);
eq1(i,1)=(y1(i,1)-23)^2;
ineq1(i,3)=(y2(i,1)-25);
ineq1(i,4)=(-y2(i,1)+21);
eq1(i,2)=(y2(i,1)-23)^2;
ineq1(i,5)=(y3(i,1)-25);
ineq1(i,6)=(-y3(i,1)+21);
eq1(i,3)=(y3(i,1)-23)^2;
%Tamb+1
ineq1(i,7)=(y12(i,1)-25);
ineq1(i,8)=(-y12(i,1)+21);
eq1(i,4)=(y12(i,1)-23)^2;
ineq1(i,9)=(y22(i,1)-25);
ineq1(i,10)=(-y22(i,1)+21);
eq1(i,5)=(y22(i,1)-23)^2;
ineq1(i,11)=(y32(i,1)-25);
ineq1(i,12)=(-y32(i,1)+21);
eq1(i,6)=(y32(i,1)-23)^2;
%Tamb-1
ineq1(i,13)=(y13(i,1)-25);
ineq1(i,14)=(-y13(i,1)+21);
eq1(i,7)=(y13(i,1)-23)^2;
ineq1(i,15)=(y23(i,1)-25);
ineq1(i,16)=(-y23(i,1)+21);
eq1(i,8)=(y23(i,1)-23)^2;
ineq1(i,17)=(y33(i,1)-25);
ineq1(i,18)=(-y33(i,1)+21);
eq1(i,9)=(y33(i,1)-23)^2;
end
I run it step by step and it goes in if condition and calculate constraints in both cases. But I don't know why my fmincon can't satisfy the constraints? I know my model can satisfy them if inputs change but fmincon without any error on waning just can't satisfy them. Also as I check my inequality constraints are positive which must me negative.
Am I define my constraints wrong?
With best regards,

채택된 답변

Matt J
Matt J 2014년 6월 23일
편집: Matt J 2014년 6월 23일
my constraint change in the case of input and in one case I have 9 and in another case I have 18 constraints.
We don't know what this "input" means. Your code doesn't show which quantities are the unknown variables and which are just constants. You cannot make the number of constraints a function of the unknown variables, if that's what you mean. They are not allowed to evolve throughout the optimization.
but fmincon without any error on waning just can't satisfy them.
The additional output arguments from fmincon, (e.g, exitflag, output) always tells you whether constraints were satisfied and other info about the termination condition. A summary should also have been printed to the screen, unless you suppressed that.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Nonlinear Optimization에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by