Error using barrier. Nonlinear constraint function is undefined at initial point. Fmincon cannot continue.
조회 수: 18 (최근 30일)
이전 댓글 표시
My problem is a minimization problem, witht he following code:
x0 = [Pch; Pdis; zeros(N,1); zeros(N,1); 2*Eessmin];
SOC0 = 0;
C = [r ls Cinv Effch Effdis Ncyc Cmaint expPrice];
lb = [zeros(N,1); zeros(N,1); zeros(N,1); zeros(N,1); Eessmin]; % lower bounds of 0 and Essmin
ub = [Pch; Pdis; Pch; Pdis; Inf];
ot = ones(N,1);
beq = Prem ;
Aeq = spdiags([ot -ot ot -ot],[0 N 2*N 3*N],N,4*N+1);
X = sym('x',[4*N+1,1]);
G = sym('G', [N,1]);
s0 = sym('s0');
c = sym({'c1','c2','c3','c4','c5','c6','c7','c8'}.','real');
where I create a file for my non-linear constraints:
PBch = X(1:N)/X(2*N+1);
PBdis = X(N+1:2*N)/X(2*N+1);
nlc1 = s0 + cumsum(PBch*c(4)) - cumsum(PBdis*c(5)) - 1;
nlc2 = -s0 - cumsum(PBch*c(4)) + cumsum(PBdis*c(5));
nlc = [nlc1; nlc2];
nlceq = [];
nlc = subs(nlc, [c;s0], [C';SOC0]);
matlabFunction(nlc,nlceq,'vars',{X},'file','NLConsRev1');
and my objective function, Ctot, to be minimized:
matlabFunction(Ctot,'vars',{X},'file','objFcnRev1');
When using fmincon solver:
options = optimset('MaxFunEvals',Inf,'MaxIter',5000,'Algorithm','interior-point','Display','iter');
[x1, fval1,] = fmincon(@objFcnRev1,x0,Aeq,beq,[],[],lb,ub,@NLConsRev1,options);
I receive the following error:
Error using barrier
Nonlinear constraint function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 797)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = barrier(funfcn,X,A,B,Aeq,Beq,l,u,confcn,options.HessFcn, ...
Error in OptRev1 (line 178)
[x1, fval1,] = fmincon(@objFcnRev1,x0,Aeq,beq,[],[],lb,ub,@NLConsRev1,options);
Any help would be greatly appreciated, thanks!
댓글 수: 1
Walter Roberson
2017년 9월 7일
After you matlabFunction you should issue a "clear" on the name of the function so that MATLAB does not accidentally use a previous version of it.
답변 (3개)
Alan Weiss
2017년 9월 7일
You didn't give many of the parameters used in your code, such as N, so we cannot reproduce your problem.
However, it is clear that fmincon is complaining about your nonlinear constraint function. Try running
[c,ceq] = NLConsRev1(x0)
and see what transpires. Fix that, and maybe other things will work, too.
By the way, your fmincon call begins
fmincon(@objFcnRev1,x0,Aeq,beq,[],[],...
Did you mean to put Aeq and beq in the third and fourth arguments? Usually they are fifth and sixth.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
kamilya MIMOUNI
2019년 10월 26일
Error using sqpInterface
Objective function is undefined at initial point. Fmincon cannot continue.
Error in fmincon (line 823)
[X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = sqpInterface(funfcn,X,full(A),full(B),full(Aeq),full(Beq), ...
Error in Test3 (line 89)
Control_optimal = fmincon(problem)
i have this problem in matlab
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!