MATLAB Answers

Upper limit or saturation

10 views (last 30 days)
Hi. I am currently trying to model a chemical equilibrium where there is an in flow of matter using the simbiology add-on.
There is an upper limit of one of the species, so my question is how do i specify an upper limit or saturation of a species in simbiology?


Sign in to comment.

Accepted Answer

Ingrid Tigges
Ingrid Tigges on 9 Sep 2013
Should the upper limit come into play when running a simulation? In this case, you could set the upper limit using an event. Have a look at


Peter Madelung
Peter Madelung on 9 Sep 2013
Yes, i tried that e.g. setting the trigger and event as the saturation conc. but i get some strange errors. 1) The left-hand side of event function 'D = 3.9E-6' in the event 'Saturation' does not refer to a non-constant species, parameter, or compartment object 2) Dimensional analysis failed for event 'Saturation'. Quantities of different dimensions cannot be compared with relational operators. 3) Dimensional analysis failed for event 'Saturation'. The units of the left- and right-hand sides of all event functions must agree.
it appears that the actual event is not the problem but it is the trigger.
What am i doing wrong?
Ingrid Tigges
Ingrid Tigges on 10 Sep 2013
Personally, I would contact technical support so that someone can look into your model.

Sign in to comment.

More Answers (1)

Arthur Goldsipe
Arthur Goldsipe on 10 Sep 2013
Edited: Arthur Goldsipe on 10 Sep 2013
Hi Peter,
The "right" way to implement an upper limit or saturation really depends on how you want to physically model the effect. What should happen to any reactions that produce this species after it reaches saturation? Should these reactions "turn off"?
As Ingrid said, the most natural way to model saturation is probably using an event. From your comment to her answer, you may be happy creating an event that simply ensures that your species never exceeds the upper limit. However, because of the way that events are detected, this event will not do what you want unless you also "turn off" all reaction that produce it.
It also sounds like your model uses dimensional analysis and/or unit conversion. In that case, here's how you might implement the event:
Let's assume that the species you want to limit is named D, has units of mole/liter, and is in a compartment named C. Let's also assume that D is the product of a reaction with a rate constant K.
First, add a parameter (with units) to the model that sets the saturation limit, for example, DMax = 3.9e-6 mole/liter. Next, add an event with the trigger "D > DMax" and with TWO event functions "C.D = DMax" and "K = 0*K". The first function ensures that D is set back to saturation, while the second function ensure that the reaction producing D is turned off. Note that the trigger must be written using an INEQUALITY not an EQUALITY. Also, you'll ned to set the ConstantValue property of K to false so that you can change its value by an event.
Any more specific suggestions would require knowledge of your model, and as Ingrid said, would best be handled by contacting technical support.


Sign in to comment.

Community Treasure Hunt

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

Start Hunting!