exponenta event banner

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