nonlcon with 2 possible values
    6 views (last 30 days)
  
       Show older comments
    
I am using fmincon to optimize a space trajectory. My controls are the  thrust three directions (radial(Tr), tangential(Tt) and normal(Tn)). 
During my trajectory, I want the thrust to be either equal to the maximum possible value (Tmax) available or null. To express this constrain I want to use 
            sqrt(Tr^2+Tt^2+Tn^2)
ceq=[    or
            sqrtT(r^2+Tt^2+Tn^2)-Tmax
How can I express this nonlinear constrain in my script? is it possibile to write the constrain with an or operator? 
0 Comments
Answers (1)
  Nipun
      
 on 7 Jun 2024
        Hi Alessia,
I understand that you want to apply a nonlinear constraint to your optimization problem in MATLAB using fmincon, where the thrust can either be zero or the maximum possible value (Tmax). Here's how you can define this constraint:
function [c, ceq] = thrustConstraint(x)
    Tmax = ...; % Define your Tmax value here
    Tr = x(1); % Radial thrust
    Tt = x(2); % Tangential thrust
    Tn = x(3); % Normal thrust
    thrust = sqrt(Tr^2 + Tt^2 + Tn^2);
    % Nonlinear equality constraints
    ceq = [thrust; thrust - Tmax];
    % No inequality constraints
    c = [];
end
When using fmincon, specify this function as the nonlinear constraint function.
Hope this helps.
Regards,
Nipun
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
