MATLAB Answers

Can I solve equations backward in time? (Pontryagin maximum principle optimal control problem)

38 views (last 30 days)
Gamze Balkan
Gamze Balkan on 5 Apr 2018
Commented: Praveen Kumar on 19 Nov 2019
Hello. I am trying to solve a problem with 7 states in the time interval (0,T), using Pontryagin Maximum Principle. I already have state, costate and optimal input equations, but it is quite hard to obtain its analytical equations since its nonlinear differential equation set with 15 variables. So I have modeled in Simulink. But the problem is, adjoint equations' solving method is, considering the problem backwards in time: starting from time T, up to 0. And I dont know a way to implement it on Matlab (Simulink, or in a toolbox). If anybody in the know could help me with the problem, I would be grateful.

  4 Comments

Show 1 older comment
Praveen Kumar
Praveen Kumar on 6 Nov 2019
Hi,
Have you solved the problem? I am also working on similar problem but with less states, but I have succussefully solved backward in ODE solver. The code is less efficient and its difficult to find initial step, control and costate.
Gamze Balkan
Gamze Balkan on 17 Nov 2019
Hi, I have simplify the system and recuded it to 3 states, but analytical solution was still impossible to obtain, and I have put the problem aside for a while unfortunately. How many states do you have? Do you suggest ODE solver rather than Simulink?
Praveen Kumar
Praveen Kumar on 19 Nov 2019
Only one state. Even though ODE is working, its very slow and results seems inaccurate sometimes. There is no way to prove the results are optimal.

Sign in to comment.

Accepted Answer

Torsten
Torsten on 6 Apr 2018
All MATLAB ODE-solvers can integrate backward in time. Just specify "tspan=[T 0]".
Best wishes
Torsten.

  1 Comment

Gamze Balkan
Gamze Balkan on 15 Apr 2018
Thank you for the answer! But I think my problem cannot be solved with ode since it has more than one independent variable in the dif. equation, what do you think? Even so, where can I make these setting and run it in Simulink, not in an mfile?

Sign in to comment.

More Answers (0)

Sign in to answer this question.