1
votes

I'm pretty new to OpenMDAO. If would like to setup my problem such that there is a subdiscipline that is driven by its own optimizer, and it hands off the results to the top level problem, where a separate optimizer will use those results.

For a bit more context, the sub-problem is trajectory optimization of a vehicle. I successfully got that problem to converge in a few iterations, without varying the vehicle parameters (mass, thrust, fuel etc.). So far so good. However, if I let the optimizer also vary some vehicle parameters, it can't seem to get it to go to the global optimum.

So my thought was to let trajectory optimization subproblem do what it does succesfully, and incorporate that as subproblem to the overall problem, and see if that works better.

So my question is:

  1. Can an OpenMDAO problem have multiple drivers?
  2. What's the right way to set that up? Do I wrap my subproblem into its own ExplicitComponent?
1

1 Answers

0
votes

While this is possible, solving a problem in this way will not pass accurate analytic derivatives between the system design and the trajectory design.

We've developed another tool specifically for the purpose of doing multidisciplinary optimization which involves trajectory optimization. Dymos It supports pseudospectral methods (like those in GPOPS, PSOPT, and OTIS) as well as shooting methods, and it allows a trajectory to be optimized as part of a larger system optimization problem.

Take a look at some of the example problems and see if it might work for you.