UnitConversion
执行单位转换
描述
的UnitConversion
属性指定是否在模拟之前对模型执行单元转换。它是CompileOptions
对象。CompileOptions
属性的对象属性保存模型的编译时选项configset
对象。
当UnitConversion
设置为真正的
,模拟生物学®软件将匹配的物理量转换为一个一致的单位系统,以便解析它们。这种转换是为正确的模拟做准备的,但是物种数量是以用户指定的单位返回的。
例如,考虑一个反应A + b - > c
.利用质量作用动力学,反应速率定义为a * b * k
在哪里k
是反应的速率常数。如果你指定初始量一个
而且b
分别为0.01M和0.005M,则k
是1 / (M *秒)
.如果你指定k
例如,用另一个等价的单位定义,1 /((分子/升)*秒)
,UnitConversion
后发生DimensionalAnalysis
.
单位转换需要量纲分析。如果DimensionalAnalysis
是关了,你又转UnitConversion
上之后,DimensionalAnalysis
自动打开。如果UnitConversion
是开着的,你把它关了DimensionalAnalysis
,然后UnitConversion
自动关闭。
如果UnitConversion
失败,然后在模拟(sbiosimulate
).
如果UnitConversion
设置为假
时,模拟使用给定的对象值。
特征
适用于 | 对象:CompileOptions (在configset 对象) |
数据类型 | 布尔 |
数据值 |
|
访问 | 读/写 |
请注意
SimBiology使用的单位包括与之关联的空单位DimensionalAnalysis
而且UnitConversion
特性。
当
DimensionalAnalysis
而且UnitConversion
都是假
,单位不使用。然而,SimBiology仍然执行最低水平的量纲分析,以确定反应速率的量纲是量/时间还是浓度/时间。当
DimensionalAnalysis
是真正的
而且UnitConversion
是假
,单位(如果不是空的)必须具有一致的尺寸,以便SimBiology可以执行量纲分析。但是,单位不进行转换。当
UnitConversion
设置为真正的
(需要DimensionalAnalysis
是真正的
), SimBiology执行量纲分析,并将所有内容转换为一致的单位。因此,您必须指定一致的单元,并且任何单元都不能为空。如果你有一个无量纲参数,你仍然必须设置它的单位为无量纲的
.
提示
如果你有一个自定义函数UnitConversion
开启,请遵循下面的建议。
如果传递给函数的参数不是无量纲的,则对它们进行无量纲化。
假设您有一个自定义函数定义为
Y = f(t)
在哪里t
时间是以小时为单位的吗y
是一种物质的浓度,单位是摩尔/升。当你在你的模型中使用这个函数来定义一个重复赋值规则时,例如,将它定义为:S1 = f(时间/t0)*s0
,在那里时间
为模拟时间,t0
是一个参数,定义为1.0小时,s0
参数是否定义为1.0 mol /l,和s1
是一种物质的浓度,单位是摩尔/升。请注意,时间
而且s1
不一定要在同一个单位t0
而且s0
,但它们必须在维度上保持一致。例如,时间
而且s1
单位可以分别设置为分钟和皮摩尔/升。
例子
这个例子展示了如何检索和设置unitconversion
从默认真正的
来假
在模型对象中设置的默认配置中。
导入模型。
modelObj = sbmlimport('振荡器')
SimBiology模型-振荡器模型组件:模型:0参数:0反应:42规则:0物种:23
检索
configset
模型对象的。configsetObj = getconfigset(modelObj) Configuration Settings - default (active) SolverType: ode15s StopTime: 10.000000 SolverOptions: AbsoluteTolerance: 1.000000e-006 RelativeTolerance: 1.000000e-003 RuntimeOptions: StatesToLog: all CompileOptions: UnitConversion: false DimensionalAnalysis: true
检索
CompileOptions
对象。optionsObj = get(configsetObj,'CompileOptions')编译设置:UnitConversion: false维度分析:true
赋值为false
UnitConversion
.集(optionsObj, UnitConversion,真的)