主要内容

包含不连续性模型的确定性模拟

此示例显示如何正确构建包含不连续性的SimBiology®模型。

背景

在此示例中创建的模型模拟了以指定速率产生的一级消除蛋白质。生产率包含两种不连续性。要准确模拟模型,必须创建在不连续时触发的事件。

生产率有三个“模式”的生产,如以下情节所示:

图([0 3 3 6 6 10],[5 5 3 3 0 0]);ylim([ -  0.5 5.5]);Xlabel('时间');ylabel('速度');标题('不连续蛋白质生产率');

图包含轴对象。具有标题不连续蛋白质生产率的轴对象包含了类型线的物体。

最初(“模式1”),生产率是恒定值5.从3到6秒(“模式2”),生产率为3.在6秒(“模式3”)后,生产率是0.这些生产率在Matlab函数中实现了DiscontsimbiologyRateFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunctionFunction。

在此示例中,您将使事件添加到模型中以改变蛋白质产生的模式。这种方法确保模型中的不连续性仅通过事件发生,这进一步确保了颂歌求解器准确地计算了不连续性附近的数值行为。

请注意,要准确模拟模型,您必须使用事件来处理任何不连续性,无论与功能值或其衍生物有关。

构建模型,隔间和物种

型号= SBIOMODEL('不连续率');Central = AddCompartment(模型,'中央');AddSpecies(Central,'蛋白质'
ans =素质物种阵列索引:隔间:名称:值:单位:1个中央蛋白0

构建一阶消除的反应

反应1 = AddReaction(模型,'蛋白质 - > null'
反应1 =辛生物学反应阵列指数:反应:1蛋白 - >零
ke = addparameter(型号,'ke',0.5);KineticLaw1 = Addkineticlaw(反应1,'批量分离');KineticLaw1.ParametervariaBlenames = {ke.name};反应1.反应;

构建在不连续性时触发的事件

这些事件设置了控制蛋白质生产模式的参数模式。该模式最初是1,在时间3的时间内更改为2,并在时间6变为3。

计数器= addparameter(模型,'模式',1,'constantvalue', 错误的);addevent(型号,'时间> 3''mode = 2'
ANS = Simbiology事件数组索引:触发:EventFCNS:1时间> 3模式= 2
addevent(型号,'时间> 6''mode = 3'
ANS = SimBiology事件数组索引:触发:EventFCNS:1时间> 6模式= 3

构建蛋白质生产的反应

我们使用重复的赋值规则将此速率分配给参数。这让我们在仿真结果中存储生产率。

反应2 = AddReaction(模型,'null  - >蛋白');Rate2 = AddParameter(模型,'率2',0,'constantvalue', 错误的);反应2.反应='率2'
反应2 =血液学反应阵列指数:反应:1核 - >蛋白质
addrule(型号,'Rate2 = DiscontsimbiologyRateFunction(时间,模式)''重复分配器'
ans = simbiology规则数组索引:ruletype:规则:1重复分配率2 = distontsimbiology ratefunction(时间,模式)

查看DiscontsimbiologyRateFunction的内容

类型discontsimbiologyRateFunction.
功能速率= DiscontSimbiologyRateFunction(时间,模式)%#OK %distontsimbiologyRateFunceFunctionFunction  - 辅助功能函数函数。%Rate = DiscontsimbiologyRateFunction(时间,模式);%Copyright 2010-2021 MathWorks,Inc.%模式是截止圆形错误的双重精度编号。我们需要将百分比递到最近的整数以正确处理此问题。mode = round(模式);切换模式壳体1速率= 5;案例2速率= 3;案例3速率= 0;否则错误('无效模式。);结尾

模拟和绘制模型

模型
型号=素质模型 - 不连续率模型组件:隔间:1事件:2参数:3反应:2规则:1种:1可观察到:0
sd = sbiosimulate(模型);plot(sd.time,sd.data);ylim([ -  0.5 8]);Xlabel('时间');ylabel('状态');标题('仿真结果');传奇(SD.Datanames);

图包含轴对象。具有标题仿真结果的轴对象包含3个类型的类型。这些物体代表蛋白质,模式,速率2。

结论

此示例说明了如何创建包含不连续性的SimBiology模型。它说明了如何将事件添加到模型以解决不连续性,因此您可以准确模拟模型。