Search code examples
modelica

When to use noEvent operator in Modelica language?


The noEvent operator in Modelica doesn't use iteration to find the precise time instant in which the event was triggered.

enter image description here

It seems this would cause calculation error, here is an example I find on the following website https://mbe.modelica.university/behavior/discrete/decay/ So Do I have to ensure the function is smooth when using noEvent operator? What's the purpose of using noEvent operator if it can't ensure accuracy?

enter image description here


Solution

  • Based on the two different ways of dealing with the event. If using noEvent operator, there is no halt of the integration, but the numerical solver assumes that the function should be smooth, with unsmooth functions, there would be numerical errors.

    enter image description here