Event trigger
Trigger
is a property of an Event
object
A Trigger
is a condition that must become
true for an event to execute. You can use a combination of relational
and logical operators to build a trigger expression. Trigger
can
be a character vector, an expression, or a function handle that when
evaluated returns a value of true
or false
.
A Trigger
can access species, parameters, and compartments.
A trigger can contain the keyword time
and
relational operators to trigger an event that occurs at a specific
time during the simulation. For example, time >= x
.
In this example trigger, note that:
The units associated with the keyword time
are
the units for the TimeUnits
property for the Configset
object
associated with the simulation.
If x
is an expression containing
compartments, species, or parameters, then any units associated with
the expression must have the same dimensions as the keyword time
.
If x
is a raw number, then its
dimensions (and units, if unit conversion is on) are assumed to be
the same as the keyword time
.
For more information about how the SimBiology® software handles events, see How Events Are Evaluated. For examples of event functions, see Specifying Event Triggers.
Tip
If UnitConversion
is
on and your model has any event, follow the recommendation below.
Non-dimensionalize any parameters used in the event Trigger
if they are not already dimensionless. For example, suppose you have
a trigger x > 1
, where x is the species
concentration in mole/liter. Non-dimensionalize x by scaling (dividing)
it with a constant such as x/x0 > 1
, where x0 is a
parameter defined as 1.0 mole/liter. Note that x does not have to have
the same unit as the constant x0, but must be dimensionally consistent
with it. For example, the unit of x can be picomole/liter instead of
mole/liter.
Applies to | Object: event |
SimBiology type | Character vector, function handle |
SimBiology values | Specify a MATLAB® expression as a character vector.
Default is |
Access | Read/write |
Create a model object, and then add an event object.
modelObj = sbmlimport('oscillator'); eventObj = addevent(modelObj, 'time>= 5', 'OpC = 200');
Set the Trigger
property of the
event object.
set(eventObj, 'Trigger', '(time >=5) && (speciesA<1000)');
Get the Trigger
property.
get(eventObj, 'Trigger')