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 systemModelica.Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses2
: N > 2 body systems can have chaotic motionModelica.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 sChuaCircuit
: 4000 sPointGravityWithPointMasses2
: 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