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

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

Особенности

Относится кОбъект: 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