mingwu-li / forward

A COCO-based shooting (differential-correction) toolbox
2 stars 0 forks source link

Examples for automous systems #1

Closed jamesascham closed 6 days ago

jamesascham commented 1 year ago

Hello,

Is it possible that you could provide an example for continuation of periodic orbits for an autonomous system? I see there is no constructor for HB2forward, unless I am misunderstanding.

Warm regards, James

mingwu-li commented 1 year ago

Hi James,

Thanks for your feedback. Per your request, I have added an example for continuation of periodic orbits of autonomous system. Please see example/marsden for the example. This example is adapted from the same one under coco/po/examples. You can find more details from the po-tutorial file under coco/help folder.

A quick summary about the implementation for periodic orbits of autonomous system via this forward toolbox

As for constructor for HB2forward, you are right that there is no such constructor. Note that this toolbox is not designed specifically for periodic orbits. So I am not motivated to write such a constructor. Instead, you may build a toolbox for periodic orbits based on this forward toolbox. Then you may add such a constructor to the forward-based toolbox for periodic orbits.

Cheers, Mingwu

jamesascham commented 1 year ago

Hi Mingwu,

Thanks for your prompt reply. Is this toolbox therefore limited in that I cannot continue periodic orbits of an autonomous system, that is encoded as a large algorithm? i.e. it is not vectorizable; all derivatives are calculated numerically. Essentially, I wish to find the branch of periodic orbits emanating from a Hopf bifurcation of the trivial equilibrium branch. However the collocation method as standard in COCO, has trouble solving for the derivatives. I believe this is due to particular emperical features of the algorithm. Hence why I am now trying to solve them via this shooting toolbox.

Warm regards, James

mingwu-li commented 1 year ago

Hi James,

As shown in the added example, you can continue periodic orbits of an autonomous system. For shooting methods, vectorizable is not helpful (unlike the collocation methods). We develop shooting toolbox for high-dimensional nonlinear systems. If your system's dimension is not very high, I would still recommend po-toolbox of COCO, where switching from continuation of equilibria to continuation of periodic orbits is supported via ode_HB2po. You can find demos in the po/examples.

When you say collocation methods has trouble for solving the derivatives. I did not get it. Could you elaborate it or give more details?

Best, Mingwu

jamesascham commented 1 year ago

Hi Mingwu,

The order of my system is around 20-50 states, depending on the fidelity of the approximation to the solution of the aeroelastic system. I have used previously ode_HB2po, but the periodic branch emanating from the Hopf bifurcation is difficult to solve for. The branch seems very steep, and the solver increasingly reduces the step size as the branch is followed. Imagine a branch that is near vertical in nature without it becoming bound sufficiently by nonlinearities. However, solving the system by integration confirms the existence of a limit cycle in this region. Removing the emperical features from the model (representing certain aerodynamic phenomena), the branch is able to be continued. I have tried increasing the number of collocation points without success. A similar issue has been noted by a colleague at Airbus, though they are using a different model and continuation package, whilst trying to model similar physics.

Warm regards, James

mingwu-li commented 1 year ago

So in short, you are able to use ep-toolbox of COCO to detect the HB point when you perform continuation of equilibria. However, when you switch to the continuation of periodic orbits via ode_HB2po, the Newton solver does not converge in 10 iterations. Please correct me if I am wrong. Also it is helpful if you can share coco log files under data/runid/...with me. Then I have a better chance to offer help.

jamesascham commented 1 year ago

Hi Mingwu,

The initial Newton solver converges in 10 iterations, but then the periodic branch itself is difficult to solve for. It usually fails within 50 iterations, and is then retried with a reduction in step-size.

coco_log.txt

Cheers, James

mingwu-li commented 1 year ago

Hi James,

Did you provide the Jacobian of your vector field? I am thinking that these Jacobian matrices might be wrong.

Best, Mingwu