exponenta event banner

UnitConversion

Выполнить преобразование единиц

Описание

UnitConversion свойство указывает, следует ли выполнять преобразование единиц измерения для модели перед моделированием. Является свойством CompileOptions объект. CompileOptions содержит опции времени компиляции модели и является свойством объекта configset объект.

Когда UnitConversion имеет значение true, программное обеспечение SimBiology ® преобразует соответствующие физические величины в одну согласованную единичную систему для их разрешения. Это преобразование готовится к правильному моделированию, но количества видов возвращаются в указанных пользователем единицах.

Например, рассмотрим реакцию a + b —> c. Используя кинетику массового действия, скорость реакции определяется как a*b*k где k - постоянная скорости реакции. Если указать, что начальные суммы a и b равны 0.01M и 0.005M соответственно, то единицы k являются 1/(M*second). При указании k с другим эквивалентным определением единицы измерения, например, 1/((molecules/liter)*second), UnitConversion происходит после DimensionalAnalysis.

Преобразование единиц требует анализа размеров. Если DimensionalAnalysis выключается, а ты сворачиваешь UnitConversion на, затем DimensionalAnalysis включается автоматически. Если UnitConversion включен, и вы отключаете DimensionalAnalysis, то UnitConversion автоматически отключается.

Если UnitConversion ошибка, то при моделировании появляется ошибка (sbiosimulate).

Если UnitConversion имеет значение false, при моделировании используются заданные значения объекта.

Особенности

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

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

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

Примечание

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 единицы измерения могут быть установлены на минуту и пикомоль/литр соответственно.

Примеры

В этом примере показано, как извлекать и устанавливать unitconversion от значения по умолчанию 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:       false
         DimensionalAnalysis:  true
  3. Получить CompileOptions объект.

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

     set(optionsObj,'UnitConversion', true)

См. также

get, getconfigset, sbiosimulate, set