Выполните размерный анализ на модели
The 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 можно установить в минутах и пикомоле/литре, соответственно.
В этом примере показано, как извлечь и задать 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)