The Finite Elements with Switch Detection (FESD) is a high-accuracy method for the numerical simulation and solution of optimal control problems subject to discontinuous ODEs. In this article, we extend the FESD method (Nurkanović et al., 2022) to the dynamic equations of multiple rigid bodies that exhibit state jumps due to impacts and Coulomb friction. This new method is referred to as FESD with Jumps (FESD-J). Starting from the standard Runge–Kutta equations, we let the integration step sizes be degrees of freedom. Additional constraints are introduced to ensure exact switch detection and to remove spurious degrees of freedom if no switches occur. Moreover, at the boundaries of each integration interval (finite element), we impose the impact equations in their complementarity form, at both the position and velocity level. They compute the normal and tangential impulses in case of contact making. Otherwise, they are reduced to the continuity conditions for the velocities. FESD-J treats multiple contacts, where each contact can have a different coefficient of restitution and friction. All methods introduced in this paper are implemented in the open-source software package NOSNOC (Nurkanović and Diehl, 2022). We illustrate the use of FESD-J in both simulation and optimal control examples.
Read full abstract