nonlcon with 2 possible values
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Nipun
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Nonlinear Optimization finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!