How do I correctly use the Syntax of fmincon?

2 views (last 30 days)
I am trying to optimize a flight path. I have the following equations of motions:
dydt=(thrust*sin(alphat)/m*v)-gh*cos(y)-v*cos(y)/(re+h);
dvdt=(thrust*cos(alphat)/m)-Adrag* rhoh*(v^2)/2*m- gh *sin(y);
dhdt=v*sin(y);
dxddt=(re/re+h)*v*cos(y);
dmdt=-propflow;
dwdt=(1/Ix)*thrust*sin(alphat)*rs;
h and v are limited by the final orbit:
hmax=hfinal;
vmax=vfinal;
the downrange x and w are not constrained. I will set the max values of these parameters to a high value, which they will never reach.
m is the parameter that I want to maximize in my final orbit ans the flight path angle y should be equal to 0,because I want my rocket to reach a circular orbit.
Finally my alphat is the thrust vector control variable with which I would like to minimize my mass loss. So I would like fmincon to calculate my function alphat, so that my mass in the final orbit is as high as possible.
The problem is that I dont't understand how to define
A*x=b;
. Could someone here explain me what exactly A, x and b are and how I calculate them??
Thanks
  3 Comments
Brendan Görres
Brendan Görres on 10 Dec 2018
OK, maybe the question was not clear enough.I have read these two links, but the problem is that I don't understand how to formulate A and b for my particular problem. Because I do not have a function that depends on one variable but on 7. I can formulate these 7 variables for example as a vector Y, so that my function depends on Y(1)...Y(7) but there is still the problem to formulate A and b. How do I do that?
Walter Roberson
Walter Roberson on 10 Dec 2018
? The code you posted does not use A or x or b? fmincon does name some parameters A and x and b but not in a A*x=b context only A*x<=b . That is to say those names are only used to express linear inequality constraints . Your description mentions some bounds constraints but no linear inequalities . So you would set the A and b linear inequality parameters to the empty matrix (and the Aeq and beq parameters as well )

Sign in to comment.

Accepted Answer

Matt J
Matt J on 10 Dec 2018
If you do not have any linear constraints, then just set them empty
A=[]; b=[];

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!