ODE Events In SimBiology toolbox

1 view (last 30 days)
I would like to define a custom ode stopping event for the solver of a SimBiology model. How to achieve that?
Say, I want to write some event function, like described in
and set isterminal conditioned at specific values of my concentrations, the model of which is defined by the SimBiology toolbox.
Where is the option located (or, how to export the code in the needed granularity) where I can provide my event function?
Alexander on 1 Apr 2019
I'm aware of addevent. But it seems, that there is no opportunity to stop simulation by this event handler. At least, I didn't find any documentation about something analogous to the "isterminal" setting.

Sign in to comment.

Accepted Answer

Arthur Goldsipe
Arthur Goldsipe on 1 Apr 2019
Currently (as of R2019a), SimBiology events cannot directly stop a simulation. I usually handle this sort of situation by post-processing simulation results that continue past the event of interest.
That said, there are 3 stop criteria: simulation stop time, maximum number of logs, and maximum (wall clock) simulation time. If you don't care about how long a simulation takes, you could use an event indirectly end the simulation by triggering the wall clock condition. For example, if you set the maximum wall clock time to 30 seconds and create an event that pauses for 30 seconds, then the simulation should stop after the event is triggered.
You also asked about export options. SimBiology supports export to SBML. You could also use the output from getequations as a starting point for converting your model to MATLAB code that can be used with ode15s or one of the other solvers in MATLAB.
  1 Comment
Alexander on 1 Apr 2019
yeah... somewhat unfortunate...
I'm going to use getequations for now, exporting the underlying differential equations. Luckily, the model is reproducible by them.
Thanks for the information!

Sign in to comment.

More Answers (0)


More Answers in the  SimBiology Community




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!