Выполните модуль
The UnitConversion
свойство задает, выполнять ли преобразование модулей для модели перед симуляцией. Это свойство CompileOptions
объект. CompileOptions
содержит опции времени компиляции модели и является свойством объекта configset
объект.
Когда UnitConversion
установлено в true
, SimBiology® программное обеспечение преобразует совпадающие физические величины в один последовательный модуль систему в порядок их разрешения. Это преобразование готовится к правильной симуляции, но количества видов возвращаются в заданных пользователем модулях.
Например, рассмотрим реакцию a + b —> c
. Используя кинетику действующих масс, скорость реакции определяется как a*b*k
где k
- константа скорости реакции. Если вы задаете это начальное количество a
и b
0.01M и 0.005M соответственно, затем модули k
являются 1/(M*second)
. Если вы задаете k
с другим эквивалентным определением модуля, например 1/((molecules/liter)*second)
, UnitConversion
происходит после DimensionalAnalysis
.
Модуль измерения требует размерного анализа. Если DimensionalAnalysis
выключена, и ты поворачиваешься UnitConversion
затем DimensionalAnalysis
включается автоматически. Если UnitConversion
включен, и вы отключаете DimensionalAnalysis
, затем UnitConversion
автоматически отключается.
Если UnitConversion
fails, тогда вы видите ошибку, когда моделируете (sbiosimulate
).
Если UnitConversion
установлено в false
В симуляции используются заданные значения объектов.
Применяется к | Объект: CompileOptions (в configset объект) |
Тип данных | boolean |
Значения данных |
|
Доступ | Чтение/запись |
Примечание
SimBiology использует модули, включая пустые модули в сочетании с DimensionalAnalysis
и UnitConversion
функции.
Когда DimensionalAnalysis
и UnitConversion
являются ли оба false
, модули измерения не используются. Однако SimBiology все еще выполняет минимальный уровень размерного анализа, чтобы решить, является ли скорость реакции размерностями количества/времени или концентрации/времени.
Когда DimensionalAnalysis
является true
и UnitConversion
является false
, модули (если не пустые) должны иметь допустимые размерности, чтобы SimBiology мог выполнить размерный анализ. Однако модули не преобразуются.
Когда UnitConversion
установлено в true
(что требует DimensionalAnalysis
чтобы быть true
), SimBiology выполняет размерный анализ и преобразует все в последовательные модули. Следовательно, необходимо задать допустимые модули, и никакие модули измерения не могут быть пустыми. Если у вас есть безразмерный параметр, необходимо все равно задать его модуль dimensionless
.
Совет
Если у вас есть пользовательская функция и UnitConversion
на, следуйте рекомендации ниже.
Не-размерять параметры, которые передаются функции, если они еще не безразмерны.
Предположим, что у вас есть пользовательская функция, заданная как y = f(t)
где t
время в часах и y
- концентрация вида в моль/литр. Когда вы используете эту функцию в модели, чтобы задать повторное правило присвоения для образца, задайте ее как: s1 = f(time/t0)*s0
, где time
- время симуляции, t0
является параметром, заданным как 1,0 час, s0
является параметром, заданным как 1,0 моль/литр, и s1
- концентрация вида в моль/литр. Обратите внимание, что time
и s1
не обязательно находиться в тех же модулях, что и t0
и s0
но они должны быть размерно последовательными. Для примера, time
и s1
можно установить в минутах и пикомоле/литре, соответственно.
В этом примере показано, как извлечь и задать unitconversion
из true
по умолчанию на
false
в конфигурации модели по умолчанию в объекте модели.
Импортируйте модель.
modelObj = sbmlimport('oscillator')
SimBiology Model - Oscillator Model Components: Models: 0 Parameters: 0 Reactions: 42 Rules: 0 Species: 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') Compile Settings: UnitConversion: false DimensionalAnalysis: true
Присвойте значение false UnitConversion
.
set(optionsObj,'UnitConversion', true)