切换一个物种之间的颂歌评价和指定的函数(重复作业)

2视图(30天)
大多数模型Simbiology将基于常微分方程进行交互。胰岛素和葡萄糖,例如,在糖尿病模型。胰岛素影响葡萄糖处理,和葡萄糖刺激胰岛素分泌。在创建、调试和安装这样的模型往往是方便“循环”,迫使一个国家遵循一个函数(例如,),准确地检查和校准其他系统(s)。所以,人们可能首先创建ode模型结构中,葡萄糖和胰岛素是由一个动态质量平衡和速率定律(即常微分方程)。但在某些情况下,它将有用的“开关”模型,使得胰岛素和葡萄糖可以指定为一个函数。
一种方法是创建一个指定的节点通过重复任务使用一个函数。在糖尿病的例子中,这将是“functional_glucose”。实际的颂歌节点将“ode_glucose”。一个可以有一个参数“glucose_switch”用户指定(0颂歌,1函数形式)。然后,在每个速率定律,利用葡萄糖,你glucose_switch * functional_glucose + (1-glucose_switch) * ode_glucose。在大模型,这将是相当复杂的。
还可以把重复赋值规则直接ODE物种。这避免了额外的节点和工作只要选中“边值”复选框。这是一个更清洁的方法。但是如果取消一个盒子和一个模拟运行,有一个“overspecified模式”错误抛出,因为系统试图解决节点作为一个颂歌,积分器和重复分配规则是战斗。可以断开重复分配规则,取消边界值框。这种组合(重复赋值/边界值的函数形式,断开颂歌的分配规则,取消选中对应的复选框)的最佳方式都ODE模型函数形式?
事实上,我怀疑有人编写脚本钩子函数形式,或断开,让ODE求解器的工作。

接受的答案

亚瑟Goldsipe
亚瑟Goldsipe 2018年3月12日
你好,
我将添加一个重复的方法分配规则,将BoundaryCondition属性设置为true。在某些情况下,您可以切换两个不同的重复分配规则。这就是我做了下面的例子: 但血糖-胰岛素响应模拟
亚瑟

答案(1)

吉姆·博斯
吉姆·博斯 2018年3月13日
编辑:吉姆·博斯 2018年3月14日
谢谢,亚瑟。
对另一些人来说,亚瑟的insulindemo示例非常有用:很多有用的想法。你可以看看亚瑟如何处理指定一个物种价值随着时间的推移。
这里的一个例子。请注意,如果您实现两个物种之间的反应,A, B,和化学计量学与速率定律rf - > B = kf *,你给一个非零初始值,你可以很容易地运行并获得不错的指数跟踪。现在,如果您想要指定一个函数,你有一个问题。如果你只是把重复分配规则,和(例如)指定一个=罪(时间),你会获得一个“模范overspecified”错误。我认为你可以摆脱错误通过改变B是一个边界节点。但后来改变回ode配方你必须断开重复分配规则,和翻转边界的节点上。
亚瑟的insulindemo给我看是什么,如果你设置- > B +的速率方程化学计量使用这样就没有“A”Simbiology对待不同的事情。第一,反应线从一个反应节点会破灭。现在,你可以把重复赋值规则和指定一个=罪(时间),你没有错误。这是有趣的,可能是有用的,特别是如果你正在做一个网络信号模型。我更喜欢另一种方法的质量平衡模型。
假设你有一个节点一个模型的内部。表示节点“B”, A - B - > C >。测试您的模型或做一个你想指定的实验,例如,B = 2 +罪(t)。我认为它可能是更好的添加一个节点B_u (B利用),然后有两个重复赋值规则设置B_u的价值。一个会主动和一个不是。在一个指定B_u = b在布鲁里溃疡其他设置你想要的功能,例如B_u = 2 +罪(t)。在A和B之间的速率定律和B和C(和其他地方B用于模型)从使用B你改变速率定律,使用B_u。例如,r2 = kf2 * B成为r2 = kf2 * B_u。
这有一些问题,作为B的质量平衡可以负的。但如果你删除了所有提到的B速率定律,并使用B_u相反,这个应该允许模型检查、校准等。
我经历了亚瑟的例子和格式化模型的图形化表示,并使其他一些次要的插件(在. m文件中提到的)和上传。就像我说的,这个例子很好,所以任何错误或效率低下了是我的错。
再次感谢,亚瑟。这是有趣的和有用的。

类别

找到更多的在扫描参数范围帮助中心文件交换

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!