<div dir="ltr">Hi, i am experiencing a strange behaviour from Ipopt:<div>I need to solve a relatively simple problem where i have to find the minimum value of fuel and a control strategy which allow a vehicle to reach a given final position.</div>

<div>The formulation of the problem is the following:</div><div><br></div><div>minimize</div><div>              J(X)</div><div><br></div><div>subject to</div><div>               X_L &lt;= X &lt;= X_U</div><div>               G_L &lt;= G(X) &lt;= G_U</div>

<div>where</div><div><br></div><div>- X = (L, T1, ..., T5) is the array of decision variables, which contains the initial fuel mass L and the five control parameters T1, ..., T5.</div><div><br></div><div>- J(X) = X1 is the cost to be minimized and it&#39;s simply the first component of the array X.</div>
<div><br></div><div>- G(X) is the distance between the final position of the vehicle and the target position. G_L and G_U are not set to zero, i relaxed this constraint by adding a small tolerance.</div><div><br></div><div>
Loosely speaking, i am searching for the &quot;first&quot; feasible solution (in terms of initial fuel load).</div><div><br></div><div>Now, i know that there exist a controllability threshold L* such that for  values of L lower than L* the vehicle can&#39;t reach the target, no matter what the control strategy is.</div>
<div>In fact the value of L* is exactly what i am asking Ipopt to find.</div>
<div>The problem is that if i set the lower bound for L simply to zero, Ipopt doesn&#39;t converge and it just keeps iterating.</div><div>On the other hand, if i choose a lower bound which is &quot;high enough&quot;, Ipopt converges very quickly (10-15 iterations) to an optimal solution which consists in choosing L equal to its lower bound.</div>
<div><br></div><div>I wrote &quot;high enough&quot; because i am sure that the problem lies in the controllability threshold L*: if the lower bound for L is higher than L* the optimal solution is obviously the closest possible value of L to L* which leads to the saturation of its lower bound.</div>
<div>But if the lower bound for L is lower than L* it means that i am allowing Ipopt to try values of L such small that the constraint on G cannot be satisfied.</div><div><br></div><div>My question: isn&#39;t it strange that Ipopt can&#39;t find the optimal solution when the decision variables can take values for which the constraint may not be satisfied?</div>
<div><br></div><div>I hope that the description is clear enough, English is not my mother language so i apologize for any error.</div><div>Thank you in advance for your help.</div></div>