DimensionalAnalysis

Выполните размерный анализ на модели

Описание

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® вызовы функций в вашей модели, размерный анализ игнорирует любые выражения, содержащие вызовы функций, и генерирует предупреждение.

Действительными физическими величинами для скорости реакции являются количество/время, масса/время или концентрация/время.

Особенности

Применяется кОбъект: CompileOptionsconfigset объект)
Тип данныхboolean
Значения данных

true или false. Значение по умолчанию true.

ДоступЧтение/запись

Примечание

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 в конфигурации модели по умолчанию в объекте модели.

  1. Импортируйте модель.

    modelObj = sbmlimport('oscillator')

    SimBiology Model - Oscillator 
    
       Model Components:
         Models:            0
         Parameters:        0
         Reactions:         42
         Rules:             0
         Species:           23
    
  2. Извлечение 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
  3. Извлечение CompileOptions объект.

    optionsObj = get(configsetObj,'CompileOptions')
    
    Compile Settings:
    
         UnitConversion:       true
         DimensionalAnalysis:  true
  4. Присвойте значение false на DimensionalAnalysis.

     set(optionsObj,'DimensionalAnalysis', false)

См. также

get, getconfigset, sbiosimulate, set