Two conditions relate temperature to growth. If temperature is low everything goes dormant. If temperature is high the yeast die. We replace the simple equations for division and termination with this in mind we create yeast2.mdl as:
divisions = Yeast Count * division rate
division rate = norm division rate * division from temp lookup ( temperature / norm temperature )
norm division rate = 0.08
norm temperature = 80
division from temp lookup ( (0,0),(0.8,0),(1,1),(2,1) )
terminations = Yeast Count / average lifetime
average lifetime = norm lifetime * life from temp lookup ( temperature / norm temperature )
norm lifetime = 250
life from temp lookup ((0,1),(1,1),(1.25,0.02),(2,0.001) )
Now testing the Constraints shows that cold is dormant is respected.
Constraint is violated because the yeast do not die out quickly enough when the temperature is increased. In this case, we can restructure the model to meet the Constraint, or relax the Constraint slightly, depending on which is more realistic. One way to relax the Constraint is to change the time transition to allow more time for the yeast to die out (we change the RC DECAY CHECK argument from 2 to 5):
hot is dead :THE CONDITION: temperature = RC STEP(120,1) |
:IMPLIES: Yeast Count <= RC DECAY CHECK(1,Yeast Count,5) |
Now testing the Constraints shows that cold is dormant and hot is dead are both respected. This kind of interplay, trading off strictness of Constraints and making adjustments to equations is valid. It provides a means of focusing more attention on the Constraints that may be violated to a small extent.