Menu

Optimal Control with MatCont: Shooting method

Help
Adrian
2021-03-12
2023-07-05
  • Adrian

    Adrian - 2021-03-12

    Dear all:

    I am trying to solve an optimal control problem using MatCont. I got already some examples to run, like how to find BP's, LP's etc. with the MatCont GUI. Currently I am stuck on an optimal control problem, which is a two point boundary value problem.

    To be more specific. My problem consists of 3 states, named x1, x2, x3. Forcing my Hamiltonian at the final time to 0 delivers me 4 equality conditions to solve the problem. The variables I am solving for are the final time (tf), and my three costates by using the shooting method.

    I tried to illustrate the problem with the attached figures.

    Now let's say I would like to apply a method which finds me all the possible solutions for that problem. In the literature there is something called Fixed-Point-Newton method to the problem (see figure 4), so that \kappa_2 become by parameter in MatCont which I would like to shift and finds all the roots (solutions of the three costates and the tf) for that problem. The functions F1, F2, F3 and F4 would be represent my three costate equations and F4 would be the condition from the Hamiltonian.

    Since I want to solve for my initial costates by knowing the initial and final states I applied a shooting method. Now my question is: How could I incorporate a shooting method inside MatCont which each parameter shift of \kappa_2 satisfies all 4 conditions? Or better to say, since my initial costates are obtained by the shooting method (where I use ode45) by guessing the initial costates first and go over some iterations to satisfy my 4 conditions, how could I implement this in a MatCont setting?

    I am happy about any suggestions or ideas.

    Best regards
    Adrian

     

    Last edit: Adrian 2021-03-12
    • hilmeijer

      hilmeijer - 2021-03-15

      You will have to write your own system definition file. I see no way you can adapt something easily.

      You may start though with the continuation file for a limit cycle. A limit cycle is nothing but an orbit with boundary conditions (final point equals the initial point) and integral conditions.

      In your case, you can probably drop the integral condition, and modify the boundary conditions.

      Note: you will have to use the commandline for MatCont (no GUI support for this) and not use symbolic derivatives (unless you write these yourself).

      Best, Hil


      From: Adrian josef94@users.sourceforge.net
      Sent: Friday, March 12, 2021 5:23 PM
      To: [matcont:discussion]
      Subject: [matcont:discussion] Optimal Control with MatCont: Shooting method

      Dear all:

      I am trying to solve an optimal control problem using MatCont. I got already some examples to run, like how to find BP's, LP's etc. with the MatCont GUI. Currently I am stuck on an optimal control problem, which is a two point boundary value problem.

      To be more specific. My problem consists of 3 states, named x1, x2, x3. Forcing my Hamiltonian at the final time to 0 delivers me 4 equality conditions to solve the problem. The variables I am solving for are the final time (tf), and my three costates by using the shooting method.

      I tried to illustrate the problem with the attached figures.

      Now let's say I would like to apply a method which finds me all the possible solutions for that problem. In the literature there is something called Fixed-Point-Newton method to the problem (see figure 4), so that \kappa_2 become by parameter in MatCont which I would like to shift and finds all the roots (solutions of the three costates and the tf) for that problem. The functions F1, F2, F3 and F4 would be represent my three costate equations and F4 would be the condition from the Hamiltonian.

      Since I want to solve for my initial costates by knowing the initial and final states I applied a shooting method. Now my question is: How could I incorporate a shooting method inside MatCont which each parameter shift of \kappa_2 satisfies all 4 conditions? Or better to say, since my initial costates are obtained by the shooting method (where I use ode45) by guessing the initial costates first and go over some iterations to satisfy my 4 conditions, how could I implement this in a MatCont setting?

      I am happy about any suggestions or ideas.

      Best regards
      Josef


      Optimal Control with MatCont: Shooting method


      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/matcont/discussion/762215/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       
      • Adrian

        Adrian - 2021-03-15

        Thank you very much for your input. I will try that. If I have success I can share my solution with the community here.

         
  • Alois Steindl

    Alois Steindl - 2021-04-08

    Hello, I just saw your message.
    For your optimal control problem MatCont is quite likely not the first choice, you simply need some boundary value problem solver. In Matlab the powerful packages bvp4c and bvp5c are available; these use a collocation method. There should also exist some shooting methods.
    Good luck
    Alois

     
  • Oghenetega Oguns

    Hello Adrian I am trying to solve an optimal control problem satisfying some boundary conditions using MATCONT, Please how did you incoporate shooting method in Matcont? Can you please your code? Thanks

     

Log in to post a comment.