Skip to content

Reference files for chaotic models should be short enough #4

Open
@casella

Description

The MSL contains some chaotic models, which are theoretically guaranteed to provide diverging trajectories over time, no matter how accurate the tool and the integration algorithm is. Of course there is nothing wrong in simulating chaotic behaviour, but it doesn't make any sense to provide it as a reference, because it is theoretically impossible for any other tool than the one which produced the reference trajectory to reproduce it with a given degree of accuracy, if the simulation interval is long enough.

This issue has already been discussed, and there are proposals to add a special annotation to use a shorter StopTime for cross-check testing.

Until this is standardized, I would suggest to implement this manually, by re-running those cases with a shorter StopTime than the one found in the experiment annotation, which is meant to demonstrate the chaotic behaviour.

So far, I identified three such models:

  • Modelica.Electrical.Analog.Examples.ChuaCircuit: classical example of chaotic electronic oscillator system
  • Modelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses2: N > 2 body systems can have chaotic motion
  • Modelica.Mechanics.MultiBody.Examples.Rotational3DEffects.BevelGear1D: I don't know if this has ever analyzed from this point of view, but the motion is a complex nonlinear superposition of rotations, as in Furuta's pendulum, so I guess this may also be chaotic.

Based on the results obtained with OpenModelica, I would suggest to set StopTime to the following values when generating the reference trajectories of these three cases:

  • BevelGear: 0.4 s
  • ChuaCircuit: 4000 s
  • PointGravityWithPointMasses2: 2s

This ensures sufficient data for regression testing and for cross-validation of tools, without incurring in the issue caused by chaotic motion.

If there is consensus on this, i can do it myself, or possibly @beutlich could do it.

Activity

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

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions