exponenta event banner

DimensionalAnalysis

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

Описание

Свойство 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
Значения данных

true или false. Значением по умолчанию является true.

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

Примечание

SimBiology позволяет возведение в степень любого безразмерного количества к любой безразмерной степени. Например, можно записать следующее выражение, если и x и a являются безразмерными: (x + 3)^(a + 0.5)

Примечание

SimBiology использует модули включая пустые модули в сотрудничестве с функциями UnitConversion и DimensionalAnalysis.

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

  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