Skip to content

Conversation

@Schlevidon
Copy link
Collaborator

Changes

External changes

  • IFDIFF can now generate sensitivities for systems with Filippov sliding modes.
    • The solution may enter and exit the Filippov sliding mode multiple times.
    • Public interface for sensitivity computation remains unchanged; no special syntax required for Filippov systems.
    • Both currently implemented sensitivity computation methods, i.e. external numerical differentiation (END) and variational differential equations (VDE), also work for Filippov systems.
  • Added sensitivity computation and plot of Filippov convexification parameter to Filippov-type 3D-Predator-Prey example.

Internal changes

  • Filippov modes are now treated as proper submodels, i.e. entering and exiting a Filippov mode is treated as a model switch, which entails storing the switching point and signatures of the involved submodels.
    • This change is crucial in order to correctly apply the sensitivity updates at the model switches.
  • Submodel signatures are now stored in a single datahandle field (SWP_detection.signature) as a cell array of BranchingSignature objects.
    • Filippov submodel signatures are stored as 1x2 cell array entries containing the signatures of both models used in the convex combination for the Filippov RHS.
  • Storing of the Filippov convexification parameter can now be enabled or disabled (default, since it is costly and not necessary) in the config file.
    • Storing can also be controlled for a single solveODE call by setting the sliding.storeSlidingInfo field in the datahandle before calling solveODE (see 3D-Predator-Prey example).

Open problems

  • Current implementation of the switching point computation for Filippov modes seems lacking.
    • At the moment a root search is performed on the switching function that signals the Filippov mode. However, since the switching function is approximately zero during the Filippov mode and away from zero outside of the Filippov mode, we have to apply a small shift to create an artificial sign change, so that the bisection algorithm can be applied.
    • This technique does not seem to provide robust results. In particular, the 3D-Predator-Prey example does not work without limiting the maximum step size (although this may also be caused by a separate issue in the current Filippov solver implementation).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants