<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 <= X <= X_U</div><div> G_L <= G(X) <= 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'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 "first" 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'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't converge and it just keeps iterating.</div><div>On the other hand, if i choose a lower bound which is "high enough", 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 "high enough" 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't it strange that Ipopt can'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>