UnitConversion
执行单位转换
描述
的UnitConversion
属性指定是否执行单位转换为模型模拟。这是一个性质的CompileOptions
对象。CompileOptions
保存模型的编译时选择的对象属性configset
对象。
当UnitConversion
被设置为真正的
,SimBiology®软件将匹配的物理量转换为一个一致的单元系统来解决这些问题。这种转换是在准备正确的模拟,但物种数量返回指定的单位。
例如,考虑一个反应a + b - > c
。使用质量作用动力学反应速率的定义是a * b * k
在哪里k
反应的速率常数。如果你指定初始数量的一个
和b
分别为0.01米和0.005米,那么单位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
是,遵循下面的建议。
Non-dimensionalize传递给函数的参数,如果他们不是已经无量纲。
假设您有一个自定义函数定义为
y = f (t)
在哪里t
小时的时间吗y
是一个物种的浓度在摩尔/升。当你使用这个函数模型来定义重复分配规则为例,将其定义为:s1 = f(时间/ t0) * s0
,在那里时间
仿真时间,t0
是一个参数定义为1.0小时,s0
是一个参数定义为1.0摩尔/升,然后呢s1
是一个物种的浓度在摩尔/升。请注意,时间
和s1
不需要在同一个单位t0
和s0
,但他们必须在尺寸上一致的。例如,时间
和s1
单位可以设置为分钟,皮摩尔/升,分别。
例子
这个示例展示了如何检索和设置unitconversion
从默认真正的
来假
在默认配置中设置一个模型对象。
导入模型。
modelObj = sbmlimport(振荡器)
SimBiology模型——振荡器模型组件:模型:0参数:0反应:42规则:0物种:23
检索
configset
对象模型的对象。configsetObj = getconfigset (modelObj)配置设置,默认(主动)SolverType: ode15s StopTime: 10.000000 SolverOptions: AbsoluteTolerance: 1.000000 e - 006 RelativeTolerance: 1.000000 e - 003 RuntimeOptions: StatesToLog:所有CompileOptions: UnitConversion:假DimensionalAnalysis:真的
检索
CompileOptions
对象。optionsObj =得到(configsetObj CompileOptions)编译设置:UnitConversion:假DimensionalAnalysis:真的
赋值的错误
UnitConversion
。集(optionsObj, UnitConversion,真的)