Выполните размерный анализ модели
DimensionalAnalysis
свойство задает, выполнить ли размерный анализ модели перед симуляцией. Это - свойство CompileOptions
объект. CompileOptions
содержит опции времени компиляции модели и свойство объекта configset
объект. Когда DimensionalAnalysis
установлен в true
, проверки программного обеспечения SimBiology®, ли физические количества модулей, вовлеченных в реакции и правила, соответствуйте, и применимы.
Например, считайте реакцию a + b —> c
. Используя кинетику действующих масс, скорость реакции задана как a*b*k
, где k
константа скорости реакции. Если вы указываете что начальные суммы a
и b
0.01M и 0.005M соответственно, затем модули k
1/(M*second)
. Если вы задаете k
с другим эквивалентным модульным определением, например, 1/[(moles/liter)*second]
, DimensionalAnalysis
проверки, соответствуют ли физические количества. Если физические количества не соответствуют, вы видите ошибку, и модель не симулирована.
Модульное преобразование требует размерного анализа. Если DimensionalAnalysis
выключено, и вы поворачиваете UnitConversion
на, затем DimensionalAnalysis
включен автоматически. Если UnitConversion
включен и вы выключаете DimensionalAnalysis
, затем UnitConversion
выключен автоматически.
Если у вас есть вызовы функции MATLAB® в вашей модели, размерный анализ игнорирует любые выражения, содержащие вызовы функции, и генерирует предупреждение.
Допустимые физические количества для скоростей реакции являются суммой/временем, массой/временем или концентрацией/временем.
Применяется | Объект: CompileOptions (в configset объект |
Тип данных | boolean |
Значения данных |
|
Доступ | Чтение-запись |
Примечание
SimBiology позволяет возведение в степень любого безразмерного количества к любой безразмерной степени. Например, можно записать следующее выражение если оба x
и a
являются безразмерными: (x + 3)^(a + 0.5)
Примечание
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
модули могут быть установлены в минуту и picomole/liter, соответственно.
В этом примере показано, как получить и установить DimensionalAnalysis
от 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: true DimensionalAnalysis: true
Получите CompileOptions
объект.
optionsObj = get(configsetObj,'CompileOptions')
Compile Settings:
UnitConversion: true
DimensionalAnalysis: true
Присвойте значение false
к DimensionalAnalysis
.
set(optionsObj,'DimensionalAnalysis', false)