对模型进行量纲分析
这个量纲分析
属性指定在模拟之前是否对模型执行维度分析。它是编译选项
对象编译选项
保存模型的编译时选项,并且是配置集
反对,什么时候量纲分析
设置为符合事实的
,SimBiology®软件检查反应和规则中涉及的单元的物理量是否匹配,是否适用。
例如,考虑一个反应a+b->c
.使用质量作用动力学,反应速率定义为a*b*k
哪里K
是反应的速率常数。如果指定A.
和B
分别为0.01M和0.005M,则单位为K
是1/(米*秒)
. 如果您指定K
例如,使用另一个等效单位定义,1/[(摩尔/升)*秒]
,量纲分析
检查物理量是否匹配。如果物理量不匹配,您将看到错误,并且模型未模拟。
单位转换需要维度分析。如果量纲分析
关了,你就转单位转换
那好吧量纲分析
自动打开。如果单位转换
是开着的,你关掉量纲分析
然后单位转换
自动关闭。
如果你有MATLAB®函数调用在模型中,维度分析将忽略任何包含函数调用的表达式并生成警告。
反应速率的有效物理量为量/时间、质量/时间或浓度/时间。
适用于 | 对象:编译选项 (在配置集 (对象) |
数据类型 | 布尔值 |
数据值 |
|
通道 | 读/写 |
SimBiology允许将任何无量纲量的幂乘以任何无量纲幂x
和A.
它们是无量纲的:(x+3)^(a+0.5)
SimBiology使用包括空单位在内的单位与量纲分析
和单位转换
特征。
什么时候量纲分析
和单位转换
都是错误的
,则不使用单位。然而,SimBiology仍然执行最低级别的量纲分析,以确定反应速率是以量/时间还是以浓度/时间为量纲。
什么时候量纲分析
是符合事实的
和单位转换
是错误的
,单位(如果不为空)必须具有一致的维度,以便SimBiology可以执行维度分析。但是,单位不会转换。
什么时候单位转换
设置为符合事实的
(这需要量纲分析
成为符合事实的
)SimBiology执行维度分析,并将所有内容转换为一致的单位。因此,必须指定一致的单位,并且任何单位都不能为空。如果有无量纲参数,则仍必须将其单位设置为无量纲
.
如果您有自定义函数和单位转换
已启用,请遵循以下建议。
如果传递给函数的参数尚未无量纲,则将其无量纲化。
假设有一个自定义函数定义为y=f(t)
哪里T
时间是以小时为单位的吗Y
是一种物质的浓度,单位为摩尔/升。例如,当您在模型中使用此函数定义重复分配规则时,请将其定义为:s1=f(时间/t0)*s0
哪里时间
是模拟时间,,t0
是定义为1.0小时的参数,s0
是定义为1.0摩尔/升的参数,并且s1
是一种物质的浓度,单位为摩尔/升。注意时间
和s1
不必使用与相同的单位t0
和s0
,但它们必须在维度上一致时间
和s1
单位可分别设置为分钟和皮摩尔/升。
此示例显示如何检索和设置量纲分析
默认情况下符合事实的
到错误的
在模型对象中设置的默认配置中。
导入模型。
modelObj=sbmlimport(“振荡器”)
SimBiology模型-振荡器模型组件:模型:0参数:0反应:42规则:0物种:23
取回配置集
模型对象的对象。
configsetObj=getconfigset(modelObj)配置设置-默认(活动)解算器类型:ode15s停止时间:10.000000解算器选项:绝对公差:1.000000e-006相对公差:1.000000e-003运行时选项:状态日志:所有编译选项:单位转换:真尺寸分析:真
取回编译选项
对象
optionsObj=get(configsetObj,“编译选项”)编译设置:UnitConversion:true维度分析:true
赋值错误的
到量纲分析
.
设置(选项OBJ,“维度分析”,错)